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

Hi Ankur,

Thank you. I will try the above code and update you.

Hi Ankur,

I tried the above code its not working.

workflow is on which table?

can you share latest script?

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

Hi Ankur,

Workflow is on RITM table ('sc_req_item)

var val = [];
var task = new GlideRecord('sc_task');
task.addQuery('request_item', current.sys_id);
task.query();
if(task.next()){
var trnValArr = task.variables.trn.split(',');

for(var i in trnValArr){
gs.log("inside of for loop");
var gr = new GlideRecord('u_transfer_order');
gr.initialize();

gr.u_trn = trnValArr[i];

gr.insert();
}

Hi,

so what is not working?

is it not iterating the for loop?

var val = [];
var task = new GlideRecord('sc_task');
task.addQuery('request_item', current.sys_id);
task.query();
if(task.next()){
    var trnValArr = task.variables.trn.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