ABAP Mapping for Large Messages

Hi Folks,
We are exploring different options for dealing with the fact that XI will choke on very large messages/files. One of the options that we are considering is a third party tool that bypasses XI. However, we've just learned that it may be possible to solve the large message problem by using ABAP Mapping, because supposedly, by doing so, one would bypass the large message being converted to XML as it comes into XI. The scenario involves messages coming into XI on their way to SAP R/3. Does the ABAP Mapping option appear to be viable to you experienced folks out there?
Thanks
Nic

Hey
tunneling as per the term is used mainly for IDOC but we use the term bypass to implement the same concept but with other interfaces.
see if u have simple 1-1 mapping then u can do a bypass scenario in which u are not doing anything in IR,u simple do the configurations in ID.
you can not drastically increase the performance just by choosing some specific mapping.mappin is not made for this .
for best performance you can design a bypass JDBC to IDOC scenario(but then you wont be able to do any message mapping.
have a look at the following for bypass scenario
/people/william.li/blog/2006/09/08/how-to-send-any-data-even-binary-through-xi-without-using-the-integration-repository
if u want to do message mapping then design a JDBC to Proxy scenario.
proxy is mainly used to enhance performance and would be the best bet for u i guess
Thanx
Aamir suhail
Message was edited by:
        Aamir Suhail

Similar Messages

  • ABAP Mapping for Error handling in Proxy to JDBC

    Hi All,
    I am working on a proxy to jdbc scenario in which we have to throw validation errors to NWPM(Net Weaver Process Monitor Tool)
    I am following the below steps,
    step 1 - In message mapping a UDF is created to catch errors and store them in a variable using  dynamic configuration
    step 2 - writing abap mapping for handling this thrown exception and im reading the dynamic configuration in the abap class and raising exception. The exception format expected is
    SAP:Error SOAP:mustUnderstand="" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="RCVR_DETERMINATION">NO_RECEIVER_CASE_ASYNC</SAP:Code>
      <SAP:P1>ZPI_THROW_EXCEPTION</SAP:P1>
      <SAP:P2>001</SAP:P2/>
      <SAP:P3>Mandatory field is missing[BUKRS] </SAP:P3>
       <SAP:AdditionalText />
      <SAP:Stack>No receiver could be determined</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    I have written the following ABAP code to achieve this:
    method IF_MAPPING~EXECUTE.
      DATA l_record type mpp_dynamic.
    DATA error type String.
    getting dynamic configuration value
    filled in by any previous mapping
    CALL METHOD DYNAMIC_CONFIGURATION->GET_RECORD
      EXPORTING
        NAMESPACE = 'http://sap.com/xi/XI/System/ERROR'
        NAME      = 'ERROR'
      RECEIVING
        RECORD    = l_record.
    error = l_record-value.
    *raising exception with our message
    RAISE EXCEPTION TYPE CX_MAPPING_FAULT
      EXPORTING
       TEXTID =
       PREVIOUS =
        ERROR_CODE = '001'
        ERROR_TEXT = error .
    RAISE EXCEPTION TYPE CX_MAPPING_FAULT
      EXPORTING
       TEXTID =
       PREVIOUS =
        ERROR_CODE = '003'
        ERROR_TEXT = error .
    endmethod.
    I am gettign the following message for our code:
    SAP:Error SOAP:mustUnderstand="" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="RCVR_DETERMINATION">NO_RECEIVER_CASE_ASYNC</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:Stack>No receiver could be determined</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Could you please help in finding the solution for getting currect error message from ABAP class?
    Edited by: SwethaC on Jan 21, 2011 8:18 AM

    The error is due to RFC Call fail from PI system to your ECC Application System.
    Check your RFC Destination for ECC System type 3 in PI System.
    When you are receiving data from ECC System using Proxies & again you are going to ECC System for Validation.
    Why you are not doing this validation on ECC System only in your proxy code ?
    In your proxy code, it will be much better for performance to check your data there on same system.

  • ABAP Mapping :: for multi files

    Dear Experts,
    We are doing an Idoc to file interface, using ABAP mapping.
    This is 1:n mapping i.e receiver message interface is 0..unbounded.
    We have achieved the mapping for 1:1. But when I test for multi, i get an error in moni saying
    Parsing error after multi mapping.Expected Message<i> instead of Item
    Item is the name of the node that has to be created multiple times.
    Has anyone done multi mapping in ABAP?? Any idea why this error....may be we are missing something.
    Any idea as to how we can progress???
    Thanks in advance
    Regards
    Shobha

    Hi,
    Surely u can use an ABAP mapping for this.
    Sounds like your problem is your not using correct output structure for multi mapping.
    As with any type of multi mapping your structure should reflect this. Your target payload must thus have the following structure:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
         <ns0:Message1>
              <unboundedPayload/>
         </ns0:Message1>
    </ns0:Messages>
    The <unboundedPayload> element in above should of course be replaced with your actual payload - I believe 'Item' in your case, if that is in fact the root node of your actual payload.
    Regards,
    Daniel

  • Adapter Status Error :  Error in creating message ID map for JMS message:

    Currently in the SAP XI 3.0 JMS Adapter, I am receiving the following error
    Error in creating message ID map for JMS message:
    ie. Error while processing message 'de8265f6-c864-4479-1137-9bab17b78b3b';  detailed error description: com.sap.aii.adapter.jms.api.channel.filter.MessageFilterException: Error in creating message ID map for JMS message: ID:c3e2d840d8d4d7f14040404040404040c44f8e2213630b01 at com.sap.aii.adapter.jms.core.channel.filter.InboundDuplicateCheckFilter.filter(InboundDuplicateCheckFilter.java:103)
    Although I am receivng this error, when I check the details of the message processing, all steps are successful and the message is set to status : DLVD
    Audit Log for Message: de8265f6-c864-4479-1137-9bab17b78b3b
    Time Stamp     Status     Description
    09.06.2009 13:27:24     Success     New JMS message with JMS message ID ID:c3e2d840d8d4d7f14040404040404040c44f8e2213630b01 received. The XI message ID for this message is de8265f6-c864-4479-1137-9bab17b78b3b
    09.06.2009 13:27:24     Success     JMS message converted to XI message format successfully
    09.06.2009 13:27:24     Success     RRB: entering RequestResponseBean
    09.06.2009 13:27:24     Success     RRB: suspending the transaction
    09.06.2009 13:27:24     Success     RRB: passing through ...
    09.06.2009 13:27:24     Success     RRB: leaving RequestResponseBean
    09.06.2009 13:27:24     Success     Transform: using Transform.Class: com.sap.aii.messaging.adapter.Conversion
    09.06.2009 13:27:24     Success     Transform: transforming the payload ...
    09.06.2009 13:27:24     Success     Transform: successfully transformed
    09.06.2009 13:27:24     Success     Application attempting to send an XI message synchronously using connection JMS_http://sap.com/xi/XI/System.
    09.06.2009 13:27:24     Success     Trying to put the message into the call queue.
    09.06.2009 13:27:24     Success     Message successfully put into the queue.
    09.06.2009 13:27:24     Success     The message was successfully retrieved from the call queue.
    09.06.2009 13:27:24     Success     The message status set to DLNG.
    09.06.2009 13:27:25     Success     The application sent the message synchronously using connection JMS_http://sap.com/xi/XI/System. Returning to application.
    09.06.2009 13:27:25     Success     The message was successfully transmitted to endpoint http://sapxia.swets.nl:8000/sap/xi/engine?type=entry using connection JMS_http://sap.com/xi/XI/System.
    09.06.2009 13:27:25     Success     The message status set to DLVD.
    Not sure why this is occurring.......

    No, not using correlation id.
    I was able to resolve the issue on this queue by changing the following setting
    Under the PROCESSING tab, under XI SETTINGS
    Time period for Duplicate Check for EO(IO) (secs) it was set to 86400
    I have changed this to 300 seconds and the adapter has now gone green.
    BUT......
    That said, I have the exact scenario on another sender JMS channel set to 300 seconds and it exhibits the same issue.
    correlation settings:
    Set XI message id  to  = GUID
    Set Xi conversation

  • IBaseMessage.Context getting disposed for large message processing (There was a failure executing the receive pipeline: Reason: Cannot access a disposed object. Object name: 'MessageContext'.

    Hi,
    I am trying to parse a large message (2.7 MB file) in a custom Flat file Disassembler (inherited from the Microsoft.BizTalk.Component.FFDasmComp) this does exactly the same work for FFDasmComp but also promotes the count of disassembled messsages. This
    works fine for small messages but for large messages I get this error
    There was a failure executing the receive pipeline: "<pipeline name>, <Pipeline assembly>" Source: "Custom FlatFile Disassembler" Receive Port: "ReceivePort7" URI: "<the input file location>" Reason: Cannot access a disposed object.
    Object name: 'MessageContext'.
    In the event log
    what I am doing inside the custom flat file assembly is, I am saving all the disassembled messages in a List<IBaseMessage> and then finally when GetNext() method returns null I am promoting the nRecordCount in the messageContext of all the disassembled
    messages. This is where I get the error when trying to promote to the message context.(Cannot access a disposed object, Object name: 'MessageContext'). I think the messagecontext is getting disposed, but it should not as I still hold its reference in
    the List<IBaseMEssage);
    private long nRecordCount = 0;
    private List<IBaseMessage> oDisassembledMessages = new List<IBaseMessage>();
    Any idea why this happens ?
    Thanks in advance, PLEASE HELP
    Surya

    Hi Surya,
    Are you still facing this issue? and are you using Flat File Disassembler in your Receive pipeline?
    If yes then set 'RecoverableInterchangeProcessing' to True.
    Please have a look in below articles-
    BizTalk
    Pipeline - Flat File Disassembler Cannot Access a Disposed Object 'DataReader'
    biztalk-esb-toolkitflat-file-debatching
    BizTalk
    Server: List of Errors and Warnings, Causes, and Solutions
    This issue can also occur if you are using Large Size message, in this case you will have to optimize your code.
    Thanks,
    Prashant
    Please mark this post accordingly if it answers your query or is helpful.

  • Mapping  error for larger messages

    HI,
    My senario is File to File with some conditions ( Conditions are written in UDF )
    When i am executing the payload with small size mapping executes correctly .
    But when i am executing with larger payload Mapping executes but not taking any conditions in UDF , It executes as one-one mapping.
    thanks in advance

    HI
    This should not be the case... if your UDF is working fine for smaller payload then it should work for larger payload also..
    - test mapping by using payload and after that in mapping use display queue wherever you have used UDF and try to to see what is input and what is the output.. and this will give you clear idea about what exactly is going on..
    - I guess something wrong with logic which you have used in UDF or is input payload dependent, so try to use display queue to get clear idea about UDF working.,.
    Thanks,
    Bhupesh

  • Abap mapping for content conditions routing in a flat-flat scenario

    Dear Experts.
    I have a flat-flat file scenario. Based on the content of the input file, I need to route data to the receiver.The source flat file will have several IDOC details.
    Assume two fields FIELD1 and FIELD2 in different segments of the IDOC. My requirement is if FIELD1 of an IDOC = "XYZ" and FIELD2 of the same IDOC = "PQR", then this  IDOC's details has to be passed to the receiver.
    I have tried to implement the above condition at interface determination in graphical mapping.
    In the graphical mapping,  the problem is:
    Assuming there are 3 idocs in the input file.
    FIELD1 of IDOC[1] = 'XYZ' and FIELD2 of IDOC[1] = 'PQR'
    FIELD1 of IDOC[2] = 'LMN' and FIELD2 of IDOC[2] = 'RST'
    FIELD1 of IDOC[3] = 'ABC' and FIELD2 of IDOC[3] = 'DEF' .
    Now, if none of the IDOCs in the input file satisfy my requirement,the message mapping should not be called at all. But in my case its failing because FIELD1 of IDOC[1] and FIELD2 of IDOC[3] together are satisfying the condition and hence the message mapping is getting called.
    And I need to check this condition IDOC wise. Both the conditions has to be satisfied in the same IDOC.
    The question is very similar to the one posted by SHOBHA HB. (Topic:Receiver determination(or Interface determination) and conditional routing )
    but, due to complexities in the graphical mapping,  we have decided to go for the ABAP mapping instead.
    Kindly help, by mentioning the steps I should follow for this interface, the logic basically. I already have paths to some basic ABAP mapping documents from SDN, so, kindly refrain from posting general URLS for definition or history of ABAP mapping.
    IF you could guide me on this interface, It would be really helpful.
    regards,
    giri raj

    Hi,
    /people/ravikumar.allampallam/blog/2005/02/10/different-types-of-mapping-in-xi
    This document will help you to create ABAP Mapping .
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/xi/3.0/how%20to%20use%20abap-mapping%20in%20xi%203.0.pdf
    How to Use ABAP Mapping in Exchange Infrastructure 3.0 (NW2004)
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/5c46ab90-0201-0010-42bd-9d0302591383
    SAP Network Blog: How to call XI ABAP Mapping via RFC
    /people/ricardoandres.maienza/blog/2007/04/06/how-to-call-xi-abap-mapping-via-rfc
    SAP Network Blog: Testing ABAP Mapping
    /people/sameer.shadab/blog/2005/09/29/testing-abap-mapping
    /people/udo.martens/blog/2006/08/23/comparing-performance-of-mapping-programs
    An ad-on
    /people/michal.krawczyk2/blog/2006/09/20/xi-abap-mapping-logs--more-standard-better-visibility
    Regards

  • Access MIME from ABAP Mapping for Attachment

    Hi,
    I am adding an attachment in ABAP Mapping and sending that message to Ariba System through HTTP Adapter channel.
    I am able to send the message successfully and also I can see the attachment in the PI RWB But I am not able to see any
    attachment in the Receiver's end along with the message.Ariba is able to receive the message successfully though.
    It looks like I need to change MIME Header a bit before sending the message.
    I check this link.
    XI Attachment and main document MIME sequence
    But Its about SOAP Adapter with PayloadSwap Bean. Since HTTP adapter is on ABAP we can not use the Module
    Tab of the channel.
    I need to know how can I use ABAP Mapping to access the MIME HEADER to change/ check Content Disposition and
    other properties.
    Thanks,
    Vijay
    Edited by: tech.info012 on Oct 12, 2010 6:33 PM

    When I tried the 2nd option It is giving me this error in response message. Do you have any idea what problem can cause this.
    <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"
    SOAP:mustUnderstand="1">
      <SAP:Category>XIAdapterFramework</SAP:Category>
      <SAP:Code area="MESSAGE">GENERAL</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText>com.sap.engine.interfaces.messaging.api.exception.MessagingException: Could not queue receive
    for message 4cb474bf-00c1-02af-e100-80000aa00d4b(INBOUND). Reason: java.lang.NullPointerException:
    </SAP:AdditionalText>
      <SAP:Stack />
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Thanks,
    Vijay

  • ABAP SM02 for Portal (messages for users)

    Hi,
    how to implement functionality similar to transaction SM02 from ABAP ?
    I mean showing up message(s) for users after they login in and those currently working (it is something more then broadcasting message for currently working users as was described in weblog Brodcast messages to logged on users in Portal(Part1)) .
    regards,
    Michal

    Hello Michal,
    well, you could for example modify the solution in the weblog mentioned in the way, that every user logged on to the portal only sees the message once per session. But i think, there is no way to show the user a popup without having any preliminary user action (i.e. clicking on anything) like it is in SAPGUI ... what other functionality do you think of ?

  • BottleNeck for Large Messages

    i have envelope schema which debatches the messages and delivers to messages box, but if pass 1000 messages it give bottle neck as i am calling web service. How can avoid bottle neck???
     any help please

    So calling of concurrent web service is the bottle neck. 
    What u can try out is implementating custom queue to process limited number of web requests at a given time through biztalk say 5 or 10 requests at a time.
    Regards
    Ritu Raj
    When you see answers and helpful posts,
    please click Vote As Helpful, Propose As Answer, and/or Mark As Answer

  • Using Siebel-OPA connector BO mapping for large amount of data

    Hi,
    We plan to use the BO mapping approach to get multiple values from OPA to Siebel, which we plan to store as multiple records in Siebel.
    1. Is it advisable to do so using BO mapping?
    2. Would IO mapping be a better approach, considering the size of data involved?
    Thanks

    nilskil wrote:
    Hi,
    We plan to use the BO mapping approach to get multiple values from OPA to Siebel, which we plan to store as multiple records in Siebel.
    1. Is it advisable to do so using BO mapping?
    2. Would IO mapping be a better approach, considering the size of data involved?
    ThanksFor passing lots of data between OPA and Siebel I would definitely recommend using an IO mapping. You will find it faster and also, the return IO xml will be easier to deal with.
    Cheers
    Frank

  • ABAP mapping split messages and dynamic filename

    Hello,
    i have set up a IDOC to file scenario where the IDOC is split into several files, which works fine. In addition to this it is required to set a dynamic filename out of the ABAP mapping for each file. If only one file is created this works already as well but how do you set the dynamic configuration when the messages are split?
    Regards,
    Andreas
    Edited by: Andreas on Feb 26, 2009 9:09 AM

    you cannot do dynamic configuration for message splits. The below is from SAP help.
    Adapter-Specific Attributes and Multi-Mappings
    In multi-mappings, there are multiple message headers with adapter-specific attributes. The mapping API can only access one message header. This has the following consequences depending on whether there are multiple source or target messages:
    u25CF     1:n Transformation
    If there are multiple target messages, the header for the adapter-specific attributes is copied for each message. This means that you can only create one header for all adapter-specific attributes, and not individual headers.
    u25CF     n:1 Transformation
    This variant is only possible for multi-mappings in integration processes. If there is more than one source message, read-access to the adapter-specific attributes of the various message headers is not possible at runtime.
    u25CF     m:n Transformation
    All afore-mentioned restrictions apply here. Developers can at most write the same adapter-specific attributes for all target messages to the header, without read-access to the attributes of the source messages. m:n transformations are only supported within integration processes.
    What i will suggest is to use BPM to have the message split i.e 1:N mapping and then after that have another mapping 1-1 to have the dynamic configuration

  • Message split ABAP mapping

    Hello everybody,
    for a special mappging I use ABAP mapping -everything fine.
    But I need to split the message with ABAP mapping.
    Does anybody know if this is possible ?
    In the ABAP-class I use the interface IF_MAPPING. This has as a result parameter the parameter RESULT Type XSTRING (no table).
    It only works to add to XMLs in 1 XML string, but my result have to be 2 XML files.
    Alternatively would it be an idea to use multi message mapping (graphical first) AND then ABAP-mapping for special mappings?
    Thanks a lot,
    Florian

    Florian,
    for multimappings in coded mappings (xslt, java and abap mappings) you'll also create a single stream, but in this case, the stream may have the following format:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
    <ns0:Message1>
        <b><enter your first message here></b>
    </ns0:Message1>
    <ns0:Message2>
        <b><enter your second message here></b>
    </ns0:Message2>
    </ns0:Messages>
    where <ns0:MessageX> tags refer to each different target message type.
    In the case you have a 1:n split, you'll have only 1 message type, but may have several messages within it.
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
    <ns0:Message1>
        <b><My_message id=1></b>
        <b></My_message></b>
        <b><My_message id=2></b>
        <b></My_message></b>
    </ns0:Message1>
    </ns0:Messages>
    Also, remember that, when you define an interface mapping as multimapping (meaning, you set either source, target or both interfaces to multiple messages, your input stream will also contain the <ns0:Messages> and <ns0:MessageX> tags, so you need to treat them in your mapping program.
    Regards,
    Henrique.

  • Performance in XI / PI ABAP mapping class

    Hi,
    I have to do some ABAP mapping for XI / PI scenarios. First of all number of messages is huge, messages can be very large,
    so my question is where to pay special attention because of performance. Is there some blog on net with suggestions? I saw and read lot of ABAP mapping blogs, but I have never found one where is it performance explained.
    br
    mario

    Hi there.
    The performace problem of the ABAP Mappings in XI/PI is not related to the code itself. When coding, just keep in mind alll you have said: "messages are huge, and lot's of messages". This way, you should keep the code as sharp as possible within the class methods you will use.
    Now, the real problem in ABAP mapping is ther ABAP mapping itself. Don't forget that PI usually (and ideally)  processes the message mappins (or java mappings) in the java stack. If you are creating an ABAP mapping, you are telling PI to send the work to the integration server (ABAP stack), and then retrive the result from it.
    If you can, use message mapping or java mapping for best performance. If you cannot, use ABAP mapping but having all this in mind. Hope this helped.
    Regards,
    Valter Oliveira.

  • Setting the content type inside the ABAP mapping.

    Hello All,
    Can any one help me by telling me how to set the content-type inside ABAP mapping. I have searched a large no of blogs and help.sap.com for the same.
    My requirement is I want to change the MIME type of the Main Document in side SXMB_MONI so that can change the content type of Main document which is application\xml by default.
    I would appreciate an early response regarding the same.
    Abinash

    Hello Raj,
    The output of my ABAP mapping is a flat file. So when I try to open the file with content type application/xml in the message monitor it shows the file has some error which is natural. The way to get around this problem is change the content type to application\txt from application\xml.
    I am not finding an option to set the content type inside the ABAP mapping for the same.
    Abinash

Maybe you are looking for

  • Create Material Master Views in mass-change

    Dear All, We have to add a additional view to the material master of some products. Is this possible to do as a mass change (ex. MM17) or have we to do it with transaction SCAT/ MASS? Do you know an other solution? Thank you. Best regards, Thomas

  • ITunes keeps quitting unexpectedly! Help!

    This has just started happening recently. I believe it may have something to do with Fluke; however I have totally uninstalled iTunes twice and it keeps happening. This seems to happen when iTunes is "Determining Gapless Playback Information". Error

  • How to make ROUNDED rectangle default style cp8?

    Hi, I want my smart shape style to be rounded rectangle, not squared. I have set up my object styles with color and all that good stuff, but there is no way I can see to make it the rounded shape instead of the squared off shape.  I also tried to cha

  • Unlock it

    Hi, In 10g express DB, when connecting to hr schema, I've got ERROR: ORA-28000: the account is locked How can I unlock it? Best regards

  • Formula Column - Strange behaviour

    I have a formula defined like shown below: function CF_qty_ordFormula_dir return Number is begin   IF :ord_import_order_ind = 'Y' and (:sup_supplier BETWEEN 90000 and 99999) THEN        --srw.message(100,:sup_supplier||'-'||:crj_order_qty);        re