Message Mapping Loop

Hi,
I want to have a loop in message mapping.
For example:
Customers
  Name (unbounded)
    ID
    GivenName
  Adress (unbounded)
    ID
    City
ID is the key which determines which Given Name belongs to which city.
That should be transformed to
Customers
  Customer (unbounded)
    ID
    GivenName
    City
Now every Customer has is own element.
Does anybody have experience with that?
Regards,
Udo

Hi Udo,
can you this code with <b>advanced user function</b>:
(with three input values)
a, b, c
a - Customers-ID
b - Adress-ID
c - Adress-City
===============================================
for (int t =0; t<a.length; t++)
       for (int  j=0; j<b.length; j++)
               if (a[t].equals(b[j]))
                       result.addValue(c[j]);
==================================================
Regards,
michal

Similar Messages

  • Problem with Message-Mapping: Loop over Elements possible?

    Hi all,
    I want do create a Message-Mapping for an IDoc-to-File Scenario. In the Source Structure there are some Elements which can appear more than once (1..unbounded). I need a mechanism which loops over these elements and search for specified values. From the Element which contains an element with this specified value the mapping should write a value in the target structure.
    Here a simple example (source structure) for better understanding:
    <root>
       <invoice>
          <number> 10 </number>
          <sum> 200.00 </sum>
       </invoice>
       <invoice>
          <number> 20 </number>
          <sum> 150.00 </sum>
       </invoice>
       <invoice>
          <number> 30 </number>
          <sum> 120.00 </sum>
       </invoice>
    </root>
    Now the duty of the Mapping should be to search in the elements <invoice> for the number 30. And then the sum of the invoice with the number 30 should be written in a field of the target structure.
    I tried it out with a constant togehter with an equalsS-function and an ifWithoutElse-function, but it is working only then, if the invoice with the number 30 has the first position in the root context.
    Can anybody help me? Thanks
    With kind regards
    Christopher

    Hi,
    Write a UDF to sum the required values and map to target node.
    See while writing the UDF select the type as queue.
    number -- removecontext-UDF targetnode
    sum----removecontext--/
    number abd sum or the two inputs
    in UDF
    int nsum = 0;
    for(int i;i < number.length;i++){
      if number(i).equals("30") then
         nsum = nsum + valueOf(sum(i));
    result.addValue(nsum); // convert the nsum into string
    Regsrds
    Chilla

  • Loop in message mapping

    Hi all,
    I have a requirement and have been breaking my head on this .
    Source                              Target
    PO1 - 0 to 999999                   Idoc Segment(E1EDK2)
       Item No(field)
       SCH 0 to 999999 (Node)                    
    Here I have a Parent node PO1 which needs to be looped
    and within that I have SCH segemet which gets repeated
    the requirement is first I need to check the if the values in the SCH exist , If it exist then I need to take the two values from SCH and item number from PO1 segment an create a traget segment. If the SCH does not exist then i need to take the item level values and create a segment. The challenge here is, I have a loop within a loop and the target segment is only one.
    Kindly help me with this scenario.
    Regards
    Venu

    hi,
    this is possible
    which sp are you running on?
    if you can define global variables
    you can define global arrays in which you'll store the results
    then you need to put all values in one advanced function
    and put them in map for example and do the looping
    in your java function (with all values at once)
    then put the result in the global array
    from which you can take it out in any other function
    (for all the rest of the tags)
    but I don't know about the performance of this ...
    maybe you can do the same in java mapping?
    but I'm sure it can be done in message mapping too
    Regards,
    michal

  • Message-Mapping: nested Loops over Elements

    Hi Experts,
    I have problems with my Message-Mapping in the IR. I have a source and a target structure. In the following I will give you easy examples of these structures:
    <u>source structure:</u>
       <E1EDP01>
          <E1EDP19>
             <QUALF> ... </QUALF>
             <IDTNR> ... </IDTNR>
          </E1EDP19>
          <E1EDP19>
             <QUALF> ... </QUALF>
             <IDTNR> ... </IDTNR>
          </E1EDP19>
       </E1EDP01>
       <E1EDP01>
          <E1EDP19>
             <QUALF> ... </QUALF>
             <IDTNR> ... </IDTNR>
          </E1EDP19>
          <E1EDP19>
             <QUALF> ... </QUALF>
             <IDTNR> ... </IDTNR>
          </E1EDP19>
       </E1EDP01>
    <u>target structure:</u>
    <LineItem>
       <IDTNR></IDTNR>
    </LineItem>
    <LineItem>
       <IDTNR></IDTNR>
    </LineItem>
    That means:
    For every <E1EDP01> in the source structure I create one <LineItem> in the target structure. One E1EDP01-Element can contain more than one E1EDP19-Elements. I have to loop over these E1EDP19-Elements, because I have to locate the Element <QUALF> with a given (fixed) value. The Mapping should put the value from the Element <IDTNR> from the source structure - where the QUALF-Element has this given value - in the IDTNR-Element of the target structure.
    I tried it with a UDF, but only the first <IDTNR> in the target structure got filled.
    Thanks for your help
    Christopher

    Thank you,
    but how I can set the Elements IDTNR and QUALF to the context E1EDP01?
    In the splitByValue-Function do I need "each value"?
    best regards
    Christopher

  • Need Clarification on Looping in Message Mapping.

    Hi All,
      I'm trying to implement the Dynamic emailing as explained in the Michals blog.
    /people/michal.krawczyk2/blog/2005/03/07/mail-adapter-xi--how-to-implement-dynamic-mail-address
    I have this partially working for the scenario I have.
    XI will be receiving a ORDRSP IDoc from an external system and XI needs to do the following.
    1) Check the value of <b> E1EDP01-ABGRU </b> equals to Z2. If any of the E1EDP01-ABGRU has a value of Z2, it should do the following
             a) Get the email address from the E1EDKA1-ILNNR and map it to the TO field as shown in the blog.
              b) Get the values of BELNR-E1EDK01, MENEE, VPREI, POSEX, PEINH, ABGRT from the E1EDP01 segment and concatenate them all and map it to the Content tag as explained in Michals blog.
      I have this process partially working. The XI interface is only mapping for the first occurrence of E1EDP01 and not the subsequent occurrences of E1EDP01 which matches the criteria ( E1EDP01-ABGRU = Z2)
    Any help in getting fixing this problem??
    Thanks

    Make sure to define multiple target messages in your message and interface mappings, for the mail package message definition (occurrence = 0...unbounded).
    Also, in the logic of your message mapping, you need to create a new mail package message only if  E1EDP01-ABGRU = 'Z2'. Use it like this:
    ABGRU   ---   EqualS   ---   createIf   ---   Mail
    Constant[Z2]
    Regards,
    Henrique.

  • How can I use loop in graphical message mapping

    The source input XML is like:
    <bookstore>
      <book>
           <item1>xxx</item1>
           <item2>yyy</item2>
      </book>
      <book>
            <item1>zzz</item1>
           <item2>www</item2> 
    </book>
    </bookstore>
    I want to create an output XML like
    <output>
       <item>
            <item1>xxx</item1>
             <item2>yyy</item2>
        </item>
       <item>
            <item1>xxx</item1>
             <item2>www</item2>
        </item>
       <item>
            <item1>zzz</item1>
             <item2>www</item2>
        </item>
       <item>
            <item1>xxx</item1>
             <item2>yyy</item2>
        </item>
    </output>
    That means I want to do permutation and combination for all <item1> <item2> under <book>.
    Of course I can write a customer function to do it, but I want to basically use the buildin functions to do the graphical message mapping for this.
    Any idea?  thank you.

    well, I'm not very clear of those 2 English words
    What I want is to list all possible combination of item1 and item2 (and in fact, we have item3, item4, ....etc).
    example
    input: 
    <item>
              <item1> 111 </item1>
              <item2> 222 </item2>
              <item3> 333 </item3>
    </item>
    <item>
              <item1> aaa </item1>
              <item2> bbb </item2>
              <item3> ccc </item3>
    </item>
    I want to get
    <item><Item1>111>/item1> <item2>222</item2> <item3>333</item3> </item>
    <item><Item1>111>/item1> <item2>222</item2> <item3>ccc</item3> </item>
    <item><Item1>111>/item1> <item2>bbb</item2> <item3>333</item3> </item>
    <item><Item1>111>/item1> <item2>bbb</item2> <item3>ccc</item3> </item>
    <item><Item1>aaa>/item1> <item2>222</item2> <item3>333</item3> </item>
    <item><Item1>aaa>/item1> <item2>222</item2> <item3>ccc</item3> </item>
    <item><Item1>aaa>/item1> <item2>bbb</item2> <item3>333</item3> </item>
    <item><Item1>aaa>/item1> <item2>bbb</item2> <item3>ccc</item3> </item>

  • Accessing container variable of BPM in Message Mapping function

    Hi,
    I have a scenario in BPM where i have a container variable that is used as a loop counter.I want to access that counter defined , every time when i go around the loop and perform certain actions based on that counter. so how can i access that variable in my message Mapping function.

    Hi Sudharshan,
    check these links, hope they give you the required information (i think there is some problem with SDN site, check these links after a while)
    Re: How to use Container Variable across Maps
    Container object in Message Mapping
    Copy value of container (abstract interface) to an other container
    Regards
    Vishnu

  • UDF in message mapping instead of Java Mapping. Pls advice urgent

    Hi All,
    My scenario
    CRM --- XI -- CRM
    In XI I have to open socket connection.
    Pls refer link:
    /people/saravanakumar.kuppusamy2/blog/2005/12/15/socket-integration-with-xi
    Can Java Mapping code given in above link for socket connection can be used in Message Mapping (CRM -- CRM)UDF?
    Pls advice urgent
    Regards

    Hi Henry,
    I understood your requirement.
    But as per the architecture of XI/PI some message has to trigger your scenario.
    In this case there is no adapter where you can directly communicate with CRM system.
    Do one thing configure a dummy scenario on the sender side.
    Use File adapter for simplicity. once it pools the file with some dummy data in the file it comes to Interface mapping(message mapping) of the PIPELINE steps. Now use the code as you mentioned above(within UDF) for opening socket to CRM system and implement you business logic within that program and write the response to target interface which will infact talk with CRM system.
    Dont forget to do the coding in an infinite loop with some delay (if required). Other wise every time you have to put a message for File Adapter for triggering purposes.
    You can also acheive the same if you use Java Mapping instead of Graphical mapping with UDF(code for Opening socket and business logic). I suggest you to use Java Mapping.
    I dont know how you will comunicate with CRM system on receiver side.?
    Thanks,
    Gujjeti

  • Message Mapping- 3 problems

    Hi,
    1)I need some information regarding Message Mapping. I need to map the field TDLINE of segment E1EDKT2 of IDOC ORDERS05 to the target fields. But based upon the index number of the record of this segment, I must map it to different fields (eg.E1EDKT2[10], E1EDKT2[3]). How can I incorporate this in Message Mapping?
    2)And one more scenario is as follows.Use PARTN if exists or use LIFNR to map to target and it must satisfythe conidtion PARVW = AG. Should we need Java code or can we achieve this using two 'If' conditions.
    3)We are looping at a source segment and it has multiple  occurances.How to create multiple segments in target based on condition.
    Can anyone help me.
    Thanks,
    Srinivas

    > 1) I need to map the field TDLINE of segment E1EDKT2
    > of IDOC ORDERS05 to the target fields. But based upon
    > the index number of the record of this segment, I
    > must map it to different fields (eg.E1EDKT2[10],
    > E1EDKT2[3]). How can I incorporate this in Message
    > Mapping?
    You can use the index function (with SP13):
    E1EDKT2* - index
                      equalS
        constant(10) /     
                             ifWithoutElse - target
    TDLINE - removeContexts /
    check the correct context
    > 2)And one more scenario is as follows. Use PARTN if
    > exists or use LIFNR to map to target and it must
    > satisfy the conidtion PARVW = AG. Should we need Java
    > code or can we achieve this using two 'If'
    > conditions.
    Sure you can chain if statements:
            PARVW
                  equalS 
    constant(AG) /     
                         ifWithoutElse
                  PARTN /            
                       PARTN - exist - if - target
                                  LIFNR
    This mapping assumes, that PARVW = AG is available, when PARTN is available.
    > 3)We are looping at a source segment and it has
    > multiple  occurances. How to create multiple
    > segments in target based on condition.
    Here is a pattern:
    condition - createIf - target
    condition has to be a queue of true and false with the same occurrency as source.
    All sub nodes of source are now arranged correctly under the target node.
    Regards
    Stefan
    Message was edited by: Stefan Grube

  • Message Mapping - Filter on parent element

    Hi,
    I'm using message mapping for mapping IDoc ORDERS05 to flat file.
    This is the source structure :
    ORDERS05  1..1
    ---- IDOC  1..1
         ---- E1EDKT1  0..99
              ---- TDID  0..1
              ---- TSSPRAS_ISO
              ---- E1EDKT2  0..9999999
                   ---- TDLINE  0..1
    and this is the target structure :
    TCD 1..1
    ---- TCT  1..unbounded
         ---- TDID
         ---- TDSPRAS
         ---- TDLINE
    Can anybody help me about how to do the mapping for having 1 TCT element for each
    E1EDKT2 element with parent (E1EDKT1) having field TDID equals to the constant "ZALO" ?
    For exemple:
    <ORDERS05>
       <IDOC>
          <E1EDKT1>
             <TDID>ZALO</TDID>
             <TSSPRAS_ISO>tdspras1</TSSPRAS_ISO>
             <E1EDKT2>
                <TDLINE>tdline11</TDLINE>
             </E1EDKT2>
             <E1EDKT2>
                <TDLINE>tdline12</TDLINE>
             </E1EDKT2>
          </E1EDKT1>
          <E1EDKT1>
             <TDID>unused</TDID>
             <TSSPRAS_ISO>tdspras2</TSSPRAS_ISO>
             <E1EDKT2>
                <TDLINE>tdline2</TDLINE>
             </E1EDKT2>
          </E1EDKT1>
          <E1EDKT1>
             <TDID>ZALO</TDID>
             <TSSPRAS_ISO>tdspras3</TSSPRAS_ISO>
             <E1EDKT2>
                <TDLINE>tdline3</TDLINE>
             </E1EDKT2>
          </E1EDKT1>
       </IDOC>
    </ORDERS05>
    must result in :
    <?xml version="1.0" encoding="UTF-8"?>
    <TCD>
         <TCT>
              <TDID>ZALO</TDID>
              <TDSPRAS>tdspras1</TDSPRAS>
              <TDLINE>tdline11</TDLINE>
         </TCT>
         <TCT>
              <TDID>ZALO</TDID>
              <TDSPRAS>tdspras1</TDSPRAS>
              <TDLINE>tdline12</TDLINE>
         </TCT>
         <TCT>
              <TDID>ZALO</TDID>
              <TDSPRAS>tdspras3</TDSPRAS>
              <TDLINE>tdline3</TDLINE>
         </TCT>
    </TCD>
    Thanks in advance,
    Laurence

    Hi,
    When implementing your solution, I get only 1 TCT per E1EDKT01 (and no more loop on E1EDKT02) and filter on "ZALO" TDID is not working.
    <TCT>
         <TDID>ZALO</TDID>
         <TDSPRAS>tdspras1</TDSPRAS>
         <TDLINE>tdline11</TDLINE>
    </TCT>
    <TCT>
         <TDID>unused</TDID>
         <TDSPRAS>tdspras2</TDSPRAS>
         <TDLINE>tdline2</TDLINE>
    </TCT>
    <TCT>
         <TDID>ZALO</TDID>
         <TDSPRAS>tdspras3</TDSPRAS>
         <TDLINE>tdline3</TDLINE>
    </TCT>
    I have changed context of TDID to ORDERS05, and context of E1EDKT2 to ORDERS05 too.  Aren't thoses contexts correct?
    Laurence

  • Problem in Graphical message mapping.Need UDF to add array based on some co

    Hi All,
    I have been struck in message mapping.Below i am explaining it,
    I have two input array,
    one array lets call  X [24]
                                    [25]
                                     [26]
                                     [24]
                                    [25]
    other array is Y [10]
                           [11]
                           [12]
                           [13]
                           [14] .length of both the array will be same .
    Now I want the output as: if there is any same value in first array i.e array X then corresponding value of second array should be added.i.e in array X if 24 is coming as twice (1st and 4th) then 1st and 4th value of array Y will be added.So here there will be only three output as Z[23]
                                                      [25]
                                                      [12]
    Please guide me if posiible .I tried to use the for loop but  its not working as the value of X is repeating.
    Regards,
    Saurabh

    Hi,
    Tru this..
    public void test(String[] a,String[] b,ResultList result,Container container){
    int flaga,flagb;
    for(int i=0;i<a.length;i++)
         flaga =0;
         for(int j=i+1;j<a.length;j++)
              int p =  Integer.parseInt(a<i>);
              int q =  Integer.parseInt(a[j]);
              if(p==q)
                   flaga =1;
                   int c = Integer.parseInt(b<i>)+Integer.parseInt(b[j]);
                   String d = new Integer(c).toString();
                   result.addValue (d);
    if (flaga ==0)
    flagb=0;
    for(int q =i-1; q>=0;q--)
         if(Integer.parseInt(a<i>) == Integer.parseInt(a[q]))
              flagb = 1;
    if (flagb == 0) result.addValue((b<i>));
    I have tested with the same input... it is working for me
    http://www.flickr.com/photos/28929439@N06/2721471681/
    Thanks
    SaNv...

  • Export Parameters in Parameterized Message Mapping does not work.

    Hello, XI-Gurus!
    I have a question: how to use an EXPORT parameter in Parameterized Message Mapping? seems it does not work...
    (I use XI / PI 7.1)
    For example, I have a follow scenario: a large message comes to XI from one BS (message contains a lot of rows), then this large message splits to some small messages (something about 1000 rows in one small message), and send small messaeg one by one from XI to second BS. So, after receive step I use a transformation step with Parameterized Message Mapping to get a total amount of rows in large message (it needs for making condition for loop in IP, for example). I want to use an EXPORT parameter to pass this number from Parameterized Message Mapping to Integration Process. How can I do it?
    Of course, I know the way to how to make this scenario without any parameterizing, but I want to use exactly "Parameterized Message Mapping" like it writes in this help:
    http://help.sap.com/saphelp_nwpi71/helpdata/en/43/c3e1fa6c31599ee10000000a1553f6/frameset.htm
    This topic contains something about procedure how to use an EXPORT parameter, but this procedure does not work. I don't understand how to write this UserDefined Function, which I can set any export parameters.
    I read this blog:
    /people/jin.shin/blog/2008/02/14/sap-pi-71-mapping-enhancements-series-parameterized-message-mappings
    this blog has NO solutions about EXPORT parameters. about IMPORT parameters - everything OK.
    Some topics about how to use export parameters in MM in this forum marked as "answered", but this is not true.
    How to export parameters from Message Mapping
    Export parameter REALLY work in message mapping???????
    Export parameter in Message mapping UDF
    WBR,
    Vsevolod

    Hi Rudolf,
    It still does not works.
    Great thanks for all your answers! If your advice works on your PI-server, it means that my problem not in UDF.
    Step by step:
    1) I create in "Signature" tab two parameters: FILE_NAME, FILE_TYPE (of course, they both Export and xsd:string type)
    2) Then, I goes to "Functions" tab and create new function "testUDF" with one argument var1.
    3) In body of this UDF insert 2 strings:
       getOutputParameters.setString("FILE_NAME" , "Order");
       getOutputParameters.setString("FILE_TYPE" , "PDF");
    4) in "Definition" tab I bind function "Local.testUDF" with one field in my input message and goes to "Test" tab for testing.
    5) And then I have a message window "Problems While Testing":
    Source text of object Message Mapping: mm_ParamMap | urn:****.*.:****:TEST has syntax errors:
    Function testUDF, Line 1:
    cannot find symbol
    symbol  : variable getOutputParameters
    location: class com.sap.xi.tf._mm_ParamMap_
    getOutputParameters.setString("FILE_NAME" , "Order");
    ^
    Function testUDF, Line 2:
    cannot find symbol
    symbol  : variable getOutputParameters
    location: class com.sap.xi.tf._mm_ParamMap_
    getOutputParameters.setString("FILE_TYPE" , "PDF");
    ^
    Note: /usr/sap/PID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapb1562570ca9e11deb3fe00237d301cd6/source/com/sap/xi/tf/_mm_ParamMap_.java uses or overrides a deprecated API.
    Note: Recompile with -Xlint:deprecation for details. Note: /usr/sap/PID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapb1562570ca9e11deb3fe00237d301cd6/source/com/sap/xi/tf/_mm_ParamMap_.java uses unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.
    2 errors
    Look at this notes, first writes that I use a deprecated API, second - about unchecked or unsafe operations.
    And I have no idea what's wrong... Can you help me?
    Thanks!
    WBR,
    Vsevolod

  • Message mapping hint 1:N in group of 2?

    Hi All,
    I am looking for message mapping hint to do following:
    Source XML.
    <itab>
      <itab_body>
        <a>1</a>
        <b>1</b>
      </itab_body>
      <itab_body>
        <a>2</a>
        <b>2</b>
      </itab_body>
      <itab_body>
        <a>n</a>
        <b>n</b>
      </itab_body>
    </itab>
    Target XML:
    <itab>
      <itab_body>
        <a>1</a>
        <b>1</b>
      </itab_body>
      <itab_body>
        <a>2</a>
        <b>2</b>
      </itab_body>
    </itab>
    <itab>
      <itab_body>
        <a>n-1</a>
        <b>n-1</b>
      </itab_body>
      <itab_body>
        <a>n</a>
        <b>n</b>
      </itab_body>
    </itab>
    Thanks

    There are many ways to achieve this. I would use java mapping to get the desired result. You have to loop the source and in the target pick every two nodes as separate.   Please follow this link for java mapping. This might provide some idea.
    Refer this [link|http://techplay.plozzle.com/?p=21]

  • BPM Pattern Collect Message Mapping run time error

    Hi,
        I'm carrying out a replica of BPMCOLLECTMESSAGE Pattern from sap basis...
    Doing a simple file to file scenario and simple mapping....
    I'm getting a MAPPING RUNTIME error at the transform step.
    kindly help in this regards..
    The checks i'v made are...
    1. Deleted all the work flow items from SWWL transaction
    2.SXI_CACHE is 0
    3.Payload cross checked.
    Is there any solution please ???

    Hi,
       On  sending Stop message PE at technical details i get error stating :  *com/sap/xi/tf/_BpmPatternCollectMerge_com.sap.aii.utilxi.misc.api.BaseRuntimeException:RuntimeException in Message-Mapping transformation: Cannot produce target element /ns0:Messages/ns0~*
    kindly look at the Trace error at PE
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Call Adapter
      -->
    - <SAP:Trace xmlns:SAP="http://sap.com/xi/XI/Message/30">
      <Trace level="1" type="T">CL_XMS_MAIN->DETERMINE_EXT_PID: CENTRAL</Trace>
      <Trace level="1" type="T">Party normalization: sender</Trace>
      <Trace level="1" type="T">Sender scheme external = XIParty</Trace>
      <Trace level="1" type="T">Sender agency external = http://sap.com/xi/XI</Trace>
      <Trace level="1" type="T">Sender party external =</Trace>
      <Trace level="1" type="T">Sender party normalized =</Trace>
      <Trace level="1" type="T">Party normalization: receiver</Trace>
      <Trace level="1" type="T">Receiver scheme external =</Trace>
      <Trace level="1" type="T">Receiver agency external =</Trace>
      <Trace level="1" type="T">Receiver party external =</Trace>
      <Trace level="1" type="T">Receiver party normalized =</Trace>
      <Trace level="1" type="B" name="CL_XMS_HTTP_HANDLER-HANDLE_REQUEST" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">XMB was called with URL /sap/xi/engine?type=entry</Trace>
    - <Trace level="1" type="B" name="CL_XMS_MAIN-ENTER_XMS">
      <Trace level="1" type="T">CL_XMS_MAIN->DETERMINE_EXT_PID: CENTRAL</Trace>
      <Trace level="1" type="T">CL_XMS_MAIN->DETERMINE_INT_PID: SAP_CENTRAL</Trace>
      <Trace level="1" type="B" name="CL_XMS_TROUBLESHOOT-ENTER_PLSRV" />
      <Trace level="1" type="T">system-ID = PI2</Trace>
      <Trace level="1" type="T">client = 100</Trace>
      <Trace level="1" type="T">language = E</Trace>
      <Trace level="1" type="T">user = PIAFUSER</Trace>
      <Trace level="1" type="Timestamp">2009-03-17T04:35:42Z CET</Trace>
      </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_UC_EXECUTE" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">Message-GUID = D3370BB6DF244EA7356EECD16D0E6FAD</Trace>
      <Trace level="1" type="T">PLNAME = CENTRAL</Trace>
      <Trace level="1" type="T">QOS = EO</Trace>
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PIPELINE_ASYNC">
      <Trace level="1" type="T">Queue name : XBTI0001</Trace>
      <Trace level="1" type="T">Generated prefixed queue name =</Trace>
      <Trace level="1" type="T">Schedule message in qRFC environment</Trace>
      <Trace level="1" type="T">Setup qRFC Scheduler OK!</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="T">Going to persist message</Trace>
      <Trace level="1" type="T">NOTE: The following trace entries are always lacking</Trace>
      <Trace level="1" type="T">- Exit WRITE_MESSAGE_TO_PERSIST</Trace>
      <Trace level="1" type="T">- Exit CALL_PIPELINE_ASYNC</Trace>
      <Trace level="1" type="T">Async barrier reached. Bye-bye !</Trace>
      <Trace level="1" type="T">----
    </Trace>
      </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">--start sender interface action determination</Trace>
      <Trace level="1" type="T">select interface BpmPatternCollectIfStopCollect</Trace>
      <Trace level="1" type="T">select interface namespace http://</Trace>
      <Trace level="1" type="T">--start receiver interface action determination</Trace>
      <Trace level="1" type="T">Loop 0000000001</Trace>
      <Trace level="1" type="T">select interface</Trace>
      <Trace level="1" type="T">select interface namespace</Trace>
      <Trace level="1" type="T">--no sender or receiver interface definition found</Trace>
      <Trace level="1" type="T">Hence set action to DEL</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-PERSIST_READ_MESSAGE" />
      <Trace level="1" type="T">Exception from packaging: No messages for constructing a package available.</Trace>
      <Trace level="1" type="T">Continue single processing</Trace>
      <Trace level="1" type="T">Note: the following trace entry is written delayed (after read from persist)</Trace>
      <Trace level="1" type="B" name="SXMS_ASYNC_EXEC" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="T">Starting async processing with pipeline CENTRAL</Trace>
      <Trace level="1" type="T">system-ID = PI2</Trace>
      <Trace level="1" type="T">client = 100</Trace>
      <Trace level="1" type="T">language = E</Trace>
      <Trace level="1" type="T">user = PIAFUSER</Trace>
      <Trace level="1" type="Timestamp">2009-03-17T04:35:42Z CET</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PIPELINE_SYNC" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">>>>PID delete old pid determination coding</Trace>
    - <Trace level="1" type="B" name="PLSRV_XML_VALIDATION_RQ_INB">
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL">
    - <Trace level="1" type="B" name="CL_XMS_PLSRV_VALIDATION-ENTER_PLSRV">
      <Trace level="1" type="T">Reading sender agreement</Trace>
      <Trace level="1" type="T">Inbound validation by Integration Engine does not take place</Trace>
      </Trace>
      </Trace>
      </Trace>
      </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST" />
    - <Trace level="1" type="B" name="PLSRV_RECEIVER_DETERMINATION">
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL">
    - <Trace level="1" type="B" name="CL_RD_PLSRV-ENTER_PLSRV">
      <Trace level="1" type="T">R E C E I V E R - D E T E R M I N A T I O N</Trace>
      <Trace level="1" type="T">Cache Content is up to date</Trace>
      </Trace>
      </Trace>
      </Trace>
      </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST" />
    - <Trace level="1" type="B" name="PLSRV_INTERFACE_DETERMINATION">
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL">
    - <Trace level="1" type="B" name="CL_ID_PLSRV-ENTER_PLSRV">
      <Trace level="1" type="T">I N T E R F A C E - D E T E R M I N A T I O N</Trace>
      <Trace level="1" type="T">Cache Content is up to date</Trace>
      </Trace>
      </Trace>
      </Trace>
      </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST" />
      <Trace level="1" type="B" name="PLSRV_RECEIVER_MESSAGE_SPLIT" />
    - <!--  ************************************
      -->
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL">
      <Trace level="1" type="B" name="CL_XMS_PLSRV_RECEIVER_SPLIT-ENTER_PLSRV" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">number of receivers: 1</Trace>
      <Trace level="1" type="T">Single-receiver split case</Trace>
      <Trace level="1" type="T">Post-split internal queue name = XBTOX0__0002</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="T">Persisting single message for post-split handling</Trace>
      <Trace level="1" type="T" />
      <Trace level="1" type="T">Going to persist message + call qRFC now...</Trace>
      <Trace level="1" type="T">NOTE: The following trace entries are always lacking</Trace>
      <Trace level="1" type="T">- Exit WRITE_MESSAGE_TO_PERSIST</Trace>
      <Trace level="1" type="T">Async barrier reached. Bye-bye !</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="T">Generated prefixed queue name =</Trace>
      <Trace level="1" type="T">Schedule message in qRFC environment</Trace>
      <Trace level="1" type="T">Setup qRFC Scheduler OK!</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />
    - <!--  ************************************
      -->
      <Trace level="1" type="B" name="CL_XMS_MAIN-PERSIST_READ_MESSAGE" />
      <Trace level="1" type="T">Exception from packaging: No messages for constructing a package available.</Trace>
      <Trace level="1" type="T">Continue single processing</Trace>
      <Trace level="1" type="T">Note: the following trace entry is written delayed (after read from persist)</Trace>
      <Trace level="1" type="B" name="SXMS_ASYNC_EXEC" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="T">Starting async processing with pipeline CENTRAL</Trace>
      <Trace level="1" type="T">system-ID = PI2</Trace>
      <Trace level="1" type="T">client = 100</Trace>
      <Trace level="1" type="T">language = E</Trace>
      <Trace level="1" type="T">user = PIAFUSER</Trace>
      <Trace level="1" type="Timestamp">2009-03-17T04:35:42Z CET</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PIPELINE_SYNC" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">>>>PID delete old pid determination coding</Trace>
      <Trace level="1" type="T">Start with pipeline element PLEL= 5EC3C53B4BB7B62DE10000000A1148F5</Trace>
    - <Trace level="1" type="B" name="PLSRV_MAPPING_REQUEST">
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL">
    - <Trace level="1" type="B" name="CL_MAPPING_XMS_PLSRV3-ENTER_PLSRV">
      <Trace level="1" type="T">No mapping required</Trace>
      </Trace>
      </Trace>
      </Trace>
      </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST" />
    - <Trace level="1" type="B" name="PLSRV_OUTBOUND_BINDING">
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL">
      <Trace level="1" type="B" name="CL_XMS_PLSRV_OUTBINDING-ENTER_PLSRV" />
      </Trace>
      </Trace>
      </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST" />
    - <Trace level="1" type="B" name="PLSRV_XML_VALIDATION_RQ_OUT">
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV" />
    - <!--  ************************************
      -->
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL" />
    - <!--  ************************************
      -->
    - <Trace level="1" type="B" name="CL_XMS_PLSRV_VALIDATION-ENTER_PLSRV">
      <Trace level="1" type="T">Reading receiver agreement</Trace>
      <Trace level="1" type="T">Outbound validation does not take place</Trace>
      </Trace>
      </Trace>
      </Trace>
      </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST" />
      <Trace level="1" type="B" name="PLSRV_CALL_ADAPTER" />
    - <!--  ************************************
      -->
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV" />
    - <!--  ************************************
      -->
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL" />
    - <!--  ************************************
      -->
      <Trace level="1" type="B" name="CL_XMS_PLSRV_CALL_BPE-ENTER_PLSRV" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">--start sender interface action determination</Trace>
      <Trace level="1" type="T">select interface BpmPatternCollectIfStopCollect</Trace>
      <Trace level="1" type="T">select interface namespace http://</Trace>
      <Trace level="1" type="T">--start receiver interface action determination</Trace>
      <Trace level="1" type="T">Loop 0000000001</Trace>
      <Trace level="1" type="T">select interface BpmPatternCollectIfStopCollect</Trace>
      <Trace level="1" type="T">select interface namespace http://</Trace>
      <Trace level="1" type="T">--no sender or receiver interface definition found</Trace>
      <Trace level="1" type="T">Hence set action to DEL</Trace>
      </SAP:Trace>
    Edited by: Robin on Mar 17, 2009 10:11 AM

  • CPU time of BPM or message mapping?

    Hi all,
    is there a way to find out how much CPU time is spent by a certain BPM instance (or message mapping instance)?
    It would be sufficient to get that value per BPM type / message mapping type.
    So far, I've found the following sources, which all won't work, unfortunately:
    - table SWWWIHEAD: No CPU time information (as far as I see)
    - transaction STAD: I don't see a way to connect an entry to the resp. BPM. There is a Transaction-ID, but I can't find it in the BPM...
    - transaction ST03N: Only aggregated values for user WF_BATCH, not detailed statistics
    - several places, which only show clock time, but not CPU time
    Thanks in advance!
    Kind regards,
    Dennis

    Hi Michal,
    Thanks a lot for your info.
    Too bad that there is no other possibility yet.
    I'm not completely sure whether the result is worth the effort, though, as there will probably be a lot of different BPM types on this system, so benchmarking each is quite some work (and requires an otherwise idle test system during this time).
    In addition, it could be difficult to generate test data that will most likely represent the expected data during production use. Especially for BPMs with many conditional tasks (branches, loops, ...), this can be a mess...
    But I will propose it anyway. If it gets accepted, I'll post the gained experience with this approach here. Maybe it works better than my pessimistic expection.
    Hopefully, SAP will integrate this functionality somewhen. I guess I set up some customer feedback.
    Kind regards,
    Dennis

Maybe you are looking for

  • BI-IP Bex Analyser - Input Queries / Workbooks

    Hi experts, In BI-IP (BW 7) with Bex Analyser, we want to make an input query with the standard chars. WBS Element and Asset Class. In our business 1 WBS can be planned to several asset classes, but 1 asset class only has 1 WBS. The link between both

  • How do I turn off OS notifications in upper right corner

    How do I turn off the little banner notifications for system updates, it's driving me insane, it pops out every five minutes. In Notifications in System Preferences there is nothing there for the OS, only various specific applications. Thank you.

  • Chart Linear Axis's title(Description) is not displaying chinese words!

    Recently on my project's end there is a need to translate the current english web portal to chinese web portal . In the middle of the transition , i found that i had a difficulty to replace the Linear Axis description with chinese words , the initial

  • Can you organize apps within iTunes 11.1?

    After upgrading to iOS7 on my 4S and upgrading to 11.1 on my mac. From within iTunes, I can't seem to move the individual applications around.  I can move whole pages and reorder them but not the apps? Hopefully they haven't taken this away and it's

  • Unable to scan or access scans to view and edit from desktop

    I get a error message when I try to access these programs which says tere is no fix for the problem