Skip to Content

** Is it possible to create new BPM instance for each record (Multiline)

Hi friends,

In my scenario, JDBC adapter (sender) polls the open purchase order items from the table at the specified interval and send to BPM. In BPM, we used transformation step to split the messages to process each PO . The scenario is working fine. The problem is assume that if we process 10 PO, the error is in 4th PO while process, the BPM will be stopped in 4th PO. Once we correct the error, we are able to restart.

In this case, we are not able to skip the 4th PO and process from 5th PO onwards. ie. the processing is sequential. Instead, we want to start new BPM instance for every PO. Advantage is that if 4th PO is error, only that BPM instance (work item) will be stopped. Remaining 9 POs will be completed.

So, how do we start new BPM instance for every PO ?

Kindly tell me, friends.

Thank you.

Kind Regards,

Jeg P.

Add a comment
10|10000 characters needed characters exceeded

Related questions

4 Answers

  • author's profile photo Former Member
    Former Member
    Posted on Jun 17, 2008 at 08:26 AM

    HI,

    in your case the JDBC adapter polls all the open POs together, can you try to maintain all these POs in one temporary table ans will enter it one-by-one in maintable. It will allow you to trigger the BPM for every row and multiple instance of BPM will be created.

    So even if the 4th PO faield you can process ahaed with further POs.

    Thanks

    Swarup

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Jun 17, 2008 at 08:30 AM

    Hi Jegatheeswaran,

    If you want ur BPM to have a separate instance for each entry of PO remove the correlation from your BPM. The messages are grouped under one instance of a BPM using correlation only.

    Regards,

    Sanjeev.

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Jun 17, 2008 at 09:21 AM

    Hi Sanjeev & Swarup

    I didn't use correlation inside BPM.

    It will be possible to move all open POs from main table to temporary table. If we want to create multiple instances we have to send each PO one by one to the BPM. We should handle this thru SQL query inside stored procedure ? Or else decrease the polling interval of JDBC adapter ..?

    Is this correct ..?

    Add a comment
    10|10000 characters needed characters exceeded

    • Former Member

      Hi,

      There are two ways to achieve this. In BPM and before BPM.

      Before BPM:

      Use 1 to unbounded mapping and 1 to unbounded interface mapping.

      In your mapping, make sure you create a seperate message for each PO.

      In BPM:

      Create a multiline container with you POs using a 1 to n mapping.

      Now add a ForEach block to loop through the multiline container and send each PO.

      Important: Add an exception branch to catch any exception for each send so that the exception does not make the BPM fail.

      Regards,

      Yaghya

  • Posted on Jun 17, 2008 at 12:30 PM

    Hi Yagha,

    We did the settings already whatever you said. Idea is BPM considers one message processing as one cycle, eventhought it process PO one by one. So, in this cycle if one PO gets failed, the BPM stops, it will not go further. That's the problem.

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.