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

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.