Mapping in BPM: how to merge results of receive steps into send steps

Hello,
we need the following BP:
1. async. Receive Step: receive an IDoc
2. sync. Send Step: WebService request using the content of an IDoc field.
The WebService returns some data we need for the destination structure.
3. Transformation???
4. async. Send Step: we have to <b>merge</b> and map the Idoc fields and the
resulting fields of the WebService into the destination structure.
What are the basic steps and objects therefore?
IDoc-message            X  --> |
WebService-message Y  --> |   -->  Z dest-message
Out problem is, how an where to get access to both Source Messages to merge them for the destiniation message?
Regards
Gunnar

<i>1. async. Receive Step: receive an IDoc
2. sync. Send Step: WebService request using the content of an IDoc field.
The WebService returns some data we need for the destination structure.
3. Transformation???
4. async. Send Step: we have to merge and map the Idoc fields and the
resulting fields of the WebService into the destination structure.</i>
>>>>
1. async. Receive Step: receive an IDoc - OK
2. sync. Send Step: WebService request using the content of an IDoc field.
The WebService returns some data we need for the destination structure. - OK
3. Transformation - this transformation step will have 2:1 mapping. source would be IDOC and response of WS mapped to result.
4. async. Send Step: Send the result

Similar Messages

  • Very urgent .. how to merge more than one pdf into one pdf

    Hi,
    I have one problem how to merge 2 pdfs into one pdf.please help me.
    thanks,
    suneel

    If I use Itext iam able to merge 3 pdfs into one pdf,but problem is it was adding like 3 differnt pages in pdf.I want merge based on contents ,in this case it was adding page by page.
    thanks

  • How to merge multiple live audio streams into a single stream in FMS?

    I need to merge multiple live audio streams into a single stream so that i can pass this stream as input to VOIP through a softphone.
    For this i tried the following approach:
    Created a new stream (str1) on FMS onAppStart and recorded the live streams (sent throgh microphone) in that new stream.
    Below is the code :
    application.onAppStart = function()
    application.myStream=Stream.get("foo");           
    application.myStream.record();
    application.onPublish = function (client,stream)
          var streamName = stream.name;
          application.myStream.play(streamName,-2,-1};
    The problem is that the Stream.play plays only 1 live stream at a time.As soon as a the 2nd live stream is sent to FMS then Stream.play stops playing the previous live stream.So,only the latest live stream is getting recorded.Whereas i need to record all the live streams in the new stream simultaneously.
    Any pointers regarding this are welcome.
    Thanks

    well i tried this once for one of my scripts and the final conclusion is its not possible to combine two streams into 1.....how would you time/encode the two voices......there is no know solution to this in flash. If you continue on despite me and find a solution please post it so we can explain to rest of world.

  • BPM - How to merge  IDOCS

    Dear friends,
      In BPM i am collecting some 30 idocs. I want to merge the  idoc in the recevier side as a single idoc. How can i achieve this......

    Hi,
    See the BPMCOllect Pattern for the details.
    It is available in BASIS SWCV in your XI.
    Example: Collecting and Bundling Messages - One Interface
    http://help.sap.com/saphelp_nw04/helpdata/en/08/16163ff8519a06e10000000a114084/content.htm
    Example: Collecting and Bundling Messages - Multiple Interfaces
    http://help.sap.com/saphelp_nw04/helpdata/en/0e/56373f7853494fe10000000a114084/content.htm
    Regards,
    Akshay.
    reward points if find useful.
    Message was edited by:
            Akshay Jamgaonkar

  • How to merge standard and Custom BADI into one BADI..

    Hello all,
    I have two BADI's.
    1) standard BADI
    2) Custom BADI
    I need to merge these two into a single BADI. Is that Possible.
    If yes how to move forward, because I am new to BADI.
    Waiting for reply.
    Subba

    Solved...created a new implementation for this...

  • How to merge two separate Muse files into one file?

    Have 220 pages built for a website, client wants to add another 180 pages. The Muse file is already slow to load and cumbersome to work with at 220 pages, it's going to be much worse at 400 pages. Is there a way to create two separate Muse files and then merge them prior to publish (or at publish, or post-publish). The only other solution I have is to build the second batch of pages in a separate file, then copy them into the main file one by one. Is there a batch copy/paste? Is there a merge?

    Hello,
    It's not possible to merge muse files as such. The pages have to either be created in the same file or they must be copied over individually later on from the other file to this file.
    Cheers
    Parikshit

  • How to merge two seperate free space into single partition/volume???

    Hey guys :)
    Please help me on merging two unallocated free spaces in my internal harddisk. I already tried searching for options in diskmanagement but nothing found to do that. The harddisk has two free spaces(1gb and 50.78gb) now, I want to merge them into single one
    and finally as a single parition/volume. Is there any other method or should use any other third party tool?
    I really wanted to attach a screenshot but sadly microsoft couldn't allow me.

    JAJ
    You need a third party tool like Easeus Partition Manager
    Wanikiya and Dyami--Team Zigzag
    Sure I'll try that. Thank you very much :)
    But it is really sad to say that it is real drawback of windows as it doesn't have its own choice in diskmanagement utility.

  • BPM with variable number of initial receive steps

    Hi guys,
    I have a scenario where an external Web Server sends XML messages over HTTP to XI.
    It may be the case that the number of messages that concern a single request is one, two or three.
    Messages are correlated through a unique key. 
    Since this is HTTP communication I do not need neither sender agreements nor sender communication channels.
    How could this be implemented with BPM ?
    Of course the sender system should specify the complete URL name when submitting the request(s).
    Evaggelos

    Configure ur BPM as payload dependent or message-dependent. In payload dependent, u will have to specify the no of messages. In message dependent, u ll have to specify the indicator in message indicating the end of messages.
    http://help.sap.com/saphelp_nw04/helpdata/en/08/16163ff8519a06e10000000a114084/content.htm
    Regards,
    Prateek

  • How select an e-mail receiver which should send back delivery notifIcation

    Often happens that I send an e-mail message to several addresses but not all of them I expect should send me a delivery/receiving notification. How can I control this? How to select the message receivers don't need to send me the notifications back?

    Make sure the user name contains a valid ''@'' symbol and a domain like gmail.com
    For example ''[email protected]'' or
    ''[email protected]''

  • Mapping in BPM

    Hey guys
    suppose i m doin a  async FIle to File sceenario using BPM(jst for educational purpose)both sender and receiver have different structure.
    here is how i m trying to design this scenario
    DATATYPES
    DT_sender ,DT_receiver
    MESSAGETYPES
    MT_sender,MT_receiver
    MESSAGE INTERFACE
    Outbound async,Abstract async,Inbound,async,Abstract,async.
    MESSAGE MAPPING
    Outbound async<-> Abstract asyn (mapping 1) and Inbound asyn<->Abstract async.(mapping 2).
    INTERFACE MAPPING
    Outbound ayns<-> Abstract asyn(using mapping 1) and Inbound asyn<->Abstract async.(using mapping 2)
    and then in BPM
    Start>>Receive>>Send>>Stop.
    Please let me know if my design serves the purpose.my main concern is for message mapping and interface mappin.
    is it because BPM takes care of mapping that we dont define a mapping between Abstract<->Abstract interface?
    also will the flow be something like this
    DT_sender>>MT_sender>>Outbound async>>Abstract async>>BPM>>Abstract async>>Inbound async>>MT_receiver>>DT_receiver
    thanx
    ahmad

    Hi Ahmad -
    >>>why i m making just one abstract interface even my sender and receiver are different
    In your scenario, you're not really doing anything within the BPM (just a pass through from Receive step to Send step).  In that sense, you can essentially accomplish this scenario without having BPM in between at all - same result if you take BPM out.  But since you're just testing and getting a feel for it, this is fine.
    <i>>>>why i m makin that one abstract interface make use of target message type of mapping</i>
    Before message is sent to BPM, you mentioned you're going to have a mapping.  Since you're BPM process is the receiver initially, the process will receive mapped message.
    ><i>>>Message mappin
    >>>DT_sender<->DT_receiver</i>
    Use MTs here.
    Regards,
    Jin

  • How to put another Receive step in middle of BPM

    Hi Experts,
    i built a BPM in PI 7.0, in this i used a Receive step to start the BPM. in the subsequent steps this message has sent to the extrnal business sytem through the Send step. there it processes. then after some time this business system will send another message to the PI ( same BPM). so that i put a Receive step after the Send step and followed by remaining BPM steps for further processing.(My intention is this Receive step should receive the responce messageg from the same Business system). i did all the configuration steps.
    but while execution the following error occured.
    <?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>
    though i configured the proper recever detrmination.
    can anybody tell me, how to resolve this?
    Thanks in advance.
    Kumar

    hi Udo,
    i am explaining about message flow:
    first the message comes from the http client to PI,then go to BPM as Receive step, then a Trasfermation step. then a Send step to send this message to the SAP R/3 ECC 6.0 (Async Receiver proxy). there this message will be processed (say some Application). after some time this Application sends a processed message back to the PI (BPM) as sender proxy message (Async). To receive this message i used a Receive step after the Send step. and also the remaining BPM steps are continued....
    here the problem is, a Business system BS_HE6 is defined in the SLD to the corresponding ECC 6.0.
    but while execution, (SXMB_MONI)
    message from http client to the PI (BPM) is success full.
    message send to the ECC 6.0 is successful, (receiver proxy)
    message from the ECC 6.0 to PI (BPM) (Sender proxy) is showing error as follows.
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Receiver Identification
      -->
    - <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SAP="http://sap.com/xi/XI/Message/30">
    - <SOAP:Header>
    - <SAP:Main xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" versionMajor="003" versionMinor="000" SOAP:mustUnderstand="1" wsu:Id="wsuid-main-92ABE13F5C59AB7FE10000000A1551F7">
      <SAP:MessageClass>ApplicationMessage</SAP:MessageClass>
      <SAP:ProcessingMode>asynchronous</SAP:ProcessingMode>
      <SAP:MessageId>88B06F57-9673-DB45-9B71-BE954EC23A3A</SAP:MessageId>
      <SAP:TimeSent>2009-01-21T12:27:17Z</SAP:TimeSent>
    - <SAP:Sender>
      <SAP:Service>BSHE6_LS</SAP:Service>
      <SAP:Interface namespace="urn://LPOC">wf_resp_mi</SAP:Interface>
      </SAP:Sender>
      <SAP:Interface namespace="urn://LPOC">wf_resp_mi</SAP:Interface>
      </SAP:Main>
    - <SAP:ReliableMessaging xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:QualityOfService>ExactlyOnce</SAP:QualityOfService>
    <?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>
    if you observe above, you can find "<SAP:Sender>
      <SAP:Service>BSHE6_LS</SAP:Service> ", but the actual business system is BS_HE6.
    i cant configure receiver determination with BSHE6_LS, because there is no Business Sytem configured as such in SLD.
    my question is , can we change the Business service name in the ECC 6.0 sytem from BSHE6_LS to BS_HE6? (because this message is comming from the ECC 6.0 as Proxy message)
    Thanks,
    kumar

  • Unable to see correlation in receiver step of BPM.

    Hi,
    I am designing a BPM in XI. In a receiver step I need a correlation. I am able to select a correlation from the drop down of the field "Activate Correlations" but when it is activated, the correlation is not displayed.
    I am using SAP XI 7.4 and Service Pack 9.
    I need your help. Please reply.
    Regards,
    Ashish

    Hi Ashish,
    ... seems to be an error of the GUI.
    Delete your step & correlation. Design correlation. Save & activate. Than use your correlation. Save & activate.
    Regards Mario
    Edited by: Mario Müller on Dec 28, 2007 5:10 AM

  • How to check data after mapping for BPM if the mapping done outside BPM ?

    Hi.
    I have simple scenario BPM. Proxy -
    > JDBC. I have 1 message mapping in between PROXY and JDBC.
    and i have put the mapping outside the BPM (i didn' use transformation step). In case error happen. how i can see the data after the mapping ? i am always got difficulty to check the data if i have mapping outside bpm.
    Thank you
    Fernand

    Hi
    In case error happen. how i can see the data after the mapping ?
    You have used mapping in interface determination of corresponding receiver determination. In transaction SXMB_MONI, open message corresponding to that receiver determination. There in left hand side you will see IS pipeline steps. There if you want to see message payload that is input to Mapping than see payload of any pipeline step before Request Message Mapping and test it in Design. If mapping fails you can see trace of the same step.
    Request Message Mapping ---> SOAP Header ---> Trace
    There you can see where your mapping failed.
    And as rohit replied you can also get message from RWB.
    For further clarification revert back to us.
    Regards
    Sami
    Reward points if helpful.

  • How to merge two maps in a single map

    i have two maps existing. i want to merge both the maps into a single map through coding. do we have any function which can solve this problem. If not then please provide me some suggestions to solve this problem.
    thanks,
    amit

    Amit,
    I did this once using the HashMapUtils found in the apache myfaces code...
    package se.inserve.util;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Set;
    import java.util.Iterator;
    public class HashMapUtils
        //~ Constructors -------------------------------------------------------------------------------
        protected HashMapUtils()
            // block public access
        //~ Methods ------------------------------------------------------------------------------------
         * Calculates initial capacity needed to hold <code>size</code> elements in
         * a HashMap or Hashtable without forcing an expensive increase in internal
         * capacity. Capacity is based on the default load factor of .75.
         * <p>
         * Usage: <code>Map map = new HashMap(HashMapUtils.calcCapacity(10));<code>
         * </p>
         * @param size the number of items that will be put into a HashMap
         * @return initial capacity needed
        public static final int calcCapacity(int size)
            return ((size * 4) + 3) / 3;
         * Creates a new <code>HashMap</code> that has all of the elements
         * of <code>map1</code> and <code>map2</code> (on key collision, the latter
         * override the former).
         * @param map1 the fist hashmap to merge
         * @param map2 the second hashmap to merge
         * @return new hashmap
        public static HashMap merge(Map map1, Map map2)
            HashMap retval = new HashMap(calcCapacity(map1.size() + map2.size()));
            retval.putAll(map1);
            retval.putAll(map2);
            return retval;
         * spit out each name/value pair
        public static String mapToString(Map map){
            Set entries = map.entrySet();
            Iterator iter = entries.iterator();
            StringBuffer buff = new StringBuffer();
            while (iter.hasNext())
                Map.Entry entry = (Map.Entry) iter.next();
                buff.append("[" + entry.getKey() + "," + entry.getValue() + "]\n");
            return buff.toString();
    }Then then just calling the methods from within a rule in XPRESS.
    <Rule name='Inserve - mergeHashMap'>
      <RuleArgument name='map1'/>
      <RuleArgument name='map2'/>
      <block>
        <set name='map1'>
          <map>
            <s>A</s>
            <s>1</s>
            <s>B</s>
            <s>2</s>
          </map>
        </set>
        <set name='map2'>
          <map>
            <s>C</s>
            <s>3</s>
            <s>D</s>
            <s>4</s>
          </map>
        </set>
        <invoke name='merge' class='se.inserve.util.HashMapUtils'>
          <ref>map1</ref>
          <ref>map2</ref>
        </invoke>
      </block>
      <MemberObjectGroups>
        <ObjectRef type='ObjectGroup' id='#ID#Top' name='Top'/>
      </MemberObjectGroups>
    </Rule>This gives the output:
    <Map>
      <MapEntry key='A' value='1'/>
      <MapEntry key='B' value='2'/>
      <MapEntry key='C' value='3'/>
      <MapEntry key='D' value='4'/>
    </Map>I typically create a jar-file with my custom classes which i place in $WSHOME/WEB-INF/lib.
    Good luck and hope this helps. Im sure there are better ways to do this, but this did the trick for me.
    /Anders

  • Duplicate Message ID issue in case of Multi mapping (without BPM)

    Hi Experts,
    I am doing one sample Example for my requirement of converting the single source message data into the multiple Target messages.
    for example, when sender system is sending the 5 sale order details into a single message in PI then my Inbound proxy class of ECC R/3 receiver system must get this sale orders separately, that means inbound proxy class method must be triggered separately for 5 sale orders from sender system. for achieving this, I have used the Multi mapping concept in ESR (without BPM).
    This scenario is in Asynchronous mode.
    The below screen shots give the details on what I have configures so far.
    IN ESR
    IN ID
    IN SXMB_MONI of PI
    IN SXMB_MONI of ECC R/3 Receiver system (Error in Processing)
    due to this error, inbound Proxy class method is not being triggered for the single Sale order details as well,
    please let me know how to tackle this duplicate message ID issue when we have multiple payloads to process in a single message.
    please also let me know if is there any other workaround to fulfil this requirement.
    Thank you,
    Regards,
    Jagesh

    Hi Nunu,
    Check the below blog for restrictions.
    Multi-Mapping without BPM - Yes, it’s possible!
    Restrictions
    Messages that result from the split in a mapping-based message split are sent using one AE. So only adapters running on the AE are supported. In particular, this means that target IDOC message splits are not supported since the IDOC adapter is not part of the AE.
    Regards,
    Praveen.

Maybe you are looking for