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

Similar Messages

  • 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

  • Agents in multiline container

    I have agents in multiline container whatever agents in multiline container should receive the workitem, if three of them executes the workitem then only workflow should process next step.please any one suggest me

    Hi rohen ,
    thank u for ur answer,
    i should keep that activity step in betwen the block or after the activity step,
    one more thing is in method used in activity step has result parameter
    i.e if any one approves it gives result '0' , if any one rejects it gives result '1'.
    if three of them are approved then it should proceed for furthur things,
    please explain that block  ...
    thank u in advance..

  • 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

  • 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.

  • "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

  • 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.

  • Mail not send to multiple users even Multiline container element has value

    Hi,
    I have collected the AGENTS to send mail notification in a multiline container element using a background step. The method collect the agent and return in to a container. I use this container in the following mail step using expression. The type id is 'G'. The mail step fails .The address string is filled also with agents.
    Please guide me if u have come across this situation early.
    Regards,
    Richard A

    I think if you are passing SAP User Id then the SAP User Id should be concatenated with US in the front.
    If this is maintained in the container element and if still send mail is failing then it might be that one of the USER Id does not exist in the system.
    Hope this helps.
    Thanks
    Arghadip

  • 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

  • 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

  • CcBPM extract data from query input (muliple row) to multiline container.

    Hi XI Expert,
    I have ccBPM scenario JDBC -
    > RFC.
    JDBC Sender contain multiple rows, how can i extract the muliple rows into multiline container so i can use for looping and send to RFC one by one.
    Thank you and Best Regards
    Fernand

    Hi,
       Your scenario is JDFC to RFC, where u have to extract the multiple records and apeend to RFC.
      first thing, in order to bundle multiple rows
       is there any time constraint ?(like with in 24 hours), in that situation use block step and append mode.
    also use activate corelarion step in receive.
    as u know, we need loop, recive, transformation out of loop send and block.
    plese check the following blog related to BPM.
    https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/2034. [original link is broken] [original link is broken] [original link is broken]
    warm regards
    mahesh.

  • Condition check (based on sender file name) at receiver determination step

    Hi,
    My scenario is File to AS2 (Sender side file adapter and receiver side AS2 adapter)
    We have 5 customers, but the source location is same to pick the files, Here we are not using any ESR objects.
    Based on the source file name PI need to determine to whoom this file need to send at receiver determination step
    Craeted objects
    1 Sender CC,
    1 Sender agreement,
    1 Receiver determination
    5 Interface determinations
    5 Receiver agreements
    5 Receiver CCs.
    Could you please provide me your valuable inputs.
    Thanks
    Ramesh

    Hi Venkataramesh,
    I understand your scenario as, picking files (different file naming standard for different target customer) from one source folder. Based on file name, that payload should be sent to corresponding target customer. You have mentioned u201CHere we are not using any ESR objectsu201D. I can see two reasons for this decision
    1. PI is used to route the messages, i.e., no need to transform the payload. OR
    2. Files can binary files like PDF, ZIP, JPG, GIFu2026
    Now I can see two possible solutions
    1.     Simple solution, as proposed by u201CPrabhu Rajesh Janardananu201D, make it into 5 different scenarios  (5 sender channels).
    2.     Bit complex solution, only one sender channel, using extended receiver determination
    Step 1:- In Sender File channel check u201CAdapter u2013 Specific Message Adapteru201D in Advanced tab. File Name should be checked.
    Step 2:- In Receiver Determination, Select Type of Receiver Determination as u201CExtendedu201D. http://help.sap.com/saphelp_nwpi711/helpdata/en/48/ce2a423a8e5430e10000000a42189b/frameset.htm
    Step 3:- Do a Graphical Mapping (use it Operation Mapping in Receiver Determination).
    Step 4:-
    Source and target of graphical mapping will be same (below), because you donu2019t want to access input payload (it can be XML, flat file, JGP, GIF and you donu2019t have its structure).
    <Receivers>
       <Receiver>
          <Party agency="" scheme=""></Party>
          <Service></Service>
       </Receiver>
    </Receivers>
    Step 5:- Write a UDF in Graphical mapping as below. http://help.sap.com/saphelp_nwpi71/helpdata/EN/43/03612cdecc6e76e10000000a422035/frameset.htm Pay attention to method declaration
    public String Determine_Receiver( Container container) throws StreamTransformationException
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create(u201Chttp://sap.com/xi/XI/System/Fileu201D,u201CFileNameu201D);
    String valueOld = conf.get(key);
    //Put your logic here
    if (valueOld.equal(u201Cuser1u201D)) {
    return u201Cuser1u201D;}
    if (valueOld.equal(u201Cuser2u201D)) {
    return u201Cuser2u201D;}
    if (valueOld.equal(u201Cuser3u201D)) {
    return u201Cuser3u201D;}
    Step 6: Now use this UDF to map to u201CReceiveru201D and u201C Serviceu201D.
    This solution need more fine tuning.
    Regards,
    Raghu_Vamsee
    Edited by: Raghu Vamsee on Jan 8, 2011 5:56 PM

  • 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.

  • How to pass value to Multiline container element in workflow ?

    Dear Experts,
    I am using the BAPI "SAP_WAPI_WRITE_CONTAINER" to write into the workitem container elements. now i want to write the data into a multiline container element. i am unable to do the same. please guide me how to write the data into multiline container.
    I am getting the data from portal so i am using the BAPI to populate the container.
    Please help me out...
    Thanks & Regards
    Nigesh

    Hi,
    Use the following code:
    DATA:  lv_text             TYPE        string,
              lt_cont_vals        TYPE        swconttab,
              lt_cont_defs        TYPE        swbconttab,
              lo_oref             TYPE REF TO cx_root,
              lo_workitm_cntxt    TYPE REF TO cl_swf_run_workitem_context,
              lo_wi_conv          TYPE REF TO if_swf_cnt_conversion,
              lo_wi_cnt           TYPE REF TO cl_swf_cnt_container,
              lif_wi_cnt          TYPE REF TO if_swf_ifs_parameter_container,
              lo_exception_return TYPE REF TO cx_swf_cnt_container.
    ***--- Get work Item Context
       TRY.
           CALL METHOD cl_swf_run_workitem_context=>get_instance
             EXPORTING
               im_wiid     = im_wi_id
             RECEIVING
               re_instance = lo_workitm_cntxt.
         CATCH cx_swf_run_wim INTO lo_oref.
           lv_text = lo_oref->get_text( ).
       ENDTRY.
    ***--- Get Instance of the work Item Container
       CALL METHOD lo_workitm_cntxt->if_wapi_workitem_context~get_wi_container
         RECEIVING
           re_container = lif_wi_cnt.
    ***--- Type casting work item container into class CL_SWF_CNT_CONTAINRER
       lo_wi_cnt ?= lif_wi_cnt.
    ***-- Set the value
       TRY.
           lo_wi_cnt->if_swf_cnt_element_access_1~element_set_value(
             EXPORTING
               name             =  'ITEM'
               value            =  t_item[]
         CATCH cx_swf_cnt_cont_access_denied.    " Change Access to Container Not Allowed
         CATCH cx_swf_cnt_elem_not_found.    " Element Not Found
         CATCH cx_swf_cnt_elem_access_denied.    " Element Must Not Be Changed
         CATCH cx_swf_cnt_elem_type_conflict.    " Type Conflict Between Value and Current Parameter
         CATCH cx_swf_cnt_unit_type_conflict.    " Type Conflict Between Unit and Current Parameter
         CATCH cx_swf_cnt_elem_def_invalid.    " Element Definition (For Example, Type Name) Is Invalid
         CATCH cx_swf_cnt_invalid_qname.    " Qualified Name Invalid/Already Being Used
         CATCH cx_swf_cnt_container.    " Exception in the Container Service
       ENDTRY.
    * VERY IMPORTANT -- Save changes to DB
       TRY.
           lo_wi_cnt->save_to_database( ).
         CATCH cx_swf_cnt_invalid_por.    " Invalid Persistent Object Reference
       ENDTRY.
       lo_workitm_cntxt->publish( ).
       COMMIT WORK AND WAIT.

  • Message contains no receiver service

    Hello everyone,
    I am trying to make very simple example using SAP XI
    The scenario is as follows:
    I want to read some data from XML-document from FTP and save it into XML-document on other FTP.
    I have done following:
    Integration Repository:
    -1- created namespace
    -2- created data types, message types and message interfaces for both receiver and sender
    -3- created message mapping and interface mapping
    Integration Directory:
    -1- created sender FTP communication channel
    -2- created receiver FTP communication channel
    -3- created configuration scenario xml-XI-xml
    -4- created receiver agreement
    -5- created sender agreement
    -6- created interface determination
    -7- created receiver determination
    After activating the file from sender FTP disappears (processing mode = delete)
    BUT it doesn't appear on other FTP.
    Looking into logs showed the following: the receiver interface for the message is equal to sender interface
    and there is no receiver service specified.
    Sender interface and sender service are correct and report success.
    Trace is
    - <SAP:Sender>
      <SAP:Service>MDM01</SAP:Service>
      <SAP:Interface namespace="urn:mycomp.ru:mysyst:Person">MDM01_Personal_MI_OUT</SAP:Interface>
      </SAP:Sender>
    - <SAP:Receiver>
      <SAP:Party agency="" scheme="" />
      <SAP:Service />
      <SAP:Interface namespace="" />
      </SAP:Receiver>
      <SAP:Interface namespace="urn:mycomp.ru:mysyst:Person">MDM01_Personal_MI_OUT</SAP:Interface>
    Please, could anyone help me with this?
    thanks in regards
    Farit
    Message was edited by:
            Farit Garaev

    Hi all and thanks for quick answers.
    I've checked and re-checked receiver and sender agreements, interface and receiver determinations.
    I've repeated this example again but result is the same.
    It looks like I didn't get something very basic, but I can't see where is the workaround for this issue.
    You've mentioned cache update.
    Could you please explain how to update it and how can it affect.
    We cleared cache for XI runtime but it didn't have any effect (
    Farit

Maybe you are looking for

  • Problem for Mail with PDF attachment

    Hello all, I have a problem regarding sending mail with a PDF attachment from SAP. The attachment contains Payslip of employee that is being generated from a Submit program of the respective HRFORM. I have used the Submit program within a JOB and the

  • (Problem with arrows )Adobe Reader doesn't work correctly

    I've problem with Adobe Reader plug-in. When I have open tab with pdf file, my arrow keys don't work in other tabs in firefox, only in this tab where it's open pdf file. Also I noticed that when trying to use the arrows in the other cards, they work

  • Printing table in JSP page

    Hi friends, i am developing an web application where customers and vendors can able to view a detailed report of what are all the product they purchase/sold. Here i need to print that report and not the whole page.. I think i am clear my point. Pleas

  • Where are you getting backgrounds, textures, and templates for CS6?

    I'm just curious about good web sites to download royalty free backgrounds, templates, textures, etc. for Photoshop.  I'm willing to pay a small annual fee to join the site, but of course free is always good too.  I'd rather avoid places like iStock-

  • Trying to find information for In Store Credit on IPhone

    I am trying to figure out how to get the $100.00 instore credit I heard we could get if we bought the IPhone in the first few weeks.