How to Add Variables to Old RITMs
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ā10-04-2022 03:07 PM
I have a variable recently added to my catalog item. I want to now add that variable to old RITMs so that I can make use of it in reports on all records of this requested item.
Variable is defined as:
- name
- Question
- sys_id
- order
- part of a variable set
I want to add the variable to old RITMs so that it shows up in the correct variable set at the correct order (for correct display on form).
It may be a 2 step process:
- add variable to existing RITMs (if missing)
- set the value of the newly added variable per RITM (table lookup using another variable value)

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ā10-04-2022 05:25 PM - edited ā10-05-2022 08:48 AM
You'll want a background script that you can run and update the two below tables:
sc_item_option - the variable data
sc_item_option_mtom - the relationship between the variable data and the request item
//Populate historical variables
//variable ownership table sc_item_option_mtom
//variable data table sc_item_option
var stringQuery = ""; //Replace with your own encoded query to search for just the request items you want to update
var ritmGlide = new GlideRecord('sc_req_item');
ritmGlide.addEncodedQuery(stringQuery);
ritmGlide.query();
while(ritmGlide.next()){
//create a variable
var itemOptionGlide = new GlideRecord('sc_item_option');
itemOptionGlide.initialize();
itemOptionGlide.value = 'value_you_need_to_set'; //you could use the ritm you are currently gliding to, like ritmGlide.variables.another_variable_name
itemOptionGlide.item_option_new = 'b04922da1b5e59106bd037b5464bcb0a'; //SysID of the question from the cat item
itemOptionGlide.order = 5; //Or whatever order you need it to be, to display correctly
itemOptionGlide.insert();
//Create variable ownership
var mtomGlide = new GlideRecord('sc_item_option_mtom');
mtomGlide.initialize();
mtomGlide.request_item = ritmGlide.sys_id; //Current RITM we are making variables for
mtomGlide.sc_item_option = itemOptionGlide.sys_id; //sys id of the variable we made before
mtomGlide.insert();
}
From messing around in the past, I think you don't even need to have the variable in the catalog item (obviously you do because it's a new variable you've added to the item), but you can just insert a value in any variable and relate it to the request item.
But you are correct, basically adding a new variable to a catalog item doesn't create these records in these two tables for historical requests from that cat item, so you'd need to do it via script.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ā10-28-2022 03:13 AM
@kshaw Just to let you know I ended up using this script for it's actual purpose today, rather than just in a testing scenario and worked well for me, so hopefully if you are still in need of it, it might be some use!.
Rhodri