Name

global.UserCriteriaMigration

Description

This script will set the user criteria property to true if there are no records in the legacy m2m tables. After this runs, only an instance using old tables will be left not using the user criteria functionality.

Script

var UserCriteriaMigration = Class.create();
UserCriteriaMigration.prototype = {
  initialize : function() {
  },

  fixUserCriteriaProperty : function() {
      gs.log("User Criteria Migration started: For using the Service Catalog User Criteria")

  	var uc_prop = "glide.sc.use_user_criteria";
      var be = GlidePluginManager.isActive("com.glide.express.applications");
      
      function fixUserCriteriaProperty(uc_prop) {
          var legacyTables = [ "sc_cat_item_company_mtom",
                  "sc_cat_item_company_no_mtom", "sc_cat_item_dept_mtom",
                  "sc_cat_item_dept_no_mtom", "sc_cat_item_group_mtom",
                  "sc_cat_item_group_no_mtom", "sc_cat_item_location_mtom",
                  "sc_cat_item_location_no_mtom", "sc_cat_item_user_mtom",
                  "sc_cat_item_user_no_mtom", "sc_category_company_mtom",
                  "sc_category_company_no_mtom", "sc_category_dept_mtom",
                  "sc_category_dept_no_mtom", "sc_category_group_mtom",
                  "sc_category_group_no_mtom", "sc_category_location_mtom",
                  "sc_category_location_no_mtom", "sc_category_user_mtom",
                  "sc_category_user_no_mtom" ];

          var numTbls = legacyTables.length;
          var totRecs = 0;

          for (var i = 0; i < numTbls; i++) {
              var recs = new GlideRecord(legacyTables[i]);
              if (recs.isValid()) {
                  recs.query();
                  totRecs += recs.getRowCount();
                  gs.print("Num of records found in " + legacyTables[i] + " : " + recs.getRowCount());
              }
              if (totRecs > 0)
                  i = numTbls;
          }

          if (totRecs > 0) {
  			gs.setProperty(uc_prop, false);
              gs.log("User Criteria migration finished unsuccessfully. Property: " + uc_prop + " has been set to 'false'. Records found in legacy tables. Please refer to the wiki to perform manual user criteria migration");
          } else {
              gs.setProperty(uc_prop, true);
              gs.log("User Criteria migration finished successfully. Property: " + uc_prop + " has been set to 'true'");
          }
      }
      
      if (!be)
          fixUserCriteriaProperty(uc_prop);
  	else
  		gs.setProperty(uc_prop, false);
  		
  },

  type : 'UserCriteriaMigration'
}

Sys ID

503e7a20d7132100f2d224837e61030c

Offical Documentation

Official Docs: