Jump to content

Parallel Process


Adrian Simpkins

Recommended Posts

Hi All

I wanted to insert a parallel process into some of our BPM's but I could not find any page on the Wiki - would anyone be able to point me to any guides at all please? I have found a number of postings on here relating to issues around how to use a parallel process etc, but I was looking for some guide if there is one so I can understand further configuring parallel process, and where it may be appropriate within a BPM please :)

Many thanks

Link to comment
Share on other sites

@Adrian Simpkins there isn't a great deal on the wiki to point you at here.  There is the business process designer page,  and at the bottom if references and gives an explanation of the start and stop nodes which you need to use when working with parallel processing inside a process. 

https://wiki.hornbill.com/index.php/Business_Process_Designer

In summary you need to use a start node and and finish node, inside which you can drag and and add multiple other nodes and multiple parallel actions, you just need to ensure they are all connected back to the finish node.   

A classic use case for parallel processing would be when you need two or more human tasks to start at the same time, and there is no dependancy on a previous one completing first to start the next - in this example you would use a start parallel processor node, then draw out 2 or more lines and add a human task to each, and join them all back up with a finish parallel node.

Now that is a very basic example and i am 100% your fellow Hornbill users are doing some pretty clever things with this.

Another example maybe where you want to use some automation in a process alongside some human tasks, in this example below i have one track invoking automation to create users accounts etc (yellow nodes), and two further tracks dealing with some human tasks, but they all join back up to finish the parallel processing before the process moves onto another human task and a sequential series of events. 

image.png

Hope that helps

 

Link to comment
Share on other sites

Hi Steven, or anyone else !

I just wanted to confirm something around a parallel process - so I have a request that needs 2 teams (or more) to take concurrent actions to progress it - would I assign it to both teams at the start of the BPM with a parallel process node followed by separate Assign nodes to each team, or just assign it to one team at the start, then use the parallel process where both teams need to take an action?

Just wanted to understand how different teams would interact with a request with a parallel process somewhere within the BPM. Below is an image of how I have set the start node, but I am unsure if this is needed :)

1941448711_dualprocess.png.26138d1f0db24f00011fc65555f76e6c.png

Many thanks !

Link to comment
Share on other sites

@Adrian Simpkins good question.

Some basics may help here:

1. A request can only be formally assigned to one team / owner at any given time

2. You can assign multiple sub human tasks to other users / teams / roles within a request 

3. You can automate the creation of sub requests from within a business process, which creates a Separate request with it's own business process 

4. You can use informal options like @ mentions and members on a request, to not formally reassign a request or create formal tasks 

There are lots of ways in which multiple teams can collaborate on the progression of request fulfilment.

The most common model would be that one team / owner owns the parent request, but inside your parallel processing you could create tasks which are assigned to other teams, users and roles to complete their actions on the request (assuming these need to happen in parallel), which sounds like what you are looking to achieve.

If these actions can happen sequentially then perhaps parallel processing is not required and instead, the request itself is auto-reassigned once each team has completed their action.  

Would this sub-task model work for you?   

There are more advanced options available, such as auto-creating sub linked requests from within a process, and each linked request is assigned to different teams, and they can each run their own processes on the sub-requests, which can update the parent request when complete, but this is much more involved and heavy on admin, so i would not normally recommend this, especially as the one request > sub-task option is there and designed for what you have described - remember sub tasks in a request can have the following:

* Use of checklists, enforce the completion of certain actions before the task can be marked as complete

* Can use custom fields, to record specific information which is needed to be captured (and this info both written to custom fields on the request and used to make further decisions in the process) You will need to enable this setting for this feature - experimental.feature.bpm.allowcustomtaskfields - you can find this in admin console > system > settings > advanced

* Custom task outcomes again with specific linked questions depending on the outcome chosen for the task

* Branching and decisions of both the task outcomes and the answers to specific questions captured in the task completion

* You can set expiry options for each task, so you can manage and make decisions in your process if a task is not completed and expires 

If you take a look in the sandbox instance you can see good examples of this, for a new starter process, this is showing both task assignment and the creation of linked requests.

https://admin.hornbill.com/demo/app/com.hornbill.servicemanager/workflow/bpm/new-starter/

login as Grahamc and Password: H0rnbill

Checkout the second stage for task assignment in parallel processing and stage three for auto-creation of a linked request

Hope some of this helps with your process design

 

Link to comment
Share on other sites

Hi Steven

Perfect, that gives me some options to investigate - at the moment we would want 2 teams to work 2 activities at once, and having a sub request may not be suitable but definitely something I would look to use for more complex cross working requests.

I will try a simple dual process initially just to make sure doing what we want, but if this doesn't suit I will look at raising sub requests - I want the request to remain active with each team until they complete their tasks so the assign tasks to 2 teams at once should suffice for now

Many thanks as always, much appreciated !

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...