- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-31-2018 12:47 PM
I am attempting to pass Service Catalog variables from one RITM to another (via ebonding), however, one of the Packages that I was using to accomplish this, GlideappAbstractChoiceListQuestion, is not available within a scoped application. Does anyone know an alternative?
Essentially, I am pulling data from the sc_item_option_mtom table, which is working, but if the data returned is referenced from another table (sys_user, cmn_location, etc) it is only showing the Sys_ID, instead of a friendly Display Value.
Below is an example of a simple script that can be run in Scripts - Background. This WILL work in Global Scope, but I get: "Error: GlideappAbstractChoiceListQuestion is not allowed in scoped applications" if run in my scope.
var varown = new GlideRecord('sc_item_option_mtom');
varown.addQuery("request_item", 'SYS_ID HERE');
varown.addQuery("sc_item_option.item_option_new.type","NOT IN","12,20,24,19");
varown.orderBy("sc_item_option.order");
varown.query();
while (varown.next()){
var visible = varown.sc_item_option.item_option_new.visible_summary;
var question = GlideappAbstractChoiceListQuestion.getQuestion(varown.sc_item_option.item_option_new);
question.setValue(varown.sc_item_option.value);
if(question.getDisplayValue() != ""){
gs.print('Question:'+question.getLabel());
gs.print('Variable Name:'+question.name);
gs.print('Value:'+question.getDisplayValue() + '\n\n');
}
}
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-05-2018 11:40 AM
One more correction
var item = new GlideRecord('sc_req_item');
item.addQuery('number','RITM0010001');
item.query();
if (item.next())
{
gs.info(item.number);
var varown = new GlideRecord('sc_item_option_mtom');
varown.addQuery('request_item', item.sys_id+'');
//varown.addQuery("sc_item_option.item_option_new.type","NOT IN","12,20,24,19");
varown.orderBy("sc_item_option.order");
varown.query();
while (varown.next())
{
//gs.info(varown.sc_item_option.item_option_new);
var visible = varown.sc_item_option.item_option_new.visible_summary;
if(varown.sc_item_option.item_option_new.getDisplayValue() != "" && typeof item.variables[varown.sc_item_option.item_option_new.name]!='undefined')
{ gs.info('Question:'+varown.sc_item_option.item_option_new.getDisplayValue()+' : '+item.variables[varown.sc_item_option.item_option_new.name].getDisplayValue());
}
}
}
Please mark this response as correct or helpful if it assisted you with your question.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-31-2018 12:57 PM
Did you try global.GlideappAbstractChoiceListQuestion ?
Please mark this response as correct or helpful if it assisted you with your question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-31-2018 01:00 PM
The Error I get when prefixing it with global is "Evaluator: java.lang.SecurityException: Invalid object in scoped script: [JavaClass com.glideapp.questionset.AbstractChoiceListQuestion]"

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-31-2018 01:39 PM
Why not just try this?
var varown = new GlideRecord('sc_item_option_mtom'); varown.addQuery("request_item", 'SYS_ID HERE'); varown.addQuery("sc_item_option.item_option_new.type","NOT IN","12,20,24,19"); varown.orderBy("sc_item_option.order"); varown.query(); while (varown.next()){ var visible = varown.sc_item_option.item_option_new.visible_summary; if(varown.sc_item_option.item_option_new.getDisplayValue() != ""){ gs.print('Question:'+varown.sc_item_option.item_option_new.getDisplayValue()); } }
Please mark this response as correct or helpful if it assisted you with your question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-31-2018 02:16 PM
The "varown.sc_item_option.value" is the one that contains the Sys_ID, not the Question field.
"Value" is the name of the field on the table.