cancel
Showing results for 
Search instead for 
Did you mean: 

Set IDOC number as Correlation ID in JMS Receiver Adapter

Former Member
0 Kudos

Hi ,

I am working in PI7.1 on IDOC to JMS interface,

I want set IDOC number as Correlation ID in JMS queue ,

I did following Correlation steps ,

1. Set JMSCorrelation ID to PI Conversation ID

2. Checked JMS CorrelationID of request

3.Value to PI Conversation ID

In Adavanced Tab

Checked Use Adapter specific Message attributes

Checked Fial if Adapter specific Message attributes missing

Checked JMS Message Correlation ID

Additional Parameter

DCJMSCorreleationID String

I have created user defined function , Not using BPM , i don't have correlation ID in target field data type

DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);

DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS", "DCJMSCorreleationID");

return conf.put(key, messageId);

please help to how to use UDF in mapping for mapping which field .

Thanks ,

Laxman.

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos
i don't have correlation ID in target field data type

You need not have any CorrelationId in the target message type to map the UDF.

why are you not passing the Idoc number from source as the input parameter. Just try passing Idoc number as the iput to the UDF and then set it as the message id in the udf.....then, the udf can be mapped to the root node of your target structure.

Regards,

Swetha.

Former Member
0 Kudos

Thanks Swetha ,

First i am trying without IDOC number mapping , just i mapped UDF in target node

I am getting below error messages

Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Dynamic header records are missing/incorrect specified in message: 000c2901-fc48-1def-82f9-4b126dff2151. Erroneous/Unspecified headers are:[ DCJMSCorreleationID ]

1/27/10 11:02:36 PM 000c2901-fc48-1def-82f9-4b126dff2151 Dynamic record/records: DCJMSCorreleationID, that correspond to the JMS property/properties: JMSCorrelationID, respectively is/are either missing from the message: 000c2901-fc48-1def-82f9-4b126dff2151, or have invalid types specified in the channel configuration

Thanks ,

Laxman.

Former Member
0 Kudos

You are almost done...

Just map the udf(output) to root node of the target message...!!

Regards,

Swetha.

Former Member
0 Kudos

Hi Swetha ,

Thanks for your response ,

I created user defined function with one parameter , no input parmeter .

My root node of IDOC as Structure type ,

In UDF , i have not mapped the IDOC number

public String CorrelationID(String messageId, Container container) throws StreamTransformationException{

DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);

DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS", "DCJMSCorreleationID");

return conf.put(key, messageId);

}

messageId I need map in additonal parameter .

Thanks ,

Laxman.

DCJMSCorreleationID messageId