Hi Arunchalam,
You have some problems in your logic because of the fact you are using a multi-threaded option (Parallel AND or Multi-choice OR) as one of your splits. XOR is single-threaded. This means that no matter how many splits and joins there are you can only take one path through the process, you can never go down more than one path. Your multi-threaded options can go down one or more of the paths you create.
In the case of Parallel AND all paths will be followed and completed (not necessarily at the same time).
In the case of Multiple Choice (OR) one or more paths must be completed. You have three choices of merge type. Wait and Merge has the same end result as Rendevous AND because all paths must be completed before you will be allowed to move to the next step. First in Line will allow you to move to the next step as long as at least one path has completed. Other paths may or may not be completed later. But, they will not affect the overall process flow. You can think of the Mult-Thread option as having no synchronization. The next step starts when the first incoming thread completes. Other threads will create a new copy of the next step when/if they complete.
XORS because of the fact they are single-threaded are very forgiving. You can take a step from one branch and point it to a step in a different branch of the process and have everything work without a problem. Branches from the same split point can end in different merge points. You can do almost anything you want as long as you are only using XORs and Merge XORs. This is what most people do most of the time. XOR processes will sometimes validate when you do not have the same number of splits and joins. However this may be problematic later.
Multi-threaded processes are a whole different story.
- All branches coming out of a single split must end at the SAME merge point.
- Steps must point to another step in the same branch. They cannot point to a step in a different branch.
- Nested splits must join before the parent split can join. Even nested XORs should follow these rules.
- You must have the same number of splits and joins.
I have reconfigured your process to follow these rules. Notice that I had to duplicate some of your steps and create dummy steps that do nothing but act as a merge point.
Also, like Roland, I noticed that your Group 3 Approval step does not have an option to approve or reject in either thread.
If you are still having problems with your process not going down the correct branch, it probably has something to do with your post condition(s).
I hope you find this information helpful.
Jeanne