Wait for first workflow to finish before starting second

troubleshooter3

24-08-2020

This is very straight forward situation where my first workflow sets up some values and second workflow uses those values to do something. My problem is 1st workflow takes time to set up those values and second workflow is unable to get the values 1st workflow sets up. How can I make sure to wait till 1st Workflow is completed before invoking second. Below is my code, It is doing the trick but I am not sure if thats the right way.

 

while (wfSession.getWorkflows(new String[] { "RUNNING" }).length != 0) {
LOG.info("Waiting to Finish");

}

 

In above solution I am getting count of workflow associated with current session with status Running. once its zero I exit the loop. My concern is what if workflow keeps in running state due to an error or any other thing.

 

 

Accepted Solutions (1)

Accepted Solutions (1)

Nupur_Jain

MVP

24-08-2020

HI @troubleshooter3 

 

you have two different workflows, why not start second workflow model when first workflow model finishes. for this, there is "Container Step" component which you can drop as first workflow's last step and configure which workflow you want to start next.

 

Screenshot from 2020-08-24 15-42-02.png

Screenshot from 2020-08-24 15-43-34.png

 

Refer https://docs.adobe.com/content/help/en/experience-manager-64/developing/extending-aem/extending-work... to understand container step.

 

Hope it helps!

Thanks!

Nupur

 

 

Answers (4)

Answers (4)

Arun_Patidar

MVP

24-08-2020

Why don't you run second workflow from first workflow after first workflow finish the processing.

You can run any workflow either via code or use container to include another workflow within a workflow.

Vaibhavi

MVP

24-08-2020

Hi @troubleshooter3 , 

Like you mentioned below code is one of the ways to get the status of running workflow. 

while (wfSession.getWorkflows(new String[] { "RUNNING" }).length != 0) {
LOG.info("Waiting to Finish");

}

But if we triggering another workflow based on first workflow outcome, we would have achieved this in a single workflow.

You can split your processing steps to compute both the logic where you can execute the dependent step once parent step is completed. 

Shashi_Mulugu

MVP

24-08-2020

@troubleshooter3 how are invoking these workflows? If workflow 1 is setting some value, you can configure a launcher or event listener for those node properties set or updated by workflow1 and trigger workflow 2