Wait for first workflow to finish before starting second

Avatar

Avatar

troubleshooter3

Avatar

troubleshooter3

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)

Avatar

Avatar

Nupur_Jain

MVP

Avatar

Nupur_Jain

MVP

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)

Avatar

Avatar

Nikhil-Kumar

MVP

Avatar

Nikhil-Kumar

MVP

Nikhil-Kumar
MVP

24-08-2020

@troubleshooter3 
Customize the 1st workflow by adding a step at the end of the first workflow where it executes the second one. 

Avatar

Avatar

Arun_Patidar

MVP

Total Posts

3.1K

Likes

1.2K

Correct Reply

883

Avatar

Arun_Patidar

MVP

Total Posts

3.1K

Likes

1.2K

Correct Reply

883
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.

Avatar

Avatar

Vaibhavi

MVP

Avatar

Vaibhavi

MVP

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. 

Avatar

Avatar

Shashi_Mulugu

MVP

Avatar

Shashi_Mulugu

MVP

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