RFC Lookup using Java Mapping program - Examples

Dear Experts,
I am working on a scenario which is using 1:N mapping. For deciding the target message I have to use RFC Lookup to call the backend ERP system and there are 2 ERP systems involved in this integration. As I am using Java Mapping and never did a RFC Lookup in Java. I kindly request you to give me some examples which I could use for my RFC calls in my Java Mapping. Simple example will do.
Client is adamant to use Java mapping, I could achieve this easily using XSLT or Graphical Mapping.
Advance Thanks,
Pradeep

Hello,
why don't you use Extended Receiver Determination Defining Extended (Dynamic) Receiver Determination - Integration Directory - SAP Library?
What you can do is create a Message Mapping between your source message and Receivers message type. In this message mapping you can use your RFC to generate the target message.
For example, lets say we have the function ZFM_GET_INTERFACE_INFO used to generate the List of Receivers given a source message. You could create a Message Mapping as below:
In this case, the RFCLookup box look as below:
The receiver determination configuration would look as follows:
Afterwards, you will need two specific message mappings for the two ERP systems.
Summarizing, you'll need:
1.- A Message Mapping: Source Message to Receivers Message Type (This one uses the RFC Lookup)
2.- A Message Mapping: Source Message to Target Message for ERP 1
3.- A Message Mapping: Source Message to Target Message for ERP 2
In Integration Directory you'll have 1 Receiver Determination(Source system, Target System determined Dynamically) and 2 Interface Determinations (Source System to ERP1, Source System to ERP2), etc.
I hope you find it useful.
Regards!

