cancel
Showing results for 
Search instead for 
Did you mean: 

How to Multi-Map N:1 messages in BPM when N is unknown

Former Member
0 Kudos

I need to perform an N:1 message mapping in a transformation in an Integration Process. SAP Documentation explains how to do this:

[http://help.sap.com/erp2005_ehp_03/helpdata/EN/21/6faf35c2d74295a3cb97f6f3ccf43c/content.htm|http://help.sap.com/erp2005_ehp_03/helpdata/EN/21/6faf35c2d74295a3cb97f6f3ccf43c/content.htm]

But it seems to be the case that the first message of the source will be contained in a <Message1> </Message1> element pair, the next message in <Message2> </Message2> element pair, etc.

So what do I do in the case of a variable number of input message that get mapped to one message? I don't know how many messages will be coming in before the mapping needs to be done; it depends upon how many messages are sent out in a fixed time interval.

I will be using an ABAP XSLT transform to do this. I cannot use a

<xsl:for-each select="Message">

Kind of construct because each message is enclosed by a different <MessageN> element.

This must be a problem that has come up before. Can anybody please point me to the solution?

Kind Regards,

Tony.

Edited by: Anthony Bateman on Mar 23, 2008 9:31 PM

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

HI,

As you are looking for the variable number of input message then if those all messages are of same type then you could add the receive step in loop to accept all those multiple mesages in the give fixed timed interval or may be change the occurance to unbounded.

But if you are looking for different messages with different structures then on the source side you can't decide it at runtime..you have to pre-define the possible structres of messages in multi-mapping as <Message1>, <Message2> , <Message3>.............<MessageN>

Thanks

Swarup

Edited by: Swarup Sawant on Mar 24, 2008 3:27 AM

Former Member
0 Kudos

Hi Gents,

As usual my problem was not reading the documentation in enough detail. By exporting the XSD definition of the source and target messages from the Interface Mapping, I was able to construct the correct transform.

Your efforts in replying were very much appreciated!

Kind Regards,

Tony.

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi Anthony,

Yes you can perform N:1 message mapping using BPM by just using a "wait" step. Its very simple. The "wait" step waits for a particular time period or scheduled time(like 25th March 10:00 PM).

If only "collection of input messages for a particular time interval" is your concern, then I think you can just do it with a simple BPM and no need of ABAP XSLT maaping. It can done by a simple Message mapping itself.

I can send you screenshot of a sample BPM which does this work on your mail Id if you are interested. Plz provide your email ID.

If I havent understood your Qn properly, plz do inform.

U can refer,

/thread/186475 [original link is broken]

/people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm

/people/siva.maranani/blog/2005/05/22/schedule-your-bpm

Thanks,

Shobha

Former Member
0 Kudos

Hi Anthony,

You first take a loop, put a receive step in the loop which will collect each message and you will append them in a Multiline Container Element using container operation. then you put a Transformation step, assign the interface mapping done for the N:1 message mapping. this will merge your messages into one message. put a send step after that,assign it with a abstract interface containing the same meggase type that is generated by the mapping.so that it can send your merged messge.

Reward points if helpful.

--Sankar Choudhury

Former Member
0 Kudos

hi check the link below

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/c50cddbb-0601-0010-92a7-f2a40ca6...

note:reward points if solution found helpfull.....

regards

chandrakanth.k