Name

global.PPMPlatformArtifactsCURDOperator

Description

No description available

Script

var PPMPlatformArtifactsCURDOperator = Class.create();
PPMPlatformArtifactsCURDOperator.prototype = {
  initialize: function() {
      this.hasAccess = gs.hasRole('sn_invst_pln_investment_admin');
      if(!this.hasAccess){
          gs.info('PPMPlatformArtifactsCURDOperator: user does not have access');
      }
  },

  createBusinessRule: function(BRName, description, tableName, filterCondition, script) {
      if (!this.hasAccess)
          return '';
      var gr = new GlideRecord("sys_script");
      gr.setValue('name', BRName);
      gr.setValue('collection', tableName);
      gr.setValue('action_update', true);
      gr.setValue('active', true);
      gr.setValue('advanced', true);
      gr.setValue('when', 'after');
      gr.setValue('order', 10000);
      gr.setValue('filter_condition', filterCondition);
      gr.setValue('script', script);
      gr.setValue('description', description);
      var businessRuleID = gr.insert();
      gs.info('PPMPlatformArtifactsCURDOperator: As part of IF data migration, created BR: ' + businessRuleID);
      return businessRuleID;
  },

  createUIAction: function(name, tableName, script, entityOwner, onClickFunction, condition, comments) {
      if (!this.hasAccess)
          return '';
      gr = new GlideRecord("sys_ui_action");
      gr.setValue('active', true);
      gr.setValue('form_action', true);
      gr.setValue('form_context_menu', true);
      gr.setValue('form_link', true);
      gr.setValue('isolate_script', true);
      gr.setValue('list_action', true);
      gr.setValue('list_context_menu', true);
      gr.setValue('show_insert', true);
      gr.setValue('show_update', true);
      gr.setValue('table', tableName);
      gr.setValue('name', name);
      gr.setValue('action_name', 'view_request_fund');
      gr.setValue('comments', 'Funding entity UI Action generated');
      gr.setValue('condition', condition);
      gr.setValue('order', 10000);
      gr.setValue('script', script);
      var uiActionID = gr.insert();
      gs.info('PPMPlatformArtifactsCURDOperator: As part of IF data migration, created UI action: ' + uiActionID);
      return uiActionID;
  },

  deleteUIAction: function(tableName, name, sysId) {
      if (!this.hasAccess)
          return '';
      var gr = new GlideRecord("sys_ui_action");
      if (!gs.nil(sysId))
          gr.addQuery('sys_id', sysId);
      else {
          gr.addQuery('table', tableName);
          gr.addQuery('name', name);
      }
      gr.query();
      if (gr.next()) {
          gr.deleteRecord();
          gs.info('PPMPlatformArtifactsCURDOperator: As part of IF data migration, deleted UI action: ' + sysId);
      }
  },

  deleteBR: function(BRDesc, BrIds) {
      if (!this.hasAccess)
          return '';
      var gr = new GlideRecord("sys_script");
      if (!gs.nil(BrIds))
          gr.addQuery('sys_id', 'IN', BrIds);
      else
          gr.addQuery('description', BRDesc);
      gr.deleteMultiple();
      gs.info('PPMPlatformArtifactsCURDOperator: As part of IF data migration, deleted BR/s: ' + (BrIds || BRDesc));
  },

  disableUIAction: function(sysId) {
      if (!this.hasAccess) 
          return '';
      var gr = new GlideRecord("sys_ui_action");
      if (!gs.nil(sysId)) {
          gr.addQuery('sys_id', sysId);
          gr.addQuery('active', true);
          gr.query();
          if (gr.next()) {
              var existingName = gr.getValue('name');
              gr.setValue('name', existingName + ' - old');
              gr.setValue('active', false);
              gr.update();
              gs.info('PPMPlatformArtifactsCURDOperator: As part of IF data migration, disabled UI action: ' + sysId);
          } else {
              gs.info('PPMPlatformArtifactsCURDOperator: No active records has been found with sys_id ' + sysId);
          }
      } else{
          gs.info('PPMPlatformArtifactsCURDOperator: No sys_id has been passed as part of disable UI action : ' + sysId);
      }
  },

  disableBR: function(brIds) {
      if (!this.hasAccess)
          return '';
      var gr = new GlideRecord("sys_script");
      if (!gs.nil(brIds)) {
          gr.addQuery('sys_id', 'IN', brIds);
          gr.addQuery('active', true);
          gr.query();
          while (gr.next()) {
              var existingName = gr.getValue('name');
              gr.setValue('name', existingName + ' - old');
              gr.setValue('active', false);
              gr.update();
          }
          gs.info('PPMPlatformArtifactsCURDOperator: As part of IF data migration, disabled BR/s: ' + brIds);
      } else{
          gs.info('PPMPlatformArtifactsCURDOperator: No business rule IDs has been passed to disable.');
      }
  },
  
  hideOldInvestmentFundingMenu: function(){
  	var INVESTMENT_FUND_APP_SYS_ID = "52b18c9073832300a010ef6bcaf6a7ee";
  	var SYS_APP_TBL = "sys_app_application";
  	var SYS_APP_MODULE_TBL = "sys_app_module";
  	var SYS_BOOKMARK_TBL = 'sys_ui_bookmark';
  	var SYS_BOOKMARK_GRP_TBL = 'sys_ui_bookmark_group';

  	var appGR = new GlideRecord(SYS_APP_TBL);
  	appGR.addEncodedQuery("active>=true^sys_id="+INVESTMENT_FUND_APP_SYS_ID);
  	appGR.query();

  	if(appGR.next()){
  		appGR.setValue("active", false);
  		appGR.update();
  		var moduleGR = new GlideRecord(SYS_APP_MODULE_TBL);
  		moduleGR.addQuery("application", INVESTMENT_FUND_APP_SYS_ID);
  		moduleGR.setValue("active", false);
  		moduleGR.updateMultiple();
  	}
  	
  	// Delete Application from Favourites / Bookmark 

  	var bookmarkGrpGR = new GlideRecord(SYS_BOOKMARK_GRP_TBL);
  	bookmarkGrpGR.addQuery("application", INVESTMENT_FUND_APP_SYS_ID);
  	bookmarkGrpGR.query();
  	bookmarkGrpGR.deleteMultiple();

  	// Delete Module from Favourites / Bookmark 

  	var bookmarkGR = new GlideRecord(SYS_BOOKMARK_TBL);
  	bookmarkGR.addQuery("module.application", INVESTMENT_FUND_APP_SYS_ID);
  	bookmarkGR.query();
  	bookmarkGR.deleteMultiple();
  	
  },
  
  /**
   * @description This method is called from the sysevent_script_action's script upon the activation of sn_invst_pln plugin.
   **/
  activateInvestmentPlanningACLs: function() {
      var sysIds = ['67f57d67c7f6201063e1e5e603c260c1', '7bf5bd67c7f6201063e1e5e603c2603c', '2e3e37ff5f3220101709ea552f46660f', '2e3ef3ff5f3220101709ea552f46668c', 'ae3ef3ff5f3220101709ea552f466687', 'e63e37ff5f3220101709ea552f46660c'];
  	
      if (gs.hasRole('admin')) {
  		gs.log("Activating few inactive acl's of Investment Planning plugin.", this.type);
          var aclGR = new GlideRecord("sys_security_acl");
          aclGR.addQuery('sys_id', 'IN', sysIds);
          aclGR.setValue('active', true);
          aclGR.updateMultiple();
      } else {
  		gs.logError("Not able to activate the acls's as the current user is not an admin.", this.type);
  	}
  },

  type: 'PPMPlatformArtifactsCURDOperator'
};

Sys ID

d3d35649533e20105054ddeeff7b12a2

Offical Documentation

Official Docs: