Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Variable length arrays in Flow Designer Outputs

BobPaterno
Giga Contributor

I have a script that generates an array of requests.  Each time the script runs, there may be a different number of requests (meaning the length of the array varies).

In Flow Designer, I cannot figure out how to account for variable length arrays since defining an output as Array:String asks for child elements.

 

My output object from the script is as follows,

output = {

  count: <int>,

  earliestDate: <date>,

  scRequestList: [<array of strings>]

 

In Flow Designer, how do I define the output string array if the length of the array can vary?  I've attached a JPEG of the current state of my script's output variables setup.

And here if you don't want to open attachment.

find_real_file.png

1 REPLY 1

Andrew Albury-D
Mega Guru

Hey Bob,

What you have set up there looks right. When you define an "Array.<something>" as a variable in Flow Designer it should account for any number of strings, passed in as an array. I have used this myself as an input to an action and it's worked well.

Without actually seeing your code, I feel you may have a syntax issue. When you set up Output Variables in a Script Step, you need to pass them out as "outputs.variableName" which in your case, is "outputs.request". 

Here's an example:

var reqOut = {};
reqOut.earliestDate = new GlideDateTime();
reqOut.count = 3;
reqOut.scRequestList = [];
reqOut.scRequestList.push("Hello 1");
reqOut.scRequestList.push("Hello 2");
reqOut.scRequestList.push("Hello 3");

outputs.request = reqOut;

 

Then, once you have that data-dot in your flow, you can drop it into a "For Each" flow logic step, and access each string in the array. 

 

I hope this helps,

Andrew