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.
Solved! Go to Solution.
Views
Replies
Total Likes
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-work... to understand container step.
Hope it helps!
Thanks!
Nupur
@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
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.
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.
@troubleshooter3
Customize the 1st workflow by adding a step at the end of the first workflow where it executes the second one.
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-work... to understand container step.
Hope it helps!
Thanks!
Nupur
Views
Replies
Total Likes
if thats the case, I think you should register Event listener for the modification of node. Once the event gets triggered, you can call second workflow on the onEvent method of the java event class.
Refer https://helpx.adobe.com/experience-manager/using/aem64_event_listener.html to read more about AEM event capturing in java.
Thanks,
Nupur
Views
Replies
Total Likes
Views
Likes
Replies