Name

sn_hr_mobile.MobileInputFormScreenAndSignatureMigrationTools

Description

No description available

Script

var MobileInputFormScreenAndSignatureMigrationTools = Class.create();
MobileInputFormScreenAndSignatureMigrationTools.prototype = {

  TABLE: {
      SYS_SG_BUTTON_INSTANCE: "sys_sg_button_instance",
      SYS_SG_UI_PARAMETER: "sys_sg_ui_parameter",
      SYS_SG_ITEM_PARAMETER: "sys_sg_item_parameter",
      SYS_SG_ACTION_PARAM_MAP: "sys_sg_action_param_map"
  },

  FIELD: {
      ACTIVE: "active",
      PARAMETER_TYPE: "parameter_type",
      BUTTON: "button",
      PARENT_TABLE: "parent_table",
      PARENT: "parent"
  },

  SYS_SG_BUTTON_INSTANCE_MAP: {
      "a7311f7273bb23005788e1e54cf6a74f": {
          "new_instance": "79c25256eb111110ec17bed059522802",
          "label": "Approve & Comment",
          "parent": "2723bab2737b23005788e1e54cf6a73f"
      },
      "2181411d730c33005788e1e54cf6a781": {
          "new_instance": "ec48d296eb111110ec17bed059522848",
          "label": "Accept & Comment",
          "parent": "9e5e9595733323005788e1e54cf6a761"
      },
      "caeacfbe737b23005788e1e54cf6a738": {
          "new_instance": "2d8a92dbb8515110f8777f6a2d15cc99",
          "label": "Reject",
          "parent": "2723bab2737b23005788e1e54cf6a73f"
      },
      "7631cdd9730c33005788e1e54cf6a724": {
          "new_instance": "9f48da5bb8515110f8777f6a2d15cc0b",
          "label": "Reject",
          "parent": "9e5e9595733323005788e1e54cf6a761"
      },
      "2c487d66730300105788e1e54cf6a7b4": {
          "new_instance": "8fe21ed3b8515110f8777f6a2d15cc92",
          "label": "Reject resolution",
          "parent": "a2d674e373b200105788e1e54cf6a709"
      },
      "978043f2730300105788e1e54cf6a7c8": {
          "new_instance": "ff055297b8515110f8777f6a2d15cc06",
          "label": "Reject resolution",
          "parent": "67a27c2373b200105788e1e54cf6a7f5"
      },
      "741e3cae53c720101fb2ddeeff7b12cf": {
          "new_instance": "bd5a0c306b59111024ca2421ee44af93",
          "label": "Add a delegate",
          "parent": "f45e9242536723000ad0ddeeff7b12fe"
      },
      "01eae316534720101fb2ddeeff7b1256": {
          "new_instance": "a953c9286bd5111024ca2421ee44aff0",
          "label": "Add a delegate",
          "parent": "270ab11f53722010d493ddeeff7b1249"
      },
      "2c36a24ae7832010809a268b03f6a91b": {
          "new_instance": "aa0405686bd5111024ca2421ee44af9d",
          "label": "Add a delegate",
          "parent": "17c0a8be53ab23000ad0ddeeff7b12ad"
      },
      "32e827d2534720101fb2ddeeff7b126c": {
          "new_instance": "6ea48d686bd5111024ca2421ee44af21",
          "label": "Add a delegate",
          "parent": "0a07e05553ac33004d1dddeeff7b12c8"
      },
      "6ec8e3d2534720101fb2ddeeff7b1244": {
          "new_instance": "fad441a86bd5111024ca2421ee44afd2",
          "label": "Add a delegate",
          "parent": "9208a08177bb23005c4204389a1061e5"
      },
      "7938a392534720101fb2ddeeff7b1217": {
          "new_instance": "d50505a86bd5111024ca2421ee44af94",
          "label": "Add a delegate",
          "parent": "024760c1537723004d1dddeeff7b12b0"
      },
      "a859e7d2534720101fb2ddeeff7b121e": {
          "new_instance": "af5585a86bd5111024ca2421ee44af42",
          "label": "Add a delegate",
          "parent": "99760a15737723002204e2596bf6a711"
      },
      "bb1967d2534720101fb2ddeeff7b120d": {
          "new_instance": "ed85c9a86bd5111024ca2421ee44af89",
          "label": "Add a delegate",
          "parent": "989ea9a453113300ea67ddeeff7b12da"
      },
      "c3b9abd2534720101fb2ddeeff7b12a5": {
          "new_instance": "57a54da86bd5111024ca2421ee44afd2",
          "label": "Add a delegate",
          "parent": "8e518987532323000ad0ddeeff7b120a"
      },
      "ca39e7d2534720101fb2ddeeff7b1218": {
          "new_instance": "ddd5cda86bd5111024ca2421ee44afeb",
          "label": "Add a delegate",
          "parent": "f9836507732323005788e1e54cf6a7cb"
      },
      "ded92fd2534720101fb2ddeeff7b12ba": {
          "new_instance": "c7f581e86bd5111024ca2421ee44af38",
          "label": "Add a delegate",
          "parent": "0e060615737723002204e2596bf6a7ae"
      },
      "e93622a8532320101fb2ddeeff7b128e": {
          "new_instance": "5326c1e86bd5111024ca2421ee44af57",
          "label": "Add a delegate",
          "parent": "a3d8a98653a323000ad0ddeeff7b127b"
      }, // signature buttons
      "cd16041a530833004d1dddeeff7b12d4": { // Do e-signature (old) for managed document
          "new_instance": "4e8adf15eb031110c3fc2c148f5228eb",
          "label": "Sign",
          "parent": "163a0a95737723002204e2596bf6a7ee"
      },
      "a0910b9d53193300ea67ddeeff7b12f6": { // Do e-signature(old) for HR template
          "new_instance": "220ad715eb031110c3fc2c148f5228d8",
          "label": "Sign",
          "parent": "687ee5a453113300ea67ddeeff7b12dd"
      },
      "8e4238dd53ac33004d1dddeeff7b129b": { // Do e-signature(old) for HR template
          "new_instance": "75e95715eb031110c3fc2c148f52289a",
          "label": "Sign",
          "parent": "6987685553ac33004d1dddeeff7b1246"
      },
      "30775bf5536033004d1dddeeff7b12ac": { // Do e-signature(new) for knowledge article
          "new_instance": "5e3b2607eb321110c3fc2c148f52286f",
          "label": "Sign",
          "parent": "a828e4c1537723004d1dddeeff7b12a0"
      },
      "559e15d153a073004d1dddeeff7b12f6": { // Do e-signature(new) for managed document
          "new_instance": "067c1ea9ebb21110c3fc2c148f5228b9",
          "label": "Sign",
          "parent": "163a0a95737723002204e2596bf6a7ee"
      },
      "6118f555532033004d1dddeeff7b129a": { // Do e-signature(new) for HR template
          "new_instance": "1343a51deb721110c3fc2c148f5228f1",
          "label": "Sign",
          "parent": "6987685553ac33004d1dddeeff7b1246"
      },
      "2aa18b9d53193300ea67ddeeff7b1246": { // Do e-signature(new) for HR template
          "new_instance": "4de83095ebb21110c3fc2c148f5228e9",
          "label": "Sign",
          "parent": "687ee5a453113300ea67ddeeff7b12dd"
      }

  },

  initialize: function() {
      this.mobileUtahUpgradeCommonTool = new sn_hr_mobile.MobileUtahUpgradeCommonTools();
  },

  cleanUpgrade: function() {
      this.cleanUpgradeButtonInstances(this.SYS_SG_BUTTON_INSTANCE_MAP);
  },

  cleanUpgradeButtonInstances: function(instanceMap) {
      for (var oldInstance in instanceMap) {
          if (gs.nil(instanceMap[oldInstance].new_instance)) {
              gs.info("MobileInputFormScreenAndSignatureMigrationTools: cleanUpgrade: Skipping upgrade for {0} as no new sys_sg_button_instance mapped", oldInstance);
          } else {
              var oldInstanceGr = this.mobileUtahUpgradeCommonTool.getGlideRecord(this.TABLE.SYS_SG_BUTTON_INSTANCE, oldInstance);
              var newInstanceGr = this.mobileUtahUpgradeCommonTool.getGlideRecord(this.TABLE.SYS_SG_BUTTON_INSTANCE, instanceMap[oldInstance].new_instance);
              if (!newInstanceGr || !newInstanceGr.isValidRecord()) {
                  gs.info("MobileInputFormScreenAndSignatureMigrationTools: cleanUpgrade: Skipping upgrade as new sys_sg_button_instance Record {0} not found", newInstanceGr.getUniqueValue());
              } else if (!oldInstanceGr || !oldInstanceGr.isValidRecord()) {
                  gs.info("MobileInputFormScreenAndSignatureMigrationTools: cleanUpgrade: Skipping upgrade as sys_sg_button_instance Record {0} not found", oldInstance);
              } else if (this.isButtonInstanceFlowCustom(oldInstanceGr)) {
                  this.deActivateRecord(newInstanceGr);
              } else {
                  this.deActivateRecord(oldInstanceGr);
              }
          }
      }
  },

  isButtonInstanceFlowCustom: function(buttonInstanceGr) {
      if (!this.mobileUtahUpgradeCommonTool.isRecordCustomized(buttonInstanceGr.getValue("sys_update_name"))) {
          var buttonGr = buttonInstanceGr.button.getRefRecord();
          if (!buttonGr || !buttonGr.isValidRecord()) {
              gs.info("MobileInputFormScreenAndSignatureMigrationTools: isButtonInstanceFlowCustom: Skipping upgrade because sys_sg_button Record for instance {0} not found", buttonInstanceGr.getUniqueValue);
              return true;
          }
          if (!this.mobileUtahUpgradeCommonTool.isRecordCustomized(buttonGr.getValue("sys_update_name"))) {
              var actionItemGr = buttonGr.write_back_action_item.getRefRecord();
              if (!actionItemGr || !actionItemGr.isValidRecord()) {
                  gs.info("MobileInputFormScreenAndSignatureMigrationTools: isButtonInstanceFlowCustom: Skipping upgrade because sys_sg_action_item Record for instance {0} not found", buttonInstanceGr.getUniqueValue);
                  return true;
              }
              if (!this.mobileUtahUpgradeCommonTool.isRecordCustomized(actionItemGr.getValue("sys_update_name"))) {
                  return this.hasCustomizedUIParam(buttonGr) || this.hasCustomizedItemParam(actionItemGr) || this.hasCustomizedActionParamMap(buttonGr);
              }
          }
      }
      return true;
  },

  hasCustomizedUIParam: function(buttonGr) {
      var gr = new GlideRecord(this.TABLE.SYS_SG_UI_PARAMETER);
      gr.addQuery(this.FIELD.PARAMETER_TYPE, "button");
      gr.addQuery(this.FIELD.BUTTON, buttonGr.getUniqueValue());
      gr.query();
      while (gr.next()) {
          if (this.mobileUtahUpgradeCommonTool.isRecordCustomized(gr.getValue("sys_update_name")))
              return true;
      }
      return false;
  },

  hasCustomizedItemParam: function(actionItemGr) {
      var gr = new GlideRecord(this.TABLE.SYS_SG_ITEM_PARAMETER);
      gr.addQuery(this.FIELD.PARENT_TABLE, actionItemGr.getTableName());
      gr.addQuery(this.FIELD.PARENT, actionItemGr.getUniqueValue());
      gr.query();
      while (gr.next()) {
          if (this.mobileUtahUpgradeCommonTool.isRecordCustomized(gr.getValue("sys_update_name")))
              return true;
      }
      return false;
  },

  hasCustomizedActionParamMap: function(buttonGr) {
      var gr = new GlideRecord(this.TABLE.SYS_SG_ACTION_PARAM_MAP);
      gr.addQuery(this.FIELD.BUTTON, buttonGr.getUniqueValue());
      gr.query();
      while (gr.next()) {
          if (this.mobileUtahUpgradeCommonTool.isRecordCustomized(gr.getValue("sys_update_name")))
              return true;
      }
      return false;
  },

  deActivateRecord: function(gr) {
      if (gr && gr.isValidRecord() && gr.getValue(this.FIELD.ACTIVE) == 1 && !this.mobileUtahUpgradeCommonTool.isRecordCustomized(gr.getValue("sys_update_name"))) {
          gr.setValue(this.FIELD.ACTIVE, 0);
          gr.update();
          gs.info("MobileInputFormScreenAndSignatureMigrationTools: deActivateRecord: sys_sg_button_instance Record {0} deactivated", gr.getUniqueValue());
      } else {
          gs.info("MobileInputFormScreenAndSignatureMigrationTools: deActivateRecord: Skipped deactivation because sys_sg_button_instance Record {0} not found or already deactivated", gr.getUniqueValue());
      }
  },

  type: 'MobileInputFormScreenAndSignatureMigrationTools'
};

Sys ID

732dce4f53cb111024caddeeff7b1271

Offical Documentation

Official Docs: