Collecting Message based on Delivery Id

Hi,
We have an scenario to collect the messages based on delviery number, like customer sends the bulk order and SAP splits that order and create the delivery for each splitted orders .
Eg.
Sales Order     Batch Order
PO#      1234
This Batch order is split in to multiple orders as below
Order_1     Order_2     Order_3
1234_A_C     1234_B_C     1234_C_C
Delivery_1     Delivery_2     Delivery_3
1     2     3
These deliveries are sent to PI as DESADV in differnet time frame.
->     DESADV# 1     DESADV# 2     DESADV# 3
inbound time     10:30AM     11:00AM     11:20AM
PO#     1234_A_C     1234_B_C     1234_C_C
Outbound time     11:20AM     11:20AM     11:20AM
Now we need to collect all the DESADV for a single batch order and send it to customer as a single DESADV .
Can anyone help me how to handle this in PI.
Is there any BPM process there to collect the messages based on PO number (1234_A_C,1234_B_C,1234_C_C) for particular partner.
I know correleation id can be used but PO is not constant.
Thanks
Lakshmi S

you can use the BPM Pattern to achieve this functionality.
Also refer the following links:
http://help.sap.com/saphelp_nwpi71/helpdata/EN/08/16163ff8519a06e10000000a114084/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/41/e3d13f7fb44c21e10000000a1550b0/frameset.htm
/people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure

