cancel
Showing results for 
Search instead for 
Did you mean: 

Issue with triggering Message ID in PI

Former Member
0 Kudos

Hi Experts,

I have scenario that I have to capture the message id in PI, have to send the same message ID to two receivers.

SAP->PI->SOAP

SAP>PI>SAP.

For this i have created two sender and two receiver interfaces, two message mappings and two interface mappings. As well as i have created two udf's for this. PI is sending two different message ID's to systems. But I have to send the same message ID to both system.

can you guys please suggest me how to do this.

Thanks & Regards,

Satish Kumar P.

Accepted Solutions (0)

Answers (2)

Answers (2)

sunilchandra007
Active Contributor
0 Kudos

How do you expect 2 independent scenario to create same message Id while execution. You need to have just one scenario that would split your message for 2 receivers using one mapping. Search 1:n multimapping without bpm for more details or refer to http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/3115. [original link is broken] [original link is broken] [original link is broken]

Regards,

Sunil Chandra

Former Member
0 Kudos

Hi Sunil,

I followed the link, but in my case the message types are in different software component versions, i am not able to assign the message in message mapping. And the target systems also different.

In that link both are assigned from the same name space. It is not possible for my case.

Thanks & Regards,

Satish Kumar P.

sunilchandra007
Active Contributor
0 Kudos

You first need to create software dependency in SLD if you want to use objects from other SWC. Check [help.sap|http://help.sap.com/saphelp_nw04/helpdata/en/10/8b9c4f1c79024595308d2f4a779c5e/frameset.htm] for more details.

Regards,

Sunil Chandra

Former Member
0 Kudos

Hi Sunil,

As suggested you i am requested basis team to do the changes in sld.

How to assign the one interface mapping to two different receivers. one is soap receiver and one is sap.

Actually My complete scenario is

Proxy>PI>SOAP

Proxy>PI>Proxy

I have to send the SAP processed message id to SOAP and SAP.

What are steps i need to do in configuration for this.

Thanks & Regards,

Satish Kumar P.

Former Member
0 Kudos

Hi Sunil,

Please suggest me what are the steps i need to do in I.R and I.D. to reach my requirement.

Thanks & Regards,

Satish Kumar P.

former_member200962
Active Contributor
0 Kudos
I have to send the SAP processed message id to SOAP and SAP.

I hope that you refer to the message id of PI.

You can read the message_id using the below logic in a UDF in the respective mappings (SAP -> SOAP and SAP -> SAP):

java.util.Map map = container.getTransformationParameters();
String msg_id = (String)map.get(StreamTransformationConstants.MESSAGE_ID);
return msg_id;

former_member200962
Active Contributor
0 Kudos

Discard the above reply of mine!

PI is sending two different message ID's to systems. But I have to send the same message ID to both system. 

yes this will be the default behavior....PI will generate two different message Ids....one each for each message processing (SAP -> SOAP and SAP -> SAP)

Former Member
0 Kudos

Hi,

I am using the same code in both mappings. But when I look in to sxmb_moni its giving the two different message id for two message id. But the parent message id is common for both sub message id. I have to send the same message id to both systems.

thanks & regards,

Satish Kumar P.

former_member200962
Active Contributor
0 Kudos
But the parent message id is common for both sub message id. I have to send the same message id to both systems.

in your case you have two (multiple) receivers for the same source system...so there is a message branching happening in your processing (you may witness two arrow-heads in sxmb_moni)....when this happens a new messsage ID is generated and your mapping program reads this newly generated message-id and not the original one.

http://help.sap.com/saphelp_nwpi711/helpdata/en/28/68073c8e56f658e10000000a114084/frameset.htm

from above help section:
A new message with a new message ID is created from the original message for each interface/receiver pair in the receiver list.

Former Member
0 Kudos

Hi,

Is it possible to send the parent message id to both systems using udf.

Thanks & Regards,

Satish Kumar P.

former_member200962
Active Contributor
0 Kudos
Is it possible to send the parent message id to both systems using udf.

No as far as I know

Former Member
0 Kudos

Hi Abhishek,

Thanks for the replies.

For this I did the multi-mapping and in I.D. i have created the below steps

1. one Receiver determination

2. one Interface Determination

3. two Receiver Agreements

I am getting the No Standard Receiver Agreements found error in moni, and i test manually in I.D. also I am getting the same error.

Can you please guide what are the steps i need to do for multi-mapping scenarios. I am doing first time these type of scenarios.

Thanks & Regards,

Satish Kumar P.

former_member200962
Active Contributor
0 Kudos

You have a scenario in which Proxy message is sent to a SOAP application and also to another SAP application (again as a Proxy message)....is my understanding correct?

If yes then you need below objects:

1) One Interface Mapping between Proxy and SOAP (the webservice....wsdl) and one between Proxy1 and Proxy2.

2) One Receiver Determination having SOAP_Application and SAP2_Application as target systems...if required define conditions against each receiver system.

3) two Interface Determinations....one between SAP1 and SOAP...other between SAP1 and SAP2 with corresponding mappings.

4) Two receiver agreements.

Yours does not look like a scenario for multi-mapping....

Former Member
0 Kudos

Hi,

In one Message Mapping i have assigned the two messages and i have done the mapping. So multi-mapping will split the messages to two receivers right?

In interface mapping also i have assigned two inbound interfaces and one outbound interface.

in Receiver determination i have assigned two receivers

in interface determination i have assigned the interface mapping

and i have created two receiver agreements for two receivers.

is that configuration is correct for my case?

Regards,

Satish Kumar P.

former_member200962
Active Contributor
0 Kudos
is that configuration is correct for my case?

i dont think so.

multi-mapping which you refer (or are doing in the mapping) is done when we have a single target system....in your case you have two different target systems and hence the error in the receiver agreement

Can you create two different Mappings and two different Interface Determinations and then check the result?

Former Member
0 Kudos

Hi Guys,

Any body suggest me how to solve this.

Thanks & Regards,

Satish Kumar P.