- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-20-2022 11:40 PM
HI Team,
I have a record producer. Inside record producer i have created a multi row variable set name calle d as "item_list". Inside multi row variable set i had 6 variables.
As soon as i submit the record producer from portal, A record is creating to that table but fields are showing empty.
So how can i map those MRVS variable content inside native view table fields?
\
I had created a before Business rule to map MRVS to table fields but not working
the MRVS log is showing error like below
(function executeRule(current, previous /*null when async*/) {
var value = current.variables.items_list; // MRVS variable name here
gs.log('Inside :', value);
var parser = JSON.parse(value);
gs.log(parser);
var addtable = new GlideRecord('x_pl4_move4u_item');
for(var i=0;i<parser.length;i++){
addtable.name = parser[i].name;
addtable.move_request = parser[i].move_request;
addtable.is_fragile = parser[i].is_fragile;
addtable.category = parser[i].category;
addtable.short_description = parser[i].short_description;
addtable.volume = parser[i].volume;
addtable.insert();
}
})(current, previous);
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-21-2022 03:24 AM
are you using correct variable name within mrvs here?
var parserList = JSON.parse(producer.items_list);
current.name = parserList[0].name;
current.move_request = parserList[0].move_request;
current.is_fragile = parserList[0].is_fragile;
current.category = parserList[0].category;
current.short_description = parserList[0].short_description;
current.volume = parserList[0].volume;
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-20-2022 11:46 PM
Try this in Record producer script, instead of using a before insert BR.
Also try to log "parser[i].name" and check if this is returning correct value.
Raghav
MVP 2023
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-20-2022 11:57 PM
where can i find record producer script?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-21-2022 12:31 AM
Record producer script in present in record producer section "what it will contain".
also make below change to your script:
addtable.name = parser[i].name.toString();
Raghav
MVP 2023
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-21-2022 02:41 AM
Hi Raghav,
Please find my below record producer script. Actually my record producer is in "x_pl4_move4u_item" table and i am gliding the same table "x_pl4_move4u_item" to map the MRVS variables in to the same table "x_pl4_move4u_item".
As per your request i am doing this but the problems are
creating duplicate records and all fields are not mapping any suggestions as per my below script?
/** This script is executed before the Record is generated
* `current`- GlideRecord produced by Record Producer
* Don't use `current.update()` or `current.insert()` as the record is generated by Record Producer
* Don't use `current.setValue('sys_class_name', 'xxx')` as this will trigger reparent flow and can cause data loss
* Avoid `current.setAbortAction()` and generate a separate record
* Use `producer.var1` to access variables
*/
var parserList = JSON.parse(producer.items_list);
gs.info('move information MRVS---'+parserList);
var addtable = new GlideRecord('x_pl4_move4u_item');
for(var i=0;i<parserList.length;i++){
addtable.name = parserList[i].name;
addtable.move_request = parserList[i].move_request;
addtable.is_fragile = parserList[i].is_fragile;
addtable.category = parserList[i].category;
addtable.short_description = parserList[i].short_description;
addtable.volume = parserList[i].volume;
addtable.insert();
}