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

Sai Kumar B
Mega Sage
Mega Sage

@sanvi 

Try the below

var val = [];
val.push(current.variables.trn);
gs.log(val.toString());

Thanks for the solution! it worked just fine for me as well.!! NJMCDirect

Ankur Bawiskar
Tera Patron
Tera Patron

@sanvi 

you are adding the logic to create record in workflow of RITM or in after update BR on sc_task

Regards
Ankur

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

@sanvi 

something like this if you are using workflow run script

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){
		var gr = new GlideRecord('custom table');
		gr.initialize();

		// set your field you want

		gr.field = trnValArr[i];
		gr.insert();
	}

}

Regards
Ankur

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