Message Mapping documents

Hi All,
Can I have some documents/blogs to work on the functions of Message Mapping(Graphical type) ?
Regards
Sara

Hi Sara,
Please take a look at these links,
http://help.sap.com/saphelp_nw04/helpdata/en/43/c4cdfc334824478090739c04c4a249/content.htm
/people/sravya.talanki2/blog/2005/08/16/message-mapping-simplified--part-i
/people/sravya.talanki2/blog/2005/12/08/message-mapping-simplified-150-part-ii
/people/stefan.grube/blog/2005/12/29/new-functions-in-the-graphical-mapping-tool-xi-30-sp13
Cheers..
Vasu
<i>** REward Points if found useful **</i>

Similar Messages

  • Message Mapping error in UDF

    I am receiving errors when trying to activate my MM.  I believe the issues are in one of two UDF's.  These UDF's do work in another MM without error.  Below are the error's and UDF's.
    ERRORS:
    Activation of the change list canceled Check result for Message Mapping MM_WPDBBY_WPDBBY01_TO_POS_WAWAFILE | http://wawa.com/xi/erp/pos:  Starting compilation  Source code has syntax error:  /usr/sap/XID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map5420e070cabe11dcab4b00306ef38da9/source/com/sap/xi/tf/_MM_WPDBBY_WPDBBY01_TO_POS_WAWAFILE_.java:3291: cannot resolve symbol symbol : variable container location: class com.sap.xi.tf._MM_WPDBBY_WPDBBY01_TO_POS_WAWAFILE_ map = container.getTransformationParameters(); ^ /usr/sap/XID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map5420e070cabe11dcab4b00306ef38da9/source/com/sap/xi/tf/_MM_WPDBBY_WPDBBY01_TO_POS_WAWAFILE_.java:3293: cannot return a value from method whose result type is void return constant; ^ 2 errors
    UDF's:
    public String getSender(Container container){
    String constant;
    java.util.Map map;
    // get constant map
    map = container.getTransformationParameters();
    constant = (String) map.get (StreamTransformationConstants.SENDER_SERVICE);
    return constant;
    IMPORTS:  com.sap.xi.mapping.parse.dom.;javax.xml.parsers.;java.io.;com.sap.aii.mapping.lookup.;org.w3c.dom.*;
    public String getSeqNum(String fileType,String objNum,String Sender,Container container){
    String request = "<ns0:ZRFC_NUMBER_GET_NEXT xmlns:ns0=\"urn:sap-com:document:sap:rfc:functions\"><NR_RANGE_NR>" + fileType + "</NR_RANGE_NR><OBJECT>" + objNum + "</OBJECT><QUANTITY/></ns0:ZRFC_NUMBER_GET_NEXT>";
    InputStream isRequest = new ByteArrayInputStream(request.getBytes());
    SystemAccessor accessor = null;
    String num  = null;
    try{
         // 1. Determine a channel.
         Channel channel = LookupService.getChannel(Sender, "R_RFC_ERP");
         // 2. Get a system accessor for the channel.
         accessor = LookupService.getSystemAccessor(channel);
         // 3. Create a payload according to the data type which the adapter expects.
         //    Use service.getBinaryPayload() for binary payload,
         //    and service.getTextPayload() for text payloads.
         Payload payload = LookupService.getXmlPayload(isRequest);
         // 4. Execute lookup.
         Payload response = accessor.call(payload);
         //Parse response
         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
         DocumentBuilder builder = factory.newDocumentBuilder();
         InputStream resStream = response.getContent();
         Document doc = builder.parse(resStream);
         Element sequence = doc.getDocumentElement();
         NodeList number = sequence.getElementsByTagName("NUMBER");
         //Extract Number
         num = DOMUtil.getSimpleElementText((Element) number.item(0));
    } catch (Exception e) {
         return e.getMessage();
    } finally {
         try {
              if (accessor != null) accessor.close();
         } catch (Exception e) {
              return e.getMessage();
    GlobalContainer gc = container.getGlobalContainer();
    gc.setParameter("Num", num);
    return num;
    Any help is appreciated.
    Regards,
    Darrell

    Fauver,
    Just to narrow down the problem first remove the first udf and only use the 2nd user defined function. Also in the 2nd udf you have to change this line:
    try{
    // 1. Determine a channel.
    Channel channel = LookupService.getChannel(Sender, "R_RFC_ERP");
    In the above line instead of Sender you use the business service or business system where R_RFC_ERP RFC communication channel is created in Integration Directory. So you are hardcoding it first.
    Once you have done this changes do save and test it once again. If this works then you can change back to original and your first udf needs to be checked.
    Regards,
    ---Satish

  • Error in Multi Message Mapping

    Hi,
    I am getting the following error in my multi message mapping scenario where I am trying to create 2 different output files from a single input file based on some condition. I tested the message mapping by using a test file and it works fine, but when I use the same file and test it end to end the scenario is failing with the following error.
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--
    Request Message Mapping
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="MAPPING">GENERIC</SAP:Code>
      <SAP:P1>Split mapping created no messages</SAP:P1>
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:Stack>Split mapping created no messages</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Is there something wrong with my configuration?
    The trace has the following content.
    Trace level="1" type="T">*** START APPLICATION TRACE ***</Trace>
      <Trace level="3" type="T">Document start</Trace>
      <Trace level="3" type="T">Start tag [ns0:Messages]</Trace>
      <Trace level="3" type="T">Add raw attribute [ xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge"]</Trace>
      <Trace level="3" type="T">Start tag [ns0:Message1]</Trace>
      <Trace level="3" type="T">Close tag [ns0:Message1]</Trace>
      <Trace level="3" type="T">Start tag [ns0:Message2]</Trace>
      <Trace level="3" type="T">Close tag [ns0:Message2]</Trace>
      <Trace level="3" type="T">Close tag [ns0:Messages]</Trace>
      <Trace level="3" type="T">Document end</Trace>
      <Trace level="1" type="T">*** END APPLICATION TRACE ***</Trace>
      <Trace level="2" type="T">Java mapping com/sap/xi/tf/_Employee1_MT_To_Employee1_MT_AND_Employee2_MT_MM_ completed. (executeStep() of com.sap.xi.tf._Employee1_MT_To_Employee1_MT_AND_Employee2_MT_MM_).</Trace>
      <Trace level="3" type="T">Message Type 1 Number of Messages 0</Trace>
      <Trace level="3" type="T">Message Type 2 Number of Messages 0</Trace>
      <Trace level="1" type="E">CL_XMS_PLSRV_MAPPING~ENTER_PLSRV</Trace>
      </Trace>
      <Trace level="3" type="System_Error">Error exception return from pipeline processing!</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />
    - <!--
      -->
      <Trace level="3" type="T">Persisting message Status = 014</Trace>
      <Trace level="3" type="T">Message version 001</Trace>
      <Trace level="3" type="T">Pipeline CENTRAL</Trace>
      </SAP:Trace>

    Hi,
    The scenario I am trying to test is a multi mapping scenario where I am trying to split one source message and create two target messages by using two different receiver interfaces, one for each message.
    I am on PI 7.1 and when I test message mapping and operation mapping using the payload from SXMB_MONI, it is successful. Whereas when I test the scenario end to end I am getting the following error messages:
    Operation Mapping
    Employee_Out_SI_To_Employee1_In_SI_AND_Employee2_In_SI_OM
    Name
    Employee_Out_SI_To_Employee1_In_SI_AND_Employee2_In_SI_OM
    Namespace
    http://accenture.com/1:N_multi-mapping
    Runtime error
    Split mapping created no messages
    Start tag ns0:Messages Add raw attribute xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge" Start tag ns0:Message1 Close tag ns0:Message1 Start tag ns0:Message2 Close tag ns0:Message2 Close tag ns0:Messages
    Could someone please help
    Cheers,
    S

  • Activation error in message mapping

    Hi,
    while activating Message mapping i am getting the error like this.
    how to get rid of this error?
    error:
    Activation of the change list canceled Check result for Message Mapping MM_XXXXXX | http://www.xyerxd.com/mm
      Imported source message has invalid reference IDoc
    DEBMAS.DEBMAS06 | urn:sap-com:document:sap:idoc:messages  
    Imported target message has invalid reference Message Type MT_Receiver  | http://www.xyerxd.com/mm

    hi
    Hope you are using the inactive versions of message/Idoc types for mapping.
    First activate the message/Idoc types used in the message mapping.
    Then open the message mapping, from the menu choose refresh.
    Complete the mapping and test.
    Now do the activation.
    rgds,
    Arun

  • Soap lookup in PI7.31 message mapping

    Hi All,
    I have a soap lookup created in UDF in PI message mapping
    I am taking material id from the source structure and use it as input parameter for the lookup webservice
    Here is the UDF code which takes material number and returns the internal id
    AbstractTrace trace = container.getTrace();
    String matintid = "";
    try {
    //instance the channel to invoke the service.
    Channel channel = LookupService.getChannel("BS_Bus","CC_SearchLookup");
    SystemAccessor accessor = LookupService.getSystemAccessor(channel);
    // The Request message in XML. THIS IS THE LOOKUP SERVICE
      String SOAPxml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><searchTM_MATERIAL>xmlns:ns0=\"MDM_MAT_Search_MDM"><query><criteria><fTX_MATERIAL><constraint><value>"
    +a
    + "</value><expressionOperator>equals</expressionOperator></constraint></fTX_MATERIAL></criteria></query><reposInfo><repositoryName>REP_MATERIALS</repositoryName><serverName>mdm6765</serverName></reposInfo></searchTM_MATERIAL>";
    InputStream inputStream =new ByteArrayInputStream(SOAPxml.getBytes());
    XmlPayload payload = LookupService.getXmlPayload(inputStream);
    Payload SOAPOutPayload = null;
    //The response will be a Payload. Parse this to get the response field out.
    SOAPOutPayload = accessor.call(payload);
    /* Parse the SOAPPayload to get the SOAP Response back.  */
    InputStream inp = SOAPOutPayload.getContent(); 
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
    /* Create DOM structure from input XML */ 
    DocumentBuilder builder = factory.newDocumentBuilder(); 
    Document document = builder.parse(inp);
    NodeList matlist = document.getElementsByTagName("tM_MATERIAL");
    Element material = (Element) matlist.item(0);
    NodeList recidlist = material.getElementsByTagName("recordIdentification");
    Element recidnode = (Element)recidlist.item(0);
    matintid = recidnode.getNodeValue();
    trace.addInfo("matnid is" + matintid);
    } catch (Exception e) {
    trace.addWarning("Error" + e);  }
    trace.addInfo("Service XXX success executed");
    return matintid;
    This is giving a java null point error
    Errorjava.lang.NullPointerException: while trying to invoke the method org.w3c.dom.Element.getElementsByTagName(java.lang.String) of a null object loaded from a local variable at slot 16
    Any idea whats going on? I am able to get response for the webservice using SOAP UI 
    And here is the soap input and output in SOAP UI execution
    Input
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:MDM_MAT_Search_MDM" xmlns:urn1="urn:com.sap.mdm.ws.beans.mdt_mat_search_mdm_in" xmlns:urn2="urn:com.sap.mdm.ws.beans" xmlns:urn3="urn:com.sap.mdm.core.beans">
       <soapenv:Header/>
       <soapenv:Body>
          <urn:searchTM_MATERIAL>
             <urn:query>
                <!--Optional:-->
                <urn1:criteria>
                     <!--Optional:-->
                   <urn1:fTX_MATERIAL>
                      <urn2:constraint>
                         <!--Optional:-->
                         <urn2:value>12345</urn2:value>
                         <!--Optional:-->
                         <urn2:expressionOperator>equals</urn2:expressionOperator>
                      </urn2:constraint>
                   </urn1:fTX_MATERIAL>
                </urn1:criteria>
             </urn:query>
             <urn:reposInfo>
                <urn3:repositoryName>REP_MATERIALS</urn3:repositoryName>
                <urn3:serverName>mdm1234</urn3:serverName>
             </urn:reposInfo>
          </urn:searchTM_MATERIAL>
       </soapenv:Body>
    </soapenv:Envelope>
    Output:
    <SOAP-ENV:Envelope xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <SOAP-ENV:Body xmlns:rpl="urn:MDM_MAT_Search_MDM">
          <rpl:searchTM_MATERIALResponse xmlns:rn0="java:sap/standard" xmlns:rn1="urn:com.sap.mdm.ws.beans" xmlns:rn2="http://schemas.xmlsoap.org/soap/encoding/" xmlns:rn3="urn:com.sap.mdm.core.base" xmlns:rn4="urn:com.sap.mdm.ws.beans.mdt_mat_search_mdm_in" xmlns:rn5="urn:com.sap.mdm.core.beans">
             <rpl:Response>
                <rn1:executionStatus>
                   <rn1:status>OK</rn1:status>
                   <rn1:description>Search/Retrieve done successfully</rn1:description>
                   <rn1:dataObject>Records 1..1 of 1 found</rn1:dataObject>
                </rn1:executionStatus>
                <rn4:tM_MATERIAL>
                  <rn4:fTX_MATERIAL>12345</rn4:fTX_MATERIAL>    
                 <rn4:recordIdentification>
                       <rn4:internalID>1267</rn4:internalID>
                    </rn4:recordIdentification>
           </rn4:tM_MATERIAL>
             </rpl:Response>
          </rpl:searchTM_MATERIALResponse>
    Thx
    mike

    Hi Mike,
    What I suspect is, you get a null pointer exception because the XML tag name which you are trying to retrieve, has a namespace. Could you please instead try to use:
    getElementsByTagNameNS(java.lang.String namespaceURI, java.lang.String localName)
              Returns a NodeList of all the Elements with a given local name and namespace URI in document order.
    Let us know if it works.
    Regards,
    Shweta

  • Request Message mapping in SXMB_MONI for File - RFC - File without BPM

    Hi ,
    In my File-RFC-File scenario, the messages are processed successfully.
    but when i look into the SXMB_MONI for File to RFC step, the records are present only till the  Message split According to Receiver List and not able to see the records from Request Message mapping step onwards.it contains
    <?xml version="1.0" encoding="UTF-8" ?>
      <ns1:Z_PI_LOTUSNOTES_UNIFORM xmlns:ns1="urn:sap-com:document:sap:rfc:functions" />
    in my mapping for the receiver RFC i have not done the mapping for all the fields. few fields i have disabled. whether this could create a problem in message mapping. pls let me know what needs to be done.

    Is it only for this scenario that the above display issue is occuring or is it for all scenarios?
    If onlt a particular Pipeline steps are displayed then you can check what is the TRACE level set in SXMB_ADM --> Integration Engine Configuration --> and check if the TRACE parameter is set to at least 2 (max is 3 which will ensure that your DB will get full quickly)
    For more information refer: /people/michal.krawczyk2/blog/2005/05/10/xi-i-cannot-see-some-of-my-messages-in-the-sxmbmoni
    Regards,
    Abhishek.

  • RuntimeException in Message-Mapping transformation

    Hi all,
              I am doing a soap2rfc scenario in that i have 2 message mappings are there
        there are SUM1_MM  and SUM2_MM
    Message mapping test(SUM1_MM)
    Source test
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:SUMOUT_MT xmlns:ns0="urn://web2rfcsum">
       <NUM1>12</NUM1>
       <NUM2>13</NUM2>
    </ns0:SUMOUT_MT>
    target result
    <?xml version="1.0" encoding="UTF-8"?>
    <ns1:ZSUM2NUMBERS xmlns:ns1="urn:sap-com:document:sap:rfc:functions"><NUM1>12</NUM1><NUM2>13</NUM2></ns1:ZSUM2NUMBERS>
    But i have seen an error  in sxmb_moni
    <SAP:Category>Application</SAP:Category>
      <SAP:Code area="MAPPING">EXCEPTION_DURING_EXECUTE</SAP:Code>
      <SAP:P1>com/sap/xi/tf/_SUM1_MM_</SAP:P1>
      <SAP:P2>com.sap.aii.utilxi.misc.api.BaseRuntimeException</SAP:P2>
      <SAP:P3>RuntimeException in Message-Mapping transformatio~</SAP:P3>
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>During the application mapping com/sap/xi/tf/_SUM1_MM_ a com.sap.aii.utilxi.misc.api.BaseRuntimeException was thrown: RuntimeException in Message-Mapping transformatio~</SAP:Stack>
    Please solve the problem your help is memorable

    Hi Deviprasad,
    It looks like a mapping error, test your mapping in IR with the payload from SXMB_MONI. You can refer michal's weblog on <a href="/people/michal.krawczyk2/blog/2005/09/16/xi-how-to-test-your-mapping-in-real-life-scenarios to test your mapping (in real life scenarios)</a>
    In other words you copy the XML message from monitoring and exectute the mapping in Integration Builder with maximal trace to get the reason.
    Regards,
    Abhy

  • RuntimeException in Message-Mapping in E-FILING UK

    Hi expert,
    We attempted to submit our P35 for APSL (G5) - EOY submission payroll area, but received an error when we tried to execute the transmission to HMRC.
    The error says in GG_submission :
    -- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Category>Application</SAP:Category>
      <SAP:Code area="MAPPING">EXCEPTION_DURING_EXECUTE</SAP:Code>
      <SAP:P1>com/sap/xi/tf/_HR_GB_EFO_EOYR_OUT_</SAP:P1>
      <SAP:P2>com.sap.aii.utilxi.misc.api.BaseRuntimeException</SAP:P2>
      <SAP:P3>RuntimeException in Message-Mapping transformatio~</SAP:P3>
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>com.sap.aii.utilxi.misc.api.BaseRuntimeException thrown during application mapping com/sap/xi/tf/_HR_GB_EFO_EOYR_OUT_: RuntimeException in Message-Mapping transformatio~</SAP:Stack>
      <SAP:Retry>N</SAP:Retry>
      </SAP:Error>
    We updated our Internet Explorer from IE 6 to IE 8. Thats the only update we did so far. And we also updated our HR Support Packages from HRSP49 to HRP53. Our Xi Content for SAP HR 6.00 is at level 42 and XI Content for E-Filing GB 1.0 is at level 16.01.
    Is there a need to update our Xi contents? Or anything else need to be done?
    Thanks.
    Regards,
    Thava

    Hi Stuart,
    We've applied recommendations of SAP Note:1400735 but still we are seeing below error:
    Log
    TEST IN LIVE:- Tax ref. MZ00883 Tax district: 120 LONDON PRO
    Mail "Communication Error" created
    Sending started
        No answer from Government Gateway received
        com.sap.aii.utilxi.misc.api.BaseRuntimeException thrown during application mapping com/sap/xi/tf/_HR_GB_EFO_EOYR_OUT_: RuntimeException in Message-Mapping transformatio~
    Data extracted and XML document created
    Kindly Advice,
    Thanks & Regards,
    Sreedhar

  • Exception in Message mapping for JDBC - XI- file

    Hi,
    In the above scenario, Sender JDBC adapter has processed the message but when i checked the processed XML messages, its giving an error message with details
    <i>During the application mapping
    com/sap/xi/tf/_MM_XXXX_a
    com.sap.aii.utilxi.misc.api.BaseRuntimeException
    was thrown: RuntimeException in Message-Mapping
    transformatio~</i>
    how to make the source structure so that it gets correctly populated with the result set of sender JDBC adapter? Are there any constraints while making the Data type for the source structure?
    Regards,
    Nitin Aggarwal.

    Hi,
    The problem is solved...
    Actually, the runtime system was not able to map the result set generated by the Sender JDBC adapter to the source structure of message mapping. This was because the result set has a particular structure and its like
        <resultset>
          <row>
            <column1>value1</column1>
            <column2>value2<column2>
           </row>
        </resultset>
    To map this kind of structure to the source structure, a  <b>row</b> element should always be there below the root node and the structure fields should be placed as sub elements to row. One more thing the root node of the source structure should be same as the document name specified in the sender JDBC adapter config.
    Anyways, Thanks to all for the valuable efforts.
    Regards,
    Nitin.

  • Attachments deleted during message mapping in PI 7.1

    We have upgraded our SAP XI 3.0 SP 22 system to SAP PI 7.1 SP06. In XI 3.0 we created some message mappings that mapped an XML payload with attachments to another message type. The attachments would still exist after the mapping step. In SAP PI 7.1 we now see that attachements are deleted from the message. We cannot see why this is happening. We have tried to set the 3 new option in the operation mappings without any results. The attachements are still being deleted.
    Active Options in operation mappings:
        Use SAPXMLToolkit = true
        Do Not Resolve XOP includes = false
        Read Attachements = false
    In the SXMB_MONI we can see that the attachements are deleted after the Request Message Mapping step. It is a simple proxy-to-proxy scenario with interface and message mapping.
    <Trace level="1" type="B" name="CL_MAPPING_XMS_PLSRV3-ENTER_PLSRV">
      <Trace level="2" type="T">......attachment XI_Context not found</Trace>
      <Trace level="3" type="T">Mapping already defined in interface determination</Trace>
      <Trace level="3" type="T">Object ID of Interface Mapping 46842937562139BCA3F2AC1F36E729FE</Trace>
      <Trace level="3" type="T">Version ID of Interface Mapping 5D945F00B00611DDB04FF8CF0A5B0156</Trace>
      <Trace level="1" type="T">Interface Mapping urn:kadaster-nl:SERV:ZA:KAD:DOVO im_mail_to_dms</Trace>
      <Trace level="3" type="T">Mapping Steps 1 JAVA com/sap/xi/tf/_mm_mail_to_dms_</Trace>
      <Trace level="3" type="T">MTOM Attachments are Transferred to the Payload</Trace>
      <Trace level="3" type="T">Dynamic Configuration Is Empty</Trace>
      <Trace level="2" type="T">Mode 0</Trace>
      <Trace level="3" type="T">Search com/sap/xi/tf/_mm_mail_to_dms_.class (urn:kadaster-nl:SERV:ZA:KAD:DOVO, -1) in swcv 5d945f00-b006-11dd-b04f-f8cf0a5b0156.</Trace>
      <Trace level="2" type="T">Loaded class com.sap.xi.tf._mm_mail_to_dms_</Trace>
      <Trace level="3" type="T">Search com/sap/xi/tf/_mm_mail_to_dms_$MT$InnerLibsList.class (urn:kadaster-nl:SERV:ZA:KAD:DOVO, -1) in swcv 5d945f00-b006-11dd-b04f-f8cf0a5b0156.</Trace>
      <Trace level="2" type="T">Loaded class com.sap.xi.tf._mm_mail_to_dms_$MT$InnerLibsList</Trace>
      <Trace level="3" type="T">Search com/sap/xi/tf/_mm_mail_to_dms_$MT$InnerParamsList.class (urn:kadaster-nl:SERV:ZA:KAD:DOVO, -1) in swcv 5d945f00-b006-11dd-b04f-f8cf0a5b0156.</Trace>
      <Trace level="2" type="T">Loaded class com.sap.xi.tf._mm_mail_to_dms_$MT$InnerParamsList</Trace>
      <Trace level="2" type="T">Call method execute of the application Java mapping com.sap.xi.tf._mm_mail_to_dms_</Trace>
      <Trace level="1" type="T">*** START APPLICATION TRACE ***</Trace>
      <Trace level="3" type="T">Document start</Trace>
      <Trace level="3" type="T">Start tag [ns1:OpvoerenDocumentRequest]</Trace>
      <Trace level="3" type="T">Add raw attribute [ xmlns:ns1="urn:kadaster-nl:SERVICES:DMS:Opvoeren:ZI_KAD_DMS_MAIN"]</Trace>
      <Trace level="3" type="T">Start tag [DocumentInfoRecord]</Trace>
      <Trace level="3" type="T">Start tag [Type]</Trace>
      <Trace level="3" type="T">Put value [302]</Trace>
      <Trace level="3" type="T">Close tag [Type]</Trace>
      <Trace level="3" type="T">Start tag [Omschrijving]</Trace>
      <Trace level="3" type="T">Put value [Apeldoorn]</Trace>
      <Trace level="3" type="T">Close tag [Omschrijving]</Trace>
      <Trace level="3" type="T">Close tag [DocumentInfoRecord]</Trace>
      <Trace level="3" type="T">Close tag [ns1:OpvoerenDocumentRequest]</Trace>
      <Trace level="3" type="T">Document end</Trace>
      <Trace level="1" type="T">*** END APPLICATION TRACE ***</Trace>
      <Trace level="2" type="T">Java mapping com/sap/xi/tf/_mm_mail_to_dms_ completed. (executeStep() of com.sap.xi.tf._mm_mail_to_dms_).</Trace>
      <Trace level="3" type="T">Dynamic Configuration Is Empty</Trace>
      <Trace level="3" type="T">Attached will be Deleted cid:payload-001708D1A20E1DEDAD96471B4CCBC447(@)sap.com</Trace>
      <Trace level="3" type="T">Attached will be Deleted cid:payload-001708D1A20E1DEDAD96471B4C758447(@)sap.com</Trace>
      <Trace level="1" type="T">ContentType application/xml</Trace>
    Regards,
    Jeroen

    Hi Michal,
    Already tried this option too. However this option would only transfer the attachments to
    the mapping runtime in JAVA. We only map the actual payload in a graphical message
    mapping, so for our purpose, the other attachments could stay untouched and remain
    in the abap part for further pipeline processing.
    You can find the result of the Read attachment option during runtime here:
    <!--  ************************************
      -->
    - <Trace level="1" type="B" name="CL_MAPPING_XMS_PLSRV3-ENTER_PLSRV">
      <Trace level="2" type="T">......attachment XI_Context not found</Trace>
      <Trace level="3" type="T">Mapping already defined in interface determination</Trace>
      <Trace level="3" type="T">Object ID of Interface Mapping 46842937562139BCA3F2AC1F36E729FE</Trace>
      <Trace level="3" type="T">Version ID of Interface Mapping 5D945F00B00611DDB04FF8CF0A5B0156</Trace>
      <Trace level="1" type="T">Interface Mapping urn:kadaster-nl:SERV:ZA:KAD:DOVO im_mail_to_dms</Trace>
      <Trace level="3" type="T">Mapping Steps 1 JAVA com/sap/xi/tf/_mm_mail_to_dms_</Trace>
      <Trace level="3" type="T">MTOM Attachments are Transferred to the Payload</Trace>
      <Trace level="3" type="T">Dynamic Configuration Is Empty</Trace>
      <Trace level="2" type="T">Mode 0</Trace>
      <Trace level="3" type="T">Search com/sap/xi/tf/_mm_mail_to_dms_.class (urn:kadaster-nl:SERV:ZA:KAD:DOVO, -1) in swcv 5d945f00-b006-11dd-b04f-f8cf0a5b0156.</Trace>
      <Trace level="2" type="T">Loaded class com.sap.xi.tf._mm_mail_to_dms_</Trace>
      <Trace level="3" type="T">Search com/sap/xi/tf/_mm_mail_to_dms_$MT$InnerLibsList.class (urn:kadaster-nl:SERV:ZA:KAD:DOVO, -1) in swcv 5d945f00-b006-11dd-b04f-f8cf0a5b0156.</Trace>
      <Trace level="2" type="T">Loaded class com.sap.xi.tf._mm_mail_to_dms_$MT$InnerLibsList</Trace>
      <Trace level="3" type="T">Search com/sap/xi/tf/_mm_mail_to_dms_$MT$InnerParamsList.class (urn:kadaster-nl:SERV:ZA:KAD:DOVO, -1) in swcv 5d945f00-b006-11dd-b04f-f8cf0a5b0156.</Trace>
      <Trace level="2" type="T">Loaded class com.sap.xi.tf._mm_mail_to_dms_$MT$InnerParamsList</Trace>
      <Trace level="2" type="T">Call method execute of the application Java mapping com.sap.xi.tf._mm_mail_to_dms_</Trace>
      <Trace level="1" type="T">*** START APPLICATION TRACE ***</Trace>
      <Trace level="3" type="T">Document start</Trace>
      <Trace level="3" type="T">Start tag [ns1:OpvoerenDocumentRequest]</Trace>
      <Trace level="3" type="T">Add raw attribute [ xmlns:ns1="urn:kadaster-nl:SERVICES:DMS:Opvoeren:ZI_KAD_DMS_MAIN"]</Trace>
      <Trace level="3" type="T">Start tag [DocumentInfoRecord]</Trace>
      <Trace level="3" type="T">Start tag [Type]</Trace>
      <Trace level="3" type="T">Put value [302]</Trace>
      <Trace level="3" type="T">Close tag [Type]</Trace>
      <Trace level="3" type="T">Start tag [Omschrijving]</Trace>
      <Trace level="3" type="T">Put value [Apeldoorn]</Trace>
      <Trace level="3" type="T">Close tag [Omschrijving]</Trace>
      <Trace level="3" type="T">Close tag [DocumentInfoRecord]</Trace>
      <Trace level="3" type="T">Close tag [ns1:OpvoerenDocumentRequest]</Trace>
      <Trace level="3" type="T">Document end</Trace>
      <Trace level="1" type="T">*** END APPLICATION TRACE ***</Trace>
      <Trace level="2" type="T">Java mapping com/sap/xi/tf/_mm_mail_to_dms_ completed. (executeStep() of com.sap.xi.tf._mm_mail_to_dms_).</Trace>
      <Trace level="3" type="T">Dynamic Configuration Is Empty</Trace>
      <Trace level="3" type="T">Attached will be Deleted cid:payload-001708D1A20E1DDDAD97A993DAB6CB91(@)sap.com</Trace>
      <Trace level="3" type="T">Attached will be Deleted cid:payload-001708D1A20E1DDDAD97A993DB0E4B91(@)sap.com</Trace>
      <Trace level="1" type="T">ContentType application/xml</Trace>
      </Trace>
      </Trace>
      </Trace>
    Thanks

  • Filtering of records in Message Mapping

    I am facing problem during filtering record in message mapping. My message comes from R3 and should be sent to one business service in entirety and should also be sent to another business service in part. To resolve this I created a message map for selecting record based on some conditions but this creates empty XML nodes wherever condition is not satisfied. Everything works fine but the scenario fails at the end while trying to convert XML to text using file adapter. The error is ‘Conversion configuration error: Unknown structure '' found in document', probably configuration error in file adapter (XML parser error)’

    Hi Rajesh,
    This scenario you are trying can be done using CONDITIONAL RECEIVER DETERMINATION and RB SPLIT, where you can basically have one sender and two receivers.
    To do this without using a BPM.
    1. Create your mapping program that will map the information from the source file
    into the destination idoc. This has to be a 1:N split. Just make sure that the destination message type and message interface are are of occurrence N.
    2. Also, you will have 2 destination interfaces and 2 interface mapping, one for the IDOC and one for the mail.
    Now, there are a few essential steps in your configuration,
    1. In the receiver determination, specify the 2 receiver systems, one for your IDOC and the other for your MAIL.
    2. Now, you will have a condition window. Just type the condition on the basis of which the receiver has to be determined for the mail and the idoc business system. Just remember that the condition can be specified only for the source message.
    3. In the Interface Determination, you have an option called RB CLASSIC and RB SPLIT. To do a 1:N split, you will have to do a RB_SPLIT.
    And since you wanted to covert the XML format to text format you require content conversion at the receiver adapter end, for that please go through these links below. It clearly explains your requirement.
    /people/arpit.seth/blog/2005/06/02/file-receiver-with-content-conversion
    http://help.sap.com/saphelp_nw04/helpdata/en/d2/bab440c97f3716e10000000a155106/frameset.htm
    I hope I have answered your query.
    Regards,
    Abhy
    note: do reward points for the helpful answers.

  • Message mapping RFC lookup

    Hi.
    I'm trying to do a RFC inside a message mapping with java code. I have to send a field (id) and return the vendor code (lifnr).
    I'm searching michal Krawczyk's weblog to see how can i do that but the link is broken.
    Does anybody has that document that can send me to [email protected]?
    Regards.
    Inigo.

    hi Inigo,
    please look at the following blogs,
    /people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
    /people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
    /people/michal.krawczyk2/blog/2005/09/15/xi-rfc-mapping-lookups-from-bc-to-xi
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/uuid/801376c6-0501-0010-af8c-cb69aa29941c
    /people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/uuid/801376c6-0501-0010-af8c-cb69aa29941c
    /people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
    /people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
    Regards
    Sreeram.G.Reddy
    Message was edited by:
            Sreeram Reddy

  • Message Mapping with cXML

    I have a message mapping scenario. I am trying to test something and for this I have the following Getpending Response as source and Target in message mapping.
    When I try to test this in the Repository I am getting some error(listed below)
    Note : I imported the below cXML into my respository in the external definition as an XSD(I used Altova XML spy to convert the XML into an XSD)
    In the occurence I have given both source and target as 1.
    Your assistance is greatly appreciated. Thanks  lot.
    Getpending Response cXML
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd">
    <cXML timestamp="2005-01-12T16:00:18-08:00" payloadID="[email protected]">
       <Response>
          <Status code="200" text="OK"/>
          <GetPendingResponse>
             <cXML timestamp="2005-01-12T16:00:18-08:00"
                   payloadID="[email protected]">
                <Header>
                   <From>
                      <Credential domain="NetworkId">
                         <Identity>AN01000000001</Identity>
                      </Credential>
                   </From>
                   <To>
                      <Credential domain="NetworkId">
                         <Identity>AN13000000259</Identity>
                      </Credential>
                   </To>
                   <Sender>
                      <Credential domain="NetworkId">
                         <Identity>AN01000000001</Identity>
                      </Credential>
                      <UserAgent>ANCXMLDispatcher</UserAgent>
                   </Sender>
                </Header>
                <Message>
                   <DataAvailableMessage>
                      <InternalID domain="PendingMessages">3738</InternalID>
                   </DataAvailableMessage>
                </Message>
             </cXML>
          </GetPendingResponse>
       </Response>
    </cXML>
    I am getting the following error
    Start of test
    Compilation of GetPendingResponse_DataREquest_MM successful
    Document start
    Failed to load resource from the context classloader of the current thread! Loading from classloader was caused by: java.net.ConnectException: Connection timed out (errno:238) com.sap.aii.utilxi.misc.api.BaseRuntimeException: Failed to load resource from the context classloader of the current thread! Loading from classloader was caused by: java.net.ConnectException: Connection timed out (errno:238) at com.sap.aii.mappingtool.tf3.rt.xparser.MTSaxHandler.run(MTSaxHandler.java:130) at com.sap.aii.mappingtool.tf3.rt.xparser.XParser.run(XParser.java:68) Root Cause: java.io.IOException: Failed to load resource from the context classloader of the current thread! Loading from classloader was caused by: java.net.ConnectException: Connection timed out (errno:238) at com.sap.engine.lib.xml.parser.URLLoaderBase.resolveEntity(URLLoaderBase.java:148) at com.sap.engine.lib.xml.parser.XMLParser.scanDTD(XMLParser.java:1212) at com.sap.engine.lib.xml.parser.XMLParser.scanProlog(XMLParser.java:2678) at com.sap.engine.lib.xml.parser.XMLParser.scanDocument(XMLParser.java:2713) at com.sap.engine.lib.xml.parser.XMLParser.parse0(XMLParser.java:162) at com.sap.engine.lib.xml.parser.AbstractXMLParser.parseAndCatchException(AbstractXMLParser.java:132) at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:142) at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:245) at com.sap.engine.lib.xml.parser.Parser.parseWithoutSchemaValidationProcessing(Parser.java:276) at com.sap.engine.lib.xml.parser.Parser.parse(Parser.java:338) at com.sap.engine.lib.xml.parser.SAXParser.parse(SAXParser.java:125) at javax.xml.parsers.SAXParser.parse(SAXParser.java:345) at com.sap.aii.mappingtool.tf3.rt.xparser.MTSaxHandler.run(MTSaxHandler.java:128) at com.sap.aii.mappingtool.tf3.rt.xparser.XParser.run(XParser.java:68) Failed to load resource from the context classloader of the current thread! Loading from classloader was caused by: java.net.ConnectException: Connection timed out (errno:238)
    End of test

    Hi Jenni,
    This might help
    Message Mapping - same structure
    /people/shabarish.vijayakumar/blog/2006/04/03/xi-in-the-role-of-a-ftp
    http://www.cxml.org/files/downloads.cfm
    Thanks & Regards
    Agasthuri Doss
    Message was edited by: Agasthuri Doss Baladandapani

  • Message mapping - need Enlightening

    Hi Guys,
    I was actually looking into the message mapping blog of sravya.Link below:
    [http://www.sdn.sap.com/irj/scn/weblogs;jsessionid=(J2EE3414800)ID0086183650DB11663053995735659636End?blog=/pub/wlg/2792]
    Was just reading the blog and a lot of questions came through my mind.In the end I figured out that first, I have to understand how the parsing works.
    So for example,If we have 2 message structures(source & target).At run time the dom or sax parser parses through the source xml document.
    If we do a source to target mapping
    as in the example
    Matgroup --> RemoveContext -->MatGroup.
    So my question is what does the parser do in the above example.
    Does it read the source xml,change the source XML AND start to build the target xml from scratch by adding nodes.
    How does the parsing work & internally what are the steps the parser do to create the target XML.
    [2]
    In her example,She mapps the item node to the header target node.
    what happends then or what does the parser do & what are the elements which will be coming under the target header node.
    What are the conditions for mapping 2 fields or nodes(Both should have same level & occurance - Is that so?)
    Iam confused.Please Enlighten me...:)
    Thanks
    P
    Edited by: pazzuzu on Oct 17, 2009 2:40 PM

    Hi ,
      Parsing is the mechanism to trasform the structure in to other format,Nomally PI uses Dom parsing mechanism to process.
      Suppose if you working one message mapping source is on XML Structure and you want to map this structure to the Taget structre,most of cases taget structre is not same as Source.
    You used some mapping function provided by SAP,every Graphical  standard function has some source java code inside it.
    the functions also uses parcing mechnism like reading doucmnet and changing structure.If youw ant to know more about parcers google it.
    every parcer has some predrefind methodsto read the documents child elemnts too..
    Regards,
    Raj

  • Strange Run-time behavior of message mapping

    Dear All,
    This is very urgent
    I have 2 step mapping in my synchronous(ABAP proxy to HTTP_AAE) interface, first step is graphical mapping and second step is java mapping. After both the mapping I am able to get my desired structure by bank(third party), below is what I am getting in testing tab in Operation mapping after 2 step mapping, which is expected.
    strXmldata=<?xml version="1.0" encoding="UTF-8"?><PaymentInfoMessage><PaymentInfoRequest><CompanyCode>TEST</CompanyCode><BankCode>RIBLSARI</BankCode><StartDate>2014-01-21T00:00:00</StartDate><EndDate>2014-01-21T00:00:00</EndDate><TransactionType>940</TransactionType></PaymentInfoRequest></PaymentInfoMessage>
    However, bank is receiving in reverse, I mean the string strXmldata is coming at last. see the below
    <?xml version="1.0" encoding="UTF-8"?><PaymentInfoMessage><PaymentInfoRequest><CompanyCode>TEST</CompanyCode><BankCode>RIBLSARI</BankCode><StartDate>2014-01-21T00:00:00</StartDate><EndDate>2014-01-21T00:00:00</EndDate><TransactionType>940</TransactionType></PaymentInfoRequest></PaymentInfoMessage>=strXmldata
    When I check the trace in SXMB_MONI in the pipelines trace under "request message mapping" it has been reversed by system at runtime.
    <Trace level="2" type="T">Call method execute of the application Java mapping com.sap.xi.tf._MM_Request_MT940_</Trace>  
    <Trace level="1" type="T">*** START APPLICATION TRACE ***</Trace>  
    <Trace level="3" type="T">Document start</Trace>  
    <Trace level="3" type="T">Start tag [MT_HTTPReq_MT940]</Trace>  
    <Trace level="3" type="T">Put value [<?xml version="1.0" encoding="UTF-8"?><PaymentInfoMessage><PaymentInfoRequest><CompanyCode>TEST</CompanyCode><BankCode>RIBLSARI</BankCode><StartDate>2014-01-21T00:00:00</StartDate><EndDate>2014-01-21T00:00:00</EndDate><TransactionType>940</TransactionType></PaymentInfoRequest></PaymentInfoMessage>=strXmldata]</Trace>
    Could anyone please let me know why this reversing and putting the string strXmldata at last.
    Please this is very urgent, please help me as soon as you can.
    Thanks,
    Farhan

    Hi Farhan,
    The issue is because of run time behavior but you can try to deploy the java or XSLT map in server and use in receiver adapter (as adapter module).
    How to Create Modules for the J2EE Adapter Engine (NW 2004)
    regards,
    Harish

Maybe you are looking for