Name
global.CanRevert
Description
The logic for when Revert to Store App, or Revert to Out of Box should appear
Script
var CanRevert = Class.create();
CanRevert.prototype = {
current: null,
initialize: function(cur) {
this.current = cur;
},
// condition ensures current is sys_metadata, if desired
canRevertToStoreApp: function() {
if (!this.current.isInStoreScope())
return false;
return this._canRevertTo('sys_store_app');
},
// condition ensures current is sys_metadata, if desired
canRevertToOutOfBox: function() {
return this._canRevertTo('sys_upgrade_history');
},
// returns true if there's an appropriate version to revert to,
// and it's not already current.
_canRevertTo: function(sourceTable) {
// Look at current's last-updated UpdateVersion from the soureTable
var gr = new GlideRecord('sys_update_version');
gr.addQuery('name', this.current.sys_update_name);
gr.addQuery('source_table', sourceTable);
gr.orderByDesc('sys_updated_on');
gr.setLimit(1);
gr.query();
if (!gr.next())
return false; // none found, customer created it
if (gr.state.toString() === 'current')
return false; // it's already current, no need for revert
return true;
},
type: 'CanRevert'
}
Sys ID
796f26cdff1331002b7dffffffffff6b