Name

sn_itam_mobile.MobileUpgradeEngine

Description

Upgrade utils for mobile agent

Script

var MobileUpgradeEngine = Class.create();
MobileUpgradeEngine.prototype = {
  initialize: function() {
  },
  upgradeForLegacyCards: function() {
  	var FORM_SCREEN_TABLE = 'sys_sg_form_screen';
  	var LIST_SCREEN_TABLE = 'sys_sg_master_item';
  	// List of all the cards
  	var	formScreenArray =
  		[{
  			legacyCardSysId:'53dca74800001010fa9b5cb6e5ff3621',
  			screenSysId:'e7dca74800001010fa9b5cb6e5ff3623',
  			cardSysId:'fdc66d6208895110fa9be7013b85677c'
  		},
  		{
  			legacyCardSysId:'3c2a1c660f223300d505579ac4767e7a',
  			screenSysId:'bc2a1c660f223300d505579ac4767e7c',
  			cardSysId:'32a4d06030d11110fa9b0f3ffe5def42'
  		},
  		{
  			legacyCardSysId:'502e0cf987b22300a77a31a2f5cb0b04',
  			screenSysId:'946ed40a87203300693331a2f5cb0bcd',
  			cardSysId: '7f6786ae08c95110fa9be7013b8567c9'
  		},
  		{
  			legacyCardSysId:'28450cf587b22300a77a31a2f5cb0bbf',
  			screenSysId:'e86e180a87203300693331a2f5cb0b0f',
  			cardSysId:'7d71066608c95110fa9be7013b856774'
  		},
  		{
  			legacyCardSysId:'980f97470be7101021fd092db4673ace',
  			screenSysId:'d40f97470be7101021fd092db4673ad0',
  			cardSysId:'9f1c107877d11110814d99f69c5a9935'
  		},
  		{
  			legacyCardSysId:'f9cb4fb20be3101021fd092db4673ae5',
  			screenSysId:'39cb4fb20be3101021fd092db4673ae7',
  			cardSysId:'0fea274077551110814d99f69c5a99df'
  		},
  		{
  			legacyCardSysId:'5c7d0ff20be3101021fd092db4673a3d',
  			screenSysId:'587d0ff20be3101021fd092db4673a3f',
  			cardSysId:'2b92774877191110814d99f69c5a9963'
  		},
  		{
  			legacyCardSysId:'a3016b870be7101021fd092db4673aac',
  			screenSysId:'ef016b870be7101021fd092db4673aad',
  			cardSysId:'48a2a07c77d11110814d99f69c5a9983'
  		},
  		{
  			legacyCardSysId:'b71b2f8cb94e1010fa9bf4c9f328afdd',
  			screenSysId:'f31b2f8cb94e1010fa9bf4c9f328afdf',
  			cardSysId:'857f78f877911110814d99f69c5a9973'
  		}];
  	var	listScreenArray =
  		[{
  			legacyCardSysId:'87dc674800001010fa9b5cb6e5ff36fd',
  			screenSysId:'a3dca74800001010fa9b5cb6e5ff362c',
  			cardSysId:'fdc66d6208895110fa9be7013b85677c'
  		},
  		{
  			legacyCardSysId:'282a58660f223300d505579ac4767e60',
  			screenSysId:'382a1c660f223300d505579ac4767e85',
  			cardSysId:'e660f56a08895110fa9be7013b8567ac'
  		},
  		{
  			legacyCardSysId:'502e0cf987b22300a77a31a2f5cb0b04',
  			screenSysId:'ec2e0cf987b22300a77a31a2f5cb0b2c',
  			cardSysId:'7f6786ae08c95110fa9be7013b8567c9'
  		},
  		{
  			legacyCardSysId:'28450cf587b22300a77a31a2f5cb0bbf',
  			screenSysId:'a8450cf587b22300a77a31a2f5cb0bcc',
  			cardSysId:'7d71066608c95110fa9be7013b856774'
  		},
  		{
  			legacyCardSysId:'5c0f17470be7101021fd092db4673a31',
  			screenSysId:'180f97470be7101021fd092db4673ad9',
  			cardSysId:'43eb107877d11110814d99f69c5a992e'
  		},
  		{
  			legacyCardSysId:'2dcb0fb20be3101021fd092db4673af0',
  			screenSysId:'35cb8fb20be3101021fd092db4673a08',
  			cardSysId:'8519a7c077191110814d99f69c5a99ac'
  		},
  		{
  			legacyCardSysId:'9c7d0ff20be3101021fd092db4673a36',
  			screenSysId:'d87d0ff20be3101021fd092db4673a45',
  			cardSysId:'84f0f3cc77151110814d99f69c5a99bd'
  		},
  		{
  			legacyCardSysId:'eb016b870be7101021fd092db4673aa4',
  			screenSysId:'eb016b870be7101021fd092db4673ac0',
  			cardSysId:'f752a0bc77d11110814d99f69c5a992d'
  		},
  		{
  			legacyCardSysId:'b31be78cb94e1010fa9bf4c9f328af0e',
  			screenSysId:'771b2f8cb94e1010fa9bf4c9f328afe5',
  			cardSysId:'e64fb8f877911110814d99f69c5a9952'
  		}];
  	formScreenArray.forEach(function(card) {
  		// Check if legacy card is customised
  		if (MobileUpgradeEngine.isCustomised(card.legacyCardSysId)) {
  			// Update screen to legacyCard and use_view_config = false
  			new global.GlideQuery(FORM_SCREEN_TABLE)
  				.where('sys_id', card.screenSysId)
  				.updateMultiple({item_view: card.legacyCardSysId, use_view_config: false});
  		}
  	});
  	listScreenArray.forEach(function(card) {
  		// Check if legacy card is customised
  		if (MobileUpgradeEngine.isCustomised(card.legacyCardSysId)) {
  			// Update screen to legacyCard and use_view_config = false
  			new global.GlideQuery(LIST_SCREEN_TABLE)
  				.where('sys_id', card.screenSysId)
  				.updateMultiple({item_view: card.legacyCardSysId, use_view_config: false});
  		}
  	});
  },
  
  upgradeForButtonInstance: function() {
  	var FUNCTION_INSTANCE_TABLE  = 'sys_sg_button_instance';

  	// List of all the button (function) instance
  	var	functionDetailsArray =
  		[{
  			functionInstanceSysId: ['8681ecef0f223300d505579ac4767e77'],
  			functionSysId: 'dca068ef0f223300d505579ac4767eec',
  			actionItemSysId:'4344c82b0f223300d505579ac4767e8d',
  			UIParameterSysId: ['04c95bae0f323300d505579ac4767e46', '5a4997ae0f323300d505579ac4767e47', '71fb17220f723300d505579ac4767eb0', 'ce52a4230f623300d505579ac4767e64'],
  			groupedIpSysId: '',
  			itemParameter: ['d3b444ab0f223300d505579ac4767ea5', 'f474c0ab0f223300d505579ac4767e9a', 'a3a4c0ab0f223300d505579ac4767ead', 'd8d484ab0f223300d505579ac4767e2c', '4f05c4ab0f223300d505579ac4767ed8', 'e4f4c4ab0f223300d505579ac4767ecf'],
  			actionParmMap: ['0889d7ae0f323300d505579ac4767efd', '197cdb220f723300d505579ac4767edb', '37f22c230f623300d505579ac4767e27', '8d4a9fae0f323300d505579ac4767e28', 'b7232c230f623300d505579ac4767edb', 'c4e2e8230f623300d505579ac4767e39', 'ccf2e8230f623300d505579ac4767ece'],
  			newFunInstanceSysId: ['a862d64a08711110f8775d11ba506fc3']
  		},
  		{
  			functionInstanceSysId: ['cf96c1c387f62300a77a31a2f5cb0b15', '508681c387f62300a77a31a2f5cb0baf'],
  			functionSysId: 'ce654d8387f62300a77a31a2f5cb0b01',
  			actionItemSysId:'90b4058387f62300a77a31a2f5cb0bba',
  			UIParameterSysId: ['6f958d8387f62300a77a31a2f5cb0b79'],
  			groupedIpSysId: '6303221a3d000010fa9b01c49b9a78af',
  			itemParameter: ['16d4098387f62300a77a31a2f5cb0bbf'],
  			actionParmMap: ['3b3a810787f62300a77a31a2f5cb0ba8'],
  			newFunInstanceSysId: ['5d76813677121110814d99f69c5a99c9', '9ba6853e77121110814d99f69c5a996c']
  		},
  		{
  			functionInstanceSysId: ['d351338c00001010fa9b5cb6e5ff36dd'],
  			functionSysId: '6b8e6b0c87d83300693331a2f5cb0b33',
  			actionItemSysId:'6bbda30c87d83300693331a2f5cb0bc2',
  			UIParameterSysId: ['00eeeb0c87d83300693331a2f5cb0b7f', '33beab0c87d83300693331a2f5cb0ba3', '5c1f6f0c87d83300693331a2f5cb0b5c', '940f2f0c87d83300693331a2f5cb0b81', 'ccba58a787103300693331a2f5cb0b15'],
  			groupedIpSysId: '',
  			itemParameter: ['1a3e670c87d83300693331a2f5cb0ba1', '955ea70c87d83300693331a2f5cb0b8f', '3c48146787103300693331a2f5cb0bdf', '2c6ee70c87d83300693331a2f5cb0b2b', '0f6ee70c87d83300693331a2f5cb0bce'],
  			actionParmMap: ['198f234c87d83300693331a2f5cb0b9c', '37ca98a787103300693331a2f5cb0b24', '3d9f634c87d83300693331a2f5cb0b3b', '54af634c87d83300693331a2f5cb0bc0', 'e67f234c87d83300693331a2f5cb0b57'],
  			newFunInstanceSysId: ['a542864877a21110814d99f69c5a9950']
  		},
  		{
  			functionInstanceSysId: ['0761338c00001010fa9b5cb6e5ff36e1', '4bc68d390f323300d505579ac4767e81'],
  			functionSysId: '23b401390f323300d505579ac4767e1e',
  			actionItemSysId:'4ae3c5f50f323300d505579ac4767e37',
  			UIParameterSysId: ['24d509390f323300d505579ac4767ed0', 'a10689390f323300d505579ac4767e53', 'c615c1390f323300d505579ac4767e2d', 'cf4505390f323300d505579ac4767ea5'],
  			groupedIpSysId: '',
  			itemParameter: ['03844df50f323300d505579ac4767ead', '28640df50f323300d505579ac4767e1a', 'be740df50f323300d505579ac4767e84', 'd4740df50f323300d505579ac4767e7d'],
  			actionParmMap: ['821781790f323300d505579ac4767ed7', '960741790f323300d505579ac4767ea6', 'a2f641790f323300d505579ac4767e4d', 'e127c1790f323300d505579ac4767e9e'],
  			newFunInstanceSysId: ['de7ce77bfc021110fa9ba9e8d52d5d5b', '8aa8494177221110814d99f69c5a9954']
  		}];
  	functionDetailsArray.forEach(function(funInstance) {

  		// Check if any of the files related to function instance is customised
  		if (MobileUpgradeEngine.isCustomised(funInstance.functionSysId) || MobileUpgradeEngine.isCustomised(funInstance.actionItemSysId) || MobileUpgradeEngine.isAnyCustomised(funInstance.UIParameterSysId) || MobileUpgradeEngine.isCustomised(funInstance.groupedIpSysId) || MobileUpgradeEngine.isAnyCustomised(funInstance.itemParameter) || MobileUpgradeEngine.isAnyCustomised(funInstance.actionParmMap)) {
  			// mark the new function instance inactive
  			new global.GlideQuery(FUNCTION_INSTANCE_TABLE)
  				.where('sys_id', 'IN', funInstance.newFunInstanceSysId)
  				.updateMultiple({active: false});
  		} else {
  			// check if function instance is customised, if yes, mark corresponding new function instance inactive
  			var funInstanceArray = funInstance.functionInstanceSysId;
  			for (var i=0; i< funInstanceArray.length; i++) {
  				if (MobileUpgradeEngine.isCustomised(funInstanceArray[i])) {
  					new global.GlideQuery(FUNCTION_INSTANCE_TABLE)
  						.where('sys_id', funInstance.newFunInstanceSysId[i])
  						.updateMultiple({active: false});
  				} else {
  					new global.GlideQuery(FUNCTION_INSTANCE_TABLE)
  						.where('sys_id', funInstanceArray[i])
  						.updateMultiple({active: false});
  				}
  			}
  		}
  	});
  },
  type: 'MobileUpgradeEngine'
};
MobileUpgradeEngine.isCustomised = function(sysId) {
  if (sysId) {
  	return new global.GlideQuery('sys_update_xml')
  		.where('name', 'CONTAINS', sysId)
  		.where('sys_created_by', '!=', 'system')
  		.selectOne()
  		.isPresent();
  }
  return false;
};
// return true if any of the sysIds is customised
MobileUpgradeEngine.isAnyCustomised = function(sysIdArray) {
  var isCustomised = false;
  sysIdArray.forEach(function(sysId) {
  	if (!isCustomised && MobileUpgradeEngine.isCustomised(sysId)) {
  		isCustomised = true;
  		// Break the forEach loop
  		return false;
  	}
  });
  return isCustomised;
};

Sys ID

b206214c25661110fa9b546e8bc039fa

Offical Documentation

Official Docs: