Mapping Lookup

Can anybody please post an example of mapping lookup using SOAP adapter.
your help is greately appreciated.

Hi,
Refer this link
http://help.sap.com/saphelp_nw04/helpdata/en/cf/406642ea59c753e10000000a1550b0/frameset.htm
HTH
Chemmanz

Similar Messages

  • PI 7.11 mapping lookup - data enrichment - appropriate approach?

    Hi guys,
    we just upgraded from PI 7.0 to PI 7.11.
    Now I´m facing a new scenario where an incoming order have to be processed.
    (HTTP to RFC)
    Furthermore each item of the order have to be enriched by data looked up in a SAP ERP 6.0 system.
    the lookup functionality could be accessed during RFC or ABAP Proxy
    With the new PI release we have several possibilities to implement this scenario, which are ...
    (1) graphical RFC Lookup in message mapping
    (2) ccBPM
    (3) using of the lookup API in java mapping
    (4) message mapping RFC Lookup in a UDF
    Because of performance reason I prefer to make use of the Advanced Adapter Engine, if this is possible.
    Further there should only one lookup request for all items of the order instead of each order item.
    I tried to implement possiblity (1), but it seems to be hard to fill the request table structure of the RFC function module. All examples in SDN only uses simple (single) input parameters instead of tables. Parsing the result table of the RFC seems to be tricky as well.
    Afterwards I tried to implement approach (3) using an SOAP adapter as Proxy with the protocol XI 3.0.
    (new functionality in PI 7.11)
    But this ends up in a crazy error message so it seems that SOAP adapter could not used as proxy adapter in this case.
    ccBPM seems also be an good and transparent approach, because there is no need of complex java code or lookup api.
    So  the choice is not so easy.
    What´s the best approach for this scenario??
    Are my notes to the approach correct or do I use/interpret it wrong?
    Any help, ideas appreciated
    Kind regards
    Jochen

    Hi,
    the error while trying to use the soap channel for proxy communication is ....
    com.sap.aii.mapping.lookup.LookupException: Exception during processing the payload. Error when calling an adapter by using the communication channel SOAP_RCV_QMD_100_Proxy (Party: , Service: SAP_QMD_MDT100_BS, Object ID: 579b14b4c36c3ca281f634e20b4dcf78) XI AF API call failed. Module exception: 'com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.io.IOException: Unexpected length of element <sap:Error><sap:Code> = XIProxy; HTTP 200 OK'. Cause Exception: 'java.io.IOException: Unexpected length of element <sap:Error><sap:Code> = XIProxy; HTTP 200 OK'.
    so this feature seems not to work for soap lookups, isn´t it.
    Kind regards
    Jochen

  • Mapping Lookup and performance?

    Hi all,
    I'm thinking about using mapping lookup (JDBC)
    Does anyone have experience with the performance of this metod?
    would it be better to use the BPM?
    Thanks
    Thomas Nørmark

    hi,
    DB lookup in mapping will always be more efficient
    then the BPM but the questions are :
    - how will you see handle the errors in this?
    - you will not be able to see this query (in message monitoring - as you do in case of BPM
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

  • Mapping lookup up failure with input JavaBean with an array of strings

    To receive input data our Web service defines a JavaBean one element of which is
    an array of strings. When a test Java client calls the service method the call
    is completed successfully. When a Perl client calls the service method an exception
    is returned. If I understand BEA's Web service documentation, it isn't necessary
    to do development for the service specifically to enable correct processing of
    an array of strings.
    In our environment we are running WL 8.1 SP 1.
    Please review the problem documentation and explain to me the cause of the exception
    and what I must do to prevent it.
    Thank you.
    The exception:
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><env:Header/><env:Body><env:Fault><faultcode>env:Server</faultcode><faultstring>Exception
    during processing: weblogic.xml.schema.binding.DeserializationException: mapping
    lookup failure. type=['http://www.w3.org/1999/XMLSchema']:xsd:string schema context=TypedSchemaContext{javaType=java.lang.String}
    (see Fault Detail for stacktrace)</faultstring><detail><bea_fault:stacktrace xmlns:bea_fault="http://www.bea.com/servers/wls70/webservice/fault/1.0.0"/>weblogic.xml.schema.binding.DeserializationException:
    mapping lookup failure. type=['http://www.w3.org/1999/XMLSchema']:xsd:string schema
    context=TypedSchemaContext{javaType=java.lang.String}
         at weblogic.xml.schema.binding.RuntimeUtils.lookup_deserializer(RuntimeUtils.java:461)
         at weblogic.xml.schema.binding.SoapArrayCodecBase.getComponentDeserializer(SoapArrayCodecBase.java:574)
         at weblogic.xml.schema.binding.SoapArrayCodecBase.deserialize(SoapArrayCodecBase.java:285)
         at weblogic.xml.schema.binding.BeanCodecBase.processElement(BeanCodecBase.java:183)
         at weblogic.xml.schema.binding.BeanCodecBase.processAllElements(BeanCodecBase.java:165)
         at weblogic.xml.schema.binding.BeanCodecBase.processElements(BeanCodecBase.java:145)
         at weblogic.xml.schema.binding.BeanCodecBase.deserialize(BeanCodecBase.java:108)
         at weblogic.xml.schema.binding.RuntimeUtils.invoke_deserializer(RuntimeUtils.java:428)
         at weblogic.xml.schema.binding.RuntimeUtils.invoke_deserializer(RuntimeUtils.java:328)
         at weblogic.webservice.core.DefaultPart.toJava(DefaultPart.java:384)
         at weblogic.webservice.core.DefaultMessage.toJava(DefaultMessage.java:458)
         at weblogic.webservice.core.handler.InvokeHandler.handleRequest(InvokeHandler.java:78)
         at weblogic.webservice.core.HandlerChainImpl.handleRequest(HandlerChainImpl.java:143)
         at weblogic.webservice.core.DefaultOperation.process(DefaultOperation.java:518)
         [more]
    The XML generated for the Perl client:
    <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:namesp2="http://namespaces.soaplite.com/perl"
    SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><namesp1:getWorkOrdersByFilters
    xmlns:namesp1="ncr.com"><gIMServiceRequest xsi:type="ns:GIMServiceRequest" xmlns:ns="java:com.ncr.gim.bean.service"><applicationID
    xsi:type="xsd:string">REVLOG</applicationID><nodeId xsi:type="xsd:string">00XH</nodeId><stopCodes
    xsi:type="namesp2:array" SOAP-ENC:arrayType="xsd:string[2]"><xsd:string xsi:type="xsd:string">06</xsd:string><xsd:string
    xsi:type="xsd:string">16</xsd:string></stopCodes></gIMServiceRequest></namesp1:getWorkOrdersByFilters></SOAP-ENV:Body></SOAP-ENV:Envelope>
    The XML generated for a test Java client:
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><env:Header/><env:Body
    env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><m:getWorkOrdersByFilters
    xmlns:m="ncr.com"><gIMServiceRequest xmlns:n1="java:com.ncr.gim.bean.service"
    xsi:type="n1:GIMServiceRequest"><CSRCode xsi:type="xsd:string">987x00</CSRCode><applicationID
    xsi:type="xsd:string">GIM</applicationID><incidentNbr xsi:nil="true"/><nodeId
    xsi:type="xsd:string">00T5</nodeId><stopCodes soapenc:arrayType="xsd:string[3]"><xsd:string
    xsi:type="xsd:string">00</xsd:string><xsd:string xsi:type="xsd:string">01</xsd:string><xsd:string
    xsi:type="xsd:string">02</xsd:string></stopCodes></gIMServiceRequest></m:getWorkOrdersByFilters></env:Body></env:Envelope>
    The JavaBean:
    public class GIMServiceRequest implements Serializable {
         private String applicationID = GIMConstants.UNKNOWN_APPLICATION_ID;
         private String nodeId = null;
         private String incidentNbr = null;
         private String CSRCode = null;
         private String[] stopCodes = null;
         public void setStopCodes(String[] aStopCodes) {
              stopCodes = aStopCodes;
         public String[] getStopCodes() {
              return stopCodes;
         [more]
    The service build.xml file:
    <project name="GIMService" default="all" basedir=".">
         <target name="all" depends="ear"/>
    <target name="ear">
    <servicegen
    destEar="GIMService.ear"
    contextURI="GIMContext" >
    <service
         ejbJar="GIMServiceEJB.jar"
         targetNamespace="ncr.com"
                        serviceName="GIMService"
                        serviceURI="/GIM_URI"
                        generateTypes="True"
                        expandMethods="True"
                        style="rpc"
                        protocol="http" >
              <client
                   clientJarName="GIMService_client.jar"
                   packageName="com.ncr.gim.gimservice.client" >
              </client>
    </service>
    </servicegen>
    </target>
    </project>

    Hi Jeff,
    Looks like the Perl client is using an older (deprecated) schema
    namespace "http://www.w3.org/1999/XMLSchema" that is causing this
    failure.
    Hope this helps,
    Bruce
    Jeff Carey wrote:
    >
    To receive input data our Web service defines a JavaBean one element of which is
    an array of strings. When a test Java client calls the service method the call
    is completed successfully. When a Perl client calls the service method an exception
    is returned. If I understand BEA's Web service documentation, it isn't necessary
    to do development for the service specifically to enable correct processing of
    an array of strings.
    In our environment we are running WL 8.1 SP 1.
    Please review the problem documentation and explain to me the cause of the exception
    and what I must do to prevent it.
    Thank you.
    The exception:
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><env:Header/><env:Body><env:Fault><faultcode>env:Server</faultcode><faultstring>Exception
    during processing: weblogic.xml.schema.binding.DeserializationException: mapping
    lookup failure. type=['http://www.w3.org/1999/XMLSchema']:xsd:string schema context=TypedSchemaContext{javaType=java.lang.String}
    (see Fault Detail for stacktrace)</faultstring><detail><bea_fault:stacktrace xmlns:bea_fault="http://www.bea.com/servers/wls70/webservice/fault/1.0.0"/>weblogic.xml.schema.binding.DeserializationException:
    mapping lookup failure. type=['http://www.w3.org/1999/XMLSchema']:xsd:string schema
    context=TypedSchemaContext{javaType=java.lang.String}
    at weblogic.xml.schema.binding.RuntimeUtils.lookup_deserializer(RuntimeUtils.java:461)
    at weblogic.xml.schema.binding.SoapArrayCodecBase.getComponentDeserializer(SoapArrayCodecBase.java:574)
    at weblogic.xml.schema.binding.SoapArrayCodecBase.deserialize(SoapArrayCodecBase.java:285)
    at weblogic.xml.schema.binding.BeanCodecBase.processElement(BeanCodecBase.java:183)
    at weblogic.xml.schema.binding.BeanCodecBase.processAllElements(BeanCodecBase.java:165)
    at weblogic.xml.schema.binding.BeanCodecBase.processElements(BeanCodecBase.java:145)
    at weblogic.xml.schema.binding.BeanCodecBase.deserialize(BeanCodecBase.java:108)
    at weblogic.xml.schema.binding.RuntimeUtils.invoke_deserializer(RuntimeUtils.java:428)
    at weblogic.xml.schema.binding.RuntimeUtils.invoke_deserializer(RuntimeUtils.java:328)
    at weblogic.webservice.core.DefaultPart.toJava(DefaultPart.java:384)
    at weblogic.webservice.core.DefaultMessage.toJava(DefaultMessage.java:458)
    at weblogic.webservice.core.handler.InvokeHandler.handleRequest(InvokeHandler.java:78)
    at weblogic.webservice.core.HandlerChainImpl.handleRequest(HandlerChainImpl.java:143)
    at weblogic.webservice.core.DefaultOperation.process(DefaultOperation.java:518)
    [more]
    The XML generated for the Perl client:
    <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:namesp2="http://namespaces.soaplite.com/perl"
    SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><namesp1:getWorkOrdersByFilters
    xmlns:namesp1="ncr.com"><gIMServiceRequest xsi:type="ns:GIMServiceRequest" xmlns:ns="java:com.ncr.gim.bean.service"><applicationID
    xsi:type="xsd:string">REVLOG</applicationID><nodeId xsi:type="xsd:string">00XH</nodeId><stopCodes
    xsi:type="namesp2:array" SOAP-ENC:arrayType="xsd:string[2]"><xsd:string xsi:type="xsd:string">06</xsd:string><xsd:string
    xsi:type="xsd:string">16</xsd:string></stopCodes></gIMServiceRequest></namesp1:getWorkOrdersByFilters></SOAP-ENV:Body></SOAP-ENV:Envelope>
    The XML generated for a test Java client:
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><env:Header/><env:Body
    env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><m:getWorkOrdersByFilters
    xmlns:m="ncr.com"><gIMServiceRequest xmlns:n1="java:com.ncr.gim.bean.service"
    xsi:type="n1:GIMServiceRequest"><CSRCode xsi:type="xsd:string">987x00</CSRCode><applicationID
    xsi:type="xsd:string">GIM</applicationID><incidentNbr xsi:nil="true"/><nodeId
    xsi:type="xsd:string">00T5</nodeId><stopCodes soapenc:arrayType="xsd:string[3]"><xsd:string
    xsi:type="xsd:string">00</xsd:string><xsd:string xsi:type="xsd:string">01</xsd:string><xsd:string
    xsi:type="xsd:string">02</xsd:string></stopCodes></gIMServiceRequest></m:getWorkOrdersByFilters></env:Body></env:Envelope>
    The JavaBean:
    public class GIMServiceRequest implements Serializable {
    private String applicationID = GIMConstants.UNKNOWN_APPLICATION_ID;
    private String nodeId = null;
    private String incidentNbr = null;
    private String CSRCode = null;
    private String[] stopCodes = null;
    public void setStopCodes(String[] aStopCodes) {
    stopCodes = aStopCodes;
    public String[] getStopCodes() {
    return stopCodes;
    [more]
    The service build.xml file:
    <project name="GIMService" default="all" basedir=".">
    <target name="all" depends="ear"/>
    <target name="ear">
    <servicegen
    destEar="GIMService.ear"
    contextURI="GIMContext" >
    <service
    ejbJar="GIMServiceEJB.jar"
    targetNamespace="ncr.com"
    serviceName="GIMService"
    serviceURI="/GIM_URI"
    generateTypes="True"
    expandMethods="True"
    style="rpc"
    protocol="http" >
    <client
    clientJarName="GIMService_client.jar"
    packageName="com.ncr.gim.gimservice.client" >
    </client>
    </service>
    </servicegen>
    </target>
    </project>

  • Mapping Lookup for Update/Insert

    Hi XI guru,
    We're using the Mapping-Lookup-feature for select-statements - it works very fine.
    If we use an insert- or update-statement instead, we get an exception.
    String Query1 = " ";
    Channel channel = null;
    DataBaseAccessor accessor = null;
    DataBaseResult resultSet1 = null;
    // Build the Query String
    Query1 ="Update ZID Set MESSAGE_ID = MESSAGE_ID + 1 where ID = '" + a[0] + "'";
    try{
    //Determine a channel, as created in the Configuration
    channel = LookupService.getChannel("Oracle_DB","JDBC_Insert");
    //Get a system accessor for the channel. As the call is being made to an DB, an DatabaseAccessor is obtained.
    accessor = LookupService.getDataBaseAccessor(channel);
    //Execute Query and get the values in resultset
    resultSet1 = accessor.execute(Query1);
    for(Iterator rows = resultSet2.getRows();rows.hasNext();){
    Map rowMap = (Map)rows.next();
    result.addValue((String)rowMap.get("MESSAGE_ID"));
    catch(Exception ex){
    result.addValue(ex.getMessage());
    finally{
    try{
    if (accessor!=null) accessor.close();
    catch(Exception e){
    result.addValue(e.getMessage());
    Exception during processing the payload.Problem when calling an adapter by using communication channel JDBC_Insert (Party: , Service: Oracle_DB, Object ID: 6e9e567c233733929c2d8f31c1bbbba9) XI AF API call failed. Module exception: (No information available). Cause Exception: &apos;Error processing request in sax parser: Error when executing statement for table/stored proc. &apos;table&apos; (structure &apos;statement&apos;): java.sql.SQLException: ORA-00900: invalid SQL statement
    &apos;.
    com.sap.aii.mapping.lookup.LookupException: Problem when calling an adapter by using communication channel JDBC_Insert (Party: , Service: Oracle_DB, Object ID: 6e9e567c233733929c2d8f31c1bbbba9) XI AF API call failed. Module exception: (No information available). Cause Exception: &apos;Error processing request in sax parser: Error when executing statement for table/stored proc. &apos;table&apos; (structure &apos;statement&apos;): java.sql.SQLException: ORA-00900: invalid SQL statement
    &apos;.
         at com.sap.aii.ibrun.server.lookup.AdapterProxyLocal.execute(AdapterProxyLocal.java:131)
         at com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.execute(SystemAccessorInternal.java:68)
         at com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.process(SystemAccessorHmiServer.java:149)
         at com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.process(SystemAccessorHmiServer.java:77)
         at com.sap.aii.utilxi.hmis.server.HmisServiceImpl.invokeMethod(HmisServiceImpl.java:169)
         at com.sap.aii.utilxi.hmis.server.HmisServer.process(HmisServer.java:178)
         at com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:296)
         at com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:211)
         at com.sap.aii.utilxi.hmis.web.workers.HmisInternalClient.doWork(HmisInternalClient.java:70)
         at com.sap.aii.utilxi.hmis.web.HmisServletImpl.doWork(HmisServletImpl.java:496)
         at com.sap.aii.utilxi.hmis.web.HmisServletImpl.doPost(HmisServletImpl.java:634)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:365)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:944)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:160)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Root Cause:
    com.sap.aii.af.service.api.AFException: XI AF API call failed. Module exception: (No information available). Cause Exception: &apos;Error processing request in sax parser: Error when executing statement for table/stored proc. &apos;table&apos; (structure &apos;statement&apos;): java.sql.SQLException: ORA-00900: invalid SQL statement
    &apos;.
         at com.sap.aii.af.service.api.AdapterAccess.sendMsg(AdapterAccess.java:214)
         at com.sap.aii.af.service.api.AdapterAccess.execute(AdapterAccess.java:283)
         at com.sap.aii.ibrun.server.lookup.AdapterProxyLocal.execute(AdapterProxyLocal.java:123)
         at com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.execute(SystemAccessorInternal.java:68)
         at com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.process(SystemAccessorHmiServer.java:149)
         at com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.process(SystemAccessorHmiServer.java:77)
         at com.sap.aii.utilxi.hmis.server.HmisServiceImpl.invokeMethod(HmisServiceImpl.java:169)
         at com.sap.aii.utilxi.hmis.server.HmisServer.process(HmisServer.java:178)
         at com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:296)
         at com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:211)
         at com.sap.aii.utilxi.hmis.web.workers.HmisInternalClient.doWork(HmisInternalClient.java:70)
         at com.sap.aii.utilxi.hmis.web.HmisServletImpl.doWork(HmisServletImpl.java:496)
         at com.sap.aii.utilxi.hmis.web.HmisServletImpl.doPost(HmisServletImpl.java:634)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:365)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:944)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:160)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Could you please help to let me know what should I do to fix it?Thank you

    the purpose to do this update is, we want to get a interface depended sequense number, every message should have a unique message id, then use JDBC receiver adapter to insert this message to several DB tables, Legacy application program will use these message id to join these tables to get data.
    for example: SAP send sales order data to Legacy system, every Sales Order Create and Modification will trigger a message to Leagcy system, Legacy system use Staging table to receive these messages, one table for SO Header,one for Item,one for schedule line for each item. So when Legacy program cannot use SO number as key to join these table, because every change will create a message. That's why we want to maintain a unique message id for every message.
    Do you have any other solution to realize this requirement? thank you very much for your help.

  • Character translation error in Mapping Lookup API (RFC)

    Dear all,
    I am new to XI and got a question concerning XI Mapping Lookup API - I send an RFC Request, which comes back as RFC Response(XML), that I fill in a String to map on.
    My problem is, characters such as "Ä,ä,Ü,ß" and so on come back pretty weird and I also got a lot of quotes in my String. Could somebody please give me a hint how to move on with this..
    thanx in advance
    P.S. Is it usefull to handle this problem using the DOM Parser instead holding the response in a string? 
    Info: called system is R/3 4.6b, XI runs on 6.4 SR 16

    Dear all - thanks for your very fast help but I still have problem with the wrong character...
    @Michal - Using this coding (the easiest way, I found from the WebLog) to convert the Payload type to String, delivers the result I have  shown at the end,  so could you give me please some approach how to handle this
                   Payload resultOfCall = accessor.call(payload);
                   InputStream in = resultOfCall.getContent();
                   out = new ByteArrayOutputStream(1024);
                   byte[] buffer = new byte[1024];
                   for (int read = in.read(buffer); read > 0; read = in.read(buffer)) {
                        out.write(buffer, 0, read);
                   content = out.toString();
                   return content;
    Result:
    &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;rfc:Z_GETFTXC108TXTFROMFILE2.Response xmlns:rfc=&quot;urn:sap-com:document:sap:rfc:functions&quot;&gt;&lt;SCENOEDITXTSTRUCT&gt;&lt;MANDT&gt;030&lt;/MANDT&gt;&lt;SCENARIOID&gt;TVPN&lt;/SCENARIOID&gt;&lt;FILENAME&gt;/usr/sap/text3.txt&lt;/FILENAME&gt;&lt;FILETYPE&gt;ASC&lt;/FILETYPE&gt;&lt;TEXT1&gt;Kleines Regengesicht  aaLlMmNnOoPpQqRrSsTtUuVvWwXxYyZzÃ&#159;Ã&#159;Ã&#132;äÃ&#156;ü2 AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZzÃ&#159;Ã&#159;Ã&#132;äÃ&#156;ü3 AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZzÃ&#159;Ã&#159;1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678906 AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZzÃ&#159;Ã&#159;Ã&#132;äÃ&#156;ü3 AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZzÃ&#159;Ã&#159;8 AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZzÃ&#159;Ã&#159;Ã&#156;üÃ&#150;ö9 Ã&#132;äBbCcDdEeFfGgÃ&#150;öIxxSTRINGENDE&lt;/TEXT1&gt;&lt;TEXT2&gt;2 AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZzÃ&#159;Ã&#159;Ã&#132;äÃ&#156;ü1234567890123456789012345678901234567890123456789012345678903 AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZzÃ&#159;Ã&#159;1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678902 AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZzÃ&#159;Ã&#159;Ã&#132;äÃ&#156;ü7 Ã&#132;äBbCcDdEeFfGgHhIiJjKkLlMmNnÃ&#150;öPpQqRrSsTtÃ&#156;üVvWwXxYyZzÃ&#159;Ã&#159;Ã&#150;öÃ&#156;ü8 AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZzÃ&#159;Ã&#159;Ã&#156;üÃ&#150;ö9 Ã&#132;äBbCcDdEeFfGgÃ&#150;öIxxSTRINGENDE&lt;/TEXT2&gt;&lt;TEXT3&gt;3 AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZzÃ&#159;Ã&#159;Kleines Regengesicht  aaLlMmNnOoPpQqRrSsTtUuVvWwXxYyZzÃ&#159;Ã&#159;Ã&#132;äÃ&#156;ü3 AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZzÃ&#159;Ã&#159;1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678906 AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZzÃ&#159;Ã&#159;Ã&#132;äÃ&#156;ü7 Ã&#132;äBbCcDdEeFfGgHhIiJjKkLlMmNnÃ&#150;öPpQqRrSsTtÃ&#156;üVvWwXxYyZzÃ&#159;Ã&#159;Ã&#150;öÃ&#156;ü8 AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZzÃ&#159;Ã&#159;Ã&#156;üÃ&#150;ö9 Ã&#132;äBbCcDdEeFfGgÃ&#150;öIxxSTRINGENDE&lt;/TEXT3&gt;&lt;TEXT4&gt;7 Ã&#132;äBbCcDdEeFfGgHhIiJjKkLlMmNnÃ&#150;öPpQqRrSsTtÃ&#156;üVvWwXxYyZzÃ&#159;Ã&#159;Ã&#150;öÃ&#156;ü7 Ã&#132;äBbCcDdEeFfGgHhIiJjKkLlMmNnÃ&#150;öPpQqRrSsTtÃ&#156;üVvWwXxYyZzÃ&#159;Ã&#159;Ã&#150;öÃ&#156;ü2 AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZzÃ&#159;Ã&#159;Ã&#132;äÃ&#156;ü123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890Kleines Regengesicht  aaLlMmNnOoPpQqRrSsTtUuVvWwXxYyZzÃ&#159;Ã&#159;Ã&#132;äÃ&#156;ü1234567890123456789012345678901234567890123456789012345678908 AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZzÃ&#159;Ã&#159;Ã&#156;üÃ&#150;ö9 Ã&#132;äBbCcDdEeFfGgÃ&#150;öIxxSTRINGENDE&lt;/TEXT4&gt;&lt;TEXT5&gt;&lt;/TEXT5&gt;&lt;/SCENOEDITXTSTRUCT&gt;&lt;/rfc:Z_GETFTXC108TXTFROMFILE2.Response&gt;
    Thnaks in advance!

  • Error for package com.sap.aii.mapping.lookup

    Hi All
    I am writing a code for the DB lookup. When I import the package in the Message
    Mapping (Advance Function) I am getting an Error.
    C:/usr/sap/SXI/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map6af6f7d1335111dc9b51000c2967ead8/source/com/sap/xi/tf/_MM_File2JMS_.java:3: package com.sap.aii.mapping.lookup does not exist
    import com.sap.aii.mappingtool.tf3.;import com.sap.aii.mappingtool.tf3.rt.;import java.util.;import java.io.; import java.lang.reflect.;import com.sap.aii.mapping.lookup.; ^
    C:/usr/sap/SXI/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map6af6f7d1335111dc9b51000c2967ead8/source/com/sap/xi/tf/_MM_File2JMS_.java:57: cannot resolve symbol symbol : class Channel location: class com.sap.xi.tf._MM_File2JMS_ Channel channel = null;
    C:/usr/sap/SXI/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map6af6f7d1335111dc9b51000c2967ead8/source/com/sap/xi/tf/_MM_File2JMS_.java:58: cannot resolve symbol symbol : class DataBaseAccessor location: class com.sap.xi.tf._MM_File2JMS_ DataBaseAccessor accessor = null; ^
    Thanks
    Farooq.

    Hey satish I am getting same Error:
    C:/usr/sap/SXI/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map7801d381335311dc8660000c2967ead8/source/com/sap/xi/tf/_MM_File2JMS_.java:3: package com.sap.aii.mapping.lookup does not exist import com.sap.aii.mappingtool.tf3.;import com.sap.aii.mappingtool.tf3.rt.;import java.util.;import java.io.; import java.lang.reflect.;import com.sap.aii.mapping.lookup.;import java.io.*; ^ C:/usr/sap/SXI/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map7801d381335311dc8660000c2967ead8/source/com/sap/xi/tf/_MM_File2JMS_.java:57: cannot resolve symbol symbol : class Channel location: class com.sap.xi.tf._MM_File2JMS_ Channel channel = null; ^ C:/usr/sap/SXI/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map7801d381335311dc8660000c2967ead8/source/com/sap/xi/tf/_MM_File2JMS_.java:58: cannot resolve symbol symbol : class DataBaseAccessor location: class com.sap.xi.tf._MM_File2JMS_ DataBaseAccessor accessor = null; ^ 3 errors

  • Is Mapping Lookup table possible with IDOC to FIle scenario

    Hi all,
    Need suggestion, I am using SP16
    My sceanrio is IDOC to FIles, and have to use a Mapping Lookup tables for some of the fields within the mapping...
    'Crossref:  PlantLoc_to_WhseComDiv.  Value mapping lookup to take two fields from SAP and convert to WMS 3-digit value'
    How to go with this, since i have checked in SAP library that it is for only RFC,JDBC,SOAP adapters ...
    Need u r valuable inputs,
    Regards,
    sridhar

    You can use RFC or SOAP or JDBC lookup in your mapping.Why not?..It does not mean that we use the lookups only in RFC secnarios.You can use them in any scenario.

  • XI Mapping lookups RFC API

    Hi mates,
    Can you please share with me the following document on XI Mapping lookups RFC API by Michal?
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/xi/xi-code-samples/xi%20mapping%20lookups%20rfc%20api.pdf
    This link is broken I guess.
    thx in adv
    praveen
    [email protected]

    Hello,
    Why dont you get the article from here?
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/xi/xi-code-samples/mapping%20lookups:%20RFC%20API.pdf
    Regards,
    Jai Shankar

  • Value Mappings and Mapping lookups?

    Hi Experts,
    I've came across a thread on SDN which is mention below.
    value mapping
    can anyone explain me what is value mapping and fix mappings and why we need them and wht is mapping lookups?
    plz refer some weblogs which can explains in detail about  value mappings, fixed mappings and mapping lookups?
    pts will b rewarded
    thanks
    Faisal

    Hi,
    Hope this information is useful to you..
    Value Mapping Blogs.
    /people/community.user/blog/2007/01/08/valuemapping-using-the-graphical-mapping-tool
    /people/sreekanth.babu2/blog/2005/02/23/value-mapping-replication
    Mapping look up API
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/xi/xi-code-samples/mapping%20lookups:%20RFC%20API.pdf
    what is lookups
    Lookups are used to identify / request the data from mapping , i mean interupting the process and looking for data which was stored in some where and get that data and comback to process and continue with that data.
    why we can use for lookups.
    We will use these type of lookups in Message mapping for refering DB Lookup for data base which is not SAP, RFC lookups for SAP data
    Look up tables
    In the error handling topic we have seen the different validations which need to be performed on file.
    This can be done through Lookup.
    Some use cases:
    • Look up employee information.
    • Lookup for raising an alert.
    The purpose of the lookup may be:
    • To perform application-level validation of the data, before sending it to the backend.
    • To populate fields of the XML document with some additional data found in the backend application.
    There are two ways in which we can do lookup:
    • Call lookup method from GUI mapping.
    • Call lookup method from XSLT mapping.
    Some useful blogs...
    /people/shabarish.vijayakumar/blog/2006/02/13/unable-to-open-iresrid-xipipi-71-updated-for-pi-71-support
    Lookup - /people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
    DB lookup - /people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
    SOAP Lookup - /people/bhavesh.kantilal/blog/2006/11/20/webservice-calls-from-a-user-defined-function
    http://help.sap.com/saphelp_nw04/helpdata/en/cf/406642ea59c753e10000000a1550b0
    Lookup’s in XI made simpler - /people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
    How to check JDBC SQL Query Syntax and verify the query results inside a User Defined Function of the Lookup API -
    http://help.sap.com/saphelp_nw04/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm
    /people/prasad.illapani/blog/2006/10/25/how-to-check-jdbc-sql-query-syntax-and-verify-the-query-results-inside-a-user-defined-function-of-the-lookup-api
    Lookups - /people/morten.wittrock/blog/2006/03/30/wrapping-your-mapping-lookup-api-code-in-easy-to-use-java-classes
    Lookups - /people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
    /people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
    http://help.sap.com/saphelp_nw04/helpdata/en/cf/406642ea59c753e10000000a1550b0/content.htm
    /people/sap.user72/blog/2005/12/06/optimizing-lookups-in-xi
    Lookups with XSLT - https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/8e7daa90-0201-0010-9499-cd347ffbbf72
    /people/sravya.talanki2/blog
    /people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
    /people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
    /people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
    /people/sap.user72/blog/2005/12/06/optimizing-lookups-in-xi
    /people/morten.wittrock/blog/2006/03/30/wrapping-your-mapping-lookup-api-code-in-easy-to-use-java-classes
    Thanks,
    Satya..
    Reward points if it is useful..

  • Mapping lookups - RFC API

    Hi
    I have cr8ed rfc lookup in UDF,and I want to parse this xml and use only the value I need
    I read in the forum that there are 2 ways of doing it :
    DOM and SAX
    any1 knows good weblogs/threads which ellaborates on how or explain how it should b done ?
    thx,Shai

    Hi Shai,
    This blog and article deals with calling your RFC from your JAVA MAPPING / User Defined Function.
    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
    And now going to the next half of your question regarding SAX and DOM parsers....
    The user defined functions that you write in your Graphical Mapping has nothing to do with Java Mapping.
    In your Graphical Mapping, the parsing of source structure is handled interannly by XI.
    But, when you go for an explicit mapping technique like Java Mapping, you have to parse the source XML structure, so that you can write the logic for your mapping.
    Java Mapping will execute a method called Execute, that will take the source XML structure as the Input Stream and then, you have to parse the Input STream and to do this parsing, you use SAX or DOM parser.
    DOM processor loads the entire XML into the memory and is processor intenseive, SAX does it element by element and so is not processor intensive.
    If you are using SAX parser, there are 5 methods . They are:
    1) Start of the document(startDocument)
    2) start of the element(startElement)
    3) end of the element(endElement)
    4) end of the document(endDocument)
    5) chars()
    Also check with any java site about SAX events how it works etc.
    Java Mapping
    http://help.sap.com/saphelp_nw04/helpdata/en/e2/e13fcd80fe47768df001a558ed10b6/content.htm
    DOM parser API
    http://java.sun.com/j2se/1.4.2/docs/api/org/w3c/dom/package-frame.html
    On how to create XML docs with SAX and DOM go thruugh these links:
    http://www.cafeconleche.org/books/xmljava/chapters/ch09.html
    http://www.cafeconleche.org/books/xmljava/chapters/ch06.html
    Also go through these Blogs....
    /people/prasad.ulagappan2/blog/2005/06/08/sax-parser
    /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-i
    /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-ii
    /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-iii
    I hope this helps...
    Regards,
    Abhy

  • Mapping lookups - API (SP13)  :-)

    Hi,
    just want to let you know that there's some "practical info" about mapping looups on SDN
    RFC API (an article which I posted a week ago)
    https://sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/uuid/801376c6-0501-0010-af8c-cb69aa29941c
    together with siva's weblog (jdbc lookup) we have
    quite nice collection for a start
    /people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
    might be useful for "mapping lookups starters"
    Regards,
    michal

    Hi Michal,
    I found your article about the Lookup API and it was a really helpful start into the topic. However, the way the XML is composed in the function didn' please me at all.
    So I took your approach forward and added some generic RFC-XML construction for certain situations (it's actually intended for simple mapping lookup RFCs that have a 'flat' structure and the result containing just one element - which I assume will the most common case) and also some generic retrieval of the result value and made it a function in a Java Archive that can easily be called from a user-defined function, passing the relevant information as parameters - getting rid of the hard-coded stuff.
    Now I thought it might be a good idea to share this function as addition to your article, but I'm not sure about the best way to do so - what would you suggest?
    regards,
    Peter

  • DeserializationException: mapping lookup failure for xml type

    I generated a web-services.xml with the wsdl2Service task without a type mapping. The service is a document/literal based web service. I implemented the Java method, which accepts a single parameter with type javax.xml.soap.SOAPElement and returns javax.xml.soap.SOAPElement. Everytime I invoke the method from a client I get the following error from the server (WebLogic 8.1 SP4):
    weblogic.xml.schema.binding.DeserializationException: mapping lookup failure for xml type ['urn:mytest1']:test and java interface javax.xml.soap.SOAPElement
    at weblogic.xml.schema.binding.RuntimeUtils.invoke_deserializer(RuntimeUtils.java:325)
    What could be wrong with my configuration?

    Hi,
    I am also facing the same problem on weblogic8.1SP1.
    If you had rectified this problem, please advice me as well.

  • Mapping lookups need to be done for sender or for reciever?

    Hi All,
    i have a small doubt do we need to perform mapping lookups for sender or reciever? if Reciever then why?
    Regards
    Sami

    Hi,
    1)what is lookups
    Lookups are used to identify / request the data from mapping , i mean interupting the process and looking for data which was stored in some where and get that data and comback to process and continue with that data.
    2.why we can use for lookups.
    We will use these type of lookups in Message mapping for refering DB Lookup for data base which is not SAP, RFC lookups for SAP data
    How we have to create the lookups?
    Check this weblogs with some screenshots on how to achieve this:
    /people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
    /people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
    /people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
    /people/sap.user72/blog/2005/12/06/optimizing-lookups-in-xi
    /people/morten.wittrock/blog/2006/03/30/wrapping-your-mapping-lookup-api-code-in-easy-to-use-java-classes
    Satya

  • How to Parse the XML generated by Mapping LookUp - RFC API

    Hi Friends,
    I m using the link by Michal Krawczyk for Mapping Lookups - RFC API
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a03e7b02-eea4-2910-089f-8214c6d1b439
    How to parse the XML created in the target node ?
    Regards
    Pravesh

    Hi,
    Check the second half of my code in this blog,
    /people/bhavesh.kantilal/blog/2006/11/20/webservice-calls-from-a-user-defined-function
    It deals with webservice call's but almost the same for RFC.
    Regards
    Bhavesh

Maybe you are looking for