Similar Messages

  • RFC Lookup using Java Mapping issues

    Dear Experts,
    I am trying to use RFC Lookup in my Java program but for some reason I am getting a null point exception on the result variable when the program is executing the following code(rfcin = result.getContent();). Could anyone give me some advise on this issue please? screen print of the code attached with this email.
    Advance Thanks,
    Pradeep

    Thanks Steve,
    Please find the dump after the proposed change.
                    java.lang.RuntimeException:
                    com.sap.aii.mapping.lookup.LookupException: Plain
                    exception:Error when calling an adapter by using the
                    communication channel ccRFCReceiverNPI (Party: , Service:
                    BS_ECD, Object ID: 00b61d6e4363334d8bd052dfb9c2c09a) The
                    channel with object ID 00b61d6e4363334d8bd052dfb9c2c09a could
                    not be found in the Integration Server Java Cache. Check if
                    the channel exists in the Integration Builder Directory and
                    execute a refresh of the Java Cache.
    com.sap.aii.mapping.lookup.LookupException:
                    Error when calling an adapter by using the communication
                    channel ccRFCReceiverNPI (Party: , Service: BS_ECD, Object ID:
                    00b61d6e4363334d8bd052dfb9c2c09a) The channel with object ID
                    00b61d6e4363334d8bd052dfb9c2c09a could not be found in the
                    Integration Server Java Cache. Check if the channel exists in
                    the Integration Builder Directory and execute a refresh of the
                    Java Cache.
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.getProxy(SystemAccessorInternal.java:130)
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.<init>(SystemAccessorInternal.java:46)
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.getConnection(SystemAccessorHmiServer.java:265)
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.process(SystemAccessorHmiServer.java:69)
    at
                    com.sap.aii.utilxi.hmis.server.HmisServiceImpl.invokeMethod(HmisServiceImpl.java:139)
    at
                    com.sap.aii.utilxi.hmis.server.HmisServer.process(HmisServer.java:224)
    at
                    com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:370)
    at
                    com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:271)
    at
                    com.sap.aii.utilxi.hmis.web.workers.HmisInternalClient.doWork(HmisInternalClient.java:70)
    at
                    com.sap.aii.utilxi.hmis.web.HmisServletImpl.doWork(HmisServletImpl.java:570)
    at
                    com.sap.aii.utilxi.hmis.web.HmisServletImpl.doPost(HmisServletImpl.java:711)
    at
                    javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
    at
                    javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    at
                    com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.runServlet(FilterChainImpl.java:202)
    at
                    com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:103)
    at
                    com.sap.engine.services.servlets_jsp.server.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:126)
    at
                    com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:79)
    at
                    com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:432)
    at
                    com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:210)
    at
                    com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:441)
    at
                    com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:430)
    at
                    com.sap.engine.services.servlets_jsp.filters.DSRWebContainerFilter.process(DSRWebContainerFilter.java:38)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:81)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:276)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:81)
    at
                    com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)
    at
                    com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)
    at
                    com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)
    at
                    com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.SessionSizeFilter.process(SessionSizeFilter.java:26)
    at
                    com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.MemoryStatisticFilter.process(MemoryStatisticFilter.java:57)
    at
                    com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.DSRHttpFilter.process(DSRHttpFilter.java:43)
    at
                    com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:475)
    at
                    com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:269)
    at
                    com.sap.engine.services.httpserver.server.rcm.RequestProcessorThread.run(RequestProcessorThread.java:56)
    at
                    com.sap.engine.core.thread.execution.Executable.run(Executable.java:122)
    at
                    com.sap.engine.core.thread.execution.Executable.run(Executable.java:101)
    at
                    com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:328)
    Caused
                    by:
                    com.sap.aii.ibrun.server.cache.channel.ChannelReader$CachedChannelNotFoundException:
                    The channel with object ID 00b61d6e4363334d8bd052dfb9c2c09a
                    could not be found in the Integration Server Java Cache. Check
                    if the channel exists in the Integration Builder Directory and
                    execute a refresh of the Java Cache.
    at
                    com.sap.aii.ibrun.server.cache.channel.ChannelPersistor.read(ChannelPersistor.java:56)
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.getProxy(SystemAccessorInternal.java:109)
                    53 more
    at
                    ConsignmentTrackingMapping.execute(ConsignmentTrackingMapping.java:272)
    at
                    ConsignmentTrackingMapping.transform(ConsignmentTrackingMapping.java:46)
    at
                    com.sap.aii.ib.server.mapping.execution.JavaMapping.executeStep(JavaMapping.java:92)
    at
                    com.sap.aii.ib.server.mapping.execution.Mapping.execute(Mapping.java:60)
    at
                    com.sap.aii.ib.server.mapping.execution.MappingHandler.map(MappingHandler.java:87)
    at
                    com.sap.aii.ib.server.mapping.execution.MappingHandler.map(MappingHandler.java:54)
    at
                    com.sap.aii.ibrep.server.mapping.rt.MappingHandlerAdapter.run(MappingHandlerAdapter.java:139)
    at
                    com.sap.aii.ibrep.server.mapping.exec.ExecuteIfMapCommand.execute(ExecuteIfMapCommand.java:33)
    at
                    com.sap.aii.ib.server.mapping.exec.CommandManager.execute(CommandManager.java:43)
    at
                    com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:40)
    at
                    com.sap.aii.ibrep.server.mapping.MapServiceBean.execute(MapServiceBean.java:40)
    at
                    sun.reflect.GeneratedMethodAccessor640.invoke(Unknown Source)
    at
                    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at
                    java.lang.reflect.Method.invoke(Method.java:597)
    at
                    com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:47)
    at
                    com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:166)
    at
                    com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatesTransition.invoke(Interceptors_StatesTransition.java:19)
    at
                    com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at
                    com.sap.engine.services.ejb3.runtime.impl.Interceptors_Resource.invoke(Interceptors_Resource.java:47)
    at
                    com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at
                    com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.doWorkWithAttribute(Interceptors_Transaction.java:37)
    at
                    com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.invoke(Interceptors_Transaction.java:21)
    at
                    com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at
                    com.sap.engine.services.ejb3.runtime.impl.Interceptors_MethodRetry.invoke(Interceptors_MethodRetry.java:46)
    at
                    com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at
                    com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:189)
    at
                    com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatelessInstanceGetter.invoke(Interceptors_StatelessInstanceGetter.java:16)
    at
                    com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at
                    com.sap.engine.services.ejb3.runtime.impl.Interceptors_SecurityCheck.invoke(Interceptors_SecurityCheck.java:25)
    at
                    com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at
                    com.sap.engine.services.ejb3.runtime.impl.Interceptors_ExceptionTracer.invoke(Interceptors_ExceptionTracer.java:17)
    at
                    com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at
                    com.sap.engine.services.ejb3.runtime.impl.DefaultInvocationChainsManager.startChain(DefaultInvocationChainsManager.java:138)
    at
                    com.sap.engine.services.ejb3.runtime.impl.DefaultEJBProxyInvocationHandler.invoke(DefaultEJBProxyInvocationHandler.java:164)
    at
                    $Proxy1181.execute(Unknown Source)
    at
                    sun.reflect.GeneratedMethodAccessor639.invoke(Unknown Source)
    at
                    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at
                    java.lang.reflect.Method.invoke(Method.java:597)
    at
                    com.sap.engine.services.rmi_p4.P4DynamicSkeleton.dispatch(P4DynamicSkeleton.java:240)
    at
                    com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:459)
    at
                    com.sap.engine.services.rmi_p4.server.ServerDispatchImpl.run(ServerDispatchImpl.java:69)
    at
                    com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:72)
    at
                    com.sap.engine.services.rmi_p4.P4Message.execute(P4Message.java:43)
    at
                    com.sap.engine.services.cross.fca.FCAConnectorImpl.executeRequest(FCAConnectorImpl.java:983)
    at
                    com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:59)
    at
                    com.sap.engine.services.cross.fca.MessageReader.run(MessageReader.java:55)
    at
                    com.sap.engine.core.thread.execution.Executable.run(Executable.java:122)
    at
                    com.sap.engine.core.thread.execution.Executable.run(Executable.java:101)
    at
                    com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:328)
    Caused
                    by: com.sap.aii.mapping.lookup.LookupException: Plain
                    exception:Error when calling an adapter by using the
                    communication channel ccRFCReceiverNPI (Party: , Service:
                    BS_ECD, Object ID: 00b61d6e4363334d8bd052dfb9c2c09a) The
                    channel with object ID 00b61d6e4363334d8bd052dfb9c2c09a could
                    not be found in the Integration Server Java Cache. Check if
                    the channel exists in the Integration Builder Directory and
                    execute a refresh of the Java Cache.
    com.sap.aii.mapping.lookup.LookupException:
                    Error when calling an adapter by using the communication
                    channel ccRFCReceiverNPI (Party: , Service: BS_ECD, Object ID:
                    00b61d6e4363334d8bd052dfb9c2c09a) The channel with object ID
                    00b61d6e4363334d8bd052dfb9c2c09a could not be found in the
                    Integration Server Java Cache. Check if the channel exists in
                    the Integration Builder Directory and execute a refresh of the
                    Java Cache.
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.getProxy(SystemAccessorInternal.java:130)
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.<init>(SystemAccessorInternal.java:46)
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.getConnection(SystemAccessorHmiServer.java:265)
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.process(SystemAccessorHmiServer.java:69)
    at
                    com.sap.aii.utilxi.hmis.server.HmisServiceImpl.invokeMethod(HmisServiceImpl.java:139)
    at
                    com.sap.aii.utilxi.hmis.server.HmisServer.process(HmisServer.java:224)
    at
                    com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:370)
    at
                    com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:271)
    at
                    com.sap.aii.utilxi.hmis.web.workers.HmisInternalClient.doWork(HmisInternalClient.java:70)
    at
                    com.sap.aii.utilxi.hmis.web.HmisServletImpl.doWork(HmisServletImpl.java:570)
    at
                    com.sap.aii.utilxi.hmis.web.HmisServletImpl.doPost(HmisServletImpl.java:711)
    at
                    javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
    at
                    javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    at
                    com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.runServlet(FilterChainImpl.java:202)
    at
                    com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:103)
    at
                    com.sap.engine.services.servlets_jsp.server.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:126)
    at
                    com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:79)
    at
                    com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:432)
    at
                    com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:210)
    at
                    com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:441)
    at
                    com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:430)
    at
                    com.sap.engine.services.servlets_jsp.filters.DSRWebContainerFilter.process(DSRWebContainerFilter.java:38)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:81)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:276)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:81)
    at
                    com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)
    at
                    com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)
    at
                    com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)
    at
                    com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.SessionSizeFilter.process(SessionSizeFilter.java:26)
    at
                    com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.MemoryStatisticFilter.process(MemoryStatisticFilter.java:57)
    at
                    com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.DSRHttpFilter.process(DSRHttpFilter.java:43)
    at
                    com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:475)
    at
                    com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:269)
    at
                    com.sap.engine.services.httpserver.server.rcm.RequestProcessorThread.run(RequestProcessorThread.java:56)
    at
                    com.sap.engine.core.thread.execution.Executable.run(Executable.java:122)
    at
                    com.sap.engine.core.thread.execution.Executable.run(Executable.java:101)
    at
                    com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:328)
    Caused
                    by:
                    com.sap.aii.ibrun.server.cache.channel.ChannelReader$CachedChannelNotFoundException:
                    The channel with object ID 00b61d6e4363334d8bd052dfb9c2c09a
                    could not be found in the Integration Server Java Cache. Check
                    if the channel exists in the Integration Builder Directory and
                    execute a refresh of the Java Cache.
    at
                    com.sap.aii.ibrun.server.cache.channel.ChannelPersistor.read(ChannelPersistor.java:56)
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.getProxy(SystemAccessorInternal.java:109)
                    53 more
    at
                    com.sap.aii.ibrep.server.lookup.LookupServiceProvider$RemoteClientDelegator.<init>(LookupServiceProvider.java:102)
    at
                    com.sap.aii.ibrep.server.lookup.LookupServiceProvider$RemoteClientDelegator.<init>(LookupServiceProvider.java:88)
    at
                    com.sap.aii.ibrep.server.lookup.LookupServiceProvider$RemoteClient.getSystemAccessor(LookupServiceProvider.java:75)
    at
                    com.sap.aii.mapping.lookup.LookupService.getSystemAccessor(LookupService.java:138)
    at
                    ConsignmentTrackingMapping.execute(ConsignmentTrackingMapping.java:254)
                    48 more
    Caused by:
                    com.sap.aii.utilxi.hmi.api.HmiMethodFault: Plain
                    exception:Error when calling an adapter by using the
                    communication channel ccRFCReceiverNPI (Party: , Service:
                    BS_ECD, Object ID: 00b61d6e4363334d8bd052dfb9c2c09a) The
                    channel with object ID 00b61d6e4363334d8bd052dfb9c2c09a could
                    not be found in the Integration Server Java Cache. Check if
                    the channel exists in the Integration Builder Directory and
                    execute a refresh of the Java Cache.
    com.sap.aii.mapping.lookup.LookupException:
                    Error when calling an adapter by using the communication
                    channel ccRFCReceiverNPI (Party: , Service: BS_ECD, Object ID:
                    00b61d6e4363334d8bd052dfb9c2c09a) The channel with object ID
                    00b61d6e4363334d8bd052dfb9c2c09a could not be found in the
                    Integration Server Java Cache. Check if the channel exists in
                    the Integration Builder Directory and execute a refresh of the
                    Java Cache.
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.getProxy(SystemAccessorInternal.java:130)
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.<init>(SystemAccessorInternal.java:46)
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.getConnection(SystemAccessorHmiServer.java:265)
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.process(SystemAccessorHmiServer.java:69)
    at
                    com.sap.aii.utilxi.hmis.server.HmisServiceImpl.invokeMethod(HmisServiceImpl.java:139)
    at
                    com.sap.aii.utilxi.hmis.server.HmisServer.process(HmisServer.java:224)
    at
                    com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:370)
    at
                    com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:271)
    at
                    com.sap.aii.utilxi.hmis.web.workers.HmisInternalClient.doWork(HmisInternalClient.java:70)
    at
                    com.sap.aii.utilxi.hmis.web.HmisServletImpl.doWork(HmisServletImpl.java:570)
    at
                    com.sap.aii.utilxi.hmis.web.HmisServletImpl.doPost(HmisServletImpl.java:711)
    at
                    javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
    at
                    javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    at
                    com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.runServlet(FilterChainImpl.java:202)
    at
                    com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:103)
    at
                    com.sap.engine.services.servlets_jsp.server.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:126)
    at
                    com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:79)
    at
                    com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:432)
    at
                    com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:210)
    at
                    com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:441)
    at
                    com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:430)
    at
                    com.sap.engine.services.servlets_jsp.filters.DSRWebContainerFilter.process(DSRWebContainerFilter.java:38)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:81)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:276)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:81)
    at
                    com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)
    at
                    com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)
    at
                    com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)
    at
                    com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.SessionSizeFilter.process(SessionSizeFilter.java:26)
    at
                    com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.MemoryStatisticFilter.process(MemoryStatisticFilter.java:57)
    at
                    com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.DSRHttpFilter.process(DSRHttpFilter.java:43)
    at
                    com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:475)
    at
                    com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:269)
    at
                    com.sap.engine.services.httpserver.server.rcm.RequestProcessorThread.run(RequestProcessorThread.java:56)
    at
                    com.sap.engine.core.thread.execution.Executable.run(Executable.java:122)
    at
                    com.sap.engine.core.thread.execution.Executable.run(Executable.java:101)
    at
                    com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:328)
    Caused
                    by:
                    com.sap.aii.ibrun.server.cache.channel.ChannelReader$CachedChannelNotFoundException:
                    The channel with object ID 00b61d6e4363334d8bd052dfb9c2c09a
                    could not be found in the Integration Server Java Cache. Check
                    if the channel exists in the Integration Builder Directory and
                    execute a refresh of the Java Cache.
    at
                    com.sap.aii.ibrun.server.cache.channel.ChannelPersistor.read(ChannelPersistor.java:56)
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.getProxy(SystemAccessorInternal.java:109)
                    53 more
    at
                    com.sap.aii.utilxi.hmi.api.HmiMethodFault.parseGdi(HmiMethodFault.java:156)
    at
                    com.sap.aii.utilxi.hmi.core.msg.HmiResponse.setState(HmiResponse.java:190)
    at
                    com.sap.aii.utilxi.hmi.core.msg.HmiResponse.parseGdi(HmiResponse.java:141)
    at
                    com.sap.aii.utilxi.hmi.api.HmiHttpJDKClient.sendRequestAndReceiveResponse(HmiHttpJDKClient.java:257)
    at
                    com.sap.aii.utilxi.hmi.api.HmiClientAdapter.invokeMethod(HmiClientAdapter.java:92)
    at
                    com.sap.aii.ibrep.server.lookup.SystemAccessorHmiClient.<init>(SystemAccessorHmiClient.java:52)
    at
                    com.sap.aii.ibrep.server.lookup.SystemAccessorHmiClient.getInstance(SystemAccessorHmiClient.java:73)
    at
                    com.sap.aii.ibrep.server.lookup.LookupServiceProvider$RemoteClientDelegator.<init>(LookupServiceProvider.java:98)
                    52 more
    Root Cause:
    com.sap.aii.mapping.lookup.LookupException:
                    Plain exception:Error when calling an adapter by using the
                    communication channel ccRFCReceiverNPI (Party: , Service:
                    BS_ECD, Object ID: 00b61d6e4363334d8bd052dfb9c2c09a) The
                    channel with object ID 00b61d6e4363334d8bd052dfb9c2c09a could
                    not be found in the Integration Server Java Cache. Check if
                    the channel exists in the Integration Builder Directory and
                    execute a refresh of the Java Cache.
    com.sap.aii.mapping.lookup.LookupException:
                    Error when calling an adapter by using the communication
                    channel ccRFCReceiverNPI (Party: , Service: BS_ECD, Object ID:
                    00b61d6e4363334d8bd052dfb9c2c09a) The channel with object ID
                    00b61d6e4363334d8bd052dfb9c2c09a could not be found in the
                    Integration Server Java Cache. Check if the channel exists in
                    the Integration Builder Directory and execute a refresh of the
                    Java Cache.
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.getProxy(SystemAccessorInternal.java:130)
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.<init>(SystemAccessorInternal.java:46)
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.getConnection(SystemAccessorHmiServer.java:265)
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.process(SystemAccessorHmiServer.java:69)
    at
                    com.sap.aii.utilxi.hmis.server.HmisServiceImpl.invokeMethod(HmisServiceImpl.java:139)
    at
                    com.sap.aii.utilxi.hmis.server.HmisServer.process(HmisServer.java:224)
    at
                    com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:370)
    at
                    com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:271)
    at
                    com.sap.aii.utilxi.hmis.web.workers.HmisInternalClient.doWork(HmisInternalClient.java:70)
    at
                    com.sap.aii.utilxi.hmis.web.HmisServletImpl.doWork(HmisServletImpl.java:570)
    at
                    com.sap.aii.utilxi.hmis.web.HmisServletImpl.doPost(HmisServletImpl.java:711)
    at
                    javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
    at
                    javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    at
                    com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.runServlet(FilterChainImpl.java:202)
    at
                    com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:103)
    at
                    com.sap.engine.services.servlets_jsp.server.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:126)
    at
                    com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:79)
    at
                    com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:432)
    at
                    com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:210)
    at
                    com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:441)
    at
                    com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:430)
    at
                    com.sap.engine.services.servlets_jsp.filters.DSRWebContainerFilter.process(DSRWebContainerFilter.java:38)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:81)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:276)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:81)
    at
                    com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)
    at
                    com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)
    at
                    com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)
    at
                    com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.SessionSizeFilter.process(SessionSizeFilter.java:26)
    at
                    com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.MemoryStatisticFilter.process(MemoryStatisticFilter.java:57)
    at
                    com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.DSRHttpFilter.process(DSRHttpFilter.java:43)
    at
                    com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:475)
    at
                    com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:269)
    at
                    com.sap.engine.services.httpserver.server.rcm.RequestProcessorThread.run(RequestProcessorThread.java:56)
    at
                    com.sap.engine.core.thread.execution.Executable.run(Executable.java:122)
    at
                    com.sap.engine.core.thread.execution.Executable.run(Executable.java:101)
    at
                    com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:328)
    Caused
                    by:
                    com.sap.aii.ibrun.server.cache.channel.ChannelReader$CachedChannelNotFoundException:
                    The channel with object ID 00b61d6e4363334d8bd052dfb9c2c09a
                    could not be found in the Integration Server Java Cache. Check
                    if the channel exists in the Integration Builder Directory and
                    execute a refresh of the Java Cache.
    at
                    com.sap.aii.ibrun.server.cache.channel.ChannelPersistor.read(ChannelPersistor.java:56)
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.getProxy(SystemAccessorInternal.java:109)
                    53 more
    at
                    com.sap.aii.ibrep.server.lookup.LookupServiceProvider$RemoteClientDelegator.<init>(LookupServiceProvider.java:102)
    at
                    com.sap.aii.ibrep.server.lookup.LookupServiceProvider$RemoteClientDelegator.<init>(LookupServiceProvider.java:88)
    at
                    com.sap.aii.ibrep.server.lookup.LookupServiceProvider$RemoteClient.getSystemAccessor(LookupServiceProvider.java:75)
    at
                    com.sap.aii.mapping.lookup.LookupService.getSystemAccessor(LookupService.java:138)
    at
                    ConsignmentTrackingMapping.execute(ConsignmentTrackingMapping.java:254)
    at
                    ConsignmentTrackingMapping.transform(ConsignmentTrackingMapping.java:46)
    at
                    com.sap.aii.ib.server.mapping.execution.JavaMapping.executeStep(JavaMapping.java:92)
    at
                    com.sap.aii.ib.server.mapping.execution.Mapping.execute(Mapping.java:60)
    at
                    com.sap.aii.ib.server.mapping.execution.MappingHandler.map(MappingHandler.java:87)
    at
                    com.sap.aii.ib.server.mapping.execution.MappingHandler.map(MappingHandler.java:54)
    at
                    com.sap.aii.ibrep.server.mapping.rt.MappingHandlerAdapter.run(MappingHandlerAdapter.java:139)
    at
                    com.sap.aii.ibrep.server.mapping.exec.ExecuteIfMapCommand.execute(ExecuteIfMapCommand.java:33)
    at
                    com.sap.aii.ib.server.mapping.exec.CommandManager.execute(CommandManager.java:43)
    at
                    com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:40)
    at
                    com.sap.aii.ibrep.server.mapping.MapServiceBean.execute(MapServiceBean.java:40)
    at
                    sun.reflect.GeneratedMethodAccessor640.invoke(Unknown Source)
    at
                    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at
                    java.lang.reflect.Method.invoke(Method.java:597)
    at
                    com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:47)
    at
                    com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:166)
    at
                    com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatesTransition.invoke(Interceptors_StatesTransition.java:19)
    at
                    com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at
                    com.sap.engine.services.ejb3.runtime.impl.Interceptors_Resource.invoke(Interceptors_Resource.java:47)
    at
                    com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at
                    com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.doWorkWithAttribute(Interceptors_Transaction.java:37)
    at
                    com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.invoke(Interceptors_Transaction.java:21)
    at
                    com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at
                    com.sap.engine.services.ejb3.runtime.impl.Interceptors_MethodRetry.invoke(Interceptors_MethodRetry.java:46)
    at
                    com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at
                    com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:189)
    at
                    com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatelessInstanceGetter.invoke(Interceptors_StatelessInstanceGetter.java:16)
    at
                    com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at
                    com.sap.engine.services.ejb3.runtime.impl.Interceptors_SecurityCheck.invoke(Interceptors_SecurityCheck.java:25)
    at
                    com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at
                    com.sap.engine.services.ejb3.runtime.impl.Interceptors_ExceptionTracer.invoke(Interceptors_ExceptionTracer.java:17)
    at
                    com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
    at
                    com.sap.engine.services.ejb3.runtime.impl.DefaultInvocationChainsManager.startChain(DefaultInvocationChainsManager.java:138)
    at
                    com.sap.engine.services.ejb3.runtime.impl.DefaultEJBProxyInvocationHandler.invoke(DefaultEJBProxyInvocationHandler.java:164)
    at
                    $Proxy1181.execute(Unknown Source)
    at
                    sun.reflect.GeneratedMethodAccessor639.invoke(Unknown Source)
    at
                    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at
                    java.lang.reflect.Method.invoke(Method.java:597)
    at
                    com.sap.engine.services.rmi_p4.P4DynamicSkeleton.dispatch(P4DynamicSkeleton.java:240)
    at
                    com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:459)
    at
                    com.sap.engine.services.rmi_p4.server.ServerDispatchImpl.run(ServerDispatchImpl.java:69)
    at
                    com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:72)
    at
                    com.sap.engine.services.rmi_p4.P4Message.execute(P4Message.java:43)
    at
                    com.sap.engine.services.cross.fca.FCAConnectorImpl.executeRequest(FCAConnectorImpl.java:983)
    at
                    com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:59)
    at
                    com.sap.engine.services.cross.fca.MessageReader.run(MessageReader.java:55)
    at
                    com.sap.engine.core.thread.execution.Executable.run(Executable.java:122)
    at
                    com.sap.engine.core.thread.execution.Executable.run(Executable.java:101)
    at
                    com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:328)
    Caused
                    by: com.sap.aii.utilxi.hmi.api.HmiMethodFault: Plain
                    exception:Error when calling an adapter by using the
                    communication channel ccRFCReceiverNPI (Party: , Service:
                    BS_ECD, Object ID: 00b61d6e4363334d8bd052dfb9c2c09a) The
                    channel with object ID 00b61d6e4363334d8bd052dfb9c2c09a could
                    not be found in the Integration Server Java Cache. Check if
                    the channel exists in the Integration Builder Directory and
                    execute a refresh of the Java Cache.
    com.sap.aii.mapping.lookup.LookupException:
                    Error when calling an adapter by using the communication
                    channel ccRFCReceiverNPI (Party: , Service: BS_ECD, Object ID:
                    00b61d6e4363334d8bd052dfb9c2c09a) The channel with object ID
                    00b61d6e4363334d8bd052dfb9c2c09a could not be found in the
                    Integration Server Java Cache. Check if the channel exists in
                    the Integration Builder Directory and execute a refresh of the
                    Java Cache.
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.getProxy(SystemAccessorInternal.java:130)
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.<init>(SystemAccessorInternal.java:46)
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.getConnection(SystemAccessorHmiServer.java:265)
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.process(SystemAccessorHmiServer.java:69)
    at
                    com.sap.aii.utilxi.hmis.server.HmisServiceImpl.invokeMethod(HmisServiceImpl.java:139)
    at
                    com.sap.aii.utilxi.hmis.server.HmisServer.process(HmisServer.java:224)
    at
                    com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:370)
    at
                    com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:271)
    at
                    com.sap.aii.utilxi.hmis.web.workers.HmisInternalClient.doWork(HmisInternalClient.java:70)
    at
                    com.sap.aii.utilxi.hmis.web.HmisServletImpl.doWork(HmisServletImpl.java:570)
    at
                    com.sap.aii.utilxi.hmis.web.HmisServletImpl.doPost(HmisServletImpl.java:711)
    at
                    javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
    at
                    javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    at
                    com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.runServlet(FilterChainImpl.java:202)
    at
                    com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:103)
    at
                    com.sap.engine.services.servlets_jsp.server.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:126)
    at
                    com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:79)
    at
                    com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:432)
    at
                    com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:210)
    at
                    com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:441)
    at
                    com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:430)
    at
                    com.sap.engine.services.servlets_jsp.filters.DSRWebContainerFilter.process(DSRWebContainerFilter.java:38)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:81)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:276)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:81)
    at
                    com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)
    at
                    com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)
    at
                    com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)
    at
                    com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.SessionSizeFilter.process(SessionSizeFilter.java:26)
    at
                    com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.MemoryStatisticFilter.process(MemoryStatisticFilter.java:57)
    at
                    com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.filters.DSRHttpFilter.process(DSRHttpFilter.java:43)
    at
                    com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
    at
                    com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
    at
                    com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:475)
    at
                    com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:269)
    at
                    com.sap.engine.services.httpserver.server.rcm.RequestProcessorThread.run(RequestProcessorThread.java:56)
    at
                    com.sap.engine.core.thread.execution.Executable.run(Executable.java:122)
    at
                    com.sap.engine.core.thread.execution.Executable.run(Executable.java:101)
    at
                    com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:328)
    Caused
                    by:
                    com.sap.aii.ibrun.server.cache.channel.ChannelReader$CachedChannelNotFoundException:
                    The channel with object ID 00b61d6e4363334d8bd052dfb9c2c09a
                    could not be found in the Integration Server Java Cache. Check
                    if the channel exists in the Integration Builder Directory and
                    execute a refresh of the Java Cache.
    at
                    com.sap.aii.ibrun.server.cache.channel.ChannelPersistor.read(ChannelPersistor.java:56)
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.getProxy(SystemAccessorInternal.java:109)
                    53 more
    at
                    com.sap.aii.utilxi.hmi.api.HmiMethodFault.parseGdi(HmiMethodFault.java:156)
    at
                    com.sap.aii.utilxi.hmi.core.msg.HmiResponse.setState(HmiResponse.java:190)
    at
                    com.sap.aii.utilxi.hmi.core.msg.HmiResponse.parseGdi(HmiResponse.java:141)
    at
                    com.sap.aii.utilxi.hmi.api.HmiHttpJDKClient.sendRequestAndReceiveResponse(HmiHttpJDKClient.java:257)
    at
                    com.sap.aii.utilxi.hmi.api.HmiClientAdapter.invokeMethod(HmiClientAdapter.java:92)
    at
                    com.sap.aii.ibrep.server.lookup.SystemAccessorHmiClient.<init>(SystemAccessorHmiClient.java:52)
    at
                    com.sap.aii.ibrep.server.lookup.SystemAccessorHmiClient.getInstance(SystemAccessorHmiClient.java:73)
    at
                    com.sap.aii.ibrep.server.lookup.LookupServiceProvider$RemoteClientDelegator.<init>(LookupServiceProvider.java:98)
                    52 more
    Root Cause:
    com.sap.aii.utilxi.hmi.api.HmiMethodFault:
                    Plain exception:Error when calling an adapter by using the
                    communication channel ccRFCReceiverNPI (Party: , Service:
                    BS_ECD, Object ID: 00b61d6e4363334d8bd052dfb9c2c09a) The
                    channel with object ID 00b61d6e4363334d8bd052dfb9c2c09a could
                    not be found in the Integration Server Java Cache. Check if
                    the channel exists in the Integration Builder Directory and
                    execute a refresh of the Java Cache.
    com.sap.aii.mapping.lookup.LookupException:
                    Error when calling an adapter by using the communication
                    channel ccRFCReceiverNPI (Party: , Service: BS_ECD, Object ID:
                    00b61d6e4363334d8bd052dfb9c2c09a) The channel with object ID
                    00b61d6e4363334d8bd052dfb9c2c09a could not be found in the
                    Integration Server Java Cache. Check if the channel exists in
                    the Integration Builder Directory and execute a refresh of the
                    Java Cache.
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.getProxy(SystemAccessorInternal.java:130)
    at
                    com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.<init>(SystemAccessorInternal.java:46)

  • XSLT Mapping : RFC Lookup using java helper class

    Hi All,
    I am doing RFC Lookup in xslt mapping using java helper class. I have found blog for the same (http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/05a3d62e-0a01-0010-14bc-adc8efd4ee14) However this blog is very advanced.
    Can anybody help me with step by step approach for the same?
    My basic questions are not answered in the blog as:
    1) where to add the jar file of the java class used in xslt mapping.
    I have added zip file of XSLT mapping in imported archived and using that in mapping.
    Thanks in advace.
    Regards,
    Rohan

    Hi,
    Can u please have look at this in detail , u can easily point out yourself the problem...
    http://help.sap.com/saphelp_nw04/helpdata/en/55/7ef3003fc411d6b1f700508b5d5211/content.htm
    Please observe the line,
    xmlns:javamap="java:com.company.group.MappingClass
    in XSLT mapping..
    The packagename of class and class name and XSLT namespace should be matching...
    Babu
    Edited by: hlbabu123 on Sep 29, 2010 6:04 PM

  • Java Error in RFC Lookup in XSLT Mapping usinf Java helper class

    Hi All,
    I am doing RFC Lookup in XSLT Mapping using Java Helper class.
    The Lookup works fine when called one RFC at a time However my requirement is I want to do 2 Lookups.
    Both Lookups works when done individually however when I call both lookups in one mapping I get following error "javax.xml.transform.TransformerException: DOMSource whose Node is null."
    Following is the code I have written in XSLT for the lookup:
         <xsl:template name="Lookup_1">
              <xsl:param name="STDPN"/>
                   <rfc:RFC_READ_TABLE>
                        <QUERY_TABLE>KNA1</QUERY_TABLE>
                        <OPTIONS><item><TEXT>
                                  <xsl:value-of select="$STDPN"/>
                             </TEXT></item>
                        </OPTIONS>
                        <FIELDS>
                             <item>
                                  <FIELDNAME>KUNNR</FIELDNAME>
                             </item>
                        </FIELDS>
                   </rfc:RFC_READ_TABLE>
              </xsl:variable>
              <xsl:variable name="response" xmlns:lookup="java:urn.mt.pi" select="lookup:execute($request, 'BS_D, 'cc_RfcLookup', $inputparam)"/>
              <xsl:element name="STDPN">
                   <xsl:value-of select="$response//DATA/item/WA"/>
              </xsl:element>
         </xsl:template>
         <xsl:template name="Lookup_2">
              <xsl:param name="BELNR"/>
                   <xsl:variable name="Query">AGMNT = '<xsl:value-of select="$BELNR"/>'</xsl:variable>
                   <xsl:variable name="request1">
                        <rfc:RFC_READ_TABLE>
                             <QUERY_TABLE>ZTABLE</QUERY_TABLE>
                             <OPTIONS><item><TEXT>
                                  <xsl:value-of select="$Query"/>
                                  </TEXT></item>
                             </OPTIONS>
                             <FIELDS>
                                  <item>
                                       <FIELDNAME>KUNAG</FIELDNAME>
                                  </item>
                             </FIELDS>
                        </rfc:RFC_READ_TABLE>
                   </xsl:variable>
                   <xsl:variable name="response1" xmlns:lookup="java:urn.mt.pi" select="lookup:execute($request1, 'BS_D','cc_RfcLookup', $inputparam)"/>
                   <xsl:element name="BELNR">
                        <xsl:value-of select="$response1//DATA/item/WA"/>
                   </xsl:element>
         </xsl:template>
    My Question: Am I doing anything wrong? Or Is it possible to call multiple lookups in one XSLT?
    Thanks and Regards,
    Atul

    Hi Atul,
    I had the same problem like you had.
    The main Problem is that with the example code the request variable is created as NodeList object. In XSLT a variable is somekind of a constant and can't be changed. As the request object is empty after the first request the programm fails at the following line:
    Source source = new DOMSource(request.item(0));
    So I've created a workaround for this problem.
    In the call of the template I've put the request as a parameter object at the template call:
    <xsl:with-param name="req">
    <rfc:PLM_EXPLORE_BILL_OF_MATERIAL xmlns:rfc="urn:sap-com:document:sap:rfc:functions">
      <APPLICATION>Z001</APPLICATION>
      <FLAG_NEW_EXPLOSION>X</FLAG_NEW_EXPLOSION>
      <MATERIALNUMBER><xsl:value-of select="value"/></MATERIALNUMBER>
      <PLANT>FSD0</PLANT>
      <VALIDFROM><xsl:value-of select="//Recordset/Row[name='DTM-031']/value"/></VALIDFROM>
      <BOMITEM_DATA/>
    </rfc:PLM_EXPLORE_BILL_OF_MATERIAL>
    </xsl:with-param>
    With this change the request will be provided as a String object and not as a NodeList object.
    Afterwards the RfcLookup.java has to be changed to the following:
    package com.franke.mappings;
    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.PrintWriter;
    import java.io.StringWriter;
    import java.util.Map;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.Source;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.Document;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import com.sap.aii.mapping.lookup.Channel;
    import com.sap.aii.mapping.api.StreamTransformationConstants;
    import com.sap.aii.mapping.api.AbstractTrace;
    import com.sap.aii.mapping.lookup.RfcAccessor;
    import com.sap.aii.mapping.lookup.LookupService;
    import com.sap.aii.mapping.lookup.XmlPayload;
    * @author Thorsten Nordholm Søbirk, AppliCon A/S
    * Helper class for using the XI Lookup API with XSLT mappings for calling RFCs.
    * The class is generic in that it can be used to call any remote-enabled
    * function module in R/3. Generation of the XML request document and parsing of
    * the XML response is left to the stylesheet, where this can be done in a very
    * natural manner.
    * TD:
    * Changed the class that request is sent as String, because of IndexOutOfBound-exception
    * When sending multiple requests in one XSLT mapping.
    public class RfcLookup {
         * Execute RFC lookup.
         * @param request RFC request - TD: changed to String
         * @param service name of service
         * @param channelName name of communication channel
         * @param inputParam mapping parameters
         * @return Node containing RFC response
         public static Node execute( String request,
                 String service,
                 String channelName,
                 Map inputParam)
              AbstractTrace trace = (AbstractTrace) inputParam.get(StreamTransformationConstants.MAPPING_TRACE);
              Node responseNode = null;
              try {
                  // Get channel and accessor
                  Channel channel = LookupService.getChannel(service, channelName);
                  RfcAccessor accessor = LookupService.getRfcAccessor(channel);
                   // Serialise request NodeList - TD: Not needed anymore as request is String
                   /*TransformerFactory factory = TransformerFactory.newInstance();
                   Transformer transformer = factory.newTransformer();
                   Source source = new DOMSource(request.item(0));
                   ByteArrayOutputStream baos = new ByteArrayOutputStream();
                   StreamResult streamResult = new StreamResult(baos);
                   transformer.transform(source, streamResult);*/
                    // TD: Add xml header and remove linefeeds for the request string
                    request = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+request.replaceAll("[\r\n]+", ""); 
                    // TD: Get byte Array from request String to send afterwards
                    byte[] requestBytes = request.getBytes();
                   // TD: Not used anymore as request is String
                    //byte[] requestBytes = baos.toByteArray();
                    trace.addDebugMessage("RFC Request: " + new String(requestBytes));
                    // Create input stream representing the function module request message
                    InputStream inputStream = new ByteArrayInputStream(requestBytes);
                    // Create XmlPayload
                    XmlPayload requestPayload =LookupService.getXmlPayload(inputStream);
                    // Execute lookup
                    XmlPayload responsePayload = accessor.call(requestPayload);
                    InputStream responseStream = responsePayload.getContent();
                    TeeInputStream tee = new TeeInputStream(responseStream);
                    // Create DOM tree for response
                    DocumentBuilder docBuilder =DocumentBuilderFactory.newInstance().newDocumentBuilder();
                    Document document = docBuilder.parse(tee);
                    trace.addDebugMessage("RFC Response: " + tee.getStringContent());
                    responseNode = document.getFirstChild();
              } catch (Throwable t) {
                   StringWriter sw = new StringWriter();
                   t.printStackTrace(new PrintWriter(sw));
                   trace.addWarning(sw.toString());
              return responseNode;
         * Helper class which collects stream input while reading.
         static class TeeInputStream extends InputStream {
               private ByteArrayOutputStream baos;
               private InputStream wrappedInputStream;
               TeeInputStream(InputStream inputStream) {
                    baos = new ByteArrayOutputStream();
                    wrappedInputStream = inputStream;
               * @return stream content as String
               String getStringContent() {
                    return baos.toString();
              /* (non-Javadoc)
              * @see java.io.InputStream#read()
              public int read() throws IOException {
                   int r = wrappedInputStream.read();
                   baos.write(r);
                   return r;
    Then you need to compile and upload this class and it should work.
    I hope that this helps you.
    Best regards
    Till

  • Without BPM:Call RFC using JCO in interface mapping using java mapping

    Hi all
    I have a very small scenario where REQUEST from the customer comes via Web Service all i have to do is to read the request using SOAP adapter and call an interface mapping(lets say the name is IM_TEST) inside which there is a JAVA MAPPING program written which will call an RFC in CRM using JCO.
    Now this was really simple and i cud test the Interface mapping successfully, but the problem is when loading the scenario in integration directory i have certain things to do
    1. to set the SENDER AGREEMENT which i did correctly
    2. set the RECEIVER DETERMINATION, INTERFACE DETERMINATION AND RECEIVER AGREEMENT now here i am stuck because there is no receiver in my case as the RFC is called inside the mapping only.
    can i call one more message mapping in IM_TEST which will write file onto the XI directory and then in RECEIVER DETERMINATION, INTERFACE DETERMINATION AND RECEIVER AGREEMENT i can mention the reciever as FTP.
    I tried it but i gives the following error
    Runtime exception occurred during execution of application mapping program com/sap/xi/tf/_MM_TEST_WRITE_FILE: com.sap.aii.utilxi.misc.api.BaseRuntimeException; Parsing an empty source. Root element expected!
    Please help me how to complete the scenario so that customer can run it end to end.
    <REMOVED BY MODERATOR>
    Edited by: Prateek Raj Srivastava on May 12, 2010 1:44 PM

    Stefen
    What do i do then...actually this is the project requirement. They want a very fast response from PI and thats why they wnt us to omit BPM and the Graphical mapping from the scenario.
    I am able to test the interface mapping which calls the the Java mapping inside which there is an RFC call, but i cannot implement it end - to - end as there is no receiver business system in this case. The only business system i have is the SOAP sender.
    I am really troubled now, please help me with a solution.
    Is there any other possible way through which the process can become very fast whic hcan meet their requirement.
    Regards
    Naina

  • Create RFC Function using Java Program

    hi
    I am trying to create a small utility in java that extracts data from SAP system and loads it to local Db
    For extracting data from SAP we have a custom ABAP function (RFC) running on SAP server that is called from Java using JCO3 APIs
    Installation of this utility on client side involves -
    1.     Installing RFC on Clientu2019s SAP instance
    2.     Installing / Configuring Java code on Clientu2019s machine
    Is there a way to install / create a RFC function using java -JCO APIs so that Step-1 can be omitted?
    I had browsed through a sample provided in examples installed with JCO3 but its very trivial example can someone point to a exhaustive link or explain how this can be achieved using Java program
    Thanks

    Hi Amit
    I am not sure I understand the question. You want to create an RFC in Java? If this is correct why not create a Remote Method in java for example as EJB or Web Service which is more standard than creating an RFC.
    On the other hand if you want to create a RFC client in Java (a Program which calls a RFC in SAP ABAP system) you can use JCo APIs (which can be either standalone or on the NW Java server) or JRA (from NW 7.1 onwards).
    Regards
    Partha

  • Can any one please send me sample programs using java mapping..

    <b>Can any one please send me sample programs using java mapping with input and output?</b>
    please let me know how to get started with java mapping?
    Prerequisites for java mapping ?
    What are the jars need to be deployed for SAX,DOM.  And how to do it in NWDS?
    Use of Execute() and setparameter() ... StreamTransformation?
    Some sample program using java mapping with simple logic(input and output)?

    Hi,
    Did you go thro these blogs?
    /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
    Nice blogs to start Java Mapping.
    Go thro this one too.
    /people/stefan.grube/blog/2006/10/23/testing-and-debugging-java-mapping-in-developer-studio
    Regards,
    P.Venkat
    Message was edited by:
            Venkataramanan

  • Message splitting using java mapping and BPM

    Hi all,
    I have a PLAIN FILE to IDOC Scenario.
    We decide to use javamapping instead of message mapping because we have several hierachical structures.
    We has more than one IDOC for file. And the mapping it's unable to detect the another header and create it at XI.
    I had seen:
    /people/michal.krawczyk2/blog/2005/12/04/xi-idoc-bundling--the-trick-with-the-occurance-change
    "XI: IDOC bundling - the "trick" with the occurance change"
    But the problem it's we doesn't use mapping programs, so we can't apply to this case.
    So now i need to create a BPM scenario for resolve this issue. Anyone knows any example for split the income message and send any idocs to destination?
    Thanks in advance,

    IT WORKED !!!!
    The only thing it's at out code line we must improve it in another way.
    For everyone who needs to resolve, i copy the code line of the java mapping program.
    The relationship is from the specific mapping for every scenary calling GenToHierMap.
    0.0.0.0.0.0.0.0.0.0.0.0.1. GENERIC PACKAGE (GenToHierMap)
    0.0.0.0.0.0.0.0.0.0.0.0.2.
    package com.sap.javaMapping;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.Map;
    import java.util.Vector;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import org.w3c.dom.Text;
    import com.sap.aii.mapping.api.StreamTransformation;
    public class GenToHierMap
         private Element root, idoc;
         private Element nodeArrayRef[];
         private String nodeArrayTagName[];
         private Relation  rel ;
         private int  stack_count ;
         private String nameSpace;
         private String separator="#!";
         protected String msgName;
         GenToHierMap(InputStream in, OutputStream out,Vector v1,String msgName1,String nameSpace1)
         msgName = msgName1;
         nameSpace = nameSpace1;
         rel = new Relation(v1);
         execute(in,out);
        public void execute(InputStream in, OutputStream out)
              Element e ;
              Relation cur_rel;
              DOMSource domS = null;
              Element keyNodeParent;
              //int numdocs;
              try
                           DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                           factory.setNamespaceAware(true);
                             TransformerFactory tf = TransformerFactory.newInstance();
                             Transformer transform = tf.newTransformer();
                             // Create DOM structure from input XML
                             DocumentBuilder builderel = factory.newDocumentBuilder();
                             Document docIn = builderel.parse(in);
                            NodeList rows = docIn.getElementsByTagName("ROW");
                            nodeArrayTagName = new String[rows.getLength() + 1];
                            nodeArrayRef = new Element[rows.getLength() + 1];
                             Document docOut = builderel.newDocument();
                             root = docOut.createElement(msgName);
                             docOut.appendChild(root);
                             //idoc = docOut.createElement("IDOC");
                             //root.appendChild(idoc);     
                            //Número de documents inicialitzat a 0
                            //numdocs=0;
                            //Per cada filera ROW
                       for (int count=0;count<rows.getLength();count++)
                                  String dataRecord = "";
                                  Node node = rows.item(count);
                                  node = node.getFirstChild();
                                  dataRecord = node.getNodeValue();
                                  String fieldValue [] = dataRecord.split(separator);
                                  //Cada cop que es troba una nova capçalera es crea un nou document.
                                  //Això permet que hi hagi més d'un IDOC per missatge processat.
                                  if (Integer.valueOf(fieldValue[0]).intValue()==1){
                                       //numdocs = numdocs + 1;
                                       //if (numdocs > 1){
                                            //Es dona sortida al document anterior abans de crear-ne un de nou - BE AWARE BECAUSE IN THE NEXT LINES WE DEFINE THE UNBOUNDED IDOC ATTRIBUTE, WITH BEGIN = 1 ****
                                            //transform.transform((domS),new StreamResult(out));
                                            //docOut = builderel.newDocument();
                                            //root = docOut.createElement(msgName);
                                            //docOut.appendChild(root);
                                            idoc = docOut.createElement("IDOC");
                                            idoc.setAttribute("BEGIN","1");
                                            root.appendChild(idoc);     
                                  cur_rel = (Relation) rel.v.get(Integer.valueOf(fieldValue[0]).intValue());                    
                                  String keyId = cur_rel.node;
                                  keyNodeParent = searchNode(keyId);
                                  nodeArrayTagName[count] = keyId;
                               e = docOut.createElement(keyId);
                                  e.setAttribute("SEGMENT",fieldValue[0]);
                               nodeArrayRef[count]= e;
                              keyNodeParent.appendChild(e);
                              createXmlTree(docOut,e,keyId,fieldValue);
                              domS = new DOMSource(docOut);
                              stack_count = stack_count + 1;
                         transform.transform((domS),new StreamResult(out));
           catch (Exception t)
                  t.printStackTrace();
    return;
    //returns the parent of the given node
    private Element searchNode(String keyId)
         Relation cur_rel;
         for (int i=0;i<rel.v.size();i++)
              cur_rel = (Relation) rel.v.get(i);
              if (cur_rel.node.equals(keyId))
                     for (int j=0;j<cur_rel.parents.length;j++)
                              if (cur_rel.parents[j].equals("NULL")) return root;
                              if (cur_rel.parents[j].equals("IDOC")) return idoc;
                               for (int k=(stack_count-1);k>=0;k--)
                                   for (int p=0;p<cur_rel.parents.length;p++)
                                       if (nodeArrayTagName[k].equals(cur_rel.parents[p]))
                                       return nodeArrayRef[k];
    return null;
    //Creates all the elements of the given node
    private void createXmlTree(Document docOut,Element node,String keyId, String fieldValue[])
          Element tagName;
          Text tagValue;
          Relation cur_rel;
          for (int i=0;i<rel.v.size();i++)
                     cur_rel = (Relation) rel.v.get(i);
                     if (cur_rel.node.equals(keyId))
                        for (int j=1;j<cur_rel.elements.length;j++)
                           tagName = docOut.createElement(cur_rel.elements[j]);
                           node.appendChild(tagName);
                           if ( j < fieldValue.length  && fieldValue[j].length() != 0 )
                           if ( fieldValue[j].substring(0,1).equals("""))
                           if ( fieldValue[j].length() > 2 )
                           fieldValue[j] = fieldValue[j].substring(1,( fieldValue[j].length() - 1 ));
                           else
                           fieldValue[j] = new String ();
                           if ( j >= fieldValue.length )
                           tagValue = docOut.createTextNode(new String());
                           else
                           tagValue = docOut.createTextNode(fieldValue[j]);
                           tagName.appendChild(tagValue);
                        return;
    //Main thread of execution
    0.0.0.0.0.0.0.0.0.0.0.0.1. SPECIFIC ONE
    0.0.0.0.0.0.0.0.0.0.0.0.2.
    package com.sap.javaMapping;
    * Mapping Program to Convert NOM IDOC Master Structure to the Generic structure Expected by
    * the FTP Receiver adapter
    import com.sap.aii.mapping.api.*;
    import java.io.*;
    import java.util.Map;
    import java.util.Vector;
    import javax.xml.parsers.*;
    import javax.xml.transform.*;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.*;
    import org.xml.sax.*;
    //Specify the Hirearchial Structure
    public class INT938_mapping implements StreamTransformation
         public Vector v;
        private Map map;
        /** * method setParamters is required, but we do not anything with it */
         public void setParameter(Map param)
              map = param;
         } /** * method execute is called by the XI mapping program */
    public void buildXsd()
      Relation  mriRel ;
      v = new Vector();
      /* INICI MODIFICACIÓ ESTRUCTURA DE SORTIDA DEL MAPPING */
      // --> TOCAR AQUEST NODE IMPLICA MODIFICAR EL CÒDI!!!
      mriRel = new Relation();
      mriRel.parents = new String[1];
      mriRel.node =  "IDOC" ;
      mriRel.parents[0] =   "NULL" ;
      v.add(mriRel) ;
      /* ESTRUCTURA DEL IDOC DE SORTIDA */
      //NODE - 01
      mriRel = new Relation();                          
      mriRel.parents = new String[1];                                                    
      mriRel.elements = new String[22];                                                                 
      mriRel.node = "E1BPEBANC";                                    
      mriRel.parents[0]   =   "IDOC";                                              
      mriRel.elements[0]  =   "SEGMENT";   
      mriRel.elements[1]  =   "PREQ_ITEM"; 
      mriRel.elements[2]  =   "DOC_TYPE";  
      mriRel.elements[3]  =   "PUR_GROUP"; 
      mriRel.elements[4]  =   "CREATED_BY";
      mriRel.elements[5]  =   "PREQ_NAME"; 
      mriRel.elements[6]  =   "PREQ_DATE"; 
      mriRel.elements[7]  =   "SHORT_TEXT";
      mriRel.elements[8]  =   "MATERIAL";  
      mriRel.elements[9]  =   "PLANT";     
      mriRel.elements[10] =   "STORE_LOC";
      mriRel.elements[11] =   "TRACKINGNO";
      mriRel.elements[12] =   "MAT_GRP";   
      mriRel.elements[13] =   "QUANTITY";  
      mriRel.elements[14] =   "UNIT";      
      mriRel.elements[15] =   "DELIV_DATE";
      mriRel.elements[16] =   "ACCTASSCAT";
      mriRel.elements[17] =   "DES_VENDOR";
      mriRel.elements[18] =   "PURCH_ORG"; 
      mriRel.elements[19] =   "BATCH";     
      mriRel.elements[20] =   "VEND_MAT";  
      mriRel.elements[21] =   "CURRENCY";
      v.add(mriRel) ; 
      //NODE - 02
      mriRel = new Relation();                                   
      mriRel.parents = new String[1];                                                    
      mriRel.elements = new String[2];                                                                  
      mriRel.node = "Z1SOLCOM";                                    
      mriRel.parents[0]  =   "E1BPEBANC";                                                     
      mriRel.elements[0] =   "SEGMENT";  
      mriRel.elements[1] =   "ZPO_NUMBER";
      v.add(mriRel) ;
      //NODE - 03
      mriRel = new Relation();                                   
      mriRel.parents = new String[1];                                                    
      mriRel.elements = new String[3];                                                                 
      mriRel.node = "E1BPEBKN";                                    
      mriRel.parents[0]  =   "IDOC";                                                   
      mriRel.elements[0] =   "SEGMENT";
      mriRel.elements[1] =   "PREQ_ITEM";   
      mriRel.elements[2] =   "COST_CTR";
      v.add(mriRel) ;
      //NODE - 04
      mriRel = new Relation();                                   
      mriRel.parents = new String[1];                                                    
      mriRel.elements = new String[8];                                       
      mriRel.node = "Z1SOLRES";                                    
      mriRel.parents[0]  =   "E1BPEBKN";                                                   
      mriRel.elements[0] =   "SEGMENT";            
      mriRel.elements[1] =   "DADES_PACIENT";      
      mriRel.elements[2] =   "NOHIS";              
      mriRel.elements[3] =   "ZNINTER";            
      mriRel.elements[4] =   "ZFEIMP";             
      mriRel.elements[5] =   "NMPAC";              
      mriRel.elements[6] =   "ZNLOTE";             
      mriRel.elements[7] =   "ZNSERIE";            
      v.add(mriRel) ;
      /* FI    MODIFICACIÓ ESTRUCTURA DE SORTIDA DEL MAPPING */
    public void execute(InputStream in, OutputStream out) throws com.sap.aii.mapping.api.StreamTransformationException
         INT938_mapping rel = new INT938_mapping();
         rel.buildXsd();
         new GenToHierMap(in,out,rel.v,"ZPREEX01","http://namespace1/namespace");
    public static void main (String[] args) throws Exception
              try
                   INT938_mapping rel = new INT938_mapping();
                   FileInputStream in = new FileInputStream ("C:/DOM_IN.xml");
                   FileOutputStream out = new FileOutputStream ("C:/DOM_OUT.xml");
                   rel.buildXsd();
                   new GenToHierMap(in,out,rel.v,"ZPREEX01","http://namespace1/namespace");
              }catch(Exception e) {e.printStackTrace();}
    //Transformation of flat structure to hirearchial structure
    Any issue you can contact me. Best regards and reward points !

  • How TO Use Java Mapping In XI

    Hi Experts,
    please help me ,
    How TO Use Java Mapping In XI?
    Thanks
    Mahesh

    Hi,
    Just refer the following links for java mapping:-
    1./people/thorsten.nordholmsbirk/blog/2006/08/10/using-jaxp-to-both-parse-and-emit-xml-in-xi-java-mapping-programs
    2./people/alessandro.guarneri/blog/2007/03/25/xi-java-mapping-helper-dom
    Regards,
    Ashwin M
    Reward if helpful

  • How to pass input parameter (parameterized mapping) to java mapping program

    Hello
    I have a question about the parameterized mapping with Java (PI 7.1).
    In the operation mapping (using Java-class) I defined a inputer parameter (string). I think I am supposed to retrieved the value using:
                    arg0.getInputParameters().getString("myInputParameterName");
    where arg0 is the TransformationInput object.
    However I am not able to get the value, I got runtime exception saying the inputer parameter doesn't exit.
    Then I figured out maybe I need to bind the OM input parameter to Java mapping parameter, just like in case of message mapping, you need to bind OM parameter to MM parameter. However there is no way to define input parameter for the java mapping program.
    Anybody has done java mapping with parameterized mapping?
    Anybody can give any hint for this?
    Thanks
    Jayson

    InputParameters params = container.getInputParameters();
    DynamicConfiguration conf = (DynamicConfiguration) params.getValue(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File", "Directory");
    http://help.sap.com/saphelp_nwpi71/helpdata/en/43/03612cdecc6e76e10000000a422035/content.htm
    Edited by: Anand on Dec 10, 2008 4:13 PM

  • RFC Lookup using RFC_READ_TABLE

    Hi,
    I'm doing RFC lookup using RFC_READ_TABLE to read data from table "LIPS". I am getting the following error with the XML signature
    DVEBMGS01/j2ee/cluster/server0/./temp/classpath_resolver/Mapb16b89b090ec11debb52001e0b450820/source/com/sap/xi/tf/_MM_GetCompanyDetails_.java:72: ';' expected String rfcXML = "<?xml version="1.0" encoding="UTF-8"?><ns0:RFC_READ_TABLE xmlns:ns0="urn:sap-com:document:sap:rfc:functions"><QUERY_TABLE>"+ DBTABLE + "</QUERY_TABLE><DATA></DATA><FIELDS><item><FIELDNAME>"+ FIELDS "</FIELDNAME></item></FIELDS><OPTIONS><item><TEXT>" WHERE_CLAUSE +"</TEXT></item></OPTIONS></ns0:RFC_READ_TABLE>" ; ^ 1 error.
    Please let me know how this works
    Regards,
    Ravi

    Hi Ravi,
    This seems to me like a syntax error. Fix that and it should work fine.
    Regards,
    Neetesh

  • N:1 Mapping Possible using Java Mapping?

    All,
    Is it possible to do a N:1 mapping using Java Mapping?
    If yes , how?
    Reason for this question is that the execute() of the Java Mapping is going to take the source / request message as the InputStream . In the case of N:1 mapping , as we have multiple messages , how will they be send to the InputStream? Will both the messages be sent combined into the InputStream? Will the MESSAGES tag be embedded into the input stream?
    Regards,
    Bhavesh

    Hi @ll;
    i try the same.
    to conduct a java mapping with 2 input structures that fills one target structure.
    This mapping is part of a Integrationprocess.
    I tested the mapping at the Integration Repository (Interface mapping) with the structure given by henrique and it works fine without any error.
    At runtime this structure looks like this (different prefix)
    <?xml version="1.0" encoding="UTF-8"?>
    <sxi:Messages xmlns:sxi="http://sap.com/xi/XI/SplitAndMerge">
         <sxi:Message1>
              <YOURXML1>...</YOURXML1>
         </sxi:Message1>
         <sxi:Message2>
              <YOURXML2>...</YOURXML2>
         </sxi:Message2>
    </sxi:Messages>
    As I put it in the Integrationprocess unfortunately a strange error arises.
    The trace Workflow-Protocoll shows following error.
    <Trace level="2" type="T">Call method execute of the application Java mapping com.endress.infoserve.xi.mapping.MergeConfigStore_IdocOrder </Trace>
    <Trace level="2" type="T">Java mapping com/endress/infoserve/xi/mapping/MergeConfigStore_IdocOrder completed. (executeStep() of com.endress.infoserve.xi.mapping.MergeConfigStore_IdocOrder </Trace>
    <Trace level="1" type="T">Parsing error after multi mapping.Expected Message<i> instead of IDOC </Trace>
    I can't make head nor tail of it.
    what´s the mistake?
    can anybody please help me?
    Thanks in advance
    Kind regards

  • 1:n Transformation using JAVA Mapping Scenario

    Hi Frnds,
    I done a scenario using 1:n Transformation Scenario using XSLT,Graphical Mapping.
    But i want to develop scenario Using JAVA Mapping.
    Can anybody done the same scenario using JAVA Mapping share the links..
    Regards,
    Raj Sekhar

    You can use SAX parser for this
    firstly create a StringBuffer sb object which will store our target output
    when startDocument() gets called append the xml declaration in this method
    sb.append("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
    sb.append("<Root>");
    next for the Test element you have your startElement() method called which will contain the name of your source tag i.e Test
    for this , you will need to set a variable boolean isTest to true which was initialised as a false value.
    in the characters method you will get the value present in this tag.
    test the variable isTest for true value.
    if it is true then append the following
    sb.append("<Test1>"name"</Test1>"); //name is the buffer passed in characters method
    sb.append("<Test2>"name"</Test2>");
    sb.append("<Test3>"name"</Test3>");
    at the end your endelement() will be called
    here reset the value of isTest to false.
    in your endDocument()
    sb.append("</Root>");
    lastly convert to byte[] and then to outputStream format
    Edited by: Progirl Progirl on Jul 4, 2008 2:00 PM

  • Java Mapping Programs

    Can somebody give me some  sample Java Mapping programs and also XSLT  mapping  programs?

    Hi,
    For different mapping scenarios check these blogs:-
    /people/ravikumar.allampallam/blog/2005/02/10/different-types-of-mapping-in-xi
    /people/sravya.talanki2/blog/2005/08/16/message-mapping-simplified--part-i
    /people/sravya.talanki2/blog/2005/12/08/message-mapping-simplified-150-part-ii
    /people/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
    For Java Mapping, check these:-
    http://help.sap.com/saphelp_nw04/helpdata/en/e2/e13fcd80fe47768df001a558ed10b6/content.htm
    /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
    /people/ravikumar.allampallam/blog/2005/06/24/convert-any-flat-file-to-any-idoc-java-mapping
    Regards.
    Praveen

  • XML Structure Conversion using JAVA Mapping

    Hi Experts,
    I am having a requirement in which i want to convert the contents of source xml structure into a string and map it to the target field.
    Source Structure:
    <SRC>
    <Node1>ABCD</Node>
    <Node2>XYZ</Node2>
    <Node3>1234</Node>
    </SRC>
    Target Structure:
    <TRG>
    <Node1>ABCDXYZ</Node1>
    </TRG>
    Both the source and target structures are in xml format only.....just the condition is that I have to use Java mapping to achieve it.
    The contents of Source node Node3 are not to be mapped.
    Since I have very less knowledge of Java it will be very helpful if you provide the complete code to me.
    Thanks,
    Abhishek.

    Hello Udo,
    Thank you for reply. It seems ABAP mapping is easier.
    What do you think about the idea of using Value Mapping for such conversion task? In this case is it obligatory to use Java coding? And how about performance - will it be better than in case of ABAP mapping, can you say?
    Thank you,
    Igor

Maybe you are looking for

  • [solved] can't ssh AWS EC2 anymore - iptables flushed

    Hi, I killed a AWS's EC2 connexion by flushing iptables on server side, can't connect anymore. I connect to an Amazon's EC2 instance (with Ubuntu) mainly as a proxy, from a linux system based laptop, to go through an university's firewall. (For a hea

  • Events in ALV Using OO ...

    I wrote an ALV using OO . My problem is that i can't control the events for Hotspot , Double Click etc . Look my code please to find the problem. *& Report  YDP_ALV_USING_OO REPORT  YDP_ALV_USING_OO. INCLUDE <CL_ALV_CONTROL>.       CLASS lcl_event_ha

  • How to connect to postgres server

    I need to connect to a postgres server using jdbc. I don't know the parameter for my Class.forName() or anything that could help me connect to the server. Could someone help me about this problem. thanks a million

  • Security During File transfer

    hi, i have done a file transfer program in Java which transfers a file from one PC to another. i want tht my file (any text document ) should get transfered in secured manner. Like there should be cryptography and authentication both involved. how sh

  • PGP Encryption Scenario for a Proxy to File Scenario.

    I have a scenario where an outbound proxy from R/3 system is extracting some hr related info type data and sending it to XI system. The XI system is required to convert the data into a flat file format and encrypt the data using PGP. <b>R/3 - Proxy -