on 07-26-2011 12:07 PM
Hi experts,
my need is to fill a mapping field with message ID.
I've used this UDF:
String Constant;
java.util.Map map;
// get runtime constant map
map = container.getTransformationParameters();
// get value of header field by using variable key
Constant = (String) map.get(StreamTransformationConstants.MESSAGE_ID);
return Constant;
The problem is:
my interface is 1 to unbounded, I need to retrieve message ID of every message after the split, using above UDF I think I've retrieved the message ID of message before the split, is correct?
Thanks
Fabio
Hi,
Yes, u will get the message id before split.
If u want message id's after split then, Use DynamicConfigurationBean at the receiver communication channel and catch the messageid.
Regards,
Sunitha
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
you may also use one BPM pattern to split the messages in loop
http://help.sap.com/saphelp_nw2004s/helpdata/en/11/13283fd0ca8443e10000000a114084/frameset.htm
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
for every split, assume a transformation step withing your BPM. This transformation step would contain a map, which should have small java code for dynamic configuration. So whenever there is a split this small peice of code will return you the message id. refer - http://wiki.sdn.sap.com/wiki/display/Snippets/UDFtoReadMessageIDofaPIMessage
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
A mapping-based message split will ultimately produce n individual messages, but not until it reaches the Adapter Engine (AE). Inside the Integration Engine (IE), the messages are grouped together and persisted as one bulk message. The bulk message is sent to the AE where it splits the bulk message into individual messages and persists them.
are you using any 1:N multimapping without BPM? then this splitting happens in adapter level.
you can use Bpm transform step to do multimapping
Set target container as multiline
Then use for each block to send the splitted message one by one.
And in Mapping you will get the MSGID for individual message.
Otherwise you need to catch it in Adapter level.
Please see
Defining Variables for Attributes in the Message Header
5. If the variable refers to an attribute of the message header, add the prefix message: to the name of the variable under Reference.
You can specify the following attributes of the message header:
u25CB sender_party, sender_service, receiver_party, receiver_service, interface_name, interface_namespace
u25CB message_id (message ID with hyphens, for example 9fbe1ff1-9a0d-11d9-8665-cbf10a126331)
u25CB message_id_hex (message ID in hexadecimal format, for example 9fbe1ff19a0d11d98665cbf10a126331)
u25CB If one of the message attributes contains characters that are not permitted in a file name, for example \, /, :, *, ?, ", <, >, |, these characters are replaced by an underscore ("_").
For example, if you want to specify the interface name from the message header in the target directory or in the file name scheme, enter message:interface_name as the reference.
http://help.sap.com/saphelp_nwpi711/helpdata/en/44/6a316af5a23672e10000000a114a6b/frameset.htm
Hi Fabio,
check blog:http://wiki.sdn.sap.com/wiki/display/Snippets/UDFtoReadMessageIDofaPIMessage
Regards,
Naveen
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
93 | |
10 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.