Solved

IPC-Event doesn't work as assumed


Badge +5

Hello Community,

 

I've created a Workflow and I configured a IPC-Event to call a Sub-Workflow where different Users have to approve.

The IPC-Event is configured for Synchronous and in the Destination Rule I've told the event Plan per Destination -> All at once.

I also configured the Event for Create a slot for each destination and Resolve all roles and groups to users.

The users are stored in a SharePoint-List with a ; seperator.

 

The Problem is now, that when I start the Event the users get the task and they can approve it.

But from the moment the first user have approved the workflow will go forward and don't wait for the other users.

 

I tried already to set up a Succeding rule "All of ActivityInstanceDesStatus = Completed". But with this rule, the Workflow will not run forwad.

After all users have approved the task will marked as done and nothing happens.

It looks like that the Succeding rule is not fulfilled.

 

Does anyone have a idea where the configuration error is?

 

Thank you for your help in advanced.

 

Kind Regards

Alexander


14395i31BFC0C60BDEB5BF.jpg
11298iA5986EA72DBEF067.jpg
12892i01D7EF05CA3078A1.jpg
16114i33AC266FA3605339.jpg

icon

Best answer by Kran 19 May 2017, 12:06

View original

4 replies

Hi Alexnader,

On Activity, make sure the outcome is configured to "all slots of action result = <decision>"

Badge +5

Hi Mohamed,

 

thank you for your answer.

 

This would solve the problem when I create only one instance but I create a Instance of my Child-Workflow for every user which have to approve.

So when two users have to approve I have two instances and they have to be synchronized after both have done their job in the child-workflow.

 

Kind Regards

Alexander

Badge +9

Hi A_Christ.

 

 

Correct me if i am wrong, you are calling a child process using Plan per Destination -> All at once and configured the Event for Create a slot for each destination and Resolve all roles and groups to users. And in child workflow (called using IPC), client event having rule "All of ActivityInstanceDesStatus = Completed".

 

Observation:

  • Let suppose u have 5 users in group, then IPC event will create 5 child processes one for each user, when 1st user will take action on task, the rule ("All of ActivityInstanceDesStatus = Completed".) used at client level will pass, and this will complete the child process.
  • Once any one of the child process is completed your parent process ipc event will expire. As you are not using success rule at your parent process activity to check if all child process are completed or not.

 

To achieve this follow below steps in parent Process:

 

  • Take a data field of type int set default value as 0
  • Below your IPC process in same activity add a Data event to increment data field by one
  • Now add a succeeding rule to check count is equal to number of slots created

 

 

Let me know if this helps you.

Badge +5

Hi Karan,

 

thank you for your tipp.

This has solved my  problem. Sometime it can be so easy.

 

But for me it is a little bit strange that this doesn't work out-of-the-box. I thought when I start this synchronious that the Process will wait for all instances.

But okay I can live with this solution.

 

Thank you.

 

Kind Regards

Alexander

Reply