Splitting of messages using BPM

Hi
Suppose we have a source Data structure with 3 nodes: Customer details, Site details and MPRN Details. Now I want to split the data into 3 data structures
( Customer Details, Site details and MPRN Details)  and want to send them to 3 individual systems. Basically I am using BPM to do this. But I heared that even we can implement this scenario without BPM. Could you plz confirm me whether it is possible to do this scenario without BPM ?? If so and if you have any blogs or links known plz do send me the same.
Thanks
Kumar

About Multi-mapping:
After the split using multi-mapping, the generated messages are sent using Adapter Engine. Thats why only those adapters could be supported which resides on adapter engine. Therefore, IDOC/HTTP adapters at inbound side is not supported
About the sender and receiver agreements:
The choice of sender agreement depends upon which information from the adapter configuration in the sender channel is required for successful inbound processing.
It is not obligatory for all adapters.
Receiver agreement is always required bcoz it is the responsiblity of the receiver channel to transform the XI compatible message to receiver compatible message.
Regards,
Prateek

Similar Messages

  • Splitting of fields using BPM

    hi
      my scenerio is about file to JDBC .  my flat file contains some 20 rows,just i want to split into 4 rows and then transfer into sql server.
      how i want to split the fields using BPM.
    thx in advance.
    Message was edited by:
            tamilarasan kandasamy

    Hi,
    <i>my scenerio is about file to JDBC . my flat file contains some 20 rows,just i want to split into 4 rows and then transfer into sql server</i>.
    is it 4 rows or 4 msgs..?? i hope , if 4 rows then it is merge , or it is split.
    Create the target structure as you required.Use the MM and IM to do accordingly, you can do without BPM.
    Any way see the below links to split.
    /people/jin.shin/blog/2006/02/07/multi-mapping-without-bpm--yes-it146s-possible
    /people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
    Various multi-mappings and Optimizing their Implementation in Integration Processes (BPM) in XI.
    /people/narendra.jain/blog/2005/12/30/various-multi-mappings-and-optimizing-their-implementation-in-integration-processes-bpm-in-xi
    Different types of Mapping in XI - /people/ravikumar.allampallam/blog/2005/02/10/different-types-of-mapping-in-xi
    Multiple mappings into one Im - Multiple message mappings in one integration scenario
    Regards
    Chilla..
    <i>Points rewarded if it is useful..</i>

  • Splitting Message using BPM

    hi,
    I am not able to see the split in BPM when using SWITCH.
    Scenario: IDOC->XI->Multiple Receivers with error handling using BPM
    In BPM SWITCH i have 2 steps.
    1st branch step has Transformation0, Receiver Determination0 and Send0
    2nd branch step has Transformation1, Receiver Determination1 and Send1
    Receivers will be differnt. Container elements have 2 receivers for Receiver0 and Receiver1
    When the IDOC is triggered i can see only one message in SXMB_MONI.
    I don't see any failure steps in SXMB_MONI_BPE.
    In the ID, i have 2 receivers configured.
    Why aren't the messages being processed?
    Thanks,
    Tirumal

    Hi Tirumal,
    Switch is condtional step. It is not for Split. It is like If-Else condition. If you want to split the messages in the same time, then go for Fork step.
    http://help.sap.com/saphelp_nw2004s/helpdata/en/24/e2283f2bbad036e10000000a114084/frameset.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/6a/db283fd0ca8443e10000000a114084/frameset.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/14/d5283fd0ca8443e10000000a114084/frameset.htm
    Hope this helps,
    regards,
    Moorthy

  • Split message using BPM

    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
    Sowmya

    Hi 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

  • Collect Messages using BPM

    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 this

    Hi,
    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

  • How To split large message using File Adapter

    Hello everyone,
    Here is my scenario FTP > XI > BI.
    I got 2 questions:
    (1) I am getting large message around 70 MB file.
        How we can split the message into multiple files 10 MB each before processing the file into XI?
    (2) Is there is any way we can find out size of file which is on FTP  without contacting FTP admin?    
        through XI before processing the file?
    Thanks
    Vick

    hi vick,
    check the blog
    Zip or Unzip your Payload with the new PayloadZipBean module of the XI Adapter Framework                                   
    Working with the PayloadZipBean module of the XI Adapter Framework
    SAP XI acting as a (huge) file mover                                   
    The specified item was not found.                                   
    Managing bulky flat messages with SAP XI (tunneling once again) - UPDATED                                   
    The specified item was not found.                                   
    regards
    kummari

  • Processing of multiple messages Using BPM

    Hello everybody,
    I am pretty much a newbie to this XI technology. I am currently testing a File to File scenario Concerning BPM. The source file contains multiple messages in an XML structure. How can each of these XML messages be posted as individual files? I have reffered to this <a href="/people/narendra.jain/blog/2005/12/30/various-multi-mappings-and-optimizing-their-implementation-in-integration-processes-bpm-in-xi on BPM as a guideline; but here the number of messages are restricted and I want to dynamically determine how many messages are contained in the XML file. Anybody has any idea how to achieve this?
    Thanks and Warm Regards,

    Hello,
    The blog you mentioned is for cutting one file into 2 files.
    I think you need to use the "<b>ParForEach</b>" step in the BPM. This step is used to loop on a multiple line message and create a single message in one branch. Then you can add a send step in this branch and end only one message.
    <u>See the Flight Demo :</u>
    http://help.sap.com/saphelp_nw04/helpdata/en/5a/cede3fc6c6ec06e10000000a1550b0/frameset.htm
    <u>Object in IR :</u>
    BASIS -> http://sap.com/xi/XI/Demo/Agency -> BPM -> MultipleFlightBookingCoordination
    Regards,
    Chris

  • Splitting xml message using XSLT

    Hi,
    I have XML message that I want to split up using XSLT. Following is the structure of the XML message.
    <Meters>
    <Meter>
    <ID>1</ID>
    <Type>A</Type>
    <Reading ref="1A" />
    </Meter>
    <Meter>
    <ID>2</ID>
    <Type>A</Type>
    <Reading ref="2A" />
    </Meter>
    <Meter>
    <ID>3</ID>
    <Type>B</Type>
    <Reading ref="3B" />
    </Meter>
    <Reading>
    <refLink>1A</refLink>
    <quantity>Watts</quantity>
    <value>221.00</value>
    </Reading>
    <Reading>
    <refLink>2A</refLink>
    <quantity>Wh d</quantity>
    <value>0.00</value>
    </Reading>
    <Reading>
    <refLink>3B</refLink>
    <quantity>Wh r</quantity>
    <value>3.00</value>
    </Reading>
    </Meters>
    The split up should happen on the <Meter> tag. Currently, this message has three <Meter> elements. The output should result in 3 different XML messages each having its own <Meter> element. Also, please note that each <Meter> has <Reading> which is linked to the actual <Reading> data using "ref" attribute and "refLink". The value of "ref" attribute will be unique through out the XML message.
    Expected output: 1.xml
    <Meters>
    <Meter>
    <ID>1</ID>
    <Type>A</Type>
    <Reading ref="1A" />
    </Meter>
    <Reading>
    <refLink>1A</refLink>
    <quantity>Watts</quantity>
    <value>221.00</value>
    </Reading>
    </Meters>
    and similarly 2 more XMLs.
    Please let me know if anyone has done this kind of work in XSLT.

    You are right I see that xsl:document is in 1.1 recommendation, but was referred by
    XSLT books I have.
    I found one site that's explaining this
    http://www.vbxml.com/xsl/elmxsl_document.asp
    http://www.w3.org/TR/xslt11/#multiple-output
    I am almost trying now to reverting to using java.util.regex and doing the split
    brutforce.. :))))
    - Ravi

  • Doubts in validating message using BPM

    1)Have to check the response message has not been sent twice for the same id,
    if wrong stop processing the message further.
    2)Have to check the values coming in message is valid or not by comparing the values with R/3 table.
    3) When sending Email alert, some of the values of the invalid message also has to be send with alert.
    4) Have to check the details sent back and sent are same.
    eg: if i send vendorid and some more values for which inturn they sent back are same
    or not.
    5) I have configured deadline branch there I have given the alert category, description.
    I have configured only one recipient for the alert. so if delay in response am getting the mail in particular id.
    So when i send message to particular system its fine.
    But in my scenario, one system connected to more than four system.
    When i send message to morethan two system how to send email alert to particular
    system where delay to send response.
    Can anyone guide me how can i approach these validations.
    Thanks in advance,
    Sakthi

    Hi,
    1)Have to check the response message has not been sent twice for the same id,
    if wrong stop processing the message further.
    --> If you have a synchronous call you EVER have just one reponse message. So in SYNC this should not be necessary. In ASYNC mode you don't have a response, so this is also not neccessary
    2)Have to check the values coming in message is valid or not by comparing the values with R/3 table.
    >>>You need a RFC in R/3 that gives you table records. In this case see, if a RFC is already available; otherwise you have to develop the RFC
    3) When sending Email alert, some of the values of the invalid message also has to be send with alert.
    >>> Design a sender step and send the interface which caused the error. The message will be attached.
    4) Have to check the details sent back and sent are same.
    eg: if i send vendorid and some more values for which inturn they sent back are same
    or not.
    >>> I would suggest that you inspect the samples delieverd by SAP. In Integration Repository goto SWC SAP BASIS. There are samples.
    5) I have configured deadline branch there I have given the alert category, description.
    I have configured only one recipient for the alert. so if delay in response am getting the mail in particular id.
    So when i send message to particular system its fine.
    But in my scenario, one system connected to more than four system.
    When i send message to morethan two system how to send email alert to particular
    system where delay to send response.
    Regards Mario
    null

  • 1:N split using BPM - ReceiverDetermination step

    Hi, I am trying the following blog to split message using BPM.
    /people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
    Branch 1:
    A Receiver Determination step returns set of receivers configured for the outputabs interface in the directory and puts it into receiver which is a multiline container receiver element.
    A send Step sends the output to the corresponding receiver that is got from the receiver element receiver.
    Question:  I am stuck in reciver determination step of Fork. Please eloborate on "multiline container reciver element". How to define "receiver" and "reciver1" ?
    As always, your help is greatly appreciated. Thank you

    Look into the SAP Basis Compoenent in your IR.
    Drill to the Namespace --> http://sap.com/xi/XI/System/Patterns --> Go to the Integration PRocess --> Mutlicact Parrel / Sequeential and you can see a demo Integratioon process showing how to use the Receiver Determination step along with the Block to send data to each of the receivers.
    Define a Conatiner Element of type Receivers . This should be a mutliline element.
    In the receiver determination step , use this container element against the Receivers field.
    Now, in your Block , select the for each / par for each element as this Receiver. You will also need to create another Element for the Recieve type and use this against the current line in the block.
    Regards
    Bhavesh

  • Corelating messages using the Dynamic Values

    Hi all,
    I want to collect message using BPM.I have sucessfully executed the same using corelation from one of the fields.The ID field was used for corelation
    I was able to sucessfully execute the senario the messages with same ID were going to same process ID and getting collected as well
    Now i wanted to have some dynamicconfiguration parameters for eg i thought i can use the filename.That is collate the messages using the filename.
    I changed the corleation and tried but for each messages even with the same file name its creating a different process ID and thus my messages are not collected at all.
    To tel you more about the senario i created its a file to file with BPM collecting the messages. i send the first file and then the second file also with the same file name.
    I have configured the AdapterSpecific Attributes and able to view the filenames in the XML Messages header
    Can anyone put some light as too why there are different Process IDs being created.I heard in some of the forums that its an error in some of the SPs
    I am on XI 7.0 SP11 and think it should not be a problem.
    Thanks in Advance
    Rgds
    Aditya

    thnks for ure replies
    But all of the above steps are checked
    It seems that i have given the right co-relation as well but still dnt knw y i'm not able to collect the messages
    The loop is defined to complete after a fixed count and the container variable increments by 1 after each loop
    The senario works perfectly if i use any field corelation to collect the messages but fails when i use a dynamic value like filename. And yes i have double checked the filename they are same
    Rgds
    Aditya

  • Splitting of messages

    Hi
    I have a 80MB file and want to split that into 4 files (20MB each). Is it possible to split the message using file-xi-file scenario ?? I mean 4 files to be printed in target folder.
    Regards
    Kumar

    Hi Kumar !
    Yes. You should set the "Recordsets per Message" parameter of the File adapter SENDER. It should be the amount of recordsets you want XI to put per XML message. If your source file has 80mb and that is for example aprox. 1.000.000 recordsets/records, then you should do the math to set the amount of recordsets to match aprox. 20mb (aprox. 250.000 recordsets will be about 20mb!!!).
    To use this feature, you must activate the file content conversion in message protocol of the comm channel settings. Also set "Recordset Structure" as "your_recordset_name, 1". Create a data type/message type according to your recordset structure. You also can process the file as raw, that is, all record data, as only one big field.
    check this:
    /people/sravya.talanki2/blog/2005/11/29/night-mare-processing-huge-files-in-sap-xi
    Regards,
    Matias.
    PS: please award points if helpful!
    Message was edited by:
            Matias Denker

  • 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,
    Ram

    Hi,
    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

  • 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
    Praba

    Hi 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

  • 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
    manian

    Hi 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

Maybe you are looking for