Why do workflow Join activities contain an Incomplete path?

GoBucks
Mega Sage

I was wondering when a workflow Join activity's Incomplete path would ever be taken?   (This activity has two output paths: Complete and Incomplete)

I have a Join that joins up the paths of 2 parallel tasks that occur after a corresponding Branch activity.   Regardless of what closed state I set the 2 tasks to (Closed Complete or Closed Incomplete) the Join always continues down its Complete path.   Never do I see when the 'Incomplete' path would be taken.   In what scenarios is the Incomplete path utilized?

1 ACCEPTED SOLUTION

acretion
Tera Expert

You can make it go down the incomplete path from a join, but in practice I've never needed to do it.   The trick is to have some sort of fork before the join that can skip it.   I've attached a screenshot of a test workflow I just made to show you what it looks like. The incomplete path executes if the join gets skipped from what I understand, rather than any sort of task state value.


View solution in original post

11 REPLIES 11

acretion
Tera Expert

You can make it go down the incomplete path from a join, but in practice I've never needed to do it.   The trick is to have some sort of fork before the join that can skip it.   I've attached a screenshot of a test workflow I just made to show you what it looks like. The incomplete path executes if the join gets skipped from what I understand, rather than any sort of task state value.


Correct. The Join activity will take the Incomplete path when all incoming transitions that can complete, have completed. Join is smart enough to figure out when there are some incoming transitions that can never complete, like in Christopher's example.


Thank you for this clarification, I wasn't sure what the incomplete was for until I needed   it for a scenario.


Uncle Rob
Kilo Patron

To get value out of the incomplete stream of a Join activity, you need a pretty advanced multi activity Workflow with a "decision tree" in the middle.   The "Incomplete" on a join is used to progress the workflow past the join if any of the upstream activities from the join have a connection that can proceed past the join.  



So lets say you have this.
Always do Task A
Sometimes do Task B


If A & B exist, they must be completed together before proceeding.



That can get you into a situation where you need a join that will only be required in circumstances where Task B actually exists.   Otherwise the if statement before B bypasses the join.   Join NEEDS the incomplete node at that point.



Funny thing is, for the few times you'll need the Incomplete on the Join activity, it will almost always go to the same downstream activity as the Complete.



When in doubt: Complete + Incomplete move to next activity.


Hi rfedoruk,



In above example if I say I want always do task A, in Join activity I have added option as always, what will be the condition like for complete we have 'activity.result == 'complete''.