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