Wait for first workflow to finish before starting second | Community
Skip to main content
Level 3
August 24, 2020
Solved

Wait for first workflow to finish before starting second

  • August 24, 2020
  • 5 replies
  • 2790 views

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.

 

 

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by Nupur_Jain

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.

 

 

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

 

Hope it helps!

Thanks!

Nupur

 

 

5 replies

Shashi_Mulugu
Community Advisor
Community Advisor
August 24, 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

Vaibhavi_J
Level 7
August 24, 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. 

arunpatidar
Community Advisor
Community Advisor
August 24, 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.

Arun Patidar
Nikhil-Kumar
Community Advisor
Community Advisor
August 24, 2020

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

Nupur_Jain
Adobe Employee
Nupur_JainAdobe EmployeeAccepted solution
Adobe Employee
August 24, 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.

 

 

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

 

Hope it helps!

Thanks!

Nupur

 

 

Level 3
August 24, 2020
Thanks I appreciate your answer, I am not sure if that will work for me, since I am triggering the OOTB workflows from java code and I donot have control to those workflows.