Empty file, java mapping issue

Hello,
does anyone have an ide how to create java mapping to create empty file on FTP?
Why this code always send NUL character = 1byte and not 0 byte as needed?
public void execute(InputStream in, OutputStream out) throws StreamTransformationException {
out = null;

try 1 thing...
run ur code for some standalone file.
create a file at ur local harddisk and check out its size..
i had tried creating such a file using the code below....
it is creating a 0 byte file successfully.
public class TestCode {
     public static void main(String ags[]){
     try{
     TransformerFactory tf = TransformerFactory.newInstance();
     Transformer transform = tf.newTransformer();
     FileOutputStream out;
     out = new FileOutputStream("c:
OutTestCode.xml");
     transform.transform(null, new StreamResult(out));
     } catch (FileNotFoundException e1) {
          e1.printStackTrace();
     } catch (TransformerConfigurationException e) {
          e.printStackTrace();
     } catch (TransformerException e) {
          e.printStackTrace();

Similar Messages

  • Java Mapping Issue

    Hi,
    I'm new to JAVA mapping and I'm having an issue which I can't get resolved :
    When I execute my mapping I get :
    <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>Application</SAP:Category>
      <SAP:Code area="MAPPING">LINKAGE_ERROR</SAP:Code>
      <SAP:P1>XIFileNameMapClass</SAP:P1>
      <SAP:P2>http://notimportant.com/xi/SOOFT</SAP:P2>
      <SAP:P3>068fe9b0-44d1-11db-c69d-ee989e43162e</SAP:P3>
      <SAP:P4>-1</SAP:P4>
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>Incompatible class versions (linkage error)</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    I'm using eclipse for the java class and I have choosen several jre versions to create the .jar file but all lead to the same error.
    I had copied the required aii_map_api.jar.jar from xi box to my local project directory and added it as an external .jar to my project.
    But since I new to JAVA and unsure on what exactly is going into the jar and what not.
    Is it important with which jre version you build the java class ? ( Xi is running on 1.4.2_12 ) I tried first with 1.5.0_06 and then with 1.4.2_9 and then 1.4.2_13 all with the same result.
    I do this by adding a different jre to the properties of my project. And then I export to the .jar file . Is that enough ? ( I was expecting something like a 'build' option somewhere but I can't find that in eclipse )
    When I imported the archive in XI, I also see a .Classpath , a .project , SAP_AG_G.RSA and a SAP_AG__G.SF file.
    This reminds me of those ugly .dll incompatibilities which I had hoped not occurring with JAVA...:(
    Any ideas ?
    PS We are on XI 7.0 SP8 ( so the older note 755302 is not relevant )

    Hi all,
    I did understand that I had something todo with different versions ( as I started to make a first attempt with version jre 1.5 and then with other versions )
    But somehow I apparently couldn't get my .jar file to be compiled to a 1.4.2_xx
    ( although I tried numerous settings in the Eclipse build path etc...)
    Finally, I removed the 1.5 version and started from scratch using jre 1.4.2_10.
    And now it works OK !
    I'm sure you can configure Eclipse correctly to generate 1.4 compatible jar files ( even when running itself on 1.5 or above ) but I must have missed the right combination of settings ( as I said I'm new in Java / Eclipse....)
    regards
    Dirk

  • XSLT & JAVA Mapping issue.

    is there any situation,
    where we should definately go for XSLT mapping..
    where we should definately go for JAVA mapping..
    can anyone brief me plz....
    Cheers,
    Raghavesh

    No hard and fast rules.
    There never can be specific rules.
    1. Java Mapping should be used when the input is NON XML for sure. As the input is a InputSTream, you can convert it to a string and do the needful programmic logic etc.
    2. XSL can be used with HTML source etc.
    Regards
    Bhavesh

  • Handling Character Entities - Java Mapping Issue

    Hi Experts,
        I need to replace the character entities in my input XML. But, the problem is the java mapping I've written isn't replacing  the character entities as expected.  For example if my input XML  contains <NAME>&><XYZ</NAME>, then the ouput is <NAME>&amp:&gt:<0001&lt:/NAME>, whereas it should be <NAME>&amp:&gt:&lt:0001</NAME>.
    Note: I've used : instead of ; just to show it properly SDN.
    Can any of you share the code for the same if you've used it already?
    Thanks a lot in advance.
    Regards,
    Hussain.

    Hi Pooja,
        Thanks for your prompt reply.
    Are you trying to use the java mapping just to handle the character entities or your interface itself only has a java mapping?
                   - I'm using Java Mapping just to handle the character entities. Say my input XML looks like
    <?xml version="1.0" encoding="UTF-8"?>
    <resultset>
    <row>
    <ID>&<1</ID>
    <MESSAGE><![CDATA[<?xml version="1.0" encoding="UTF-8" ?><LGORT>&<0001</LGORT>]]></MESSAGE>
    </row>
    </resultset>
    I need to replace &< in <ID> to &amp:&lt: and similarly for CDATA <LGORT>&amp:&lt:0001</LGORT> before I process it in XI. In my java mapping I read the whole XML as string (line by line as mentioned below) and try to replace the character entities using some logic, which isn't working properly.
    StringBuffer buffer = new StringBuffer();
    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
    for (String lineRead = reader.readLine(); lineRead != null; lineRead = reader.readLine()) {
           buffer.append(lineRead);
    I've also checked the thread mentioned by Srinivas. But, StringEscapeUtils.escapeXml() would replace all the character entities like &lt:?XML... , which would result in an invalid xml...
    Please suggest.
    Thanks,
    Hussain.

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

  • Issue in conversion ABAP to java mapping during PI upgrade

    Hi All,
    We are upgrading one interface from ABAP mapping to Graphical/Java mapping in PI upgrade.(7.1 dual stack to 7.4 version)
    In ABAP mapping there is character conversion like below.
      encoding    = '1164'
          replacement = '?'
    We want to implement the same functionality either through Java or graphical mapping . But we are not sure what are the range  of characters that need to be converted to '?' and also what is the most optimized way to achieve this functionality.
    Below are few sample of characters coming in the file:
    б,л,к,У,М,л,и,о,ф..etc

    hi all,
    the issue got resolved with a JAVA replace function
    String r = str.replaceAll("\\P{InBasic_Latin}", "?");
    Thanks all for your inputs.
    Regards,
    Anamika

  • Java Mapping - Not able to compile .Java file

    Hi Experts,
    I am working with a sample scenario which involves Java Mapping. For this I created MappingClass.java file, After compiling the .Java file .Jar file would be used for Java Mapping by using Imported Archives.
    After compiling the MappingClass.java file, I am getting the errors as below.
    --> Java errors after compilation
    C:\j2sdk1.4.2_13\bin>javac MappingClass.java
    MappingClass.java:4: package com.sap.aii.mapping.api does not exist
    import com.sap.aii.mapping.api.AbstractTrace;
                                   ^
    MappingClass.java:5: package com.sap.aii.mapping.api does not exist
    import com.sap.aii.mapping.api.StreamTransformationConstants;
    --> End of java errors
    In the MappingClass.java file, I had given followed imports.
    import java.util.*;
    import com.sap.aii.mapping.api.AbstractTrace;
    import com.sap.aii.mapping.api.StreamTransformationConstants;
    Could some one please guide me to resolve this issue.
    Thanks in advance.
    ..Sree

    Hi
    I had copied " aii_map_api.jar " file in my Java Class path folder.. i.e " C:\j2sdk1.4.2_08\bin "     AND    " C:\j2sdk1.4.2_08\lib " folders too.. and even in C:\ i.e Root Drive also.
    After trying to Compile my java file (ex : MappingClass.java), still I am getting the errors.
    Errors shown as below.
    --> Errors
    C:\mytest>javac MappingClass.java
    MappingClass.java:2: package com.sap.aii.mapping.api does not exist
    import com.sap.aii.mapping.api.AbstractTrace;
                                   ^
    MappingClass.java:3: package com.sap.aii.mapping.api does not exist
    import com.sap.aii.mapping.api.StreamTransformationConstants;
                                   ^
    MappingClass.java:6: cannot resolve symbol
    symbol  : class AbstractTrace
    location: class MappingClass
        private static AbstractTrace trace = null;
                       ^
    MappingClass.java:12: cannot resolve symbol
    symbol  : class AbstractTrace
    location: class MappingClass
            trace = (AbstractTrace)inputparam.get(
                     ^
    MappingClass.java:13: cannot resolve symbol
    symbol  : variable StreamTransformationConstants
    location: class MappingClass
                       StreamTransformationConstants.MAPPING_TRACE );
                       ^
    5 errors
    --> End of Errors
    Could some one please guide me to resolve this issue.
    Thanks in advance.
    ..Sree

  • Getting Error in java mapping: Parsing empty source. Root element expected!

    Hi Experts,
       I am using java mapping for schema validation of input message. I have followed all the standard procedures and implemented the java class in the interface mapping.
    My interface mapping is like this:
    OrderData --->Java Class ---SchemaValidate
                         Mesg Map ---OrderData_to_BAP --->BAPI Msg
    So first I want to validate the schema of the input message. If the input message is invalid then XI should throw an exception. Then I use the actual message mapping to map the input order data to the BAPI input parameters.
    In the java code I am using xerces parser.
    The java code works fine when I run it as a standalone application.
    The interface mapping also works fine if I don't include the java mapping. Ofcourse schema validation does not happen.
    But when I test the interface mapping by including the java mapping then I am getting the error:
    Call method execute of the application Java mapping SchemaValidate
    Java mapping SchemaValidate completed. (execute() of SchemaValidate
    com.sap.aii.utilxi.misc.api.BaseRuntimeException: Parsing an empty source. Root element expected!
    What am I doing wrong? Why it is not getting the root element?
    My Java code is as follows:
    import com.sap.aii.mapping.api.StreamTransformation;
    import com.sap.aii.mapping.api.StreamTransformationConstants;
    import com.sap.aii.mapping.api.StreamTransformationException;
    import java.io.*;
    import java.util.Map;
    import javax.xml.parsers.*;
    import org.xml.sax.helpers.*;
    import org.xml.sax.*;
    import org.apache.xerces.jaxp.*;
    Sample mapper for SAP-XI
    @author Gopal
    public class SchemaValidate implements StreamTransformation {
        //Constants when using XML Schema for SAX parsing.
         static final String JAXP_SCHEMA_LANGUAGE =
         "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
         static final String W3C_XML_SCHEMA =
         "http://www.w3.org/2001/XMLSchema";
         static final String JAXP_SCHEMA_SOURCE =
         "http://java.sun.com/xml/jaxp/properties/schemaSource";
    Injection of mapping parameters
    from integration engine
    @param map Map with configuration data
        public void setParameter(Map map) {
    Mapping implementation
    @param inputStream Input data from integration engine
    @param outputStream Output data to integration engine
        public void execute(InputStream inputStream,
                            OutputStream outputStream)
          throws StreamTransformationException {
            try {
                  // obtain an object of class javax.xml.parsers.SAXParser,
                  SAXParserFactory spf = SAXParserFactoryImpl.newInstance();
                  spf.setNamespaceAware(true);
                  spf.setValidating(true);
                  SAXParser sp = spf.newSAXParser();
                  // setup the schema file
                  sp.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
                  sp.setProperty(JAXP_SCHEMA_SOURCE, new File("IOReqMsgSchema.xsd"));
                  //parse the input xml using the given schema
                  sp.parse(inputStream, new ParseErrorHandler());
            catch(SAXException se) {
              se.printStackTrace();
            catch ( Exception e ) {
              throw new StreamTransformationException( e.getMessage() );
    My input message is :
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:OrderCreate_request xmlns:ns0="mynamespace">
       <ORDER>HTEST1234567</ORDER>
       <ORDER_TYPE>z001</ORDER_TYPE>
       <ORDER_NAME>Test Order</ORDER_NAME>
       <CO_AREA>INTC</CO_AREA>
       <CCTR_POSTED>1234567890888888888</CCTR_POSTED>
       <CURRENCY>USD</CURRENCY>
       <PERSON_RESP>12345679</PERSON_RESP>
    </ns0:OrderCreate_request>
    Kindly help! please this is urgent!!!!!!
    Thanks
    Gopal
    Edited by: gopalkrishna baliga on Feb 28, 2008 9:34 AM

    Hi Stefan,
       I did the code changes to return output stream and the java code works perfectly in standalone mode in my PC.
       But when I use the same in the Java mapping with XI then It throws an error "Getting Error in java mapping: Parsing empty source. Root element expected!".
    My XI J2EE server has JDK1.4.3.11.
    Is there any limitation of using SAX parser in XI? If Yes, then which parser should be used for schema validation in XI?
    I have included the XSD file for schema validation along with class files in the .jar file. This jar file is then imported in XI repository. Is the XI engine not able to read the XSD file?
    Do I have to handle reading XSD file differently? Any suggession how?
    Is this parser error due to some security access?
    Kindly help me! I have been struggling with this problem since 2 weeks. I will be greatfull to you if you can help me.
    Thanks
    Gopal

  • Java mapping runtime issue

    Hi,
    I have currently created a java mapping which unzips files and transforms plain text/falt files to xml according to a specific structure... So far so good. This stuff works perfectly when testing interface mapping in the repository. However at runtime it does not work, and this is where you clever guys come into the picture:-)
    It should be mentioned that the zip-file is dropped on a MQ-queue and picked up in XI and passed on to a BPM - the only thing the BPM does is to perform the java mapping and afterwards send one of the messages to R/3 and the other to CRM.
    The concrete error given at runtime in the PE is:
    Error handling for work item 000000718016
    Work item 000000718016: Object CL_SWF_XI_MSG_BROKER method CALL_TRANSFORMATION cannot be executed
    Parsing error before mapping: unexpected end-of-file (line 1, column 1)
    Hope somone can help me on this matter,
    Best regards,
    Daniel
    PS: In case it is of interest/use the java code used is this:
    package dk.post.xi.unzipAndConvert;
    import java.io.*;
    import java.util.Map;
    import java.util.HashMap;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipInputStream;
    import com.sap.aii.mapping.api.MappingTrace;
    import com.sap.aii.mapping.api.StreamTransformation;
    import com.sap.aii.mapping.api.StreamTransformationConstants;
    import com.sap.aii.mapping.api.StreamTransformationException;
    public class UnzipMain implements StreamTransformation {
         private MappingTrace mappingTrace = null;
         private Map param = null;
         private StringBuffer currentXmlRecord = new StringBuffer();
        private StringBuffer currentPlainRecord = new StringBuffer();
        private int[][] dataRanges = null;
        private char[] charsInCurrentRange = new char[650];
         private String[] xmlTagNames = null;
         /* (non-Javadoc)
    @see com.sap.aii.mapping.api.StreamTransformation#setParameter(java.util.Map)
    Method must be implemented when class is implementing streamTransformation
           public void setParameter(Map param) {
            this.param = param;
            if (param == null) {
               this.param = new HashMap();
    (non-Javadoc)
    @see com.sap.aii.mapping.api.StreamTransformation#execute(java.io.InputStream, java.io.OutputStream)
    Main function -- called by XI to start execution of java mapping
           public final void execute(InputStream in, OutputStream out)
                throws StreamTransformationException
                //if no input, then cancel program execution
                if (in == null) {
                     throw new RuntimeException("Something wrong with input zip file - is null");
                //input <> null. Begin upzip operation
                try {
                     //test is only relevant outside of XI
                     if (param != null) {
                          mappingTrace = (MappingTrace) param.get(StreamTransformationConstants.MAPPING_TRACE );
                  ZipInputStream zip = null;
                     try {
                          zip = new ZipInputStream(in);
                          ZipEntry ze = null;
                          out.write("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><ns0:Messages xmlns:ns0=\"http://sap.com/xi/XI/SplitAndMerge\">".getBytes());
                          while ((ze = zip.getNextEntry()) != null) {
                               writeDebugInfo("File: " + ze.getName() + " with compressed size: " + ze.getCompressedSize());
                               scrutinize(zip,(ZipEntry) ze, out);
                          out.write("</ns0:Messages>".getBytes());
                     finally {
                          if (zip != null)
                               zip.close();
                          out.flush();
                          out.close();
                } catch (Exception e) {
                     throw new RuntimeException(e + "\nSomething went wrong...");
           //Unzip flat files and convert to xml
           private void scrutinize(ZipInputStream inStream,ZipEntry zipEntry, OutputStream outstream) throws Exception {
                long start = System.currentTimeMillis();
              InputStreamReader inStreamReader = null;
              BufferedReader buffReader = null;
              byte[] xmlBytes = null;
              try {
                   inStreamReader = new InputStreamReader(inStream);
                   buffReader = new BufferedReader(inStreamReader);
                 boolean masterData = zipEntry.getName().equals("PD-01-STAMDATA.DAT");
                 boolean creditData = zipEntry.getName().equals("PD-02-KREDITVURDERING.DAT");
                 String currentLine = null;
                 if (masterData) {
                      writeDebugInfo("- Begin reading and converting every line of MasterData...");     //out-comment this outside of XI, or compilation will fail (functionality is only available in XI)
                      outstream.write("<ns0:Message1><ns1:masterData_MT xmlns:ns1=\"http://pdk/xi/kob/importDataToSap\">".getBytes());
                        while ((currentLine = buffReader.readLine()) != null) {
                           //convert one line of credit data plain into an xml record structure
                           makeXmlRecord(currentLine,true);
                           //Write record XML to XI's outputstream (appends)
                           xmlBytes = currentXmlRecord.toString().getBytes();
                           outstream.write(xmlBytes);
                      outstream.write("</ns1:masterData_MT></ns0:Message1>".getBytes());
                      writeDebugInfo("- Finished reading and converting every line of MasterData...");     //out-comment this outside of XI, or compilation will fail (functionality is only available in XI)
                 if (creditData) {
                      writeDebugInfo("- Begin reading and converting every line of CreditData...");
                      outstream.write("<ns0:Message2><ns1:creditData_MT xmlns:ns1=\"http://pdk/xi/kob/importDataToSap\">".getBytes());
                      while ((currentLine = buffReader.readLine()) != null) {
                           //convert one line of credit data plain into an xml record structure
                           makeXmlRecord(currentLine,false);
                           //Write record XML to XI's outputstream (appends)
                           xmlBytes = currentXmlRecord.toString().getBytes();
                           outstream.write(xmlBytes);
                      outstream.write("</ns1:creditData_MT></ns0:Message2>".getBytes());
                      writeDebugInfo("- Finished reading and converting every line of CreditData...");
              } finally {
                   long timeUsed = System.currentTimeMillis() - start;
                   writeDebugInfo(zipEntry.getName() + "  - Write took: " + timeUsed + " ms");
                   writeDebugInfo("Final statement entered...\n");
           //check for invalid xml chars (plus a few other strange chars) in a plain text record and if any are found update the ranges of so they correspond to the new length of a record
           private int[][] checkRange(String currentPlainLine, boolean isMasterData) {
                int counter = 0;
                int beginRange = 0;
                int endRange = 0;
                //populate array with proper data ranges/intervals according to how data is to be split
                dataRanges = isMasterData ? new int[][] {{0,2},{2,12},{12,44},{44,47},{47,50},{50,295},{295,298},{298,356},{356,426},{426,496},{496,499},{499,506},{506,510},{510,518},{518,540},{540,546},{546,552},{552,558},{558,564},{564,570},{570,576},{576,582},{582,588},{588,594},{594,604}} : new int[][] {{0,2},{2,12},{12,20},{20,23},{23,26},{26,29},{29,44}};
                //ensure stringbuffer is empty
                currentPlainRecord.delete(0,currentPlainRecord.length());
                //insert the current plain text line into stringbuffer
                currentPlainRecord.append(currentPlainLine);
              //loop through outer array (array of ranges)
              for (int i = 0; i <= (dataRanges.length-1); i++) {
                   beginRange = dataRanges<i>[0];
                   counter = beginRange;
                   endRange = dataRanges<i>[1];
                   //loop through stringbuffer, based on the value-pairs of ranges/intervals in array of arrays
                   while (counter < endRange) {
                        switch (currentPlainRecord.charAt(counter)) {
                             case '&':
                                  currentPlainRecord.insert(counter+1,"amp;");          //insert 'amp;' after '&', so that syntax conforms to xml syntax requirements (&amp;)
                                  counter += 5;                                                   //increment counter so that it continues after insertet characters
                                  updateRange(counter,4);                                        //update the array of ranges so that is corresponds to the new range
                                  break;
                             case '\'':
                                  currentPlainRecord.replace(counter,counter+1,"&");     //replace '\'' with '&'
                                  currentPlainRecord.insert(counter+1,"apos;");          //insert 'apos;' after '\'', so that syntax conforms to xml syntax requirements (&apos;)
                                  counter += 6;                                                   //increment counter so that it continues after insertet characters
                                  updateRange(counter,5);                                        //update the array of ranges so that is corresponds to the new range
                                  break;
                             case '"':
                                  currentPlainRecord.replace(counter,counter+1,"&");     //replace '"' with '&'
                                  currentPlainRecord.insert(counter+1,"quot;");          //insert 'quot;' after '"', so that syntax conforms to xml syntax requirements (&quot;)
                                  counter += 6;                                                   //increment counter so that it continues after insertet characters
                                  updateRange(counter,5);                                        //update the array of ranges so that is corresponds to the new range
                                  break;
                             case '<':
                                  currentPlainRecord.replace(counter,counter+1,"&");     //replace '<' with '&'
                                  currentPlainRecord.insert(counter+1,"lt;");               //insert 'lt;' after '&', so that syntax conforms to xml syntax requirements (&lt;)
                                  counter += 4;                                                   //increment counter so that it continues after insertet characters
                                  updateRange(counter,3);                                        //update the array of ranges so that is corresponds to the new range
                                  break;
                             case '>':
                                  currentPlainRecord.replace(counter,counter+1,"&");     //replace '>' with '&'
                                  currentPlainRecord.insert(counter+1,"gt;");               //insert 'gt;' after '&', so that syntax conforms to xml syntax requirements (&gt;)
                                  counter += 4;                                                   //increment counter so that it continues after insertet characters
                                  updateRange(counter,3);                                        //update the array of ranges so that is corresponds to the new range
                                  break;
                             case 0x7F:
                                  currentPlainRecord.replace(counter,counter+1," ");     //replace 0x7F with ' '
                                  writeDebugInfo("-- Corrected the character 0x7F ('') to ' '");
                                  counter++;
                                  break;
                             case '‘':
                                  currentPlainRecord.replace(counter,counter+1," ");     //replace 0x91 ('‘') with ' '
                                  writeDebugInfo("-- Corrected the character '‘' to ' '");
                                  counter++;
                                  break;
                             case '›':
                                  currentPlainRecord.replace(counter,counter+1," ");     //replace 0x9B ('›') with ' '
                                  writeDebugInfo("-- Corrected the character 0x9B to ' '");                              counter++;
                                  break;
                             case '†':
                                  currentPlainRecord.replace(counter,counter+1," ");     //replace '†' with ' '
                                  writeDebugInfo("-- Corrected the character '†' to ' '");
                                  counter++;
                                  break;
                             default :
                                  counter++;
                                  break;
                return dataRanges;
           //update array of ranges so that is corresponds to the new range
           private void updateRange(int currentRange, int updateRangeBy) {
              for (int k = currentRange; k < dataRanges.length; k++) {
                   if (k != currentRange) {     //never update begin interval for the current range - only for the remaining intervals
                             dataRanges[k][0] += updateRangeBy;
                   dataRanges[k][1] += updateRangeBy;     //always update end intervals
           //convert one flat record line to a xml record structure
         private void makeXmlRecord(String currentPlainLine,boolean isMasterData) {
              dataRanges = checkRange(currentPlainLine,isMasterData);
              //clear StringBuffer
              currentXmlRecord.delete(0,currentXmlRecord.length());
              //get the correct set of xml tags to be used when performing mapping between plain text and xml
              if (isMasterData) {
                   xmlTagNames = new String[] {"dum1","kob_no","dum2","corp_status","legal_form","dum3","pr_protec_code","dum4","uri","email","emp_no_grp_code","exact_no_emp","dum5","founding_date","dum6","main_industry_code","industry_code1","industry_code2","industry_code3","industry_code4","industry_code5","industry_code6","industry_code7","industry_code8","dum7"};
              } else {
                   xmlTagNames = new String[] {"dum1","kob_no","rating_date","rating_value","risc_grp_code","currency","max_credit"};
              //copy all chars in stringBuffer to the specified char[]
              currentPlainRecord.getChars(0,currentPlainRecord.length(),charsInCurrentRange,0);
              //populate XML record structure
              currentXmlRecord.append("<record>");
              for (int i = 0; i < xmlTagNames.length; i++) {
                   currentXmlRecord.append("<" + xmlTagNames<i> + ">");
                   currentXmlRecord.append(charsInCurrentRange,dataRanges<i>[0],(dataRanges<i>[1])-(dataRanges<i>[0]));
                   currentXmlRecord.append("</" + xmlTagNames<i> + ">");
              currentXmlRecord.append("</record>");
         //write debug information to correct "place"
         private void writeDebugInfo(String debugInfo) {
              if (mappingTrace == null) {
                   System.out.println("Debug: " + debugInfo);
              } else {
                   mappingTrace.addInfo("Debug: " + debugInfo);

    Hi Alex,
    Thanks for your reply. First of all I was wondering if I missed something somewhere in my generel understanding of XI and BPM's!? - I kind of sense some irony/sarkasm in beginning of your reply:-) As far as I know BPM should have no trouble receing non-xml (in my case zip-files)!?
    Anyways here goes:
    1. Yes, this is also my impression that is should be possible somehow (we do currently run sp14). However, I havent yet figured out how to do it in this case. When trying to create interface mapping between the three involved software components, I get a 'MESS_MULTI_MAP_IF_WRONG_SWCV' three times. I've searched around without being able to find any information on the error. I does seem, though, like the problem is that all objects aren't in the same software component!! But this approach is of course the prefered one...
    2. Well - you got me there. Kind of expected someone to point that out:-) This is of course something to be looked into also in order to "improve"/"enhance" the program - though it, as already pointed out, works perfectly as is.
    3. This part I have also thought about - though quickly moved away from the idea, but that is only due to lacking insight/knowhow on the subject. Interesting weblog you have written, something so I will investigate further when  time allows for it:-)
    Best regards,
    Daniel

  • Issue in Java Mapping

    Hi
    I 'm doing Java mapping implementation in one interface. Where I have tested mapping through console, it is working fine. However,when i upload .jar file into XI server, there it has been tested with unit test. It fails because of " saying one xxxxx.class file is not found". Infact, it is there in the jar. I have cross check in jar file that was uploaded to XI. Please suggest me how do i approach this issue?
    Thanks

    Hi Abhishek..
    Thanks for u r response.
    I suppose, Java version doesn't impact on package access. Since as we do for normal java class which would be bound as package includes in same jar file that we had uploaded in XI server. However, we are accessing the class irrespective of standard jar.
    In simple, as we normally can create custom jar file which we could put some class files in the same jar.
    pLZ Advice me further.
    Thanks once again.

  • Java mapping & namespace issue

    Hello,
    I am doing a java mapping from a flat file to an IDOC. After the document is mapped succesfully I call an RFC via the Adapter. When monitoring the adapter I get the error:
    com.sap.aii.af.rfc.RfcAdapterException: failed to read funtionname from XML document: missing namespace declara
    so I added the namespace reference to my java mapping to look like this :
    <ns0:IDOC_INBOUND_ASYNCHRONOUS xmlns:ns0="urn:sap-com:document:sap:rfc:functions">
    But when I test my java mapping in the builder (interface mapping) the namespace xmlns="urn:sap-com:document:sap:rfc:functions" is added to my above ns0:IDOC_INBOUND_ASYNCHRONOUS tag. The consequence is that while mapping in the integration engine the "ns0" prefix is then removed and I get the error:
    Delivery of the message to the application using connection AFW failed, due to: error while processing message to remote system:com.sap.aii.af.rfc.core.client.RfcClientException: functiontemplate from repository was.
    Any help or sample code resolving the namespace issue is welcome.
    Frank

    Hi Frank,
    I am getting the same error message. You fixed yours. Can you help me with mine. The error message is
      " Delivery of the message to the application using connection AFW failed, due to: error while processing message to remote system:com.sap.aii.af.rfc.core.client.RfcClientException: functiontemplate from repository was ."
    I am trying to send data to SAP SRM4.0 from SAP R/3 using SAP XI. XI content is delivered by SAP.
    The message is sent from R/3 to XI successfully and the XML monitor does not show any errors in XI . But the messages does not show up in SRM.
    Thanks
    Kishore.

  • Accessing a File in a Java Mapping

    Hi,
    I am accessing one Random Access File through Java Mapping Program. This is working fine in Eclipse.
    But when I imported that jar file to IR, it is throwing FileNotFound Exception while trying to test through Interface Mapping.
    Actually it is not showing any error message but by research I understood that. Can any one please help me in this regard?
    One more thing, I used the same scenario for other interface. It is working fine.
    Please help me to chase this mistery.
    Thanks,
    Yogi.

    Hi,
    I think I am giving relative path only not direct path. I am just mentioning the path from my proj name. I am not specifying any local directories. For your Information, I am mentioning the path like below:
    "ProjectName/SomeName/File_Name.txt"
    Thanks,
    Yogi.

  • Issue with java mapping in a multi-mapping scenario

    Hi
        We have  a 1:n multiple mapping scenario in XI and the source is R3 proxy and target side is files. So, creating multiple file from a single message from R3 .
    R3 --> XI --> Multiple files
    Structure of the output of the multi-mapping is
    - <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
    - <ns0:Message1>
    <Transaction>
    </Transaction>
    <Transaction>
    </Transaction></ns0:Message1>
    </ns0:Messages>
    wherein each Transaction node represents a file.
    Now, we need to introduce a constant /string like
    <!DOCTYPE Transaction PUBLIC \"-//XXXXXX//DTD BatchReceiptAuthorization//EN\" \"http://dtd.XXXXXXX.com/dtds/ReceiptAuthorization.dtd\">
    on each of the files at the very beginning - i.e within each transaction node , in the above structure, we need the above DTD string to be written.  To do this, we added a java mapping as the second mapping after the message mapping that creates this string. Is this the right approach and would it produce what we are expecting ?
    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.util.Map;
    import com.sap.aii.mapping.api.StreamTransformation;
    import com.sap.aii.mapping.api.StreamTransformationException;
    import com.sap.aii.mapping.api.StreamTransformationConstants;
    import com.sap.aii.mapping.api.DynamicConfiguration;
    import com.sap.aii.mapping.api.AbstractTrace;
    public class ModifyRootAndDelay implements StreamTransformation {
         AbstractTrace myTrace;
    public void execute(InputStream input, OutputStream output) throws StreamTransformationException {
              try{
                   BufferedReader reader = new BufferedReader(new InputStreamReader(input));
                   String NameSpacePrefix = "<!DOCTYPE Transaction PUBLIC \"-//innotrac//DTD BatchReceiptAuthorization//EN\" \"http://dtd.innotrac.com/dtds/ReceiptAuthorization.dtd\">";
                   String sLine = null;
                   StringBuffer XmlMsg= new StringBuffer();
                   String Result,PayloadBody;
                   int indexOfFirst;
                   while ((sLine = reader.readLine()) != null) {
                        XmlMsg.append(sLine);
                   String StartingTag = XmlMsg.toString();
                   indexOfFirst = StartingTag.indexOf("<MerchantID>") ;
                   PayloadBody=new String(XmlMsg.substring(indexOfFirst));
                   Result=NameSpacePrefix.concat(PayloadBody);
                   output.write(Result.getBytes());
              /*     Thread.sleep(200000); */
              }catch(Exception e){
                   myTrace.addWarning("Exception raised in the JavaMapping:modifyNamespace.java""\n The Exception Message: " e.getMessage());
                   throw new RuntimeException(e.getMessage()) ;
            }     public void setParameter(Map param) {
              myTrace = (AbstractTrace) param
                        .get(StreamTransformationConstants.MAPPING_TRACE);

    Hi XI Gurus
                       In my scenario, I sent the inputstream that is being passed to the Java execute method - to trace and I see that the whole of the xml file - as shown below  - which is the output of message mapping ( from the first mapping step ) in sent to the execute method of the java mapping a single call
    <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
    <ns0:Message1>
    <Transaction> </Transaction>
    <Transaction> </Transaction>
    </ns0:Message1>
    <ns0:Messages>
    So, I modified Java mapping program to look for multiple occurences of <Transaction> tag and prefix them with my constant DTD Literal - which is the primary reason , why I had to use Java mappings after the message mapping.
    Now, I get an error is XI- SXMB_MONI
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="MAPPING" />
      <SAP:P1>unexpected symbol; expected '<', '</', entity refe</SAP:P1>
      <SAP:P2>rence, character data, CDATA section, processing i</SAP:P2>
      <SAP:P3>0</SAP:P3>
      <SAP:P4>113</SAP:P4>
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>The exception occurred (program: CL_XMS_MAIN===================CP, include CL_XMS_MAIN===================CM00A, line: 609)</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Should I create multiple outputs - as many as the numberof target split files ( of type outputstream ) from the execute method in the java program ?

  • Java mapping - for reading the binary file contents and changing filename

    Hi,
    I have already gone through the various bolgs and threads and have not been able to find a solution to my problem.
    One blog did give some idea but did not help- "JAAPPING", an alternate way of reading a CSV file
    I am not very good in java but have been trying some out recently to fulfill the interface requirements.
    I would really appreciate if you could help am I am giving below the detailed scenario below.
    Part 1- working fine - The incoming file looks like:
    :20:STMEMU096868DUBE
    :25:001180256210
    :28C:00371/00001
    :60F:C090617AED742136,92
    :61:0906300630CD34,27FINTCREDIT INTEREST
    26MAY2009 TO 25JUN2009
    :62F:C090630AED742171,19
    :64:C090630AED742171,19
    The file name as received is:TCDE.BLQSAM.SAEA2682.C0084025.A9G24T58.20090724195908
    This file without any conversion is placed on XI server dircetory folder.
    Part 2 - need to develop
    The file should now be renamed according to the incoming value in 2nd line - specifically the 12 digit value 001180256210 and placed on the R/3 dircetory folder.
    The new file name in the above example should be:
    AC_NO_001180256210_datetime
    The module for the above was created and the last time I checked it was working.
    However, when I wanted to do final testing in Dev and move the changes further, the module has seemed to have stopped working so I need an alternate solution fast.
    I was thinking of doing the Java mapping as I will be more in control as to what is going on thereby reducing the dependency.
    There is no need to create any target xml structure as the file as it is needs to be placed in the target folder with a new name.
    I can get the file name in UDF which I have already created but i am not usre if it working.
    Can you please help?
    Any help will be greatly appreciated.
    Regards,
    Archana
    +44-7867636863

    Hi Stephen
    The xml must be getting added in the below part of the code. It is coming from arg[0]
    You can put a check and get it removed.
    while ((len = arg0.read(buffer)) != -1) {
      arg1.write(buffer, 0, len);
    Regards
    Osman

  • Java Mapping Or Adapter Module for MultiLevel File Content Conversion ??

    Hi Experts,
    Hi All,
    As we all know file content conversion cannot parse more than three level even if we use FCC paramenters or MessageTransform Bean /StrictXmlToPlain Bean.
    Currently i am facing an scenario where i can expect an content coversion with four or five levels.
    for ex.
    Target Message Looks like
    Header(0..1)
           |_____X
           |_____Y
           |_____Detail(0.n)
                 |____A
                 |____B
                 |____SubDetail(0.n)
                        |_____Trailer(0.n)
                                |______rec1
                                |______rec2
                                |______rec3(0..n)
                                       |______Subrec1
                                       |______Subrec2
    So my question how can i do the FixedLength/CSV in the target system ???
    Shall i do java mapping ? if yes then any code example relevant to this type of scenario
    Shall i do adapter module development ?if yes then any code example relevant to this type of scenario
    Thanks In Advance
    Ronit Mishra

    Target Message Looks like
    Header(0..1)----
    Level 1
           |_____X
           |_____Y
           |_____Detail(0.n)----
    Level 2
                 |____A
                 |____B
                 |____SubDetail(0.n)----
    Level 3
                        |_____Trailer(0.n)----
    Level 4
                                |______rec1
                                |______rec2
                                |______rec3(0..n)----
    Level 5
                                       |______Subrec1
                                       |______Subrec2

Maybe you are looking for

  • Running FF 34.0.5 on Windows Vista OK, but on Windows 8.1all custom buttons are gone every time I close and then open Firefox

    When I open FF on Windows 8.1, buttons are always gone. I have to use customize again to add the buttons I want.

  • Crystal Reports 2008 on Windows 7

    I have a client running Crystal Reports 2008 in a Windows 7 environment. The client states that when printing Crystal Reports, they will only print to his local printer, to the bypass tray. The client states that when changing the printer to any othe

  • Can a wireless router (station role non-root) associate to 2 APs ?

    can a wireless router (as station role non-root) associate to 2 simultaneous APs ? say something like this on an 18xx router: dot11 ssid firstAP dot11 ssid secondAP interface Dot11Radio0/1/1 ssid firstAP ssid secondAP what I want is something like tw

  • Logon Database Trigger

    I want to write a database trigger that fires when a user logs onto the database. Oracle has this in 8i+. I am using 9i. I want to use this trigger to determine if the session is questionable(ie. Hacker). If it is then i want to either kill the sessi

  • SD Problems In Satellite Laptop

    I purchased a Satellite Laptop with a built in SD Card Reader.  When I insert a card in the reader it goes through the motions of reconizing it, identifying what size the card is and then pops up with a window that says that the card needs to be form