XI Bulk Message Handling

Hi Expert,
I need to send around 200,000 records as one message from R3 side to 3rd party through PI. I am using proxy to FTP scenario and use SOAP adapter type, XI 3.0 message protocol (use AAE) for proxy. Since the message size is too big, I got an error when I send out "HTTP response contains status code 400 with the description Bad Request". Can anybody tell me how to handle this situation? I see Soap adapter has an option "XI Bulk Message Handling - split XI Bulk Messages". Can anybody tell me if this can solve my problem? And how to use it?
Thanks a lot!
Charles

>Can anybody tell me how to handle this situation? I see Soap adapter has an option "XI Bulk Message Handling - split XI Bulk >Messages". Can anybody tell me if this can solve my problem? And how to use it?
You might want to use Message Packaging. This might be helpful for perfromance improvement and throughput will be considerably increased.
Have you seen this [link|http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/10b54994-f569-2a10-ad8f-cf5c68a9447c?QuickLink=index&overridelayout=true] ?

Similar Messages

  • Receiver determination for Split Message - Bulk message handling

    All,
    I have a scenario where MATMAS message is split to multiple receivers via multi mapping 1:n; the split is based on plant specific data, all works fine the mapping splits the message perfectly.
    The problem I have is in configuring the receiver determiniation. I have put conditions based on plant specific data the message should be distributed to the appropriate receiver. At runtime the MATMAS message received is treated as a bulk message and it produces mutiple sub-documents however in my case if the MATMAS has 3 plant specific data the data is send to all the 3 receivers instead of sending just one message per plant to the appropriate receiver.
    Its IDOC to File scenario on XI 3.0, SP20.
    Receiver Determination:
    /MATMAS05/IDOC/E1MARAM/E1MARCM/WERKS = 'xxxx' -> send to XXXX_receiver
    /MATMAS05/IDOC/E1MARAM/E1MARCM/WERKS = 'yyyy' -> send to YYYY_receiver
    Though the receiver determiniation splits the message by plant it could be that a material is maintained for both xxxx and yyyy plants and in this case both should receive the message but the contents would be different. The problem I have is both messages are delivered to both receivers.
    I appreciate those who have taken the time to read the thread and thank you all in advance supporting with advices.
    / Saj

    Please find attached the source xml before transormation used for the xpath that I have indicated in my original message. From the below message E1MARCM-BESKZ differs on each plant and also has a corresponding warehouse view E1MLGNM where for example LHMG1 value differs for each warehouse.
      <?xml version="1.0" encoding="UTF-8" ?>
    - <MATMAS05>
    - <IDOC BEGIN="1">
    - <E1MARAM SEGMENT="1">
      <MSGFN>005</MSGFN>
      <MATNR>000000000001002201</MATNR>
      <MTART>ZFGS</MTART>
      <MATKL>1111003</MATKL>
    - <E1MAKTM SEGMENT="1">
      <MSGFN>005</MSGFN>
      <SPRAS>E</SPRAS>
      <MAKTX>AA Ni-MH Rechargeable Batteries</MAKTX>
      </E1MAKTM>
    - <E1MARCM SEGMENT="1">
      <WERKS>4911</WERKS>
      <BESKZ>F</BESKZ>
      </E1MARCM>
    - <E1MARCM SEGMENT="1">
      <WERKS>4912</WERKS>
      <BESKZ>X</BESKZ>
      </E1MARCM>
    - <E1MARCM SEGMENT="1">
      <WERKS>5020</WERKS>
      <BESKZ>E</BESKZ>
      </E1MARCM>
    - <E1MARMM SEGMENT="1">
      <MEINH>CS</MEINH>
      </E1MARMM>
    - <E1MLGNM SEGMENT="1">
      <LGNUM>020</LGNUM>
      <LHMG1>2020.000</LHMG1>
      <LETY1>E2</LETY1>
      </E1MLGNM>
    - <E1MLGNM SEGMENT="1">
      <LGNUM>023</LGNUM>
      <LHMG1>2323.000</LHMG1>
      <LETY1>E2</LETY1>
      </E1MLGNM>
    - <E1MLGNM SEGMENT="1">
      <LGNUM>024</LGNUM>
      <LHMG1>2424.000</LHMG1>
      <LETY1>E2</LETY1>
      </E1MLGNM>
    - <E1MVKEM SEGMENT="1">
      <VKORG>4900</VKORG>
      <PRAT1>X</PRAT1>
      </E1MVKEM>
    - <E1MVKEM SEGMENT="1">
      <VKORG>5000</VKORG>
      <PRAT1>/</PRAT1>
      </E1MVKEM>
      </E1MARAM>
      </IDOC>
      </MATMAS05>
    so in this example above:
    Receiver 4911 (WERKS) should receive:
    F + 2020 (BESKZ + LHMG1)
    Receiver 4912 (WERKS) should receive:
    F + 2323 (BESKZ + LHMG1)
    Receiver 5020 (WERKS) should receive:
    F + 2424 (BESKZ + LHMG1)
    The problem is all these 3 messages are delivered to all the 3 plants thus making it 9 messages delivered in total as against 3.
    / Saj

  • Processing bulk Messages

    Hi,
    I have SOAP to Proxy scenario. I am expecting bulk messages (approx 100) from the third party at a time.
    They sent around 30 requests at one go and XI was able to process on 15 and for rest it has throw exception.
    Is there any way we can handle bulk messages?
    Thanks

    Hi ,
    You can go for message packaging in PI .
    Here is this article which might help you out :http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/10b54994-f569-2a10-ad8f-cf5c68a9447c
    Thanks
    Ravi

  • Error message handling in BAPI...

    Hi Guys,
    I am working on documentation of a BAPI used SAP insurance module. Now I want to see all the error messages associated/ handled in that BAPI. How can I do that ? Is there a table in data dictionary where I can see error messages handled by a given Function module/ BAPI?
    Any inputs will be highly appreciated.
    Thanks.
    Regards,
    Tushar.

    Hi,
    here´s one possible solution:
      CALL FUNCTION 'MESSAGES_INITIALIZE'.
      LOOP AT it_return_bapi.
        CALL FUNCTION 'MESSAGE_STORE'
             EXPORTING
                  arbgb          = it_return_bapi-id
                  exception_if_not_active = ' '
                  msgty                = it_return_bapi-type
                  msgv1          = it_return_bapi-message_v1
                  msgv2          = it_return_bapi-message_v2
                  msgv3          = it_return_bapi-message_v3
                  msgv4          = it_return_bapi-message_v4
                  txtnr          = it_return_bapi-number
                  zeile          = ' '
             EXCEPTIONS
                  message_type_not_valid  = 1
                  not_active              = 2
                  OTHERS                  = 3.
      ENDLOOP.
      CALL FUNCTION 'MESSAGES_STOP'
           EXCEPTIONS
                a_message = 04
                e_message = 03
                i_message = 02
                w_message = 01.
      IF NOT sy-subrc IS INITIAL.
        CALL FUNCTION 'MESSAGES_SHOW'
             EXPORTING
                  i_use_grid         = 'X'
                  i_amodal_window    = i_amodal_window
             EXCEPTIONS
                  inconsistent_range = 1
                  no_messages        = 2
                  OTHERS             = 3.
      ENDIF.
    ENDFUNCTION.
    Best regards

  • Receiver File adapter - 'Empty Message Handling' option to ignore not worki

    Hi,
      I am trying to create the Files in receiver based on condition.But I am gettiung error in communication channel when there is no payload. Receiver I am usuing FCC and processing tab I selected -'Empty Message Handling' option to ignore .
    one source -> Target 1 (0..1 occurance in signature tab changed, message mapping and operation mapping)
                 and Target 2 (0..1 occurance in signature tab changed)
    and I put the message type level condition. While creating first message If did not create the Message type in my maaping still my Receiver File communication channel is giving error. even thow I my receiver interface occurance is 0..1
    Right now I am in PI7.1 and SP7 is the bug for support pack do I am missing any thing. and do I need to upgrade any nwe patch. appreciate your help.
    Regards,
    Venu.

    Hi,
    here is the my requirment one source -> two target interfacess (0..1)
    If u have 2 target interfaces,then this is not suffice..... u should make it as 0..unbounded both in operation mapping and message mapping.
    But based on ur requirements posted above i guess u have only one inbound interface at a time based on some conditions....
    But,
    <messages>
    <messages1>
    based on condition first message type not created in mapping.
    <messgaes2>
    The error u r getting is because.... u want only one interface in target at a time....
    Then u should not generate Message1 also in the target.
    So avoid mapping to message1 if u want only message2.
    If both message1 and message2 are created in target means... it is triggering for two interfaces.... so avoid one message1 or message2... based on some conditions u have..
    Still nt solved do post...
    Babu

  • Receiver file adapter creates empty files, Empty-Message Handling SP19

    Hello,
    We have just upgraded the system to SP19.
    One of the new features is that it should be possible to determine how XI messages with an empty main payload are to be handled in the receiver file adapter.
    If the parameter Empty-Message Handling is set to 'Ignore' no file should be created if the main payload is empty. In our case an empty file (size 0 kb) is still created even though the main payload is empty and the flag is set to 'Ignore'.
    Has anybody experienced the same problem?
    //  Best regards  Hans

    This should work:
    Use your own adapter module that parses incoming message and checks if it has any record sets in the document. If it does not have any record sets, then set the message to empty and then give this modified message to File receiver.
    For example, see the example code below:
    Module imports..
    Audit log import..
    DOM imports/SAX imports..
    public ModuleData process(ModuleContext moduleContext, ModuleData inputModuleData) throws ModuleException {
              try {
                   // get the XI message from the environment
                   Message msg = (Message) inputModuleData.getPrincipalData();
                   AuditMessageKey amk = new AuditMessageKey(msg.getMessageId(),AuditDirection.INBOUND);
                   Audit.addAuditLogEntry(amk, AuditLogStatus.SUCCESS,"RemoveRootTag: Module called");
                   XMLPayload payLoad = msg.getDocument();
                   Document doc = parseXmlFile(payLoad.getInputStream());
                   if(doc != null){
                        if(!doc.getDocumentElement().hasChildNodes()){
                             Audit.addAuditLogEntry(amk, AuditLogStatus.SUCCESS, "Document is empty!!");
                             payLoad.setContent("".getBytes());
                             msg.setDocument(payLoad);
                   // provide the XI message for returning
                   inputModuleData.setPrincipalData(msg);
                   } catch (Exception e) {
                   // raise exception, when an error occurred
                   ModuleException me = new ModuleException(e);
                   throw me;
                   // return XI message
              return inputModuleData;
         private Document parseXmlFile(InputStream xmlpayload) {
              try {
                   DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                   factory.setValidating(false);
                   //        Create the builder and parse the file
                   Document doc = factory.newDocumentBuilder().parse(xmlpayload);
                   return doc;
              } catch (SAXException e) {
              } catch (ParserConfigurationException e) {
              } catch(IOException e){
              return null;

  • Which is better for bulk message scenario in sap xi RFC or Proxy

    which is better for bulk message scenario in ( RFC or Proxy ) ?
    Edited by: prabhatxi on Aug 6, 2010 4:44 PM

    Proxy will alwaays be better option in this case, as it is adapter less framework, and communication happens directly with XI central integration engine. So it is always fast communication and gives good performance.
    But still you should consider other factors, you may consider using RFC as well, as sometime we go for RFC/IDOC as this are the standard interfaces already available rather than creating structure...
    May be you can share more info on what type/volume data are you planning to send via XI?
    Hope this cleart your doubt..
    Divyesh

  • MESSAGE HANDLER OF CLASS  if_hrpa_message_handler IS NOT WORKING

    WE HAVE WRITTEN THIS CODE AS BELOWS INSIDE BL BADI....THE ERROR MESSAGE IS GETTTING POPULATED IN THE MESSAGE_LIST BUT DOESN'T GET DISPLAYED WHILE CHECKING AND SENDING THE FORM FROM THE FRONT END.
    THE BELOW CODE IS JUST A SAMPLE CODE IN OUT BADI METHOD THERE ARE SEVERAL VALIDATIONS ON THE FAILURE OF EACH OF THEM A ERROR MESSAGE SHOULD GET TRIGERRED FROM THE FRONT END.MESSAGE_HANDLER IS ALREADY AVAILABLE INSIDE INITIAL COMPUTATIONS SO THERE IS NO REASON TO CREATE OBJECT BADI MESSAGE HANDLER
    [[ IF sy-uname = 'PGOSH' OR SY-UNAME EQ 'CGHOSH'.
       DATA badi_message_handler   TYPE REF TO cl_hrpa_message_list.
         DATA message_handler        TYPE REF TO if_hrpa_message_handler.
         DATA is_ok   TYPE boole_d.
        CREATE OBJECT badi_message_handler.
          message_handler = badi_message_handler.
            message-msgid = 'ZHPA'.
            message-msgty = 'E'.
           message-msgno = '010'.
           message-msgv1 = c_none_plans. "'Invalid Plan'(z09).
             CALL METHOD message_handler->add_message
                EXPORTING
                  message = message
                  cause   = space . "message_handler->ERROR . "infotype_specific . "unknown.
                  is_ok = 'X' ."space.
             badi_message_handler->add_messages( message_handler ).
             RAISE error_with_message.
      ENDIF.]]
    PLS PROVIDE YOUR INPUTS REGATRDING THE REASION WHY THE CODE IS NOT GETTING TRIGERRED.
    Edited by: PRIYANKUSH GHOSH on Jun 18, 2010 4:01 PM

    Moderator message - Welcome to SCN.
    Please do not use all caos in your posts. It makes it hard to read..
    Also, Please read Please read "The Forum Rules of Engagement" before posting!  HOT NEWS!! and How to post code in SCN, and some things NOT to do... and [Asking Good Questions in the Forums to get Good Answers|/people/rob.burbank/blog/2010/05/12/asking-good-questions-in-the-forums-to-get-good-answers] before posting again.
    Rob

  • Message handling with multiple lines to display

    We have a requirement to issue an error message during dialog processing (PAI) and I'd like to use standard message handling if possible.  The syntax
    MESSAGE W008(ZTM) DISPLAY LIKE 'I'.
    gives me a dialog box but handles the message as an error hence processing stops and the user returns to the screen.  I want this functionality but with the ability to display several lines in the message pop up box.  I've looked at the function modules POPUP_DISPLAY_MESSAGE but this displays only 1 line and POPUP_TO_CONFIRM which handles multiple lines but doesn't stop processing (unless further code is added to handle the response).  Can someone suggest a standard of way of achieving this requirement or how to handle a response as an error in the subsequent processing after a call to function module POPUP_TO_CONFIRM.

    hi,
    you can handle like this.
    call function 'POPUP_TO_CONFIRM'
            exporting
              titlebar                    = text-000
      DIAGNOSE_OBJECT             = ' '
              text_question               = v_text
              text_button_1               = 'YES'
      ICON_BUTTON_1               = ' '
              text_button_2               = 'NO'
      ICON_BUTTON_2               = ' '
              default_button              = '1'
              display_cancel_button       = 'X'
      USERDEFINED_F1_HELP         = ' '
             start_column                 = 25
             start_row                    = 6
      POPUP_TYPE                  =
      IV_QUICKINFO_BUTTON_1       = ' '
      IV_QUICKINFO_BUTTON_2       = ' '
           importing
             answer                      = v_ans
    TABLES
      PARAMETER                   =
           exceptions
             text_not_found              = 1
             others                      = 2
          if sy-subrc <> 0.
            message id sy-msgid type sy-msgty number sy-msgno
                    with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          endif.
          case v_ans.
            when '1'.
              leave program.
            when '2'.
              call screen 100.
            when others.
              call screen 100.
          endcase.
      endcase.
    Here : 1 means yes,
              2 means no.
    Regards
    Sandeep Reddy

  • Advantages of Using Queued Message Handler vs. Standard State Machine

    Hello,
    What are the advantages of using a Queued Message Handler?  Also, why are they more powerful than using Standard State Machines?
    Thanks!

    They are really just sort of an extension of a state machine.  The general idea is that you have one loop doing a specific job.  You then use a queue to tell it how/when to do this job.  For instance, I might have a log file loop.  I will send it commands to open a file, write some data, write some more data, and finally close the file.  Each of those commands are coming from the queue.  The beauty with this setup is that anybody that can get a reference to that queue can send the command to that loop.
    So the QMH is "better" than a state machine mostly because of the decoupling of functions.  In a given application, I will have a loop for log file writing, GUI updates, reading of a DAQ, instrumenet communications, server communications, etc.  Trying to do all of that in a single loop state machine is a major pain in the rear end.  Seperating them out makes life so much easier.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Empty-Message Handling is not working in receievr File Adapter

    Hi All,
    I have selected "Empty-Message Handling" = 'Ignore'in Receiver File adapter, but still empty files are creating in target directory.
    Message mapping generates output based on the conditon, if the condition is 'false' mapping will generate empty file (no data is being mapped).
    Why Receiver file adapter is processing empty fiels even i set 'ignore' empty fiels in configuration (ID)?
    Hoe can i manage not to place empty fiels in target directory?
    File type is '.txt'
    Your help would be appreiciated greatly.
    Thanks,
    Rajesh

    Not sure why is it not working. Make sure the channel is activated and cache is refreshed properly. But as a workaround you may use OS script checking for size of message and deleting it or configure a BPM to avoid the file creation. Or else an adapter module as shown
    /people/gowtham.kuchipudi2/blog/2006/01/13/stop-creation-of-an-empty-file-from-file-adapter-using-module
    Regards,
    Prateek

  • Recevier adapter empty message-handling ignore

    Hi all,
    I configured file receiver adapter with file content conversion (comma separated).
    In processing parameters Empty-message handling is set to Ignore.
    Payload that is in message generated from SAP is:
      <?xml version="1.0" encoding="utf-8" ?>
         <mt_ap_invoice xmlns:prx="urn:sap.com:proxy:DES:/1SAI/TAS128FC2C2C3C8E901DC22:700:20 08/06/25" />
    There are no any data that is filling structure (structure main node is defined as 0...unbounded) and still empty file with 0 bytes is created.
    Please can you tell what is wrong in this setup as In case of empty message I don't want that file is generated?
    Regards,
    Nenad

    - open Integration Builder
    - open your file receiver adapter
    - go to tab Processing
    - change Empty Message-Handling to 'Ignore'
    Cheers,
    André

  • Empty Message Handling with Receiver File adapter

    Hi,
         We were using the "Empty-Message-Handling" (status set to Ignore) of Receiver file adapter to stop a 0 KB file from being written to the specified directory.
    However, inspite of this, a 0KB file continues to be written.
    The specifications are given below-
    File Construction Mode - Add Time Stamp
    Put File - Directly
    Empty Message Handling - Ignore
    Maximum Concurrency - 1
    File Type - Binary
    Can anyone please help with this.
    Thanks and Regards,
    Shiladitya

    HI,
    In one of thread the same problem was coming. Just look at the thread.
    Receiver file adapter creates empty files, Empty-Message Handling SP19
    Or
    Follow the weblog for the same requirement.
    /people/gowtham.kuchipudi2/blog/2006/01/13/stop-creation-of-an-empty-file-from-file-adapter-using-module
    Thnx
    Chirag
    Reward points if it helps.

  • Web service client needs to share data with a SOAP Message Handler

    I have a web service client that is built using WebLogic 10 clientgen. I also have a Soap Message Handler configured that will create the required Soap Headers for the web service call.
    Creating these Soap Headers works great as long as the header data is static but the problem comes up when I need to place some dynamic data in these headers. The web service client has this data and somehow needs to pass it to the Soap Message Handler. It looks like I need to somehow have the client place this data in the MessageContext before the call so the data can be accessed by the Soap Message Handler.
    How do I get access to the MessageContext from the client or is there a better way to do this?
    Thanks in advance for any help you can give.

    You may want to check the response to this previous post to see if it yields any ideas for you:
    Not able to Pass header info to Microsoft MapPoint WebService using WLS10

  • Procedural message handling with Multiuser?

    I am developing a multiplayer game. I am having issues structuring how to handle incoming messages from the Multiuser server to the client. At the moment I have a default message handler function that references the message subject using jump lists (case) and executes functions accordingly. However this doesn't seem efficient. For example, when I first connect to the server, I want the client to request a character's data from the server, which is fine and already implemented. The incoming message handler in the client checks for a "GetCharacterData_Response" and when it's received, I then need to request map data from the server, which is also fine. Here's some example code I have currently:
    This is within the incoming message handler.
    case (message.subject) of
      "GetCharacterData_Response":
         _global.Character = message.content
         _global.Multiuser.sendNetMessage("system.script", "GetMapData_Request", message.content.mapCoords)
      "GetMapData_Response":
         _global.Map = message.content
    end case
    However I may not necessarily always need to request map data directly after receiving the character data. I feel the way I am currently using this structure just isn't efficient and I will be doubling up on a lot of code because there is such a diverse range of situations of when to obtain data and then what to do with that data. Do you guys have any suggestions or feedback regarding this?
    Thanks in advance.

    If you want character data and map data, why not request both at the same
    time (or just request one if you only need one)?  If you need to make sure
    you have character data before map data, then maybe have a check if
    character data is empty not to request map, etc.
    I've found it pretty efficient to code everything as object oriented and
    modular as possible.  Then you can set up your logic and use all of your
    functions as need be.  You might have extra code in doing that, but the
    versatility and sleekness will pay off big time.  The computer can execute
    insane amounts of code per millisecond, so don't worry too much, although
    cutting down on network traffic is cool.

Maybe you are looking for

  • Excel Services Refresh method not working in Sharepoint 2013

    Hi, In our application, we open excel services workbook in sharepoint 2013. Using sessionid of the workbook, we called Refresh and CalculateWorkbook methods in that order. After Calculateworkbook method, I see time stamps in LastUpdatedTime for each

  • File to RFC to File with BPM Scenario

    Hi all,    I am trying to implement a Sender File ( async )  to RFC (sync ) to Receiver File with a BPM. I using the blog  https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1926. [original link is broken] But it doesn’t work.  First message FileR

  • Sharing stories on Lumira Server

    Hello, I am getting the following error when trying to share my story to SAP Lumira Server: The dataset could not be published to SAP Lumira™ Server because publishing to the SAP HANA layer failed. Reason is '<Not available>'. (HDB 11009) The tracelo

  • Sending Cookie to JSP Through Servlet

    I am trying to read a cookie through JSP and cookie is defined in Servlet. Here is what happening? First JSP, user click on a hyperlink to select a category and that invokes servlet. Servlet has to pass selected category to another JSP page through a

  • Workflow Test Data for BUS1010

    Hello experts, i have a problem when testing my new workflow. I use BUS1010 for setting up credit data for debitors. I set test data for all BO like BUS2032. There is the key field 12 character long so I enter 0000012092 for my salesorder and for KNA