Cleaned navigator modules
Implemented 3 types of triggers. Each having their own business rules Implemented FAProperty script for re-usable properties like tables Created UI Macro to create new Fulfillment Plan from trigger
This commit is contained in:
@ -9,35 +9,96 @@
|
||||
<name>CoreUtils</name>
|
||||
<script><![CDATA[var CoreUtils = Class.create();
|
||||
CoreUtils.prototype = {
|
||||
initialize: function() {
|
||||
},
|
||||
initialize: function() {
|
||||
},
|
||||
|
||||
isFA: function(type){
|
||||
var answer = false;
|
||||
|
||||
let bool = false;
|
||||
switch(type){
|
||||
case "task":
|
||||
var taskTriggerGr = new GlideRecord(FAProperty.table.taskTriggerTable);
|
||||
taskTriggerGr.addQuery("condition_table", current.getTableName());
|
||||
taskTriggerGr.addActiveQuery();
|
||||
taskTriggerGr.orderBy("order");
|
||||
taskTriggerGr.query();
|
||||
while(taskTriggerGr.next()){
|
||||
bool = this._isValidTrigger(taskTriggerGr);
|
||||
if(!bool) continue;
|
||||
|
||||
//We have one plan that will run so we return true;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case "rp":
|
||||
var catalog_item = current.getValue('producer');
|
||||
current = current.task.getRefRecord(); //Need to overwrite current for GlideFilter
|
||||
//No break cause we continue in the sc case
|
||||
case "sc":
|
||||
var scTriggerGr = new GlideRecord(FAProperty.table.scTriggerTable);
|
||||
scTriggerGr.addQuery("catalog_item", current.cat_item || catalog_item);
|
||||
scTriggerGr.addActiveQuery();
|
||||
scTriggerGr.orderBy("order");
|
||||
scTriggerGr.query();
|
||||
while(scTriggerGr.next()){
|
||||
bool = this._isValidTrigger(scTriggerGr);
|
||||
if(!bool) continue;
|
||||
|
||||
//We have one plan that will run so we return true;
|
||||
break;
|
||||
}
|
||||
|
||||
this.LOG.debug("is it picked up: " + bool);
|
||||
break;
|
||||
}
|
||||
|
||||
answer = bool
|
||||
return answer;
|
||||
},
|
||||
|
||||
_isValidTrigger: function(triggerGr){
|
||||
var answer = true;
|
||||
var runCondition = triggerGr.getValue("run_if");
|
||||
if(runCondition){
|
||||
answer = GlideFilter.checkRecord(current, runCondition);
|
||||
}
|
||||
|
||||
if(!!triggerGr.script_condition && !!answer){ //casting to boolean
|
||||
var triggerUtils = new TriggerUtils();
|
||||
answer = triggerUtils.runTriggerScript(triggerGr);
|
||||
}
|
||||
//We have one plan that will run so we return true;
|
||||
return answer;
|
||||
|
||||
},
|
||||
|
||||
saveProperty: function(property, value){
|
||||
var answer = false;
|
||||
var propertyGr = new GlideRecord('sys_properties');
|
||||
|
||||
|
||||
if(propertyGr.get('name', property)){
|
||||
propertyGr.setValue('value', value);
|
||||
answer = propertyGr.update();
|
||||
}
|
||||
return answer;
|
||||
},
|
||||
|
||||
|
||||
getCatalogItemTargetTable: function(catalogItemID){
|
||||
var answer = false;
|
||||
|
||||
|
||||
var catalogItemGr = new GlideRecord('sc_cat_item');
|
||||
if(catalogItemGr.get(catalogItemID)){
|
||||
var table = catalogItemGr['ref_' + catalogItemGr.getValue('sys_class_name')].table_name;
|
||||
answer = table || "sc_req_item";
|
||||
}
|
||||
|
||||
|
||||
return answer;
|
||||
},
|
||||
|
||||
|
||||
showUIActionButton: function(table){
|
||||
var answer = false;
|
||||
|
||||
|
||||
var settings = JSON.parse(gs.getProperty("x_355681_fa.form.admin.settings", "{}"));
|
||||
if(settings.quickActions){
|
||||
var tables = [];
|
||||
@ -63,11 +124,11 @@ CoreUtils.prototype = {
|
||||
gs.info(JSON.stringify(tables))
|
||||
answer = tables.indexOf(table) > -1;
|
||||
}
|
||||
|
||||
|
||||
return answer;
|
||||
},
|
||||
|
||||
type: 'CoreUtils'
|
||||
type: 'CoreUtils'
|
||||
};
|
||||
new ProcessorUtils("x_355681_fa").wrapPrototype(CoreUtils.prototype);]]></script>
|
||||
<sys_class_name>sys_script_include</sys_class_name>
|
||||
|
||||
Reference in New Issue
Block a user