- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-22-2022 10:12 PM
Hi! Can someone guide me on this. I know that it seems to be correct but i want to know if theres another way of inserting data records to another table. Here below what i've done in my Business Rule (BR).
-----------------------------------------------------------------------------------------------
(function executeRule(current, previous /*null when async*/) {
// Insert a new gcash wallet
var Arr = [current.variables.wallet_name,current.variables.project_name];
var gWRecord = new GlideRecord('x_582528_secure_ap_secure_acl_matrix');
gWRecord.initialize();
// gWRecord.wallet_name = current.variables.wallet_name;
for(var ctr = 0; ctr < Arr.length; ctr++){
gWRecord.wallet_name = Arr[ctr];
}
gWRecord.insert();
})(current, previous);
----------------------------------------------------------------------------
The scenario is that i got two tables which created from custom application. What i need to do is from my main table is i want to insert the populated field wallet_name to my other table 'x_582528_secure_ap_secure_acl_matrix'. But the problem is i got many fields to insert in the 'x_582528_secure_ap_secure_acl_matrix' table and using loop may cause problem in the future. Is there any possible solutions were i can insert the populated values from my main table to my other table?
Thank you in advance for helping.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-22-2022 10:26 PM
Hi,
you are on right track for optimizing the script
but ensure you are also using a corresponding array containing field names of the table where you want to insert so that the data is filled correctly
like this
(function executeRule(current, previous /*null when async*/) {
// Insert a new gcash wallet
var Arr = [current.variables.wallet_name,current.variables.project_name];
var targetTableFields = ['waller_name','project_name'];
var gWRecord = new GlideRecord('x_582528_secure_ap_secure_acl_matrix');
gWRecord.initialize();
for(var ctr = 0; ctr < Arr.length; ctr++){
gWRecord[targetTableFields[ctr]] = Arr[ctr];
}
gWRecord.insert();
})(current, previous);
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-22-2022 10:26 PM
Hi,
you are on right track for optimizing the script
but ensure you are also using a corresponding array containing field names of the table where you want to insert so that the data is filled correctly
like this
(function executeRule(current, previous /*null when async*/) {
// Insert a new gcash wallet
var Arr = [current.variables.wallet_name,current.variables.project_name];
var targetTableFields = ['waller_name','project_name'];
var gWRecord = new GlideRecord('x_582528_secure_ap_secure_acl_matrix');
gWRecord.initialize();
for(var ctr = 0; ctr < Arr.length; ctr++){
gWRecord[targetTableFields[ctr]] = Arr[ctr];
}
gWRecord.insert();
})(current, previous);
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-22-2022 10:50 PM
Is there will be an issue on looping if i got let say 50 fields to be inserted? and the var Arr is currently in my variable set were my fields at. i tried using the var targetTableFields = ['waller_name','project_name']; but it doesnt work from my end.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-22-2022 10:54 PM
Hi,
you should set the array elements corresponding to variable
Example 1st element of field array is variable wallet_name so 1st element of the other array should be the field where you want wallet name to be populated
try this
(function executeRule(current, previous /*null when async*/) {
// Insert a new gcash wallet
var Arr = ['wallet_name','project_name']; // give only variable names
var targetTableFields = ['waller_name','project_name'];
var gWRecord = new GlideRecord('x_582528_secure_ap_secure_acl_matrix');
gWRecord.initialize();
for(var ctr = 0; ctr < Arr.length; ctr++){
gWRecord[targetTableFields[ctr]] = current.variables[Arr[ctr]];
}
gWRecord.insert();
})(current, previous);
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-22-2022 11:09 PM
Ohh i see thanks for this.