cancel
Showing results for 
Search instead for 
Did you mean: 

Re: BPM Help

Former Member
0 Kudos

Hello! ALL

I am trying to develop a BPM which would send a asynchronous I/B shipment request message proxy message to SAP ECC (message coming form Sender will be transformed to Shipment Request Proxy) and once this proxy is processed. SAP ECC would asynchronously push a O/B shipment response to the i/b shipment proxy, which the BPM should receive in order to send a confirmation back to sender system that shipment request was created.

Since, this is a asynchronous request and response , the Shipment_Number which is part of the request and comes back in the response needs to be used to correlate the messages. And send the Shipment_Number back to sender confirming Shipment_Request was created.

It would be very helpful, if you can provide an idea this can achieved a BPM.

What will be the steps involved to send and then receive the response back for the message containing the Shipment number asynchronously by leveraging the Shipment Number to correlate.

Also, would like to make this all part of the block so that if the response for a shipment does not come back in a set time like within 10 mins, we will fail the block and terminate the BPM.

Please, do suggest the steps and logic needed to design the BPM with this requirement

Appreciate all the help!

Thank you so much,

Ritu

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

To summarize the BPM requirement:

1. Message (A) from sender Syetem ---> BPM ---> Message (A) sent to ECC Asynchronously

2. Message (B) Sent from ECC Asynchronously in response to Message (A) processing completed --> BPM

3. BPM ---> Sends back message(B) to Sender System

4.If BPM does not receive response back from ECC i.e. does not receive the Message (B) corresponding Message (A) - The BPM should terminate sending a Message to sender on failure.

5. Message A can be correlated to Message B using Shipment_Number.

Questions:

1. How can we receive the Message B in the same block; do we need to have a receive step and how do we correlate message A and message B. Shipment number is common to both messages.

Please, help with steps used to send and receive messages asynchronously in a block.

Thank you,

Ritu

former_member200962
Active Contributor
0 Kudos
1. Message (A) from sender Syetem ---> BPM ---> Message (A) sent to ECC Asynchronously

2. Message (B) Sent from ECC Asynchronously in response to Message (A) processing completed --> BPM

3. BPM ---> Sends back message(B) to Sender System

Your BPM will have below steps:

Receive1 --> Transformation1 --> Send1 --> Receive2 --> Transformation2 --> Send2

Transformation1 and Transformation2 are optional and if mapping is requierd it can be specified in the Interface Determination.

4.If BPM does not receive response back from ECC i.e. does not receive the Message (B) corresponding Message (A) - 
The BPM should terminate sending a Message to sender on failure.

Include Receive2 in a BLOCK....in this block include a Deadline Branch which will Throw an Exception.....in the same BLOCK include a Exception Branch which will have a Send Step and a Cancel Process action.

The Send Step will be ASYNC and will send the message to sender saying that ACK from ECC not received.

1. How can we receive the Message B in the same block; do we need to have a receive step and how do we correlate 
message A and message B. Shipment number is common to both messages.

in the correlation editor of your BPM define correlation and in the first Receive Step specify this correlation and in the second Receive Step use the correlation.

Regards,

Abhishek.

Former Member
0 Kudos

Hi Abhishek

Thank you so much for the detailed explanation on the BPM steps to be used.

I have followed the steps you have suggested and faced 3 issues I need your help and advice on:

1. Was a able to get the first receive and send working (so the message went to ECC) and for the next receive and send I have the following error:


<SAP:Code area=&quot;BPE_ADAPTER&quot;>MESSAGE_NOT_USED</SAP:Code> 
 
  <SAP:AdditionalText></SAP:AdditionalText> 
  <SAP:Stack>Message <b>interface</b> is not used by <b>this</b> process</SAP:Stack> 
  <SAP:Retry>M</SAP:Retry> 
  </SAP:Error>

2. Also, would you suggest the Receive &#38; Send to be in block and have a inner block which has the second receive and send (and the control step will fail the whole inner and outer block). The reason I was thinking of this as similar to Shipment Request I will also need to add Freight Request block which is exactly the same service interface as shipment request only message content and transformation would be different (in the same BPM). If the Flag is Y for Shipment Request it need to go to block 1 &#38; Flag is N for Freight request it needs to go to block2.


BLOCK1 (Shipment Request =Y)---> Rec1 Transform Send1 {Inner BLOCK?Rec2 transform Send2}
 
BLOCK2 (Shipment Request =N)---> Rec1 Transform Send1 {Innrer BLOCK?Rec2 transform Send2}
 
Question:
-Do we need to have the second step in a inner block which will have the control step?
-Also how <b>do</b> i route the message between the 2 block, can I use a fork or <b>do</b> I need to have one more receive step before the routing to the 2 blocks.

3. Also, if we do not receive a asynchronous response to the Shipment or Freight request for the second receive step, apart from failing I need to populate the send structure with Shipment_Number and the Status file = FAIL in the response going to Sender system.


Question: how <b>do</b> i populate the response structure with <b>default</b> value and the shipment number associated to the failed receive step 2 (need to save shipment number); so as to populate the response with defaults status as FAIL to the associated Shipment_Number for which the control step fails on timeout.

Thanks again!! Your response was very helpful, hoping to get past this error and add the next steps to the BPM.

Thank you,

Ritu

VijayKonam
Active Contributor
0 Kudos

Is the sender system calling the BPM synchronously?

VJ

Former Member
0 Kudos

Sender (Shipping Request) -->

BPM (receives and send to ECC and waits to receive the confirmation for this shipping request which is status message with the corresponding) -


>

ECC (Receives Shipping Request) and sends it back to PI --->

BPM receives (corresponding confirmation message for the shipping request ) --->

BPM then sends this back to Vendor (Sender System)

Shipping Number common to message received and the message sent back from Vendor and ECC. Which will be leveraged to correlate messages.

Thank you,

Patrick

Edited by: Patrick Jones on Jul 16, 2010 10:59 PM

Edited by: Patrick Jones on Jul 16, 2010 11:21 PM

Answers (0)