- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-11-2024 08:19 AM - edited 02-11-2024 09:24 AM
Hi Community,
While using workflow, I need to populate values in a newly created record using catalog variables.
Currently, this script results in items being two items created (but not the three expected) with correct state,
but asset_tag & serial_number are empty.
There does not seem to be any related error messages.
Any ideas?
var grHardware = new GlideRecord('alm_hardware');
var map = {
"asset_tag":"first_asset_tag",
"serial_number": "first_serial_number",
"asset_tag":"second_asset_tag",
"serial_number": "second_serial_number",
"asset_tag":"third_asset_tag",
"serial_number": "third_serial_number",
};
gs.info(map);
for(var item in map){
grHardware.setValue(item,current.variables[map[item]]);
grHardware.initialize();
grHardware.asset_tag = current.variables.field;
grHardware serial_number = current.variables.field;
grHardware.install_status = '6';
grHardware.insert();
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-11-2024 10:59 AM
Each
grHardware.initialize();
call clears every value that has been set up to that point for grHardware.
So in effect all that is ever set remains
grHardware.asset_tag = current.variables.field;
grHardware serial_number = current.variables.field;
grHardware.install_status = '6';
grHardware.insert();
Perhaps what you mean is this:
var maps = [
{
'asset_tag': 'first_asset_tag',
'serial_number': 'first_serial_number',
},
{
'asset_tag': 'second_asset_tag',
'serial_number': 'second_serial_number',
},
{
'asset_tag': 'third_asset_tag',
'serial_number': 'third_serial_number',
},
];
gs.info(JSON.stringify(maps, null, '\t'));
var grHardware = new GlideRecord('alm_hardware');
for (var i = 0; i < maps.length; i++) {
var map = maps[i];
gs.debug('Setting up record ' + (i + 1));
grHardware.initialize();
for (var field in map) {
gs.debug('Setting field ' + field + ' to value of variable ' + map[field] + ' (' + current.variables[map[field]] + ')');
grHardware.setValue(field, current.variables[map[field]]);
}
grHardware.install_status = '6';
gs.debug('Creating record ' + (i + 1));
grHardware.insert();
}
?
Assuming that there are 6 variables named first_asset_tag, first_serial_number, second_asset_tag, second_serial_number, third_asset_tag and third_serial_number.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-11-2024 10:59 AM
Each
grHardware.initialize();
call clears every value that has been set up to that point for grHardware.
So in effect all that is ever set remains
grHardware.asset_tag = current.variables.field;
grHardware serial_number = current.variables.field;
grHardware.install_status = '6';
grHardware.insert();
Perhaps what you mean is this:
var maps = [
{
'asset_tag': 'first_asset_tag',
'serial_number': 'first_serial_number',
},
{
'asset_tag': 'second_asset_tag',
'serial_number': 'second_serial_number',
},
{
'asset_tag': 'third_asset_tag',
'serial_number': 'third_serial_number',
},
];
gs.info(JSON.stringify(maps, null, '\t'));
var grHardware = new GlideRecord('alm_hardware');
for (var i = 0; i < maps.length; i++) {
var map = maps[i];
gs.debug('Setting up record ' + (i + 1));
grHardware.initialize();
for (var field in map) {
gs.debug('Setting field ' + field + ' to value of variable ' + map[field] + ' (' + current.variables[map[field]] + ')');
grHardware.setValue(field, current.variables[map[field]]);
}
grHardware.install_status = '6';
gs.debug('Creating record ' + (i + 1));
grHardware.insert();
}
?
Assuming that there are 6 variables named first_asset_tag, first_serial_number, second_asset_tag, second_serial_number, third_asset_tag and third_serial_number.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-11-2024 12:21 PM
Thanks for the guidance. I had my wires crossed in regards to JSON notation. Now, this all makes sense, thanks again.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-11-2024 12:28 PM
You're most welcome 🙂