Monday, June 4, 2012

Updating BPM payload thru various channels

Scenario:
Service request process started for a process. Payload as follows -



an incoming document, adhering to the product definition from the XSD, starts off the process.
The process will get technical data information regarding the product thru various channels
- DB
- File
- WS call to name but 3.

The techData is defined as via the productTechData in the XSD. The techData element will then be used to update the techData element in product.


So we will need some sort of Event Sub-process(es) to manage this interaction.

I chose the following approach -
A File Adapter and DB Adapter are used to process the incoming messages via the File and DB channels.




As you can see both of these have Mediators which generate the same Event - FileTechDataUpdateEvent (Ok, I should have chosen a more general name here!). Naturally the event payload is of type productTechData.

Naturally I need an Event sub-process that picks up the published event. I use a start event of type signal here.


This is the bottom event sub-process. I copy the incoming argument to a process variable and use this later
to update the Human Task Payload.






Correlation is set up as follows -



For the WS interface I simply create a  second Event Sub-process ala the first. However this time I define the interface.



Data Associations / Correlation as per the previous event sub-process.

The Correlation is initiated by the Start activity in the main process -



JDev project available HERE

No comments: