cancel
Showing results for 
Search instead for 
Did you mean: 

Dynamic JMS Header Property in Multimapping

Former Member
0 Kudos

Hi All,

This is IDOC - File Scnario.The requirement is it to

1 .Spilt the input payload based on a patricular field(for eg:company code) and send it as a separate message.

Solution :This functionality is achieved by using multimapping

2 .To set company code dynamically in the JMS HeaderProperty in mapping and retrieve it in JMS. I have set the property by using dynamic configuration in UDF.

For Ex: In the input payload, If we have 3 company codes like AAA,BBB,CCC then 3 differect messages will be sent form PI with:

a.First message should contian the data of companycode AAA with JMSHeaderProperty0 as AAA.

b.Second message should contian the data of companycode BBB with JMSHeaderProperty0 as BBB

c.Third message should contian the data of companycode CCC with JMSHeaderProperty0 as CCC.

The problem here is i am getting the JMSHeaderProperty0 as AAA for all the three messages.Any idea how to achieve this?

Thank you,

Kiruthiga

Accepted Solutions (0)

Answers (4)

Answers (4)

former_member181985
Active Contributor
0 Kudos

I hope my new blog will help you: [Multi-mapping: Assigning ASMA's for Child Messages using Custom Adapter Module and FM|http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/23949] [original link is broken] [original link is broken] [original link is broken];

- Praveen Gujjeti

former_member181985
Active Contributor
0 Kudos

Use BPM with Multimapping concept. set the JMS header in the mapping for each iteration

Former Member
0 Kudos

receiver is not SOAP ..its JMS channel .. I would like to know other options apart from BPM .

Kiruthiga

former_member181985
Active Contributor
0 Kudos

I only mentioned it as SOAP Header which is internal message format in SAP XI/PI irrespective of adapter types.

you can split the scenario as below

IDOC --> XI --> File(s) (with Multimapping Concept)

File(s) --> XI --> JMS

- Praveen Gujjeti

Harish
Active Contributor
0 Kudos

Hi Kiruthiga,

You can achieve by using two flows in PI. In the first flow you need to split the message into multiple messages from multi mapping.

From first flow you can send the spitted messages to PI via Soap receiver and sender. You can use the intermediate service to send and receive message from soap.

Soap will sent messages one by one to second flow and in second flow you can set the JMSHeaderProperty0 to the company code coming in the message.

Regards,

Harish

former_member181985
Active Contributor
0 Kudos

Multimupping creates one bulk message which basically contains all the splitted messages. So, it is only a single message before it gets delivered to adapter. Hence only one message SOAP Header is possible.