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

Similar Messages

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

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

  • Errors after registering Endeca Server Data Enrichment Plugin

    Hi guys,
    Im using OEID 3.1. today i register Endeca Server Data Enrichment Plugin to explore Endeca text enrichment features. i think i register plugin without errors. i give following command for this
    enrichment-metadata.bat D:\java\jdk1.7.0_21 192.168.0.1 7001 http D:\Oracle\Middleware_Orch D:\Oracle\Middleware_Orch\EndecaServer7.6.0.0_1 D:\Oracle\Middleware_Orch\user_projects\domains\endeca_server_domain
    but unfortunately after registration of plugin i start getting following errors in EndecaStudio logs
    WARNING: Could not read WSDL Definition from URL wsdlDocumentLocation: null
    2015-02-22 11:13:27,171 ERROR [DatasetManagerPortlet] Failed to ping enrichment service. Mark it as unavailable.
    javax.xml.ws.WebServiceException: Failed to access the WSDL at: file:/D:/scratch/workspace1/Cloud/prebuilt_src/endeca-wsdl/wsdl/e
    nrichTask.wsdl. It failed with:
            D:\scratch\workspace1\Cloud\prebuilt_src\endeca-wsdl\wsdl\enrichTask.wsdl (The system cannot find the path specified).
    sed by: java.io.FileNotFoundException: D:\scratch\workspace1\Cloud\prebuilt_src\endeca-wsdl\wsdl\enrichTask.wsdl (The system can not find the path specified)
         at java.io.FileInputStream.open(Native Method)
    due to this some component start giving errors like MAP Comp does not rendering data & dataset are unable to get delete.
    Now how can I revert these change OR how can I fix this Error ?
    Regards.

    It didn't ask for any parameters.
    Here is what i did.
    I ran:
    C:\Oracle\Middleware\EndecaServer7.6.0.0_1\endeca-data-enrichment\install>enrichment-metadata.bat C:\Java\jdk1.6.0_45 localhost 7001 http C:\Oracle\Middleware C:\Oracle\Middleware\EndecaServer7.6.0.0_1 C:\Oracle\Middleware\user_projects\domains\endeca_base_domain
    and the result is:
    ECHO is off.
    Registering plug-in BlacklistPlugin...
    INFO: Registered auditor for componentType=WebServices auditor=oracle.security.jps.internal.audit.DelegateAuditor$XmlAuditor@298eb7e0
    and it hangs there.

  • Problem with context mapping and data flow in a FPM application

    Hi All,
    I am trying to develop an ESS application using FPM. For the same, the requirement is to see the history of an employee in the second view.
    The first view has got just the overview information and the second one has got the detail. So, the records or the fields are the same on both the views.
    As per the FPM guidelines, the Model is residing in the Fc component and the respective Vc components are using the model data accordingly.
    I am executing the model in the Fc component calling the executable method in the interfaceController of the first view and then trying to display the output data of the BAPI in the first view which provides the overview information.This is working fine.
    But when i am trying to map the same output node to the Table UI for the second view, the record size is coming zero and thus no information is available.
    For the above issue, I am again executing the RFC in the InterfaceController of the second view to populate the records, which is incorrect as it is already executed and the data is available for the first view.
    I request you to let me know the correct approach to Context mapping and data flow when using FPM-roadmap. Is their any standard method or approach available to deal with such requirements? Please let me know.
    Thanks in advance.
    Regards
    DK

    Hi Idhaya,
    I model node is available in Fc and the Fc interface controller is being used in the first Vc and the second Vc.
    So the idea is, as the executable method is generated in the Fc, so i have created a custom method to call the executable method in Fc, where the input parameter is getting passed and this custom method is finally getting called is the first Vc.
    So , now my first Vc is ready to call the custom method in Fc and execute the RFC. Once the RFC is executed, the nodes in the Fc should get populated which is the ideal case.
    And as the Fc is used as a component in the second Vc, the same node is available to the UI elements.
    But, when I check the record size for the output node, it is always zero, for the second Vc.
    Regards
    DK

  • Problem in mapping xml data with header details from IPM 11g to BPEL

    Hi,
    I want to map xml data as a supporting content from IPM application to BPEL.
    My xml is
    <?xml version="1.0" encoding="utf-8"?>
    <DocumentFile xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://tempuri.org/Document.xsd">
    <Document DocumentType="Invoice">
    <DocumentImage>
    <Filename>\\10.205.0.209\Img\10883212.TIF</Filename>
    </DocumentImage>
    </DocumentFile>
    If I remove header details from root element <DocumentFile> i.e. modified xml is
    <DocumentFile>
    <Document DocumentType="Invoice">
    <DocumentImage>
    <Filename>\\10.205.0.209\Img\10883212.TIF</Filename>
    </DocumentImage>
    </DocumentFile>
    it works fine but i need to pass header details as well.
    Please suggest.
    Thanks,
    Priya

    Hi Naveen,
    In sxmb_moni the content transmitted to the adapter(RFC)is as follows
    <?xml version="1.0" encoding="UTF-8" ?>
    - <ns:ZRFID_EQUIP xmlns:ns="urn:sap-com:document:sap:rfc:functions">
    - <RECORDS>
    - <item>
      <FLOC>f1-01-01</FLOC>
      <RFID_NO>I006</RFID_NO>
      </item>
    - <item>
      <FLOC>f1-01-02</FLOC>
      <RFID_NO>I002</RFID_NO>
      </item>
    - <item>
      <FLOC>f1-01-03</FLOC>
      <RFID_NO>I003</RFID_NO>
      </item>
    - <item>
      <FLOC>f1-01-04</FLOC>
      <RFID_NO>I004</RFID_NO>
      </item>
    - <item>
      <FLOC>f1-01-05</FLOC>
      <RFID_NO>I005</RFID_NO>
      </item>
    - <item>
      <FLOC>f1-01-06</FLOC>
      <RFID_NO>I001</RFID_NO>
      </item>
      </RECORDS>
      </ns:ZRFID_EQUIP>
    At r/3 side the field floc and rfid_no gets mapped to floc which is of char30
    eg floc=f1-01-01I006
       rfid_no=

  • Context Mapping and data binding

    Hi,
    Please explain about the context mapping and data dinding
    and also differences
    Thank's & Regard's.
    Sri

    Hi Sridevi Sudunaguntla ,
    context mapping-> means mapping between different contexts
    ie suppose if we are creating a node in the component controllet and if we want to use that node in view a and view b, then  we have to map this node from component controller to the required view.. this mapping of context nodes is called context mapping..for context mapping, create nodes in compcontroller.. tehn go to view-> context-> tehn drag and drop required node from component controller to the view ..
    data binding-> means binding the data from nopde to the ui elements or viceversa... after the nodes are created in indudual views or after context mapping.. we have to bind these nodes to the ui elements... suppose we have an input field and we want to read that,, so we have to bind the input field to an attribute in the node.. this binding is called.. data binding.
    Regards
    Sarath

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

  • Error in Mapping of Data for Scrambling Rule due to Inconsistency detected in Mapping Engine PIFD

    Hi all,
    We are performing an HCM Data scrambling, however, in Package Setting phase, we are encountering error in mapping of data for scrambling rule, saying there are inconsistency detected in mapping Engine PIFD.
    We have already implemented and checked below SAP notes, but still no luck.
    1854557 - Missing PIFD objects or mappings after LT AddOn install.
    1665861
    - TDMS 4.0 - Collective note for Scrambling
    Please advise how to fix the issue? Project is at stand still due to this.
    OSS message already opened.
    Thanks and regards,
    Philip

    Hi
    This is bug 5195315, which looks to be fixed in a 10.2 patch. If you can pick up the latest 10.2 patch there is like 3 years of fixes worth picking up.
    Cheers
    David

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

  • Mapping util.Date to Oracle timestamp

    Tuesday, March 22, 2005
    I am currently experiencing difficulty in mapping a java.util.Date
    field to an Oracle TIMESTAMP column.
    Here's what I see. By default, Kodo maps the date field to a DATE
    column. I suppose this makes sense since Oracle's date columns
    have time information that resolves to the second. In this case,
    the client has a business case to store subsecond resolution,
    hence the desire to store the date field in an Oracle TIMESTAMP
    column.
    First question: how should this be done?
    Here's what I've tried. I tried setting the jdbc-type extension
    for the date field to "timestamp". This setting makes no
    difference, and I suspect the reason is that OracleDBDictionary
    has made the mapping from TIMESTAMP to DATE.
    I tried setting the jdbc-sql-type extension for the date field to
    "timestamp". This makes a difference only when I drop the table.
    Then the schematool's refresh action creates a table with date's
    field mapped to a TIMESTAMP column. I have also gone ahead and
    manually altered the table to achieve the same effect.
    Once the mapping is created, I see the following behavior. Kodo
    has no problem reading the TIMESTAMP column and putting the info
    into the date field. It also has no problem saving non-null date
    values into the TIMESTAMP column. But it does have a problem
    storing a null in the date field.
    Second question: what is the workaround to this problem?
    The the stack dump (obtained by using the JDO Tools Library
    example) follows.
    Thanks in advance,
    David Ezzio
    enter command:
    --> return book
    Select the book to return:
    1. book [com.ysoft.jdo.book.library.Book-354] "Gone to War" checked out:
    Tue Mar 22 10:38:01 EST 2005
    2. book [com.ysoft.jdo.book.library.Book-356] "Gone to Work" checked
    out: Tue Mar 22 10:33:58 EST 2005
    3. book [com.ysoft.jdo.book.library.Book-357] "Gone Fishing" checked
    out: Tue Mar 22 10:33:58 EST 2005
    4. book [com.ysoft.jdo.book.library.Book-360] "Gone Sailing" checked
    out: Tue Mar 22 10:33:58 EST 2005
    5. book [com.ysoft.jdo.book.library.Book-355] "Gone Hunting" checked
    out: Tue Mar 22 10:33:58 EST 2005
    Enter selection:
    --> 2
    okay
    enter command:
    --> commit
    exception caught in command
    kodo.util.FatalDataStoreException: The transaction has been rolled back.
    See the nested exceptions for details on the errors that occu
    rred.
    at
    kodo.runtime.PersistenceManagerImpl.throwFlushException(PersistenceManagerImpl.java:1262)
    at
    kodo.runtime.PersistenceManagerImpl.flush(PersistenceManagerImpl.java:1122)
    at
    kodo.runtime.PersistenceManagerImpl.flushSafe(PersistenceManagerImpl.java:1005)
    at
    kodo.runtime.PersistenceManagerImpl.beforeCompletion(PersistenceManagerImpl.java:932)
    at
    kodo.runtime.LocalManagedRuntime.commit(LocalManagedRuntime.java:69)
    at
    kodo.runtime.PersistenceManagerImpl.commit(PersistenceManagerImpl.java:592)
    at
    com.ysoft.jdo.book.library.LibraryHandler.commitTransaction(LibraryHandler.java:175)
    at
    com.ysoft.jdo.book.library.client.CommitTransaction.execute(Library.java:279)
    at
    com.ysoft.jdo.book.common.console.UserInterface.execute(UserInterface.java:196)
    at
    com.ysoft.jdo.book.common.console.UserInterface.pumpCommands(UserInterface.java:186)
    at com.ysoft.jdo.book.library.client.Library.run(Library.java:139)
    at com.ysoft.jdo.book.library.client.Library.main(Library.java:104)
    NestedThrowablesStackTrace:
    kodo.util.DataStoreException: Invalid column type
    at
    kodo.jdbc.sql.DBDictionary.newDataStoreException(DBDictionary.java:3081)
    at kodo.jdbc.sql.SQLExceptions.getDataStore(SQLExceptions.java:77)
    at kodo.jdbc.sql.SQLExceptions.getDataStore(SQLExceptions.java:63)
    at kodo.jdbc.sql.SQLExceptions.getDataStore(SQLExceptions.java:43)
    at
    kodo.jdbc.runtime.PreparedStatementManager.flush(PreparedStatementManager.java:89)
    at
    kodo.jdbc.runtime.UpdateManagerImpl.flush(UpdateManagerImpl.java:445)
    at
    kodo.jdbc.runtime.UpdateManagerImpl.flush(UpdateManagerImpl.java:193)
    at
    kodo.jdbc.runtime.UpdateManagerImpl.flush(UpdateManagerImpl.java:95)
    at
    kodo.jdbc.runtime.JDBCStoreManager.flush(JDBCStoreManager.java:609)
    at
    kodo.runtime.DelegatingStoreManager.flush(DelegatingStoreManager.java:153)
    at
    kodo.runtime.PersistenceManagerImpl.flush(PersistenceManagerImpl.java:1122)
    at
    kodo.runtime.PersistenceManagerImpl.flushSafe(PersistenceManagerImpl.java:1005)
    at
    kodo.runtime.PersistenceManagerImpl.beforeCompletion(PersistenceManagerImpl.java:932)
    at
    kodo.runtime.LocalManagedRuntime.commit(LocalManagedRuntime.java:69)
    at
    kodo.runtime.PersistenceManagerImpl.commit(PersistenceManagerImpl.java:592)
    at
    com.ysoft.jdo.book.library.LibraryHandler.commitTransaction(LibraryHandler.java:175)
    at
    com.ysoft.jdo.book.library.client.CommitTransaction.execute(Library.java:279)
    at
    com.ysoft.jdo.book.common.console.UserInterface.execute(UserInterface.java:196)
    at
    com.ysoft.jdo.book.common.console.UserInterface.pumpCommands(UserInterface.java:186)
    at com.ysoft.jdo.book.library.client.Library.run(Library.java:139)
    at com.ysoft.jdo.book.library.client.Library.main(Library.java:104)
    NestedThrowablesStackTrace:
    java.sql.SQLException: Invalid column type
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
    at
    oracle.jdbc.driver.OracleStatement.get_internal_type(OracleStatement.java:6164)
    at
    oracle.jdbc.driver.OraclePreparedStatement.setNull(OraclePreparedStatement.java:1316)
    at
    com.solarmetric.jdbc.DelegatingPreparedStatement.setNull(DelegatingPreparedStatement.java:369)
    at
    com.solarmetric.jdbc.PoolConnection$PoolPreparedStatement.setNull(PoolConnection.java:406)
    at
    com.solarmetric.jdbc.DelegatingPreparedStatement.setNull(DelegatingPreparedStatement.java:369)
    at
    com.solarmetric.jdbc.DelegatingPreparedStatement.setNull(DelegatingPreparedStatement.java:369)
    at
    com.solarmetric.jdbc.DelegatingPreparedStatement.setNull(DelegatingPreparedStatement.java:369)
    at
    com.solarmetric.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.setNull(LoggingConnectionDecorato
    r.java:792)
    at
    com.solarmetric.jdbc.DelegatingPreparedStatement.setNull(DelegatingPreparedStatement.java:369)
    at kodo.jdbc.sql.DBDictionary.setNull(DBDictionary.java:950)
    at
    kodo.jdbc.sql.OracleDictionary.setNull(OracleDictionary.java:450)
    at kodo.jdbc.sql.RowImpl.toSQL(RowImpl.java:828)
    at kodo.jdbc.sql.RowImpl.flush(RowImpl.java:1039)
    at kodo.jdbc.sql.RowImpl.flush(RowImpl.java:975)
    at
    kodo.jdbc.runtime.PreparedStatementManager.flushInternal(PreparedStatementManager.java:160)
    at
    kodo.jdbc.runtime.PreparedStatementManager.flush(PreparedStatementManager.java:84)
    at
    kodo.jdbc.runtime.UpdateManagerImpl.flush(UpdateManagerImpl.java:445)
    at
    kodo.jdbc.runtime.UpdateManagerImpl.flush(UpdateManagerImpl.java:193)
    at
    kodo.jdbc.runtime.UpdateManagerImpl.flush(UpdateManagerImpl.java:95)
    at
    kodo.jdbc.runtime.JDBCStoreManager.flush(JDBCStoreManager.java:609)
    at
    kodo.runtime.DelegatingStoreManager.flush(DelegatingStoreManager.java:153)
    at
    kodo.runtime.PersistenceManagerImpl.flush(PersistenceManagerImpl.java:1122)
    at
    kodo.runtime.PersistenceManagerImpl.flushSafe(PersistenceManagerImpl.java:1005)
    at
    kodo.runtime.PersistenceManagerImpl.beforeCompletion(PersistenceManagerImpl.java:932)
    at
    kodo.runtime.LocalManagedRuntime.commit(LocalManagedRuntime.java:69)
    at
    kodo.runtime.PersistenceManagerImpl.commit(PersistenceManagerImpl.java:592)
    at
    com.ysoft.jdo.book.library.LibraryHandler.commitTransaction(LibraryHandler.java:175)
    at
    com.ysoft.jdo.book.library.client.CommitTransaction.execute(Library.java:279)
    at
    com.ysoft.jdo.book.common.console.UserInterface.execute(UserInterface.java:196)
    at
    com.ysoft.jdo.book.common.console.UserInterface.pumpCommands(UserInterface.java:186)
    at com.ysoft.jdo.book.library.client.Library.run(Library.java:139)
    at com.ysoft.jdo.book.library.client.Library.main(Library.java:104)
    enter command:
    -->

    Hi Stephen,
    There are two related issues that are addressed. One, some Oracle
    drivers return the wrong type (Type.OTHER) for the TIMESTAMP field.
    This is true for the
    9.2.0.1.0 driver that ships with 9iR2. This causes an exception when
    attempting to assign a null to the date field that has been mapped to a
    TIMESTAMP column. Two, all of the 9i drivers (and 10g drivers) return a
    type name of "TIMESTAMP(x)" where x is the precision. This confuses
    Kodo's OracleDictionary which is looking for a string without the
    precision characters.
    Following your suggestion, the following code fixes it just fine. It is
    harmless, in that all it does is do what OracleDictionary intended but
    failed to do. To use it, you must add the following property
    configuration to the kodo.properties file.
    kodo.jdbc.DBDictionary: xxx.jdo.FixedOracleDictionary
    Without the fix, Kodo does not reassign the TIMESTAMP columns to a type
    of DATE. So far as I can tell, as long as the driver returns a
    Types.TIMESTAMP this does not cause a failure.
    This fix will be moot as soon as the bug in OracleDictionary is fixed.
    What I wonder about is why does Kodo reassign type TIMESTAMP to DATE?
    Why don't you treat TIMESTAMP types as TIMESTAMP types? Curious minds
    want to know.
    Best wishes,
    David
    ---- code follows
    package xxx.jdo;
    import java.sql.*;
    import kodo.jdbc.schema.*;
    import kodo.jdbc.sql.*;
    * Some Oracle drivers do not return the correct type for the TIMESTAMP
    field.
    * This class fixes this issue for Kodo 3.3. The problem (an exception
    complaining
    * about an invalid column type) appears when mapping a Java field
    (Date for example) to
    * an Oracle timestamp field, and only when attempting to set null on
    the Java field.
    public class FixedOracleDictionary
    extends OracleDictionary
    public Column[] getColumns (DatabaseMetaData meta, String catalog,
    String schemaName, String tableName,
    String columnName, Connection conn)
    throws SQLException
    // Let Kodo's OracleDictionary do its thing
    Column[] cols = super.getColumns (meta, catalog, schemaName,
    tableName,
    columnName, conn);
    // Catch the columns with a name of "TIMESTAMP(n)" and mark them
    as DATE types.
    // This is what the OracleDictionary intended to do, but was
    foiled by the
    // name which now has a precision.
    for (int i = 0; cols != null && i < cols.length; i++)
    String tName = cols.getTypeName();
    if (tName != null && tName.startsWith("TIMESTAMP"))
    cols[i].setType(Types.DATE);
    return cols;
    ---- code ends
    Stephen Kim wrote:
    This is a bug (1111)with regards to specific combinations of Oracle 10
    driver and db.
    To work around the issue until the next relase, getColumns (...) in
    OracleDictionary needs to be extended/modified to instead of doing a
    strict equals () comparison to "TIMESTAMP", to instead do a startsWith
    ("TIMESTAMP")
    David Ezzio wrote:
    Tuesday, March 22, 2005
    I am currently experiencing difficulty in mapping a java.util.Date
    field to an Oracle TIMESTAMP column.
    Here's what I see. By default, Kodo maps the date field to a DATE
    column. I suppose this makes sense since Oracle's date columns
    have time information that resolves to the second. In this case,
    the client has a business case to store subsecond resolution,
    hence the desire to store the date field in an Oracle TIMESTAMP
    column.
    First question: how should this be done?
    Here's what I've tried. I tried setting the jdbc-type extension
    for the date field to "timestamp". This setting makes no
    difference, and I suspect the reason is that OracleDBDictionary
    has made the mapping from TIMESTAMP to DATE.
    I tried setting the jdbc-sql-type extension for the date field to
    "timestamp". This makes a difference only when I drop the table.
    Then the schematool's refresh action creates a table with date's
    field mapped to a TIMESTAMP column. I have also gone ahead and
    manually altered the table to achieve the same effect.
    Once the mapping is created, I see the following behavior. Kodo
    has no problem reading the TIMESTAMP column and putting the info
    into the date field. It also has no problem saving non-null date
    values into the TIMESTAMP column. But it does have a problem
    storing a null in the date field.
    Second question: what is the workaround to this problem?
    The the stack dump (obtained by using the JDO Tools Library
    example) follows.
    Thanks in advance,
    David Ezzio
    enter command:
    --> return book
    Select the book to return:
    1. book [com.ysoft.jdo.book.library.Book-354] "Gone to War" checked
    out:
    Tue Mar 22 10:38:01 EST 2005
    2. book [com.ysoft.jdo.book.library.Book-356] "Gone to Work" checked
    out: Tue Mar 22 10:33:58 EST 2005
    3. book [com.ysoft.jdo.book.library.Book-357] "Gone Fishing" checked
    out: Tue Mar 22 10:33:58 EST 2005
    4. book [com.ysoft.jdo.book.library.Book-360] "Gone Sailing" checked
    out: Tue Mar 22 10:33:58 EST 2005
    5. book [com.ysoft.jdo.book.library.Book-355] "Gone Hunting" checked
    out: Tue Mar 22 10:33:58 EST 2005
    Enter selection:
    --> 2
    okay
    enter command:
    --> commit
    exception caught in command
    kodo.util.FatalDataStoreException: The transaction has been rolled
    back. See the nested exceptions for details on the errors that occu
    rred.
    at
    kodo.runtime.PersistenceManagerImpl.throwFlushException(PersistenceManagerImpl.java:1262)
    at
    kodo.runtime.PersistenceManagerImpl.flush(PersistenceManagerImpl.java:1122)
    at
    kodo.runtime.PersistenceManagerImpl.flushSafe(PersistenceManagerImpl.java:1005)
    at
    kodo.runtime.PersistenceManagerImpl.beforeCompletion(PersistenceManagerImpl.java:932)
    at
    kodo.runtime.LocalManagedRuntime.commit(LocalManagedRuntime.java:69)
    at
    kodo.runtime.PersistenceManagerImpl.commit(PersistenceManagerImpl.java:592)
    at
    com.ysoft.jdo.book.library.LibraryHandler.commitTransaction(LibraryHandler.java:175)
    at
    com.ysoft.jdo.book.library.client.CommitTransaction.execute(Library.java:279)
    at
    com.ysoft.jdo.book.common.console.UserInterface.execute(UserInterface.java:196)
    at
    com.ysoft.jdo.book.common.console.UserInterface.pumpCommands(UserInterface.java:186)
    at
    com.ysoft.jdo.book.library.client.Library.run(Library.java:139)
    at
    com.ysoft.jdo.book.library.client.Library.main(Library.java:104)
    NestedThrowablesStackTrace:
    kodo.util.DataStoreException: Invalid column type
    at
    kodo.jdbc.sql.DBDictionary.newDataStoreException(DBDictionary.java:3081)
    at
    kodo.jdbc.sql.SQLExceptions.getDataStore(SQLExceptions.java:77)
    at
    kodo.jdbc.sql.SQLExceptions.getDataStore(SQLExceptions.java:63)
    at
    kodo.jdbc.sql.SQLExceptions.getDataStore(SQLExceptions.java:43)
    at
    kodo.jdbc.runtime.PreparedStatementManager.flush(PreparedStatementManager.java:89)
    at
    kodo.jdbc.runtime.UpdateManagerImpl.flush(UpdateManagerImpl.java:445)
    at
    kodo.jdbc.runtime.UpdateManagerImpl.flush(UpdateManagerImpl.java:193)
    at
    kodo.jdbc.runtime.UpdateManagerImpl.flush(UpdateManagerImpl.java:95)
    at
    kodo.jdbc.runtime.JDBCStoreManager.flush(JDBCStoreManager.java:609)
    at
    kodo.runtime.DelegatingStoreManager.flush(DelegatingStoreManager.java:153)
    at
    kodo.runtime.PersistenceManagerImpl.flush(PersistenceManagerImpl.java:1122)
    at
    kodo.runtime.PersistenceManagerImpl.flushSafe(PersistenceManagerImpl.java:1005)
    at
    kodo.runtime.PersistenceManagerImpl.beforeCompletion(PersistenceManagerImpl.java:932)
    at
    kodo.runtime.LocalManagedRuntime.commit(LocalManagedRuntime.java:69)
    at
    kodo.runtime.PersistenceManagerImpl.commit(PersistenceManagerImpl.java:592)
    at
    com.ysoft.jdo.book.library.LibraryHandler.commitTransaction(LibraryHandler.java:175)
    at
    com.ysoft.jdo.book.library.client.CommitTransaction.execute(Library.java:279)
    at
    com.ysoft.jdo.book.common.console.UserInterface.execute(UserInterface.java:196)
    at
    com.ysoft.jdo.book.common.console.UserInterface.pumpCommands(UserInterface.java:186)
    at
    com.ysoft.jdo.book.library.client.Library.run(Library.java:139)
    at
    com.ysoft.jdo.book.library.client.Library.main(Library.java:104)
    NestedThrowablesStackTrace:
    java.sql.SQLException: Invalid column type
    at
    oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
    at
    oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
    at
    oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
    at
    oracle.jdbc.driver.OracleStatement.get_internal_type(OracleStatement.java:6164)
    at
    oracle.jdbc.driver.OraclePreparedStatement.setNull(OraclePreparedStatement.java:1316)
    at
    com.solarmetric.jdbc.DelegatingPreparedStatement.setNull(DelegatingPreparedStatement.java:369)
    at
    com.solarmetric.jdbc.PoolConnection$PoolPreparedStatement.setNull(PoolConnection.java:406)
    at
    com.solarmetric.jdbc.DelegatingPreparedStatement.setNull(DelegatingPreparedStatement.java:369)
    at
    com.solarmetric.jdbc.DelegatingPreparedStatement.setNull(DelegatingPreparedStatement.java:369)
    at
    com.solarmetric.jdbc.DelegatingPreparedStatement.setNull(DelegatingPreparedStatement.java:369)
    at
    com.solarmetric.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.setNull(LoggingConnectionDecorato
    r.java:792)
    at
    com.solarmetric.jdbc.DelegatingPreparedStatement.setNull(DelegatingPreparedStatement.java:369)
    at kodo.jdbc.sql.DBDictionary.setNull(DBDictionary.java:950)
    at
    kodo.jdbc.sql.OracleDictionary.setNull(OracleDictionary.java:450)
    at kodo.jdbc.sql.RowImpl.toSQL(RowImpl.java:828)
    at kodo.jdbc.sql.RowImpl.flush(RowImpl.java:1039)
    at kodo.jdbc.sql.RowImpl.flush(RowImpl.java:975)
    at
    kodo.jdbc.runtime.PreparedStatementManager.flushInternal(PreparedStatementManager.java:160)
    at
    kodo.jdbc.runtime.PreparedStatementManager.flush(PreparedStatementManager.java:84)
    at
    kodo.jdbc.runtime.UpdateManagerImpl.flush(UpdateManagerImpl.java:445)
    at
    kodo.jdbc.runtime.UpdateManagerImpl.flush(UpdateManagerImpl.java:193)
    at
    kodo.jdbc.runtime.UpdateManagerImpl.flush(UpdateManagerImpl.java:95)
    at
    kodo.jdbc.runtime.JDBCStoreManager.flush(JDBCStoreManager.java:609)
    at
    kodo.runtime.DelegatingStoreManager.flush(DelegatingStoreManager.java:153)
    at
    kodo.runtime.PersistenceManagerImpl.flush(PersistenceManagerImpl.java:1122)
    at
    kodo.runtime.PersistenceManagerImpl.flushSafe(PersistenceManagerImpl.java:1005)
    at
    kodo.runtime.PersistenceManagerImpl.beforeCompletion(PersistenceManagerImpl.java:932)
    at
    kodo.runtime.LocalManagedRuntime.commit(LocalManagedRuntime.java:69)
    at
    kodo.runtime.PersistenceManagerImpl.commit(PersistenceManagerImpl.java:592)
    at
    com.ysoft.jdo.book.library.LibraryHandler.commitTransaction(LibraryHandler.java:175)
    at
    com.ysoft.jdo.book.library.client.CommitTransaction.execute(Library.java:279)
    at
    com.ysoft.jdo.book.common.console.UserInterface.execute(UserInterface.java:196)
    at
    com.ysoft.jdo.book.common.console.UserInterface.pumpCommands(UserInterface.java:186)
    at
    com.ysoft.jdo.book.library.client.Library.run(Library.java:139)
    at
    com.ysoft.jdo.book.library.client.Library.main(Library.java:104)
    enter command:
    -->

  • Data Associtions not enabling  while i am  trying to do data mapping with data Associtions in BPM studio what is the reson?

    Data Associtions not enabling  while i am  trying to do data mapping with data Associtions in BPM studio what is the reson?

    Shouldn't @StartDate be an input parameter to the stored procedure? @RunDate also?
    Example for sp with parameters:
    http://www.sqlusa.com/bestpractices2008/stored-procedure-parameters/
    The last error will go away upon a successful sp compile.
    Kalman Toth Database & OLAP Architect
    SQL Server 2014 Design & Programming
    New Book / Kindle: Exam 70-461 Bootcamp: Querying Microsoft SQL Server 2012

  • 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

Maybe you are looking for