Multiline container mapping

Hi,
There are many invoices present in the incoming message.
I have to make a single Bapi call for each invoice.
For this purpose in the BPM I need to map the message to a multiline container, so that in the next block I can loop each line of this multiline container to the required Bapi.
Now, I have this problem in the mapping of the received message into a multiline container. The transformation step in BPM is not giving any result in the output.
For your reference, I am giving belwo the input and result of the mapping (into a multiline container below) I need
1. Input:
      <ns1:MT_scan_invoice xmlns:ns1="urn:customers:invoice">
         <Invoice>
         </Invoice>
         <Invoice>
         </Invoice>
      </ns1:MT_scan_invoice>
2. Result needed:
      <ns1:MT_scan_invoice xmlns:ns1="urn:customers:invoice">
         <Invoice>
         </Invoice>
      </ns1:MT_scan_invoice>
   <ns1:MT_scan_invoice xmlns:ns1="urn:customers:invoice">
         <Invoice>
         </Invoice>
      </ns1:MT_scan_invoice>
I have done mapping where, I have mapped the "Invoice" node (which is unbounded) to the target node of "MT_scan_invoice ".
In the 'Messages' tab of message mapping and in the 'Design' tab of interface mapping, I have changed the occurrence of the target message to '0..unbounded'. Also in the BPM the target container is multiline.
The interface and message mapping in stand-alone mode is giving successful outputs. (as desired)
Still the transformation step in Runtime is giving an empty output. Did I miss something in the mapping?
Kindly help. For the last 2 weeks, I am stuck with this issue.
Also kindly suggest alternate methods to generate a multiline container.
Thanks,
John

Hi,
In this case, you are splitting your single message based on some condition to multiple messages but with the same structure as that of source.
Can you pls specify what is that condition?
There is a possibility that mapping is wrong somewhere here.
Also, befor this mapping there are two nodes at target side, 'Messages' and 'Message1'.
Map these nodes with some constant even thought their occurence is 1..1.
Regards,
Supriya.

