How to fetch specific field values from the output of Lookup Record(s) action through Scripts?

Sujitha5
Kilo Contributor

Hi 

I have created a custom action using the Flow Designer on my instance. I have used the Look Up Record(s) action to retrieve the list of records from the conditions that i have given. On next step i need those records from the 1st step to be ingested into 2nd step which is a Script Step.

For. eg I have 3 records as output from the Look up Records action and iterating the 3 records with a loop condition. Here I cannot fetch the specific fields from the output of the 1st record. The output records has data with integer, string and duration data type. u_corporate_account is the field that is present in the output.

(function execute(inputs, outputs) {
var inputArray = inputs.lookupRecords;                                         -------> Ingesting input records from the Lookup action
var corpName= inputs.currentAlertCorpName;
var resultant = [];
outputs.debugstr="go-";
for (var value in inputArray){
var corporate_account = value.u_corporate_account;                 
outputs.debugstr+="corp_account is "+corporate_account+" \n";                   -------> here received "Undefined" as output
if(corpName.startsWith(corporate_account)){
resultant.push(inputArray[value]);
}
}
})(inputs, outputs);

This is a piece of code that i used to debug. Can anyone help me how to fetch fields from the output records of the Look up Records step through the script.

1 ACCEPTED SOLUTION

Hi,

try this

you can iterate over using .next()

(function execute(inputs, outputs) {
var inputArray = inputs.lookupRecords.records;                               
var corpName= inputs.currentAlertCorpName;
var resultant = [];
outputs.debugstr="go-";
while(inputArray.next()){
var corporate_account = inputArray.u_corporate_account;                 
outputs.debugstr+="corp_account is "+corporate_account+" \n";      
if(corpName.startsWith(corporate_account)){
resultant.push(inputArray);
}
}
})(inputs, outputs);

Regards
Ankur

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

View solution in original post

16 REPLIES 16

Ankur Bawiskar
Tera Patron
Tera Patron

Hi,

can you try printing this in logs and check what came

var inputArray = inputs.lookupRecords;                                  

gs.info(inputArray);

gs.info(JSON.stringify(inputArray));

Regards
Ankur

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

This is what i found on logs

find_real_file.png

Hi,

try this

you can iterate over using .next()

(function execute(inputs, outputs) {
var inputArray = inputs.lookupRecords.records;                               
var corpName= inputs.currentAlertCorpName;
var resultant = [];
outputs.debugstr="go-";
while(inputArray.next()){
var corporate_account = inputArray.u_corporate_account;                 
outputs.debugstr+="corp_account is "+corporate_account+" \n";      
if(corpName.startsWith(corporate_account)){
resultant.push(inputArray);
}
}
})(inputs, outputs);

Regards
Ankur

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

No I don't see any values for the field corporate_account as well as i don't see undefined as well.