Xpath in the collect message of BPM

Hi,
I created a BPM collect message. My source message has a field which is in the format of XXXX-NN such that XXXX can be any 4 letters and NN is a number 01 - 99. In the loop of the BPM, I made use of an Xpath command in the condition editor for the loop condition. The command is /header/segment1/segment2[(substring(field1,6,2))] for the left hand operand and comparing it as not equal to a counter variable.
When I look at my graphical workflow log, there is an error in the Transformation step. In SXMB_MONI, I have a red flag with an error of "Message has error status on outbd. side" in the process view of SXMB_MONI.
If I change the Xpath command to /header/segment1/segment2/field1 and change the value of my field to just use NN without changing anything else, my BPM is working properly. Is there something wrong with the added Xpath command? I followed the blog in /people/shabarish.vijayakumar/blog/2006/06/07/customise-your-xpath-expressions-in-receiver-determination but I wonder if this only works for Receiver Determination. Please help.
Regards,
Elbert

Hi Elbert,
the expression
means a condition and requires a
=
For example:
[//person/name[../no='123'] code]
means: select element person/name where person/no "123" is.
Because of unclear results regarding the namespace i wouldnt put the full path. Use for example [code]substring(//segment2/field,6,2)
The substring expression is ok, i m shure.
<b>substring(X-Path on String value, No of letter in string, length of searched substring)</b>
If the string is not long enough, it might give you strange errors, he, he. Cant cut 1m of 20 cm salami.
Regards,
Udo

Similar Messages

  • Collect messages in BPM

    Hi experts,
    Need to create one scenario to collect payload of XML files, I have done this work in Design and Configuration :
    data types : test_collect
    Message Types : test_collect
    Message Interfaces :  Test_collect_1 (abs asy),  Test_collect_2 (abs asy)
    I need to collect Test_collect_1 and pass it to Test_collect_2
    Message Mapping : Test_collect_1 - Test_collect_1
    Interface Mapping :  Test_colect_1 - Test_collect_2
    Integration Process is created as example in Standard Process in SAP BASIS
    --> http://sap.com/xi/XI/System/Patters --> BpmPatternCollectPayload
    Need to created more mappings or not.
    How I will created proper Configuration Steps,
    mean no. of Sender Agreements, receiver agreements, Receiver Determinations and Interface Determinations etc.
    Regards,
    Study SAP

    hi study sap,
    check the below blogs to have a cleat understanding
    Check these
    BPM:
    Walkthrough with BPM - Walk through BPM
    BPM in XI https://www.sdn.sap.com/irj/sdn/wiki?path=/display/xi/integrationProcess%28ccBPM%29inXI&
    BPM-1 Walkthrough with BPM
    BPM-2 Reconciliation of Messages in BPM
    BPM-3 RFC Scenario using BPM --Starter Kit
    BPM-4 The specified item was not found.
    Schedule BPM Schedule Your BPM
    Use of Synch - Asynch bridge in ccBPM Demonstrating Use of Synchronous-Asynchronous Bridge to Integrate Synchronous and Asynchronous systems using ccBPM in SAP Xi
    Use of Synch - Asynch bridge in ccBPM https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1403 [original link is broken] [original link is broken] [original link is broken]
    without BPM Sync/Async scenarios without BPM
    without BPM1 Sync/Async communication in JMS adapter without BPM (SP19)
    IDOC BPM IDOCs (Multiple Types) Collection in BPM
    multimapping without BPM /people/jin.shin/blog/2006/02/07/multi-mapping-without-bpm--yes-it146s-possible
    /people/jin.shin/blog/2006/02/07/multi-mapping-without-bpm--yes-it146s-possible---- Multi Map With out BPM
    Various multi-mappings and Optimizing their Implementation in Integration Processes (BPM) in XI. Various multi-mappings and
    Optimizing their Implementation in Integration Processes (BPM) in XI.
    Illustration of Multi-Mapping and Message Split using BPM in SAP Exchange Infrastructure --- Illustration of Multi-Mapping
    and Message Split using BPM in SAP Exchange Infrastructure
    IDOCs (Multiple Types) Collection in BPM (N:1 Mapping )
    regards
    kummari

  • 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

  • Collect Messages with BPM

    Hi everybody,
    I need to know if it is possible to develop a integration process to collect messages without using correlation, until now I only developed that scenarios using correlation, but I have a special case that is not necessary identify a key to make a relation among the messages
    Thanks in advance.
    Ivan
    Edited by: Jose Iván Reyes Arteaga on Dec 3, 2008 10:42 PM

    If you do not need any key field for correlation, then you can go for dummy correlation in BPM.
    In the expression editor (properties column of the Correlation editor), select the "Constant" radio button and give some dummy name.
    For more explanation, refer Siva Maranani's post in the thread:
    /message/426236#426236 [original link is broken]
    Thanks,
    Geetha

  • No object type found for the corresponding message in BPM

    Hi All,
    I have a BPM scenario where i pick a file and based on a condition in the Switch i send the meesage to Mail or Proxy.
    When i tested the scenario i got error as "no object type found for the message check the corresponding process activated" error  in the call adapter step.
    I checked in sxi_cache, IP is active with 0 as return code .
    When checked in sxmb_moni_bpe, under  process selection it says "No workitem exists"
    In SXMB_MONI, under inbound i clicked PE but got error as "Unable to perform action fro the selected Message" is displayed.
    Im new to BPM so please tell me as what Im missing exactly.
    Thanks

    Hi Sachi,
    Delete the Integration Process from ID and reimport it. Also check the status of your BPM in T Code SXI_CACHE....if return code is not '0' then re-activate your integration process..
    Try REPEAT ACTIVATION on SXI_CACHE...
    Have a look into this..
    Re: Stuck in BPM Transformation process Async to Sync Scenario
    Regds,
    Pinangshuk.

  • Collecting Messages in BPM

    I am trying to recreate and understand the BPMPatternCollectPayload. What I don't understand is We have a interface mapping in which we tryiing to append all the message into one inetrafce. so we create a one to one mapping between both the interface. The only difference is one is o to unbounded and the other one is just 1. Now how do I change the occurance in the interface mapping or in the message mapping given that both have the same data type. Please help.

    in teh message mapping
    under Messages tab u change the occurance to 0..unbounded
    similarly in interface mapping under Design tab where u select the Message interface u change the occurance to 0...unboundd

  • BPM collect message

    Hi All,
    I am doing a scenario for collecting messages using BPM, the objective was i need to collect the input messages and to be stored, when the message reaches 10, then it should deliver all these 10 messages to the target.
    for this, i have designed bpm with the
    1. Receiver Step
    2. Container Operation
    3. Transformation and Send.
    but i am getting the following error while activating
    Exptession must not return an multiline value
    Expression must return the interface type MI_OUT_A
    Expression must return the interface type MI_IN_A
    Container element var1 in step Receive1 is initialized but is not used.
    Here var1 is the abstract interface
    the datatype& message type  was DT_A and MT_A and the interfaces are MI_OUT_A and MI_IN_A.
    could anyone clarify regarding this issue..
    regards,
    Sai

    Hi,
    Check some links on BPM.
    /people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm
    /people/shabarish.vijayakumar/blog/2005/08/03/xpath-to-show-the-path-multiple-receivers
    /people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
    /people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi
    /people/michal.krawczyk2/blog/2005/09/04/xi-do-you-realy-enjoy-clicking-and-waiting-while-tracing-bpm-steps
    /people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/media/uuid/daea5871-0701-0010-12aa-c3a0c6d54e02
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/media/uuid/e8515171-0701-0010-be98-e37bec4706cc
    Regards,
    Phani
    Reward points if Helpful

  • Collecting messages in XI

    Hi,
    I would like to send a packet of iDocs from the R/3 to a legacy system using the XI. What should I do in order to perform this ?
    Can I see an example somewhere ?
      Thanks, Nir.

    Hi Nir,
    In Software Component "SAP Basis 640" there is an example to Collect Messages with BPM.
    Namespace: http://sap.com/xi/XI/System/Patterns
    Integration Process: BPMPatternCollectMessage
    Regards,
    Robin

  • Regarding collecting messages until you get particular payload

    Hi All,
    I am having below requirement,
      I am getting several messages from source, i need to collect all the messages, until i get TRAILER message
    Condition is " COLLECT THE PAYLOAD UNTILL YOU GET DTS IN PAYLOAD(TRAILER)". so we need to collect header message and data messages untill you get trailer message.
    message1(Header message which contains DHS)like below  
        20090604034447338isc                 DHS64    500d3100033d705050258002f86300
    message2(data message which contains DDS) like below
               20090604034447338isc                 DDS64    50031s000337050502580d0286300
               20090604034447338isc                 DDS64    5003100033705050d25800286300
    Message3(data message) like below
               20090604034447338isc                 DDS64    500310003370505025800286300
               20090604034447338isc                 DDS64    500310003370505025800286300
               20090604034447338isc                 DDS64    5003100033d7050502580f0286300
    Message4(trailer which contains DTS) like below 
               20090604034447338isc                 DTS64    500310003370505025800286300
    So 4th message contains 3 charcters DTS, now i need to end the collecting messages in loop and need to send the collected messages to target.
    Presently i am using PI7.1 which contains some patters to use as XPath for end condition purpose. I am using Contains Patter(CP) in loop end condition. according to my understanding the collection in loop has to end when it find DTS in message. but it is not working. Please share you ideas whether Contains Patterns suitable for my requirement
    or not and is there any other better approach for this requirement?
    Thanks & Regards,
    Madhusudhan

    Hi,
    Thanks for your valuable reply,
    As you told i implemeted the logic for loop end condition like below
    Value CP 'DTS'
    Value is condition variable in xpath according to PI7.1.
    Now according to above xpath, if DTS found in payload at any place. The loop has to end, but now even there is no DTS in payload the loop is getting complete and messages are going to target.
    Thanks,
    Madhu
    Edited by: Madhusudana Reddy on Aug 5, 2009 9:13 PM
    Edited by: Madhusudana Reddy on Aug 5, 2009 9:24 PM
    Edited by: Madhusudana Reddy on Aug 5, 2009 9:25 PM

  • BPm collect Message Check

    Hi,
    when i perform a check to standard BPM patterns BpmPatternCollectMessage. I get the following info am i wrong some where do any changes needed to be done.
    Container element stopmessage in step receive terminating message is initialized but not used
    Container element collectmessage in step *receive * message is initialized but not used...
    kindly help

    I did the above scenario as told.
    It is a bpm message dependent scenario. It keeps collecting messages till a particular message is received.
    I more or less used the message dependent pattern given in SAP BASIS.
    The data types are as follows.
    Dt_In
         Name
         OverallID
    Dt_In
         Name
        OverallID
    1 to 1 mapping
    I used the OverallId for correlation. The receive step inside the infinte loop collects the messages with OverallID '1' while the receive step below collects messages with OverallId '2'.
    In the container elements i defined 2 separate message interfaces. One for OverallID '1' and the other for OverallID '2.  The 2 message interfaces have the same Message type. Only values will be different.
    For the parallel fork step i have given end condition OverallID = 2.
    When i execute the scenario the messages are all comingin a queue. The status is wait for event.
    What could be the problem?
    Thanks
    Edited by: pratichi chauhan on Sep 24, 2008 2:46 PM

  • How to collect and split messages in BPM

    Hi,
    I have two scenarios.
    In one scenario I have to collect files and send as one file
    In second scenario
    I have single file and need to split it into several ones.
    Pls provide me simple example blogs
    Regards

    Hi Harry,
    <i>what is correlation and why do we need correlation
    for N:1 transformation (multiple messages to one message).</i>
    Correlation is used when you have multiple recieve steps in the BPM to differentiate each file. Consider your recive step is executed and the BPM is active waiting for the other file to comne in. Before the next file comes in , if another BPM is activated becuase your recived recive1 message. Now, when the next message comes in , how does XI know which BPM instance is to be used.
    http://help.sap.com/saphelp_nw04/helpdata/en/a5/64373f7853494fe10000000a114084/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/6d/94364296f1b26be10000000a155106/content.htm
    This blog talks abt it.. i had already posted it
    /people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi
    <i>Can N:1 be achieved without correlation.</i>
    Correlation is used when you have multiple recieve steps in the BPM to differentiate each file.
    <i>[Reward if helpful]</i>
    Reagrds,
    Prateek

  • Collection of messages in BPM

    Hi Experts,
    Collection of messages in BPM is not working,IP is executing for each Idoc.Actually i have done the sceanrio Idoc to File,Here I am getting multiple IDocs of same type from R3 when run a transaction and i would be generate a single file for all the IDocs.For this i have changed the occurence of Idoc from 1..1 to 1..unbounded and done the mapping betweeen these two. i have done bpm just like as standarad bpm pattern "BpmPatternCollectTime".I mentioned the time as 1 minute.in transformation step i had mentioned interface mapping for 1..1 Idoc to 1..unbounded Idoc and the real mapping conditions of this sceanrio is carried out after the bpm. The Idoc's are generating from R3 with the time diffrence of 3 secs.So it should generating a single file what ever the no.of idocs populating within a minute.
    In monitoring it showning for bpm, its trigerring for each incoming Idoc and procesing successfully.
    For Ex: Two idocs are coming from R3 then BPM triggers twice
    What could be the possible reasons for this or i have done any thing wrong.
    Any ideas.., Thanks in advance
    Cheers
    Tiger Woods.

    HI,
    Try to Use Idoc packaging. also see the below links
    /people/pooja.pandey/blog/2005/07/27/idocs-multiple-types-collection-in-bpm - Collection of IDoc to Single File
    /people/stefan.grube/blog/2006/09/18/collecting-idocs-without-using-bpm - collecting IDocs without BPM
    /people/prateek.shah/blog/2005/06/08/introduction-to-idoc-xi-file-scenario-and-complete-walk-through-for-starters - IDoc to File
    Regards
    Chilla

  • BPM Collect Message dependent AND time dependent

    Hi
    I have a IDOC to file scenario where I have to collect all the IDOC until I receive a stop IDOC.
    Once the End collect IDOC is received I have to do a n:1 transformation and write the file to the FTP.
    The problem is, at times the IDOC which is suppose to end the collect loop gets stuck in ECC R3 system.
    So Im wondering If I can do something like say, we have two options inside BPM both time dependent and message dependent.
    In this case which ever comes first (the Stop/END IDOC or the Time say 3 mins) will end the collect process.
    Can anyone pls suggest will it work and if so what are the additional steps I have to introduce in the BPM.
    Pls advice.
    Right Now these are the steps in the BPM Collect Message dependent.
    1. Block (I have used correlation)
    2. Fork inside the block
    3. Fork branch one has a look with end condition as 1=1; then a receive step and a container operation inside the loop.
    4. Fork branch two receives the end collect idoc.
    5. Transform step outside the block.
    6. Send step.
    Thanks
    Prasanna

    Hi Abhishek/ Raj
    Thanks!!
    I have done the changes let me confirm after testing it once. In the mean time I have one more question regarding the same BPM, as I have mentioned in the first post, the BPM contains the 6 steps mentioned but the the 6th step is inside another block (Block2).
    The steps 1 to 4 are inside Block1.
    The step 5 ie the transformation step (n:1) is in between the Blocks ie not inside any block (hope im not confusing).
    The second block is for sending the file to the FTP and based on the acknowledgement (transport level) I have to send an email.
    So Block2 already contains a deadline branch, it is to wait for the positive acknowledgement for say 3 mins and send the error email if incase we dont get positive ack within the time limit.
    My doubt is,
    1. Is it the only way (having two block and two wait steps) to achieve this.
        (one block for collecting and one block for ack)
    2. Is there any way I can have a single Block in the BPM insted of two. If so what are the steps.
        Having single block, Will improve anything??
    Thanks
    Prasanna

  • Collect Asynchronous XI messages without BPM

    Hi,
    we are sending asynchronous Xi messages from ERP to PI and then sending a file through FTP for each message.
    We would like to group (collect) the messages in XI or ERP and send them all as 1 file at a specific time.
    Is this possible without BPM (I've seen the classic BPM way to do this but try to avoid BPM) What are the options ? Can this just be done by configuration ?
    We are using PI 7.1
    Thank you.

    Hi guys,
    I`m facing a similar issue in a project, where several e.g. 7 large messages, normal msg size 10-15mb, but one normally is about 100mb,  are transfered to PI via ABAP proxy and have to be merged in one single file using the file adapter.
    QoS at the moment is EO.
    Because of the performance issues I want to avoid ccBPM.
    I think the append mode could be a way to solve this issue. But how could you determine that all messages have been processed and added to the file, so that the receiver could fetch the complete file and process it?
    Is it useful to build up an unique filename like "XYZ_DATE.txt" so that all messages of one day are collected in the same file, but there is still the issue to recognize when the last message is added to the file and the file is completed.
    QoS EOIO is needed to achieve that?
    Any suggestions welcomed, thanks in advance.
    Regards,
    Jochen

  • Time dependant message collecting in a bpm

    I have a bpm setup to collect messages. I want to collect messages until a specific time daily (eg. 18h00 everyday) and then send them.
    I have used the BpmPatternCollectTime pattern but cannot specify a daily time. Does anyone have suggestions on how to accomplish this.
    Ta.
    Rodney

    Hi Rodney,
             We also had this same design implemented. But the BPM is not flexible enough to provide the get the current date and collect till a particular time.
    One another way will be to use the design BpmPatternCollectMessage and send in a stop proxy message using a ABAP proxy message triggered from the ABAP stack at 18:00hrs every day so that the collection process will end and will send the data to the target system.
    Cheers
    JK
    PS: Award points if this helps you

Maybe you are looking for

  • Data populated in internal Table its not diplay in result

    Hi ABAPers,                      i have one doubt in internal table one field data is populated but in result its diplayed. can  any one tell me the solution for this regards, kishore.

  • Oracle Periodic Alert..

    Hello every one.. I am having 1 problem.. if have created a one periodic alert.. its working perfectly.. when i am checking it through request ---check emails are coming .. but when i am scheduling it through periodic alert (complete procedure..)...

  • Replacing 'blank' with 0 in webreports

    Hallo, output of webreport conatins blank values when there is no data.after exporting to Excel also blank values remain unchanged. Can anybody tell me how to replace blank values with 0 in webreport output  or  having 0 instead of blank after export

  • Is possible Oracle Database on Windows Cluster without FailSafe ???

    Hi Guys, I have one doubt that can we have Active/Passive Oracle Database on Windows (2k3/2k8) Cluster without installing FailSafe Software ??? Can we have the .bat Scripts for resource moving from Active Node to Passive Node in case of failure, like

  • G780 Won't start up- bad hard drive - warranty?

    After many hours of frustration, I was finally able to run the diagnostics on my 6 week old G780.  Looks like the hard drive is bad (failed almost every test).  I called warranty- they said they would call me back (I am still waiting two days later).