on 08-27-2011 6:23 AM
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.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
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.
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;
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)
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.
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.
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....
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.
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?
Hi Guys,
Any body suggest me how to solve this.
Thanks & Regards,
Satish Kumar P.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
85 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.