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

u_corporate_account is a field in the table record. I need this value to be taken from the records data.

venkatraman2
Tera Contributor

Hi guys,

Im also facing the same issue. Can't able to access the records of output of lookup Record action. Below is my code.

 

(function execute(inputs, outputs) {
var inputrecs = inputs.Records.records;
var id = inputrecs.site_id;
outputs.result = id;
})(inputs, outputs);

 

Below error got from execution:

Error: Cannot read property "site_id" from undefined,Detail: Cannot read property "site_id" from undefined.

Here site_id is column name of the records. At execution time there are 4 records are present in the inputrecs.

In each record i need to retrieve the site_id column value. And my input variable is Records and it is type of Records.[table] and my output variable is result which is a string.