cancel
Showing results for 
Search instead for 
Did you mean: 

MessageID in BPM

former_member609026
Participant
0 Kudos

Hi All,

before posting this thread i have seen many blogs and threads but i did not get my answer

let me explain you in detail.

we are doing JMS to Proxy scenario with BPM,

now we have two steps

1) Message coming from WMQ to BPM

2) Message going form BPM to SAP system

Message coming form WMQ converted in the first step and sent to SAP system

i.e have a message mapping in the first step and no mapping exits in the BPM (no transformation step)  as well as in the second step.

i am using BPM to capture the acknowledgement message form the proxy and raise an alert for negative acknowledgement message (as this is a standard sap proxy class).

now i want to capture the messsageid of the second message.

one of the possible solution that explained in the below blog is to populate the message ID in a mapping outside of the BPM and Store the message id in a field and then retrieve it inside the bpm via an abstract interface

http://scn.sap.com/community/pi-and-soa-middleware/blog/2005/06/11/xi-how-to-retrieve-messageid-from...

i followed the same, but i have capture the message ID of the first step but not the second step bec i am using the mapping in the first step but not in the BPM.

could any one can provide me the solution how to use the retrieve message id for the second step(Message going form BPM to SAP system)

Regards,

pradeep A.

Accepted Solutions (1)

Accepted Solutions (1)

udo_martens
Active Contributor
0 Kudos

Hi Pradeep,

actually, the message id is not available for the BPM in your second message. Of course not inside BPM because as Michal described, it is not available at all. Neither if an asynchrononous message is leaving the process.

If you want to get it nevertheless, you need a more comlex flow. For example: Map the ID outside BPM into a field of the inbound interface (proxy). In the proxy class call an outbound proxy with the process instance as receiver. In this design you need to correlate the second receiver step. If you have a unique field value - nice. If not, you might create it (or take the message id from the first message).

The process will become quite complex, you should consider to change the design. For example to make the second message synchronous. Or just catch an acknowledgment and raise a generic alert in case of errors.

/Udo

former_member609026
Participant
0 Kudos

Hi Udo,

i can not follow that process because as we are using the standard SAP Proxies.

Regards,

pradeep A.

udo_martens
Active Contributor
0 Kudos

Hi Pradeep,

then create a new own synchronous PI inbound interface and use the SAP message type (or a copy) as request message type. Generate a proxy and copy into the new inbound proxy method the SAP code, you might need to adapt it but shouldnt be a problem with some ABAP knowledge.

Then you have wrapped the asynchronous SAP proxy into an own synchronous proxy and so you can send back a status, if the operation was succesful or not.

/Udo

Answers (0)