Do I use BPM correlation correctly

I have a BPM and it calls 3 RFCs
Sender -> BPM -> RFC1(sync) -> RFC2(sync) -> RFC3(sync)
And the data is master/detail, but the sender send by detail, not master. It means, if a master has 3 details then sender sends 3 messages to BPM. But I don't want to run the 3 messages parallel.
Therefore, I use the master no. of the detail message as a correlation in BPM, is it correct? Because I found sometimes I still get parallel BPMs.

Hi Denis,
  sorry it is not really clear to me do you mean that if you have 3 details you want them to be inside one BPM which would perform 3 succesive RFC calls?
  Then correlction have to be build on master level
BR, Artem
Remember points

Similar Messages

  • File to SOAP Scenario Using BPM

    Hi,
    I am doing File to SOAP scenario using BPM.
    while doing Integration Process in IR, i got the following error message
    "Expression of simple type xsd:string expected"
    But i have given xsd:string in the correlation element as well as in Data types.
    I dont know why it is getting the error.
    could you anyone please help me to sort out?
    Regards,
    Sai Ch.

    Hey,
    Check in the correlation editor, where you define the condition.
    Whether the data type of the XPath is string and whether it matches with the data type of the messages that you have selected.also make sure the type of the correlation variable is string.
    regards,
       Milan

  • N:1 Multimapping  using bpm

    hi all,
    i am doing multiple file to single file that is n:1 mapping using BPM. please send me link for the same or give some suggestion regarding this.
    thanks ,
    Anup Banerjee

    Hi,
    You can use any of the collect message pattern provided. In your case any one of the following can be used:
    1. BpmPatternCollectMessage
    2. BpmPatternCollectTime
    ->There are some patterns in SWC : SAP BASIS --> namespace : http://sap.com/xi/XI/System/Patterns In ESR of your SAP PI System.
    -> please go through this blogs it will help you.
    Correlation – Runtime Behavior of BPM.
    http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/10526. [original link is broken] [original link is broken]
    In Configuration By using of BPM.
    -> two communication channels one for sender and one for receiver
    -> 2 receiver Determinations
    one for Sender to IP.
    One for IP to Receiver.
    -> 2 Interface Dtermination
    one for Sender to Ip
    one for IP two Receiver
    -> 1 Sender agrement.
    -> 1 receiver agrement for (IP to Receiver)
    regards,
    ganesh.

  • Error: 1:n multi-mapping using BPM for file to file scenario

    Hi. Iu2019m trying to do 1:n multi-mapping using bpm scenario. I use file to file. Input file consists of many records and then I want many record to be transformed into many file at target system. I follow step in http://www.riyaz.net/blog/xipi-1n-multi-mapping-using-bpm/. However, I have a problem when file is retrieved in to XI. It doesnu2019t create any output file.
    When I look at SXMB_MONI, it shows u201CNo object type found for the message Check that the corresponding process is activated.u201D Besides, it shows error message "Unable to perform action for selected message" when i clikc at PE in SXMB_MONI.
    I have check at many previous posts with the same error message but still couldnu2019t solve it. I already activate my BPM and check that status in SXI_CACHE = 0. There is noting left in change list of my IR and ID.
    Here is my design and configuration.
    IR
    Data Type: DT_file_split -> for both input and output file
    Message Type: MT_file_split_sender, MT_file_split_receiver
    Message Interface: SI_file_split_in, SI_file_split_out, SI_file_abs_source, SI_file_abs_target
    Message mapping: MM_file_split for mapping MT_file_split_sender with MT_file_split_receiver
    Interface mapping: OM_file_split
    u2022     Source = SI_file_split_out
    u2022     Target = SI_file_split_in
    u2022     Mapping Program = MM_file_split
    BPM following this link http://www.riyaz.net/blog/xipi-1n-multi-mapping-using-bpm/.
    ID
    Import my Integration process
    2 Communication Channel for getting input file (CC_File_split_sender) and creating output file (CC_File_split)
    2 Receiver determination:
    u2022     Source system to BPM using interface SI_File_Abs_source
    u2022     BPM to target system using interface SI_File_Abs_target
    1 Interface determination:
    u2022     from source system to BPM
    u2022     Sender interface: SI_File_Split_Out
    u2022     Receiver interface: SI_file_abs_source
    1 Sender Agreement
    u2022     Commu. Component: Source System
    u2022     Using interface: SI_File_Abs_source
    u2022     Sender Communication Channel: CC_File_Split_Sender
    1 Receiver Agreement
    u2022     Sender Communication Component: BPM
    u2022     Receiver Communication Component: Target System
    u2022     Receiver Interface: SI_File_Split_In
    u2022     Receiver Communication Channel: CC_File_Split
    Anyone know how to fix this?
    Thanks,
    Pavin

    Hi,
    Yes, thats the problem.
    You are creating file from test tab of  1..N mapping .
    In case of 1..N mappping in mapping Extra tags of messages are addded to the data.As shown here:-
    Messages
          Message1
               MessageType
    When you use this mapping to generate xml message then it will add additional tags for <Messages> and <Message1>, which is not correct. it should only have structure of you MT.
    So remove start and end tag of <Messages> and <Message1> from your data file. Mentioned below in bold.
    <xml......>
    <Messages>
    <Message1>
    <MT_...>
    </MT_...>
    </Message1>
    </Messages>
    This should solve your problem.
    Regards,
    Sami.

  • 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

  • BPM Correlation from Dynamic Configuration not being filled

    Hey guys,
    I'm having the following problem with BPM correlation.
    In my correlation definition, I have 2 fields: one which is filled with information from the message payload, and another one which is filled with a context object (which was created with adapter metadata and filled with dynamic configuration, as refered here: /people/michal.krawczyk2/blog/2006/10/09/xi-dynamic-configuration-in-adapter-modules--one-step-further).
    All instances of BPM are with error status. And when I go into the workflow log for these processes, if I check the correlation object, it is like this:
    <?xml version="1.0" encoding="utf-8" ?>
    <CorrelationKey Version="001">
    <Field1 />
    <Field2>123456789</Field2>
    </CorrelationKey>
    Field1 is the one read from context object, and is not being filled (thus I think the error comes from here). Field2 is from payload and is being normally filled.
    Any ideas on this matter?
    Maybe the problem is not from the correlation. If not, what else could be the case? The BPM crashes on the very first step (one more reason to think that the correlation is the issue).
    Thanks in advance,
    Henrique.

    HI,
    In general Correlation , concept, whatever we configured in Correlation editor , i mean in runtime which xml element should filled with which element of which interface ..as you said you have configured the local correlation to block, in block it is the first receive step, while receiving the first message which is relevent to first recieve step , i mean if it receives the one message which is related to first receive step inteface .. the respective element data will be filled in correlation id and it will assign on giud for processing , so while assign the runtime data to correlation element ( imean filling stage) check you said two elements in correlation does the first message contains these two elements ??
    if so ok , no then check , and try to use the IM before calling the IP to fill the payload.
    Regards
    Chilla
    Oh closed!!
    Message was edited by:
            Chandra Sekhar Chilla
    Message was edited by:
            Chandra Sekhar Chilla

  • Xpath in BPM correlation. Have to pass only few characters of a field in co

    Hi All,
    Header file:
    MDk-111;1728;175;02.09.11;781961.09;0.00;0.00;781961.09;;;;;;;;;0
    MDk-112;8574;175;02.09.11;4462;1112;104098800;104102150;;;;;;;;;2
    MDk-113;1729;175;02.09.11;781962.09;0.00;0.00;781961.09;;;;;;;;;0
    MDk-114;8575;175;02.09.11;781963.09;0.00;0.00;781961.09;;;;;;;;;0
    Detail file:
    MDk-112;8574;175;02.09.11;;DEBIT;;;;;-1112;;0;02.09.11;;;;20555;;;037;
    MDk-112;8574;175;02.09.11;;CREDIT;;;;;104098800;;0;02.09.11;;;;;;;099;
    - I have to merge header and detail records into one target structure..
    - For the records which doesn't consists of detail records should pass only header record. ex: MDk-113
    - To merge the both the files, im using BPM with correlation.
    The correlation which i need to use in BPM is the first record in both the files "MDk-XXX" where XXX is the number which may or may not match in both the files.. So i need to pass only first four characters of the first filed in the correlation ie. "MDK-".
    After file content conversion, the input xml payload will be as below
    <Code>MDK-112</bankCode>
    How can I pass only first four characters of this field ("MDK-") in Xpath in the correlation tab?
    Kindly suggest.
    Thanks
    Deepthi

    Hi Deepthi,
    You can send the substring of the Code value. This is explained in the following WIKI, have a look at this.
    http://wiki.sdn.sap.com/wiki/display/XI/XpathConditioninReceiverDetermination
    regards
    Ramesh

  • 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

  • Problem: Merging same Files into 1 File using BPM, Receiver File empty.

    Hi All,
    I am trying a scenario where I need to merge two similar files into one single file (Append) using BPM
    I am following the same structure as defined in the predifined BASIS Namespace i.e.  http://sap.com/xi/XI/System/Patterns for Integration Process BpmPatternCollectPayloads. The only thing I changed is that inside my loop I am having a container dat counts till 2.
    Now when m testing d interface, the file @ reciver directory is generating, but without any data i.e an empty xml is generating. PI is also not showing any error anywhere.
    My Message mapping structure is as follows:
    Sender Side:
    <Message>    (1..1)
       <Message1>  (1..1)
           <MT_myMessageType>  (0..unbounded)
                    <Records>  (1..1)
                            <Id(Used for correlation)> (1..1)
                            <Name>   (1..1)
                            <Address>  (1..1)
    Receiver Side:
    <Message>    (1..1)
       <Message1>  (1..1)
           <MT_myMessageType>  (1..1)
                    <Records>  (0..Unsbounded)
                            <Id(Used for correlation)> (1..1)
                            <Name>   (1..1)
                            <Address>  (1..1)
    Can anyone plz help me.

    Inbound Message after PE, is empty, so the Request Message Mapping (Technical routing) step is also showing a Empty XML without any structure.
    So you mean to say The inbound Message for BPM -
    > File is empty?.....this clearly means that
    1) the transformation step in BPM is not producing the required XML
    2) some validation is imposed in the mapping...which if not satisfied is not creating the target structure.....
    Can you ensure that the transformation step outside the block is working properly....and that your BPM design is exactly same as in BpmPatternCollectPayload (except the number of times the loop is executed)......
    just few days back even i was stuck in a similar situation....the transformation step outside a Block was not producing a particular element in the target......i made some dummy changes in the mapping and then again included in the transformation step and then my BPM worked fine.......so the conclusion is either the data from block is not going into the transformation step or the transformation step is not creating the target.....
    Regards,
    Abhishek.
    Edited by: abhishek salvi on Jun 30, 2009 12:10 PM

  • RFC using BPM

    Hi People
                 I am trying to create File to RFC by using BPM, i got 1 blogs form Arpit Seth this is good but i am confusing in ID only i created 1 business service in that i created 3CC 1 is RFC receiver, 2 is File sender 3 is File is receiver this processes is correct are not, and also i am getting problem in Sender agreement, receiver agreement, and receiver determination, interface determination.
                    Pls tell me the process for this scenario  don't send Arpit Seth blog 
    Regards
    shekar

    Hi people
    i am getting this problem pls tell me the solution for this
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Receiver Identification
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="RCVR_DETERMINATION">NO_RECEIVER_CASE_ASYNC</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>No receiver could be determined</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    regards
    shekar

  • File merge using BPM

    Hi,
    I am trying to merge few files using BPM . I have tried for splitting the files . Can any one guide me how to proceed with the correlation and Receiver Determinations.

    hi,
    chek the below blogs,
    /people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm
    /people/narendra.jain/blog/2005/12/30/various-multi-mappings-and-optimizing-their-implementation-in-integration-processes-bpm-in-xi
    Using a BPM to collect messages for a set interval of time                              
    /people/daniel.graversen/blog/2006/09/07/using-a-bpm-to-collect-messages-for-a-set-interval-of-time                              
    Illustration of Multi-Mapping and Message Split using BPM in SAP Exchange Infrastructure                                                  
    /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
    regards
    chandra

  • Using BPM (Blocks) when Incoming message has multilple rows

    Hi All,
    I am using BPM in my scenario.I have a message with multiple rows coming.I want to check for a condition for each row of the incoming message.I am trying to use a block(Mode: For Each) and using a switch step inside this block.But in a block if u want to check for each line, we need to define a multiline container element as Source Interface message.Since I am already having multilple rows, I cannot give multiline option.Can someone give me some example scenarios where this type of scenarios are handled.
    Thanks in Advance.
    Soumya

    Hi,
    Here I am picking a file with multiple rows
    The Sender Message Type structure is
    <ns:File_MT xmlns:ns="http://File/send">
      <recordset>
        <Slno />
        <Goods_Receipt_Date />
        <Material_Code />
        <Quantity />
        <Plant_Code />
        <Storage_loc />
        <Batch_Number />
        <PO_Number />
        <Item_Number />
        <Special_Stock_Indicator />
      </recordset>
    </ns:File_MT>
    Here the row recordset has multiple occurences.
    For my BPM I have defined an Abstract Message Interface of similar structure.
    1)I am using a receive step to receive the message.
    2)I am using a transformation step for structure change.
    3)Then I have to check a condition whether each of the fields, ie material number,plant code etc are null or not.
    I am using a switch for that.In the switch I have 2 branches-for error records and correct records.
    Now in the eror record branch, I want to append error records to a container using a container operation and finally send it to another system.
    Since my Source message is already having multilple rows.ie 0...unbounded for recorset, I can't define a multiline for container operation.The container operation expects a multiline container element when using append statement.
    How should I go about this?Should I define a Loop after the transformation step?
    Can you give me any example scenarios where transformation steps are used to change a source message with mutilple rows are used?I referred the FlightBooking Example, http://sap.com/xi/XI/Demo/Agency-SplitMultiplebookingOrder but in that they are not using the MessageTypes which are already defined, in the mapping.
    Can anyone help?
    Thanks and Regards,
    Soumya.

  • Bundling of idocs using BPM

    Hi
    If you are using BPM to bundle the idocs and send them in file format to target system.............. here we can think of 3 different options on which we can bundle
    1. Payload based
    2. Message based
    3. Time based.
    Could you plz confirm me if we can achieve all these 3 options even without BPM in the application system ?? If we can achieve this in the applicaiton system itself ........are there any situations in which we are foced to use BPM for this particular scenario (Bundling of idocs)
    Thanks
    Kumar

    Hi Kumar,
    Very simple example which  I had faced....
    If you bundle idocs are application level..i.e. by setting XML port to collect idocs you will have multiple Control records i.e. control record for every idoc where as if you bundle them using BPM you can have only one control record. ( which we need most of the time while bundling idocs.)
    Also in BPM you can set correlation on payload data. You can have multiple condition here...but at application level you do not get that control. Basically I think you get a control over Payload in BPM and you can play as you want.
    Again even at application level if you try to bundle large number of idocs it will give you memory dump ( in sap)..
    But bundling idocs at application level is faster process than BPM.
    Nilesh

  • Cons of using BPM

    Hi All,
    I know BPM is used when I need to implement a scenario which needs stateful processing. Also BPM is used when I need to go for a synchronous-asynchronous bridge. Also BPM supports good error handling.(Pls correct me if I was wrong any where)
    When BPM provides me a lot of advantages why should i avoid using BPM as far as possible. Coz when I go through some previous threads a lot of experts advise not to go for BPM. Can you pls tell me why is that? Any docs where I can find cons of BPM would be of great help.
    Thanks & Regards,
    Jai Shankar.

    Jai,
    The mappings in XI get executerd on the Java Stack, whereas the BPM is executed in the Business Process EnNgine , which is a part of the ABAP stack.
    So, a BPM has multiple calls between the JAVA and ABAP stack and causes a performance bottleneck
    Like you mentioned BPM provides Stateful Message Processing and from what I have seen, normally during design stages of any XI Interface, when the choice is between whether to go for a BPM or not , the following questions are asked,
    1. What is the number of times the interface will be run per day.
    2. Can the interfaebe implmeneted without a BPM and if yes, then what is the approach and what is the disadvantage of avoiding a BPM.
    ALso, http://help.sap.com/saphelp_nw04/helpdata/en/43/d92e428819da2ce10000000a1550b0/content.htm
    Just check the Step types with low and high resource consumption and normally , the decision is based on the entire flow and the requirement of the interfaces.
    Regards,
    Bhavesh

  • Bpm : correlation

    hi all,
    I am sending a PO request using the send step and waiting for a PO response using the recieve step.
    Assume that i have two instances of this BPM running i.e two PO request's going simultaneously.
    when i get the response back for these two requests , there will be two recieve steps waiting for
    the response since there are two instances of BPM running. the response need to be assigned the
    corresponding requests. This is where correlation comes into picture. I can use PO number as my
    correlation field. i.e I activate my correlation in the send step and use this correlation in receive
    step (this is configurable in BPM).
    Example: PO number needs to be part both request and the response message structure.
    BPM instance1:
    send step -> activate correlation -> send message with PO Number1
    Receive step -> use correlation -> receive response message with PO Number 1.
    BPM instance1:
    send step -> activate correlation -> send message with PO Number2
    Receive step -> use correlation -> receive response message with PO Number 2.
    can anyone suggest me the example scenario or similar scenario of this case.
    thanx

    Hi,
    Cant you use  sync send step..
    Regards
    Pushkar

Maybe you are looking for

  • Error in generating quota for unpaid leaves

    hello gurus, I have 3 Absence Quotas - (1) Annual Leave    (2) Long Service Leave     (3) Sick Leave I have attached the same reduction rule for all 3 abs quotas I generated Leave without pay for a day in the month of May 2011. When generating quotas

  • ISE and Node Groups

    Hi, Does anyone know if node groups are purely for policy server nodes behind a load balancer such as ACE.  If you have a pair of policy server nodes at a site with no load balancer, and both nodes configured in all NAS's can these be in a node group

  • Help needed on webservice

    Hi All There a more than one methods in my web service I want to call a particular Method using soap. If there is way then what is the procedure to call a particular Method Thanks Ranjith

  • ADE Activation & Adobe ID Problem

    Please help... I too am one of those who bought a Sony Digital Reader for Christmas thinking that by moving to EPub format I might avoid all the problems that have plagued me with ADE and its repeated activation requests.  Now I find that you just ca

  • Error message : B2 050: Change pointer ID already exists

    Hi Expert, Now , in our one client, whenever the user save any change, the system will popup one screen " Express document "Update was terminated" received from author " XXXXXX " The error message is " B2 050: Change pointer ID already exists " Actua