With the advent of NetWeaver Business Process Management (BPM) and NetWeaver Business Rules Management (BRM) we are faced with the question as to what we should/could do with any existing investment in other workflow technologies.
This blog outlines how Guided Procedures and BPM/BRM could interact to maintain any investment in GP so we get the best of both worlds.
For this blog I will use the following example :-
- A Guided Procedure exists to cover the request to create a sales inquiry / quotation and order
- With the advent of BPM/BRM the business have requested that the “Risk Review” process which ends with the request to create a sales order is brought into a managed workflow. This was not included when the Guided Procedure was implemented as it required complex and fast changing “risk” rules to be implemented which could not be implemented and maintained in a cost effective way using the technologies available at the time.
As can be seen “Risk Review” is a great candidate for BPM/BRM, so the question is how can I implement “Risk Review” and protect the investment in ”Sales Order Request”
Below is the BPM process that we need to implement for the “Risk Management” process.
Because we can call WebServices from a BPM process task we can implement the start of the “Sales Order Request” Guided Procedure call as an automated task within the BPM flow. This works well where the GP task is the last step in the BPM proces as we can then just end the BPM process and the GP engine takes over. As both tasks from BPM and GP are linked up to the portal Universal Work List (UWL) – the user has one place to go for their tasks.
However if we need to implement a GP in the middle of a new BPM process we have the problem of how we inform the BPM flow that the GP has completed. This could be done in a couple of ways :-
- We could wrap the GP webservice call in a BPM sub-process with at timed task that checks to see if the GP has completed. This obviously has performance impacts as we will keep polling for an event that may not happen for days or weeks. This sub-process is shown below.
- A better solution would be to create a “BPM Event” that can be called from a step in the Guided Procedure once the GP has been completed. This has the downside that the existing GP has to be modified (with the addition of one Action). It would also be necessary to implement error management in the BPM process to check that the GP has not ended in an error. This could be done with a longer timed WebService call to the “GP results” service.
I think this type of mash-up will be a valuable asset in the toolkit of the BPX, especially as a GP allows support for move types of UI (currently) and it allows an evolution not revolution message.
Next we need to think about how we start and monitor a BPM process from a GP !!