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.

Flow designer script on wait for condition not working

cgedney
Giga Guru

I have a flow in which I am creating a REQ/RITM/SCTASK and then trying to wait for all of the tasks on the RITM to complete. Here is the wait for condition I am trying to use:

find_real_file.png

and the script:

var tasks=new GlideRecord('sc_task');
tasks.addQuery('request_item', fd_data._2__create_record.record.sys_id);
tasks.addQuery('state','<',3);
tasks.addActiveQuery();
tasks.query();

if (tasks.next()) {
answer = false;
}
else {
answer = true;
}

 

For whatever reason, it falls through every time. I even tried switching answers to see if that would fix it. It falls through no matter what. 

Here is the flow:

find_real_file.png

Am I missing something? Is there supposed to be another step somewhere?

Thank you,

Charles 

1 ACCEPTED SOLUTION

Balaji Jagannat
Kilo Guru

Hi, 

I see that your "Wait for Condition" is on the Requested Item table, but you are not returning any real filter condition for that table through the script. 

In your step#3, you are creating some task, is that the task associated with RITM or something else? I'm trying to see whether you can set your "Wait for Condition" on the sc_task table itself an avoid the need to script?

 

View solution in original post

16 REPLIES 16

Hi,

try this, 

Ashutosh Munot1
Kilo Patron
Kilo Patron

HI,

tasks.addQuery('request_item', fd_data._2__create_record.record.sys_id);

 

Is this true?

 

What is _2__create_record?

 

Also try state=3 instead of <

 

Thanks,
Ashutosh

Access Flow/Action data using the fd_data object. The _2__ means step 2.

I only want it to exit the wait for when the state is completed. Therefore, I need it to be < 3.

 

HI,

Yes so you can try state = 3 and test.

Also check the log 

gs.info('ID : '+fd_data._2__create_record.record.sys_id);

var tasks=new GlideRecord('sc_task');
tasks.addQuery('request_item', fd_data._2__create_record.record.sys_id);
tasks.addQuery('state',3);
tasks.addActiveQuery();
tasks.query();

if (tasks.next()) {
answer = false;
}
else {
answer = true;
}

 


Thanks,
Ashutosh

Balaji Jagannat
Kilo Guru

Hi, 

I see that your "Wait for Condition" is on the Requested Item table, but you are not returning any real filter condition for that table through the script. 

In your step#3, you are creating some task, is that the task associated with RITM or something else? I'm trying to see whether you can set your "Wait for Condition" on the sc_task table itself an avoid the need to script?