- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-31-2019 11:04 AM
Can someone please help me with the logic for a script that will loop through the RITM table and check the records for any that exist for example with a short description variable of "insert short description here" and if it one exists, the script should do nothing, but if one does not exist it should create 1 request?
I don't need the entire script from you. I already know how to script ordering a catalog item and I already know how to script a GlideRecord query. I just can't get the loop down correctly so that it doesn't order an item for every RITM it finds that does not have the particular string. I just need it to create 1 request if there is no existing RITM with the string value after it loops through them all.
Thanks!
Solved! Go to Solution.
- Labels:
-
Scripting and Coding

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-31-2019 11:28 AM
You can but it will find other RITMS that have that same variable name. For instance:
var ritm = new GlideRecord('sc_req_item');
ritm.addEncodedQuery("variable_name=value"); //this works but will check against ANY RITMS have have this variable name
ritm.query();

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-31-2019 11:08 AM
Try the following script and insert your modifications as necessary.
var ritm = new GlideRecord('sc_req_item');
ritm.addEncodedQuery("short_description=insert short desc");
// ritm.addEncodedQuery("short_descriptionCONTAINSinsert short desc");
// you can also use this if you want records that CONTAIN it
ritm.query();
if (ritm.getRowCount() == 0) {
var newRitm = new GlideRecord('sc_req_item');
newRitm.initialize();
// newRitm.field = value; set your values
newRitm.insert(); //create ritm
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-31-2019 11:11 AM
Awesome thanks! I will try this. I never know about the getRowCount() method.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-31-2019 11:12 AM
If you're wanting to order an item in the event that the ritm doesn't exist you'd have to use the cart api.
var ritm = new GlideRecord('sc_req_item');
ritm.addEncodedQuery("short_description=insert short desc");
// ritm.addEncodedQuery("short_descriptionCONTAINSinsert short desc");
// you can also use this if you want records that CONTAIN it
ritm.query();
if (ritm.getRowCount() == 0) {
// order item
var cartId = GlideGuid.generate(null);
var cart = new Cart(cartId);
var item = cart.addItem('item sys_id here');
var rc = cart.placeOrder();
}
Please mark this as correct/helpful if it resolved your issue!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-31-2019 11:17 AM
I'm aware of that part, thank you. It was just the logic for creating 1 request as opposed to many as it iterated through all the records. One other thing I should've mentioned though. This is a catalog item variable and not a variable that lives on the RITM table directly. Is it possible to add cat item variables to the query conditions of a Glide query? I don't think it is and so this would have to be constructed differently.