Similar Messages

  • Receiver determination step in the BPM and multiline container

    i have made a file2file scenario where:
    there is a BPM,
    the BPM has a send step which contains a receive step,
    a transformation that mapps the incomin message to two messages(Split-messgae case),
    and then a FORK step which sends the two messges to through 2 SEND steps to the intended receiver services.
    It didnt work......and i followed a blog->  /people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure   ............... which suggested to have a
    "receiver-determination" step in the BPM before the SEND step.... it says that this
    "receiver-determination" step will put the message in a MULTILINE container..
    i m confused bout this step ........ can anybody explain.....
    please help

    HI,
    In receiver determination step selctthe multi line container element.in container editor create the one element with type as receiver and select the check box.
    A Receiver Determination step returns set of receivers configured for the output abs interfaces in the directory and puts it into receiver which is a multiline container receiver element
    Regards
    Chilla

  • "receiver-determination" step and multiline container

    i have made a file2file scenario where:
    there is a BPM,
    the BPM contains a receive step,
    a transformation that mapps the incomin message to two messages(Split-messgae case),
    and then a FORK step which sends the two messges to through 2 SEND steps to the intended receiver services.
    It didnt work......and i followed a blog-> /people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure ............... which suggested to have a
    "receiver-determination" step in the BPM before the SEND step.... it says that this
    "receiver-determination" step will put the message in a MULTILINE container..
    i m confused bout this step ........ can anybody explain.....
    please help

    Receiver Determination step will return all receivers that are configured in Integration Directory, for that particular message interface, having the BPM as the sender service.
    So, more than one receiver may return. Hence you need to define the receiver container as a multiline container.
    Here you go with explanations- for Receiver Determinations in BPM-
    http://help.sap.com/saphelp_nw04/helpdata/en/11/13283fd0ca8443e10000000a114084/content.htm

  • Send multiline container into receiver (SP14)

    I need to validate each object in xml
    I created BPM, 1:N mapping,  1:1mapping for validation and value mapping.
    Then I need to insert data into DB (JDBC Receiver).
    I want to improve performance and to insert all validated data in one transaction as bath operation. For this purpose I think to add multiline container and container step ant collect all validated data.
    The question is: Is it possible to send  multiline data from BPM into receiver system? I heared that it is posible in SP14. Do I need additional configuration? Will this solution work?

    Hi Inigo,
    you need first a tranformation step where you have a source message with n lines and n target messages with one line (multi line container).
    Next you can define a loop block for all entries of that container.
    Regards,
    Udo

  • Not able to give multiline container variable in transformation step.

    Hello,
    I'm doing a simple collect pattern in BPM.
    I have three container variables, one- the source interface, second the multiline of source interface and third-the target interface.
    Now, i have block in which i have the exception and deadline steps and then a loop in which i have my receiver which collects the message and gives it to the container to keep it to the list. Outside the block i have my transformation step which takes the relevant interface mapping. When i try to give the multiline container variable the box turns red, but of give the normal source container variable it accepts it.
    If i do a check by F7, Expression must not return a multiline value.
    The scope of the container variables is maintained as Process.
    What could be wrong, please help.
    Thanks and regards,
    Akhil

    hi akhil,
    think in transformation it sees source messages and target messages.
    if u have n:1 scenario then n interfaces to one interface right
    thats is each interface will have one message type
    so if u are using interace mapping in transformation it is expecting n interface variables to one interface variable.
    it will display n source messages to one source message jsut check.
    so transformation step is expecting one n sub message types to be embedded in one message type
    <messages>
    <message 1>
    <meessage n>
    </messages>
    this one is mapped with one XML target messgae
    so if u have n different messages see that u compress them in to one message type like the above and give it in trasnformation step.
    if you have n different messages then u can alwasy go for n different interfaces to one single interface
    then u can see in tranformation step n diff source messages and one target message
    was just confused with reciever step which allows multiline receivers
    Thanks & Regards,
    Rama Krishna
    Edited by: rama krishna talluri on Mar 6, 2008 1:48 PM
    Edited by: rama krishna talluri on Mar 6, 2008 1:49 PM

  • How to send message from multiline container to same webservice or bus. sys

    Hi All,
    I want to send message from multiline container to a syn web service sequentially.
    I am getting that multiline container after a transformations step (1: n mapping).
    where i dont known what will be the value for n (number of message in multiline container). This will vary; depend upon input message to BPM.
    Scenario is like this.
    1. Receive step
    2. Transfromation to 1: n
    3. Want to send message from multiline container to a web service (business service),default loop and block step doesn’t give desirable result.
    any help will be appreciable
    Regards,
    Adish

    Adish Jain wrote:>
    > where as, if I will use block, it will send the same message to multiple receivers which are present in multiline receiver container. So need to think in different manner.
    Not necessarily.
    When you use block step in ForEach mode, you can select the container variable from:
    - a receiver container;
    - an interface container;
    The line element can then be either a receiver or an interface.
    The problem is that for this to work, the interfaces need to be async (since they are to be used as containers) and hence you won't be able to make your scenario work.
    But again, explain why your scenario with loop step didn't work.
    The only gap here is how to determine the number of loops (defining the counter variable value). But that can be easily solved if you include a new message with occurrence 1 as a target message of your mapping and as a container in your bpm.
    This new message needs only 1 single field, that should be filled with the number of messages you've created in the mapping (you could use count standard function, f.ex.).
    In your bpm, make sure to pass this fields value into the counter container right after your transformation step.
    Regards,
    Henrique.

  • CcBPM multiline container Processing

    I have a BPM where I select several records from the database. I then need to process each record through a JAVA mapping module individually.  Based on the output of the JAVA mapping module I either send the record to the appropriate receiver or I end the process for that record.  
    first Attempt:
    1) receive data from database through SQL query
    2) Split the single message with many entries into many individual messages through a transformation step.  
        i.e.  Mapping A occurence 1 to Mapping B occurence 0,unbounded
    3) A ParForEach Block which contained the transformation step with the JAVA Mapping, A switch step for canceling or sending the document.  
    My problem:
    The multiline data was never sent to the transformation step but I noticed that if I have just had a send step it would process each line.
    Second Attempt:
    1)  Receive data from database through SQL query
    2) Split message as mentioned above
    3) Assign multiline to variable in container opperation
    4) Variable from container operation is input to JAVA Mapping
    My problem:
      I don't see any processing from within the loop.  I don't receive any output and my data doesn't appear to have processed through the JAVA module.
    Does anyone have any other suggestions on how to process these records since my JAVA module can't take the list of records but needs them individually as well as I need to send them out individually based on their independent response from the JAVA module.

    Hi Amar,
    We don't have any direct way to refer multiline container in send mail. You can achieve this indirectly. You create a big string in workflow container. Then create a custom object from SW01. Create a method in this object. This method should take the multiline element as the input and concatenates the lines and returns the big string. Now the object is created, create a new task before send mail stpe. This task will be calling the custom object method which takes the multiline element and returns the string. Then use this string in the mail. Hope this helps.
    Thanks
    hari

  • Sending Multiline Container

    Hello,
    I have a scenario where I map Idoc's <b><b>before</b> BPM</b> and I want to use BPM just for colleting these Idocs.
    The problem that I come across is that I get an error when sending a "Multiline Container" in the "Send" step. If I make a container just for sending I get an error that my "Send Container" is empty.
    If you collect and map the Idoc's in BPM, you can change the occurance in the mapping and send a Multiline Container but If you map before BPM you need to change the occurance of the target message because the occurance of my incoming and outgoing message in BPM in the highest level is 1..1 and I guess if you can change this you can send the multiline container, but this seems impossible,
    Does anyone has any idea about this matter?
    Kind regards,
    Kamran

    Hi Guys,
    Thank you for your reply. Ive tried your suggestions and It doesn't work.
    In case of Mario the problem is that you can't select multiline container nor for the Receive nor for the Send step and in case of Ranjit its not possible to select the simple type in the Current Line of the Block, you have to choose an Abstract Interface and if you choose an Abstract Interface for the Current Line it doesn't work.
    So my conclusion would be this is not possible.
    Best Regards,
    Kamran

  • Fill Multiline container from multi records in source XML ?

    Hi,
    scenario: File-XI-RFC-File(BPM).
    Read company id from source file, call BAPI(company_get_detail) using RFC receiver adapter and then write response to another file.
    This works fine for one record(one RFC call to BAPI) using the BPM.
    Now, I would like to implement the process for multiple records using block(forEach) to make multiple RFC calls in BPM.
    <i>I understand that i have to create multiline container and map 1:n from input xml into that container.</i>  I need help here.
    BPM Steps:
    <b>Receive source file - fill multicontainer ?</b>
    Open block step (forEach)
       send sync RFC call
       save Response in another multiline container
    close block
    send step - write response to file(receiver)
    file structure:
    <ns0:MT_compRqst_multi xmlns:ns0="http://abc.com/FileToRFCBPM">
       <DT_record>
          <companyID>000001</companyID>
       </DT_record>
       <DT_record>
          <companyID>000002</companyID>
       </DT_record>
    </ns0:MT_compRqst_multi>

    Hi -
    For your requirement, as Bill implied, you need a multi-mapping (Transformation step) that maps your single message with multiple records to multiple, <i>complete</i> messages with one record each. 
    To get you started, basically, for the multi-mapping, create a message mapping with your source and target MTs the same (as the one you posted).    Then in "Messages" tab, for your Target message, change the occurance to "0..unbounded".   Now if you go back to the "Design" tab, you see that both your source and target messages have a "Messages/Messages1" wrapper around them.  In the end, the target message would look like the following and would correspond to your multi-line container element:
    <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
        <ns0:Message1>
            <ns0:MT_compRqst_multi xmlns:ns0="http://abc.com/FileToRFCBPM">
                <DT_record>
                    <companyID>000001</companyID>
                </DT_record>
            </ns0:MT_compRqst_multi>
            <ns0:MT_compRqst_multi xmlns:ns0="http://abc.com/FileToRFCBPM">
                <DT_record>
                    <companyID>000002</companyID>
                </DT_record>
            </ns0:MT_compRqst_multi>
        </ns0:Message1>
    </ns0:Messages>
    You'll need further steps - Interface Mapping, ccBPM (Transformation step, adjusting your Block settings, container element for multi-line element, etc.).   There are some blogs on multi-mapping within ccBPM that will help you - just do a search.
    Note that if your scenario has a large number of records, this approach is not performance friendly.
    Regards,
    Jin

  • Workflow: check multiline container element for emptiness

    Hi!
    Please suggest how to check multiline workflow-container element for emptiness in condition block.
    Regards,
    Maxim.

    Hi Max,
    One way to do this is to add a process step which calls a function module passing the multiline container as the import parameter. In this function mod, you can check for emptiness and set a variable which will be the export parameter. Map this export parameter of the step to a workflow container field. Finally in the next step (control block) you can check the above workflow field.

  • Multiline container in workflow ?

    How Can I display multiline container element in the Send Email Task in workflow.
    I have one activity called Create PO in forground. I have to send the PO number and materials number to the responsible agent(I have agents) by Email.
    can I do it in workflow. please let me know.

    Hi Amar,
    We don't have any direct way to refer multiline container in send mail. You can achieve this indirectly. You create a big string in workflow container. Then create a custom object from SW01. Create a method in this object. This method should take the multiline element as the input and concatenates the lines and returns the big string. Now the object is created, create a new task before send mail stpe. This task will be calling the custom object method which takes the multiline element and returns the string. Then use this string in the mail. Hope this helps.
    Thanks
    hari

  • How to test the rule if multiline container is passing to the task?

    Hi Experts,
                      I am working on leave workflow. I have to get the approvers based on no of days of leave and leave type. I am getting these details in ITEMS_TAB internal table. I am passing this table to a rule. Now my problem is when I tried to simulate the rule I am not getting any input screen to enter the data.
    ITEMS_TAB is an internal table type of   "PTREQ_ITEMS_WF_TAB_FLAT".
    In the rule I have created a container by selecting the radiobutton "ABAP Dict. Data Type" and entered the above reference parameter is it right way?
    Is it possible to test the rule independently if I use multiline container as import parameter in my rule?  If so can anybody please tell me how to test the rule?
    Thank You.
    Srija.

    Hi Pavan,
                     Thank you.
                     To copy the values I am not getting any input screen to input the values. I observed one thing that the type that I am referring in the Rule is a deep structure. Is this is the reason that I am not getting the input screen to enter the values?
    I tested by creating aother rule by taking a field for that rule I am getting the input screen to simulate the Rule.
    Can you please suggest if the rule will not work then what I have to do? without the rule how can I get the agents?
    Thank you.
    Srija

  • Problem using multiline container in Alert Category

    Hello, experts!
    Could you please suggest me how to solve the following issue.
    I have userdefined multiline container MY_CONTAINER with two elements FIELD (stores name of field) and VALUE (stores value of field). This container is filled in runtime by means of BADI extension. So in transaction ALRTDISP filled container looks like:
      MY_CONTAINER
          MY_CONTAINER[1]
              FIELD    SystemCode
              VALUE    42
          MY_CONTAINER[2]
              FIELD    Key
              VALUE    0292383728232
          MY_CONTAINER[3]
              FIELD    State
              VALUE    1
          ...and so on. Number of filled elements of container is unknown.
    I need to add the contents of this container to Long text of Alert Category in form of:
          SystemCode: 42
          Key: 0292383728232
          State: 1
    ...and so on.
    I added MY_CONTAINER on the Containers tab of my alert category. And in Long text included the following expression:
          &MY_CONTAINER[].FIELD[]&: &MY_CONTAINER[].VALUE[]&.
    But in long text it looks like:
          SystemCode Key State ...: 42 0292383728232 1 ...
    If the expression is like
          &MY_CONTAINER[].FIELD& - &MY_CONTAINER[].VALUE&
    then long text contains only the first element:
          SystemCode: 42.
    Does anybody know how to solve this problem?
    I think I need to use expressions (something like FOR-loop) for filling Long Text in Alert Categories. Is it possible?
    BR,
    Vika

    Hi Experts,
    still trying to work out but couldn't understand the behaviour.
    <b>If the Long text :</b>
    Error: &SXMS_ERROR_CODE& <b>of category &SXMS_ERROR_CAT&</b> was found in a message &SXMS_MSG_GUID& from the service &SXMS_FROM_SERVICE&  <b>and  Interface &SXMS_FROM_INTERFACE&</b>
    to test I am running the program <b>RSALERTTEST</b>
    <b>Msg got thru E-mail is </b>
    Error:  and category:<b> &SXMS_ERROR_CAT&</b> was found in a message  from the service  and Interface
    <b>
    And when I change the Long text</b>
    Error: &SXMS_ERROR_CODE& <b>and &SXMS_ERROR_CAT&</b> was found in a message &SXMS_MSG_GUID& from the service &SXMS_FROM_SERVICE& and Interface &SXMS_FROM_INTERFACE&
    After running the program <b>RSALERTTEST</b>
    <b>
    E-mail msg</b>
    Error:  and was found in a message  from the service  and Interface <b>&SXMS_FROM_INTERFACE&</b>
    coudn't able to understand why it is displaying the container variable as is in the mail.
    checked all the Alert Framework configuration, Everything looks good.
    Thank you,
    <b>MK</b>

  • Urgent - How to pass value to Multiline container element in workflow

    Hi,
      I hav a requirement as below...
    1) In a Bus. Object, there is a method with a parameter which is Multiline.
    2) When I execute it directly from Bus. Object, I am able to populate any no. of lines to the multiline parameter & execute it. It is working correctly.
    3) Now I have created a task for the same Method & used it in my workflow.
    4) I want to pass multiline values to the parameter from workflow.
    5) I dont have any internal table being filled in the previous steps. I directly want to assign variables or constants to it.
    How can I do it????
    Thanks,
    Sivagami

    hi sivagami,
    Please help me. I am also facing same type of problem. i am new to workflow. i am using using FM sap_wapi_write_container. to write into the container. but here my problem is i don know wat is the element name to refer to the value. if i give any element naem its taking as separate element & not as the same multiline container. i hope u will be able to assist me since u have worked on the same type of problem.
    If u help i will be highly thankful to u.
    Thanks & Regards
    Nigesh

  • Using Multiline Container element in sending mail

    Hi,
         I am sending mail with Multiline Container element APTEXT.
    I put &APTEXT##&  Is this right ?
    But when I have 2 lines of data, its sending mail with only one line.
    Thanks

    It is my personal observation that if the line size is more than 132 charecters then it will display like that.
    So do like this
    1. First make the row size as 125.
    2. and when you are selecting the multiline container element in the mail content, then it will ask you 3 options selct the option Print line by line then check the mail.
    It worked in my case.

Maybe you are looking for

  • I can not open PDF's from Safari.

    I have already uninstalled Adobe Reader and made Preview my default reader again. When i open a PDF, i get back a black screen. Previously, i would get a black screen with message saying i needed to accept the License and Agreements of Adobe Reader.

  • After downloading iTunes 7.4.1 - Can not access iTunes Music Store

    After downloading iTunes 7.4.1, I am unable to access the iTunes Music Store. When I try to open the store, an error message appears saying _*iTunes could not connect to the iTunes Store. An unknown error has occured (-3212) Make sure your connection

  • Burning a DVD - error message

    I get the following error message when I attempt to burn my DVD: "There were errors during the project validation that have to be fixed before burning the project." I am not sure what I have to do to correct this.

  • Get Sales data based on MSEG entries

    Hi, I have retrieved some entries from mseg table by joining with MKPF based on budat. Now i would like to get the purchase related data based on the details in MSEG. Could you please help joinig mseg entries with EKKO , EKPO ,LIKP, LIPS or VBEP. Tha

  • Assigning the profile to a blade server using script

    I had a UCS workshop this morning with one of my clients, and he asked me if there is any way to develop a script to remove the profle from one of the blades and re-assign another profile to the same blade. Thanks for your input in advance!