Mapping 2 messages into 1 using BPM
hello
I have a BPM tha recieve 2 messages, and combine them into 1 message. I would like to know how can I map the 2 messages into 1.
more over, is there a way to decide the value of the attribute for the mapping? (for example, if in one of the messages I have attribute value=4, and when mapping it I want 4 to be translated to write Mr. if the value was 3, I would like the value to be Miss, etc.
Thanks
Kfir
Hi Kfir.
As I understand your requirement, you want to combine two messages into one.
If both of the messages have the same structure, then, in BPM, you can use a while loop which contains the receive step followed by the container step into which the messages will be collected. You can use "APPEND" option in the container step. After the while loop, use a transformation step and then followed by the send step.
Now for the loops, you can go with a Time-Dependent, Message-Dependent or Payload-Dependent Loops. Now, that depends on your business requirement.
For this scenario to work, you need to create a correlation, for which the two incoming messages should have one field in common and also should contain the same value. Else, it would fail.
If that is not the case, then in the correlation, define a constant and set it's value to 1 for both of the messages. This will make it work.
Check out the Integration Processes BPMPatternCollectTime, BPMPatternCollectPayload, BPMPatternCollectMessage under the http://sap.com/xi/XI/System/Pattern of the SAP BASIS Software component.
I think this would give you an idea.
Regards,
Hari.
Similar Messages
-
Multi-Mapping and Message Split using BPM
Hi All,
Could anyone pls let me know clearly how message mapping can be done for this weblog
/people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
Thanks,
RamHi,
When you are doing Message mapping after adding the Messaget types for source and target messages. You can click on the "" button in the target message and add one more tab. You can go to Message tab as shown in the 5th image and click "" button to add one more message type. Then do the mapping as usual.
<b>Based on the value of the element(name), the node of input(details)should be directed to one of the two message types</b>
Here in this blog it is done based on the Name.
You need to use IFTHENELSE boolean function and do the mapping.
Thanks,
Prakash -
Multi-Mapping and Message Split using BPM UDFs Error
hi
As per the below blog
Illustration of Multi-Mapping and Message Split using BPM in SAP Exchange Infrastructure
I have just modified the UDFs(1.selectnodeifA 2.selectNodeifB)
1.selectnodeifA
for(int i=0;i<=n;i++)
if(Name<i>.equals("A"))
result.addValue(Node<i>);
2.selectNodeifB
for(int i=0;i<=n;i++)
if(Name<i>.equals("B"))
result.addValue(Node<i>);
while checking I am getting the following errors
Source code has syntax error:
D:/usr/sap/D10/DVEBMGS01/j2ee/cluster/server0/./temp/classpath_resolver/Mapdc8fa4d0896011dd907d001cc01cef0d/source/com/sap/xi/tf/_bpm_mm_.java:132: cannot resolve symbol
symbol : variable n
location: class com.sap.xi.tf._bpm_mm_
for(int i=0;i<=n;i++)
^
D:/usr/sap/D10/DVEBMGS01/j2ee/cluster/server0/./temp/classpath_resolver/Mapdc8fa4d0896011dd907d001cc01cef0d/source/com/sap/xi/tf/_bpm_mm_.java:140: cannot resolve symbol symbol : variable n
location: class com.sap.xi.tf._bpm_mm_
for(int i=0;i<=n;i++)
^
2 errors
The source code given in the blog is correct ? I thought for loop has not completed
pls help
manianHi manian,
I was having a look to Illustration of Multi-Mapping and Message Split using BPM in SAP Exchange Infrastructure blog.
The functions are not the same. I mean, yours and blogs functions.
Each function has two parameters, Name and node. Furtheremore, in the blogs' functions is using arrays and you don't.
So, the right code will be
1.selectnodeifA
for(int i=0;i<=node.length();i++)
if(Name<i>.equals("A"))
result.addValue(Node<i>);
However, if you don't need an advance user defined function as you want to process just one element of the node's queue, you will not need to use for sentence.
Something like:
1.selectnodeifA
// for(int i=0;i<=n;i++)
if(Name.equals("A"))
result.addValue(Node);
Hope it is usefull for you.
Carlos -
Message split using BPM.
Hi SDNers,
My Scenario - Multiple IDocs to 3 output messages. Mesg1 1:1, Msg2 0:1, Msg3 0:1
We are using BPM to acheive this.
I am doing message split using BPM. But I have a problem when I am using BPM.
My requirement is to collect the Idocs for 1 minute, this I acheived by using deadline branch and collecting idocs using container. After that I used Transformation step to run interface mapping by which message is splitting into three messages. Upto this I acheived successfully, then after I got strucked to split the message.
I am using fork step and and giving three branches, in each branch I am giving receive step and collecting the transformed message. My problem is the message in the first branch is mandatory to come, where as the messages in the remaining two branches are not mandatory. That is my message can split into three messages or just one.
If I use fork step, without getting the message in all the three branches, the messages in the branches will not come out. Which is not satisfying my requirement.
I am thinking that before receive step in fork, can I use wait step for 1 minute or can anybody explain what is the functionality of necessary branches.
Thanks in Advance.
Regards,
Jayaram.GJayaram.G,
To send the messages in your fork, you need a send step instead of a receive step.
I think you also need to insert a switch in al of the fork's branches, so that the messages will ony be sent when the transformation produced the message. (use the expression [message] EX in the switch).
Kind regards,
Koen -
Message Split using BPM for Multiple SOAP Receivers
hi,
I have a scenario where in i have to split the message coming from IDOC(SOURCE) to multiple SOAP(TARGET) receivers through BPM
I took a single file as a scenario and tested it. It worked fine.
I am using only a single output interface.
I have followed this weblog
/people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
but this blog has 2 output interfaces whereas in my case i just only one output interface that i want to route to multiple receivers based on the value in the PARVW in the IDOC.
Thanks,
Tirumalhi ,
this is done using CONDITIONAL RECEIVER DETERMIANTION.
While doing your reciver determiantion, you can specify multiple receivers and also specify the condition on which the receiver is to be choosen.
Also, just check the last path of this blog for the same,
/people/shabarish.vijayakumar/blog/2005/08/03/xpath-to-show-the-path-multiple-receivers
Regards,
Bhavesh -
Hi Folks,
I'm new to SAP PI 7.0 . I want to send one xml file to 2 sender in a splitted manner using BPM. suppose I have 8 fileld in my sender data type, i want to send the xml which contails first 4 fileds to the first receiver and
the xml which contails second 4 fileds to the second receiver.
Can anybody help me in this case.I have already looked for the already answered threads but i didnt get any help from them.
Thanks & Regards,
Santosh Kumar Nayak.Hi,
Check this blog: /people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
From the blog:
Three Receiver Determinations are required. One for the Sender to BPM and two
others for BPM to the corresponding output files. In the Interface Determination for the
two Receivers, specify the corresponding Interfaces.
Same logic applicable to your case.
Regards,
Abhishek. -
Idoc(receiver) message splitting using BPM
Hi,
could you provide some blogs which is useful for Idoc (as a Receiver) message splitting (1:N scenario) using BPM.
I have gone thru some of the Blogs, i didn't find good one according to this scenario.
Thanks
PrabaHi Michal,
Thanks for ur reply.
You said " if you have one message and want to have multiple IDOCs
there is no need for a BPM -
you just need to change IDOC occurance - that's all"
I agree to your point.
My scenario is more or less same but "With single message , i need to generate multiple Idocs" based on synchronous proxy response from R3. That is the reason we already gone with BPM.
Already i used the BPM in my interface due to req. It was working. Earlier i was posting single Idoc to R3 with multiple Header segment (each Header segment has one quantity)
Now due to req. change, for each single quantity (quantity is my source Message Type field), i need to post single Idoc to R3 if i get response from R3.
My XI version PI 7.0 SP14
Idoc structure:
<xsd:attribute name="SEGMENT" type="xsd:string" fixed="1" use="required"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
</xsd:complexType>
- <xsd:complexType name="WPUWBW.WPUWBW01";>
- <xsd:annotation>
<xsd:documentation>POS interface: Upload goods movements</xsd:documentation>
</xsd:annotation>
- <xsd:sequence>
<xsd:element name="EDI_DC40" type="EDI_DC40.WPUWBW.WPUWBW01"; />
<xsd:element name="E1WPG01" type="WPUWBW01.E1WPG01"; minOccurs="0"
maxOccurs="9999999999" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
</xsd:sequence>
<xsd:attribute name="BEGIN" type="xsd:string" fixed="1" use="required"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
</xsd:complexType>
</xsd:schema>
Already I am using this Idoc structure in various interfaces also. If i edit the occurance of the this Idoc and import in External definition with same name, I feel it afffect mapping in other interfaces also.
Inputs are highly appreciated.
Edited by: Prabaharan Rangasamy on May 22, 2009 4:14 PM -
Exception Handling (in Mapping) with out using BPM
Hello All,
We are on SP17. I have a simple flow involving XI
JMS -> XI (Message Mapping -> XSL Mapping) -> Mail
I would like to send an email if there is an exception in any of the mapping. But I <b>don't want to use a BPM</b> for this exception handling. How can I do it?
Thanks
AbinashHi Abinash,
yes you can! See these..
/people/alessandro.guarneri/blog/2006/01/26/throwing-smart-exceptions-in-xi-graphical-mapping
/people/sap.user72/blog/2005/02/23/raising-exceptions-in-sap-xi-mapping
All the best!
cheers,
Prashanth
P.S Please mark helpful answers -
Merging the messages by using BPM
Hi
I want to merge the messages... I mean.. i have two sender files.. and one receiver file..(File to File scenario ) I want to load these two files into a single output file..
every one telling this scenario will possible through BPM's so, how can we do this... can any one give me the detailed steps for this...
Thanks
BabuHi babu,
If your sender files are comming form Same interface then follow this Link,
http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm
if you have 2 interfaces at sender then this will help you.
http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm
**Reward points ifhelpfull** -
Terminate messages without using BPM?
Hi,
Does anybody know if you can terminate messages with content based routing without ending up with messages in error state.
example
I receive IDOCs from R/3 where some should be handled and sent to a receiving system and some should not be handled at all and thus terminated. If you define a content based routing for just the ones which are supposed to be handled the rest of the messages end up in error state since no receiver is found. Ideally it would be possible to route messages to a "null" receiver without getting errors, anybody know of such a possibility? I know this can be achieved with a BPM but in this case that creates a lot of unnecessary workload for limited functionality...
Kind regards Johan GöthbergHi Johan,
you can try creating a dummy receiver - like ftp/file receiver and send those wrong message to this receiver?
this way wou'd have everything correct and all "wrong" message in one place (ftp or something)?
Regards,
michal -
Hi Experts
I am getting the request through HTTP which i want to split using BPM and send each splitted message to synchronous step and get the response for each splitted message
I have gone through the following blog
/people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
I am able to split the message into multiple messages but unable to send each splitted message to synchronous step and get the response.
I am getting " NO Receiver Found" error.
How to send each splitted message to synchronous step and get the response.
Please suggest.
Regards
SowmyaHi Sowmya,
I referred to the same blog and the scenario was a success. Please note that in this scenario
"Receiver Determination plays a key role.
Three Receiver Determinations are required. One for the Sender to BPM and two others for BPM to the corresponding output files.
In the Interface Determination for the two Receivers, specify the corresponding Interfaces."
You are just a few steps from success.
Rgds
joel -
Good Day!
I'm currently working on a project wherein it tries to get data from a JMSqueue Map Message being populated by CEP.
After CEP pushes some data in the JMSqueue. I have BPM configured with a JMS adapter to look up whether there are any messages to be processed upon.
Inside BPM, I want to know how can I correlate the data from the Map Message to my Process Data Object.
For example, If I have a Map Object wherein it has 3 attributes:
FirstName:String
LastName:String
Age:int
What is the expression I need to use inside Oracle BPM Data Association screen in order to map the data from the Map Messages into my process data objects?
Thanks!
Regards,
JeffAny ideas? Thanks!
-
NW BPM. - Split Multiple messages into 1.
Hi,
My requirement is take XML Message (Multiple Message ) into NW-BPM and split it into multiple reocrds( 1 Message each ).
further on each employee i will apply mapping logics and then again recombine it and pass it to Target Message.
Kindly Suggest.
Regards
PS.Hi Sriram,
I followed the above blog and successfully deployed my BPM in NWDS. I've been educated that I've create two ICOs:
First ICO->
Sender system(SOAPUI Tool)->PI->BPM
Second ICO->
BPM->PI->Receiver system(Local File system)
I create the Second ICO as mentioned above. Basically I used the same Sender SOAP channel in both the Inbound Processing of ICO and in the second ICO I used my local file system to send the final individual files. As per the below link(Possible cause 4:)
PI Messages are not delivered to SAP NetWeaver BPM - Technology Troubleshooting Guide - SCN Wiki
Today I re-imported my Service Interface from ESR and again created the BPM and deployed it successfully. But while testing I'm seeing the below Error from yesterday.
Note : I created wsdl file from my first ICO. I'm testing from SOPUI tool. -
Multi mapping and message splitting in BPM
Hi ,
I am working with this scenario ...
/people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
how many message interfaces i have to create .
one outbound , one abstract and two inbound .. is it correct.Hi
Minimum you need to create three message interfaces i.e. Bpm_In_MI_Abstract, aBpm_Out_MI_Abstract Bpm_Out1_MI_Abstract, because abstract interfaces can be use inbound and outbound as well.
You can also use create implement it by using inbound and outbound message interfaces. In that case you have to use three additional interfaces(1 outbound and 2 inbound).
Regards
Sami
Reward points if helpful. -
Hi all,
Am doing a collect message pattern using BPM. After collecting messages wen mapping is called its throwing exception. CAn you help me out in this. I ll explain.
the input i give is :
<Root>
<Name> asd </name>
<ID> A </ID>
</Root>
i sent thid message 5 times to BPM (using collect pattern).
the stop message is of the format
<Stop>
<ID> A</ID>
</Stop>
wen i send this the collect block is exited and the flow comes to a transformation step which does a n:1 mapping
ie. in my mapping i add the source message type and changed its occurence to unbounded in messages Similarly in IM also i changed the occurence of source MI to unbounded. wen i test the message mapping with this
<Root>
<Name> asd </name>
<ID> A </ID>
</Root>
as input it gives the exception. But if i gve like this ten its showing successful.
<?xml version="1.0" encoding="UTF-8"?>
<ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
<ns0:Message1>
<Root>
<Name> asd </name>
<ID> A </ID>
</Root>
</ns0:Message1>
</ns0:Messages>
But how can wedo that as transforamtion happens in BPM. PLease help me out in thisHi,
Check these links
/people/stefan.grube/blog/2006/09/18/collecting-idocs-without-using-bpm
/people/pooja.pandey/blog/2005/07/27/idocs-multiple-types-collection-in-bpm
http://help.sap.com/saphelp_nw2004s/helpdata/en/76/5d373f5e550456e10000000a114084/frameset.htm
Regards,
Kumar -
Problem in merging two files using BPM
Hello Frens,
I am doing a scenario for merging of two files N:1 using BPMu2026
I have to merge two files into one file. The two input files are as below :
File1 : Id, Name, Age, Place
File2 : ID, Street, Adrress
And output File is : ID, Name, Age,place, street, Address
For this scenario I have defined three datatypes , message types and the message interfaces as below :
For File1: Mi_file1_ob, Mi_file1_abs
For File2: Mi_file2_ob, Mi_file2_abs
For output : mi_output_ib, mi_ouput_abs
In interface mapping I have selected two source interface and one targetu2026
For Integration process I have selected two receives as two branches of fork and transformation to collect them and a send..
In IR part I have defined three communication channels sender1, sender2 and a receiver . I have imported the integration from IP and rest is sameu2026
I am facing a problem for getting the outputu2026
When I checked in sxmb_moni everything is fine and sxi_cache and the return code is also 0 but I am not getting the outputu2026
Can anyone help me in finding out the problem..
Thanks in advance...Hi,
Have a look into these blogs and links
/people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
http://help.sap.com/saphelp_nw04/helpdata/en/de/766840bf0cbf49e10000000a1550b0/content.htm
you can design the ccBPM. To know more about Correlation -with e.g
http://help.sap.com/saphelp_nw2004s/helpdata/en/0e/56373f7853494fe10000000a114084/content.htm
/people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi
/people/pooja.pandey/blog/2005/07/27/idocs-multiple-types-collection-in-bpm
/people/sriram.vasudevan3/blog/2005/01/11/demonstrating-use-of-synchronous-asynchronous-bridge-to-integrate-synchronous-and-asynchronous-systems-using-ccbpm-in-sap-xi
Re: Correlation
http://help.sap.com/saphelp_nw04/helpdata/en/a5/64373f7853494fe10000000a114084/content.htm
i hope this will help you.
Regards
Aashish Sinha
PS : reward points if helpful
Maybe you are looking for
-
How can I get my old 1960 face plate changed for a...
Hi I currently have broadband but we have the old style GPO "grey" octangular box with an extension socket coming off it, this is the line that is broadband enabled. Over the last two years I have tried to get the GPO box swapped out for a new one bu
-
Good morning. I need to send an e.mail reporting a problem with de Authorized Service Provider in Brasil. I contact Apple Brasil, but didn't solve. Someone know an Apple's USA e.mail i can use ? Thanks.
-
Preventing MRP for 541'd material
Hi all, Sometimes we send expensive spare parts to other companies in case of emergency, and get them back when they have it in a few days. When a material is sent to a vendor with 541 movement (Transfer posting unrestricted-use stock - stock of mate
-
Photo bundle serial will not work in lightroom 5.4.
I just bought a photo bundle membership but the serial number will not work in lightroom 5.4. I hade a tril version of LR5.4 which has now run out so I purchased the PhotoShop LightRoom bundle but the serial number will not activate LightRoom. I get
-
All, I am planning to use Net8 as a connection manager for an mts database. It will be on a separate server. I want to see if it will lower cpu footprint on the database by reducing the no. of connections on the database and off loading the work to M