- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎09-07-2022 02:36 AM
Hello All,
I have a requirement where after an RITM is inserted, we need to Remove all the rows from mrvs and add a new row based on the new values.
I'm able to remove/clear mrvs rows, but not able to update the values within mrvs.
Please help
Below is my business rule:
(function executeRule(current, previous /*null when async*/ ) {
var varrowsInt = current.variables.assets_assigned_to_you.getRowCount();
var mrvs = JSON.parse(current.variables.assets_assigned_to_you);
for (var k = 0; k < varrowsInt; k++) {
var grvarvalue = new GlideRecord('sc_req_item');
grvarvalue.addQuery('request', current.request);
grvarvalue.addQuery('description=NULL');
grvarvalue.query();
if (grvarvalue.next()) {
grvarvalue.description = "For Asset Serial number : " + current.variables.assets_assigned_to_you.getRow(k).u_em_serial_number_assigned;
grvarvalue.variables.assets_assigned_to_you = '';
grvarvalue.variables.assets_assigned_to_you.addRow();
var mrvsJson = {
"u_em_serial_number_assigned": current.variables.assets_assigned_to_you.getRow(k).u_em_serial_number_assigned,
"u_em_asset_tag_assigned": current.variables.assets_assigned_to_you.getRow(k).u_em_asset_tag_assigned,
};
grvarvalue.assets_assigned_to_you = JSON.stringify(mrvsJson);
//grvarvalue.setWorkflow(false);
grvarvalue.update();
}
}
})(current, previous);
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎09-07-2022 03:46 AM
Hi
Almost you are correct. Update like below:
(function executeRule(current, previous /*null when async*/ ) {
var varrowsInt = current.variables.assets_assigned_to_you.getRowCount();
var mrvs = JSON.parse(current.variables.assets_assigned_to_you);
for (var k = 0; k < varrowsInt; k++) {
var grvarvalue = new GlideRecord('sc_req_item');
grvarvalue.addQuery('request', current.request);
grvarvalue.addQuery('description=NULL');
grvarvalue.query();
if (grvarvalue.next()) {
grvarvalue.description = "For Asset Serial number : " + current.variables.assets_assigned_to_you.getRow(k).u_em_serial_number_assigned;
grvarvalue.variables.assets_assigned_to_you = '';
//grvarvalue.variables.assets_assigned_to_you.addRow();
var mrvsJson = [{ //changed here...
"u_em_serial_number_assigned": current.variables.assets_assigned_to_you.getRow(k).u_em_serial_number_assigned,
"u_em_asset_tag_assigned": current.variables.assets_assigned_to_you.getRow(k).u_em_asset_tag_assigned,
}]; //changed here...
grvarvalue.variables.assets_assigned_to_you = JSON.stringify(mrvsJson); //updated here
//grvarvalue.setWorkflow(false);
grvarvalue.update();
}
}
})(current, previous);
AS MRVS is stored in array JSON we have use like array format.
Thanks,
Murthy
Murthy
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎09-07-2022 03:46 AM
Hi
Almost you are correct. Update like below:
(function executeRule(current, previous /*null when async*/ ) {
var varrowsInt = current.variables.assets_assigned_to_you.getRowCount();
var mrvs = JSON.parse(current.variables.assets_assigned_to_you);
for (var k = 0; k < varrowsInt; k++) {
var grvarvalue = new GlideRecord('sc_req_item');
grvarvalue.addQuery('request', current.request);
grvarvalue.addQuery('description=NULL');
grvarvalue.query();
if (grvarvalue.next()) {
grvarvalue.description = "For Asset Serial number : " + current.variables.assets_assigned_to_you.getRow(k).u_em_serial_number_assigned;
grvarvalue.variables.assets_assigned_to_you = '';
//grvarvalue.variables.assets_assigned_to_you.addRow();
var mrvsJson = [{ //changed here...
"u_em_serial_number_assigned": current.variables.assets_assigned_to_you.getRow(k).u_em_serial_number_assigned,
"u_em_asset_tag_assigned": current.variables.assets_assigned_to_you.getRow(k).u_em_asset_tag_assigned,
}]; //changed here...
grvarvalue.variables.assets_assigned_to_you = JSON.stringify(mrvsJson); //updated here
//grvarvalue.setWorkflow(false);
grvarvalue.update();
}
}
})(current, previous);
AS MRVS is stored in array JSON we have use like array format.
Thanks,
Murthy
Murthy
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎09-07-2022 04:25 AM
Thanks Murthy Chintalapudi for your reply.
It worked well!!!