Get a first look at what's coming. The Developer Passport Australia Release Preview kicks off March 12. Dive in! 

Wait For Condition in Workflow not working for state change as cancelled

PoojashreeP
Kilo Sage

Hi Team,

 

We have a workflow on RITM table.

after a catalog task creation using catalog task activity, I am setting scratchpad object with this task sysID.

in next step I am using wait for condition , using scratchpad value, quering sc_task table and I am checking for state change to cancelled backend value is -10. 

workflow has reached this wait for condition but even after updating the state of task to cancelled still workflow is stuck at wait for condition activity only.

If I check for any other state like closed (backend value is 3). its working fine.

 

Any suggestions team?

bit urgent.

 

Best Regards,

Pooja

 

1 ACCEPTED SOLUTION

The workflow is running on the RITM record, so the Wait for scripts only re-runs every time there is an update to the RITM record.  Closing a Catalog task usually causes a RITM record update.  If it does not in this case, you can try to add a Business Rule to the sc_task table that forces a RITM update when a Catalog Task state changes to Cancelled. 

View solution in original post

14 REPLIES 14

Medi C
Giga Sage

@PoojashreeP 

Please share screenshots from your workflow. Wait for condition. and scripts where you are setting scratchpad.


Thanks & Best regards,
Medi

Hi @Medi C ,
this is the script I m using in wait for condition I did try with backend values instead getDisplayValue, but not working

var taskGr = new GlideRecord('sc_task');
taskGr.get(workflow.scratchpad.sys_id);
status = taskGr.getDisplayValue("state");
gs.info("pooja state "+taskGr.state);
if(status.equals("Cancelled")) {
    gs.info("pooja state inside if"+taskGr.state);
    answer = true;
}

Hello @PoojashreeP,

 

Is your "status" variable declared? Did you log "workflow.scratchpad.sys_id" to see if it is holding the required value?

Please try:

var taskGr = new GlideRecord('sc_task');
taskGr.get(workflow.scratchpad.sys_id);
var status = taskGr.getValue("state");
gs.info("pooja state " + taskGr.state);
if (status == "YOUR_VALUE") { //Replaced with Cancelled value 
    gs.info("pooja state inside if" + taskGr.state);
    answer = true;
}

 


Thanks & Best regards,
Medi

Brad Bowman
Mega Patron

What logs are you seeing with this script?

var taskGr = new GlideRecord('sc_task');
if (taskGr.get(workflow.scratchpad.sys_id)) {
    status = taskGr.getValue("state");
    gs.info("pooja status " + status);
    if (status == -10) {
        gs.info("pooja state inside if " + status);
        answer = true;
    } else {
        gs.info("pooja state else " + status);
    }
}