current.variables.<variable_name> works fine when you know the variable name
but what if you have a number of repeat variables with very similar names on the catalog item form, such as
retail_kit_1
retail_kit_2
retail_kit_3
...
And you wish to loop round and get all the values, and then use them to carry out a repeat task (for example, insert new CIs into the CMDB)?
must be an easier way of doing this...but until I find it here's some code that does the trick:
repeat fields on the catalog item form:
code to loop round these, for example in the RITM workflow:
but what if you have a number of repeat variables with very similar names on the catalog item form, such as
retail_kit_1
retail_kit_2
retail_kit_3
...
And you wish to loop round and get all the values, and then use them to carry out a repeat task (for example, insert new CIs into the CMDB)?
must be an easier way of doing this...but until I find it here's some code that does the trick:
repeat fields on the catalog item form:
code to loop round these, for example in the RITM workflow:
//--get a load of variable values which are named very similar
var grRITM=new GlideRecord('sc_req_item');
if (grRITM.get('number', 'RITM0016189')){
getVariables (grRITM);
}
function getVariables
(grRITM){
var variablePrefix='retail_kit_';
for (i=1;i<10;i++){
var kit_extra= get_variable(variablePrefix+i, grRITM);
if (!gs.nil(kit_extra)){
gs.print(kit_extra);
}
}
}
function get_variable
(variable_name, grRITM){
//--retrieve a variable value where the variable name is
passed in as a string
var sReturn='';
var varGR=new GlideRecord('sc_item_option_mtom');
varGR.addQuery('request_item', grRITM.sys_id); //--sys
id of the sc_req_item
varGR.addQuery('sc_item_option.item_option_new.name='+variable_name);
varGR.query();
if(varGR.next()){
var gr= new GlideRecord ('sc_item_option');
gr.addQuery('sys_id', varGR.sc_item_option.toString());
gr.query();
if(gr.next()){
sReturn=gr.value; //--sys id, typically for this search
}
}
return sReturn;
}
Comments
Post a Comment