Create Record in custom table from a workflow

sanvi
Tera Expert

Hi All,

I have a requirement to take values from the task variables and insert records in a custom table.

  • i.e there is a variable in the catalog task table 'transfer number' which will have comma separated values 1234567890,34567890,..
  • once the task is closed need to add a run script in the workflow to create records in the custom table for each value added in the above variable. If the 'Transfer number' contains 2 values then 2 records need to be created in custom table.
  • Have configured the below script but i am stuck and not able to proceed can anyone suggest the solution.
  • var val = [];
    var task = new GlideRecord('sc_task');
    task.addQuery('request_item', current.sys_id);
    task.query();
    if(task.next()){
    var trnVal = task.variables.trn;
    val.push(trnVal);
    gs.log("value of the TRN is " + trnVal);
    }
1 ACCEPTED SOLUTION

Hi,

it means you are using incorrect variable name

use this directly; no need to query RITM table

var trnValArr = current.variables.trn.toString().split(',');

gs.info("My values ->" + trnValArr); // what came here

for(var i in trnValArr){
	gs.info("inside of for loop");
	var gr = new GlideRecord('u_transfer_order');
	gr.initialize();
	gr.u_trn = trnValArr[i];
	gr.insert();
}

Regards
Ankur

Regards,
Ankur
✨ Certified Technical Architect  ||  ✨ 9x ServiceNow MVP  ||  ✨ ServiceNow Community Leader

View solution in original post

15 REPLIES 15

PriyankaC
Kilo Expert

@sanvi , I had a similar requirement. I typically try to find a solution without using script as much as possible. If you have a similar goal, then you can easily achieve this no scripting using a Flow designer to create records in any table.

You will however need a custom action to split your comma separated variable to a list that you can loop through. See here for that Custom Action: https://community.servicenow.com/community?id=community_question&sys_id=36973929db80ec10f21f5583ca961919 

Hope that helps,

Priyanka