Similar Messages

  • 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

  • BPM collect pattern based on payload

    Hi,
    i am doing BPM Collect pattern based on stop message which is RFC. Means, i need to collect the IDOCs until i get the RFC from another system.
    For this i am using predefined pattern BPMcolllect pattern which is in BASIS SWCV.
    is it possible to do with out correlation?
    if correlation is required, there should be one common fiield between two messages?
    Thanks,
    karthik

    Hi ,
    Your design it self wrong, when you develop interface as a sender IDoc , then how come you will receive RFC in to BPM??
    so check your requirement with your client, if you want to collect messages there are different ways, implementing patterns in last option.
    search in sdn.
    Regards,
    Raj

  • Commitment-update based on periodic base, based on delivery date. FI_E008

    Hi gurus:
    In our system, we are using profile update 000350.
    The purchase orders consume budget based on delivery date.
    When posting an invoice, it is necessary that the commitment reduction
    (amount type 0200) is posted with the invoice posting date and not the
    delivery date of the purchase order.
    This requires defining that value type 51 takes commitment update based
    on periods.
    By selecting the commitment update based on periods, it is not possible
    to determine the period by the delivery date. System displays an error
    message FI_E008.
    We need commitment-update to be based on periodic base, based on the
    delivery date.
    Could you help me. Thanks

    Hi,
    I don't think it's possible: PBET implies using posting date as basis date in the most cases. Tthere are some exceptions, but they don't apply to purchase orders (v.type 51).
    Regards,
    Eli

  • How to find country code based on delivery number

    HI Folks,
    plz suggest which table is having country code(ship-to party) based on delivery number.this should be storage location country.
    Thanks,
    Ritesh.
    Message was edited by:
            Ritesh Shrivastava

    Hi,
    You can also get it from the table VBPA..
    SELECT SINGLE * FROM VBPA
                  WHERE VBELN = 'DELIVERY NUMBER'
                  AND       PARVW = 'WE'.   "SHIP TO PARTY.
    VBAP-LAND1 will be the country code..
    Thanks,
    Naren

  • BPM collects messages, and should terminate at a given time

    Hi,
    i'm trying to create a scenario where a business process collects messages. At a certain time each day this process must transform this messages into one message and terminate.
    (I used the BpmPatternCollectTime process as a template)
    My problem is:
    how to tell the deadline branch it should rais an exception every day at a given time, lets say 10pm?
    I already tried to configure this branch with "Reference Date/Time=Expression" and set date and time to 2008-10-04 14:30:00. But the process won't stop at this time.
    Any ideas?
    Thanks in advance,
    ms

    Hi,
    I am not sure if you could use this pattern for stopping at a given time?
    Maybe you could configure a report that sends a message every day at the given time to the PI and your process stops with receiving this message.
    Regards
    Patrick

  • When I send a text message it says delivery failed.  When I resend it sends the message twice.  Why am I having problems?

    When I send a text message it says delivery failed.  When I resend it sends the message twice.  Why am I having trouble?

        Oh goodness! We want your text going through the first time, dria56. Does this happen when you're messaging someone in particular or is it every message you send? Is it a plain text or a message with more than 160 characters/graphics/pictures?
    JenniferH_VZW
    Follow us on Twitter www.twitter.com/vzwsupport

  • Category for message 06356: No delivery costs can be posted in case of mult

    Hi experts!
    I know why the system issues message "06356: No delivery costs can be posted in case of multiple account assignment", but I need to set this message as an ERROR because it is a WARNING by default.
    I tried it via SPRO -> Materials Management -> Purchasing -> Environment Data -> Define Attributes of System Messages, but it doesn't works. Although I set the message as an ERROR I tested and it is a WARNING message.
    I tried via SM30 with no positive results.
    Do you have any suggestion?
    Thanks in advance!

    Hi,
    Message 06356 is coded in standard as warning
    and cannot be changed through customising
    Message 06 356 is hardcoded as "Warning"
    Review of the Abap code reveals the message is hardcoded, see:
    Include: MM06EF0W_WE_RE_KENNZEICHEN
    :  mmpur_message 'I' '06' '356' '' '' '' ''.
    If you wish to change this message to an error you will have to modify the code.
    It is not possible in the standard to set this message as an error
    Delivery costs are not posted for documents with multiple account
    assignment in Release 46C.
    This was allowed in releases 3.0, but this functionality was deactivated
    in Release 4.0A for design reasons. For more information on this issue,
    please, see note 77789.
    In the note it is stated that:
      "Even if you do not delete the delivery costs, the system does not
       process them during the goods receipt, the invoice receipt and in the
       purchase order commitments."
    Kind regards,
    Lorraine

  • 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

  • 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

  • Collect message into internal table

    Hi,
    does any one knows how BAPIs or CALL TRANSACTIONs collect messages into internal table.
    My problem is that some BI with CALL TRANSACTION doesn't collect right message into return table and I would like to collect this last message after CALL TRANSACTION and therefore be sure that everything went OK.....
    thx
    mario

    hi
    good
    check this
    Call Transaction p_trans using ZBDC_Table
                                   Mode p_mode
                                 Update p_update
                          Messages into p_messages.
         Move sy-subrc to w__subrc.
       Scan the messages in YDCRAISES to see if we need to
       change the message class.
         Loop at p_messages.
              Select single msgtyp
                into w__msgtp
                from zdcraise
               where tcode  = p_messages-tcode  and
                     msgid  = p_messages-msgid  and
                     msgnr  = p_messages-msgnr.
              If sy-subrc = 0.
                 Move w__msgtp to p_messages-msgtyp.
                 Modify p_messages.
              EndIf.
         EndLoop.
       Dump the message table ?
         If w__ydcset-dumpmsg = True.
    thanks
    mrutyun^

  • 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

  • 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

  • Collect message till particular point of Time in BPM

    Hi,
    I want to collect messages till particular point in time like till 6 oclock evening.
    In deadline branch i have to use Expression and should give date and time.
    What is the format of date and time if it is not coming in payload.
    What is the difference between: Creating the step and Creating the process property.
    Any help is apreciated.
    Thanks and regards,
    Satish

    The date and time format will be the standard XSD date and time format
    Date:
    YYYY-MM-DD  or YYYY-MM-DDZ
    Time:
    HH:MM:SS or HH:MM:SS.x
    But since your requirement is to collect the messages till 6pm everyday, I guess there is a problem with the mandatory date field.
    Maybe you can use a datatype which holds the current time in a field and use the field as the loop variable.
    - Kannan

  • 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

Maybe you are looking for