ECL Webservice and distributed transactions

Hi everyone,

 

is there anyone in here who can share some thoughts concerning distributed transactions in connection with MBPM ECL in version 9?

 

Here's the situation:

 

We need to implement a WCF webservice that makes calls to Metastorm BPM and different other systems within one method, e.g. to Metastorm BPM and an ERP system.

The calls to these systems happen sequentially, but they form a logical unit. Let's say in one method, we first successfully run a metastorm action via ECL and then we're down on our luck and the subsequent update of an entity in the ERP system fails.

The functional requirement is to roll back the changes of the first step because the two steps have to be considered as one atomic transaction.

 

Is there a way to implement this with Metastorm BPM v9?
If not, does anyone have an idea for at least a workaround?

 

Any help much appreciated!

 

Cheers

 

Jan Behrendt

Tagged:

Comments

  • As per my knowledge there is no out-of-box feature supporting distributed transactions. However you can try following alternative

    1. Create a stored procedure which calls web services within it. For more information on calling web services from stored procedure visit http://davidhayden.com/blog/dave/archive/2006/04/25/2924.aspx

    2. You can also look into calling ECL webservice and CRM web service in WCF transaction, please visit site
      http://www.codeproject.com/KB/WCF/WCFTransactions.aspx for more details

    3. Finally when this is ready, call the stored procedure from Metastorm form. If there is an error while updating either CRM system or ECL web service, the stored procedure will return an error and transaction will rollback

  • Hi Prashant,

     

    thanks for your reply.

    I have been playing around with exactly the WCF-transaction example that you mention.

    Unfortunately it seems that the Metastorm ECL implementation does not support WCF-transactions out of the box.
    Taking a look at the web.config in Program Files (x86)\Metastorm\BPM\ECL.WS, I saw that basicHttpBinding is being used, and that rules out transactions.
    wsHttpBinding would be needed. So unless this is going to change, my plan seems to be hopeless.

     

    At the moment I doubt that your suggestion to wrap the 3rd party calls into a stored procedure will cover all our requirements. It might be a workaround for some situations, but it seems to be a limitation regarding the sequence of events.

     

    Well, I think we have to think of a different concept, compensation maybe a way to solve our problem.
    If anyone has another idea, feel free to contact me :-)

     

    Regards

     

    Jan Behrendt