We have requirement to have workflow item to be approved by two departments in an organization before it reaches to final approval. Is it possible to implement the parallel workflows, if yes then how it can be implemented in SDL Tridion 2013?
-
Fascinating. What would happen for disagreements or changes where Department A says "yes" and Department B has a change?– Alvin ReyesCommented Jan 10, 2014 at 23:13
-
Instead of workflow, would an "approval" be enough? Where each reviewer can say "yes" which is saved to Application Data? Then actual Tridion workflow, Event System, or other extension could do something with these approvals?– Alvin ReyesCommented Jan 10, 2014 at 23:15
5 Answers
The same item cannot be in 2 different activities simultaneously, you can't do parallel workflow with SDL Tridion - 2013 or before.
You need to implement the approvals sequentially.
As Nuno says, and item can only be in one activity at a time. To ensure that each of the 2 groups reviews the item exactly once, but that either can review it first, you can define a workflow where the first review activity is linked to both groups, then have 2 subsequent activities, one for each group. You will then need an automatic decision between, which checks which group executed the first review and assigns to the activity linked to the group which had not executed the first review. There may be problems with this if a person can belong to both review groups, but this may not be an issue in most cases.
You cannot have the same item in two different workflows at the same time, it is because the item will get locked when a workflow instance is initiated. The only way you can have the same item
(which in fact will be an independent item) in two different workflows is localizing it.
You can do this... with lots of code. Basically at the point of the double approval you place a call to another workflow system that once it has 2 approvals then moves the item to the next step. Yep it's a big 'cheat' the other system could be your own code or a complete workflow engine. Out the box can you do this NO. Can it be done easily... ish - its 'only code'
You could have 2 manual decision activities in your workflow, and assign them to some 'sample' groups such as Editor and Supervisor.
Then, you could have a custom page application to approve the item, finish the workflow activity, and assign it to the next group, and give a drop-down box for the user to select the next group to assign it to, and in the code behind you'll dynamically re-assign it to group #1 or group #2.
The workflow would be: Start (Everyone) -> Supervisor (group #1) -> Editor approval (Group #2) -> Finish (Automatic to publish).
It is not easy to do this with the Core Service + Workflow within a .Net App - but it provides the maximum flexibility, future support (Core Service is working in both 2011 and 2013) and you have complete control over who / what group it is assigned to.
I built a similar app and the result provides a lot of flexibility while still using the default Tridion APIs.