Soap Sender Adapter Preserve And Access Soap Header

Hi,
I would like to preserve the Soap Header created by a client and access it in a mapping using the the Soap Sender Adapter (SP16). Does anybody know how to do this?
Kind regards,
Heiko

Hello Udo,
I have found a solution to this problem. It is possible to add header entries to the DynamicConfiguration which is available by an API:
soapMsg.append("<SOAP-ENV:Header>");
soapMsg.append("<SAP:DynamicConfiguration xmlns:SAP=\"http://sap.com/xi/XI/Message/30\" xmlns:SOAP=\"http://schemas.xmlsoap.org/soap/envelope/\" SOAP:mustUnderstand=\"1\">");
soapMsg.append("<SAP:Record namespace=\"http://sap.com/xi/XI/System/SOAP\" name=\"SRmsUser\">test</SAP:Record>");      
This code snip shows Java client code to add an element to the SOAP header which corresponds to the DynamicConfiguration. In XI it will be accessable using the respective API.
Cheers,
Heiko

Similar Messages

  • SAP PI  Soap Send adapter  is not available.

    Hi  Experts:
    i encounter a issue when use Soap sender adapter.  i configured  soap sender adapter senario and generate  wsdl  in the id  .
    and then  import wsdl document to the  soapui to test the webservice.  but throw some exception blow:
    <!see the documentation>
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP:Body>
          <SOAP:Fault>
             <faultcode>SOAP:Server</faultcode>
             <faultstring>Server Error</faultstring>
             <detail>
                <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
                   <context>XIAdapter</context>
                   <code>ADAPTER.JAVA_EXCEPTION</code>
                   <text>java.lang.NullPointerException
    +     at com.sap.aii.af.sdk.xi.mo.xmb.XMBMessageOperator.getQualityOfServiceAsString(XMBMessageOperator.java:2109)+
    +     at com.sap.aii.adapter.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:943)+
    +     at sun.reflect.GeneratedMethodAccessor1126.invoke(Unknown Source)+
    +     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)+
    +     at java.lang.reflect.Method.invoke(Method.java:585)+
    +     at com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:46)+
    +     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:71)+
    +     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:38)+
    +     at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.invoke(Interceptors_Transaction.java:22)+
    +     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:21)+
    +     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:16)+
    +     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:133)+
    +     at com.sap.engine.services.ejb3.runtime.impl.DefaultEJBProxyInvocationHandler.invoke(DefaultEJBProxyInvocationHandler.java:164)+
    +     at $Proxy3087.process(Unknown Source)+
    +     at com.sap.aii.af.app.mp.ejb.ModuleProcessorBean.process(ModuleProcessorBean.java:275)+
    +     at sun.reflect.GeneratedMethodAccessor518.invoke(Unknown Source)+
    +     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)+
    +     at java.lang.reflect.Method.invoke(Method.java:585)+
    +     at com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:46)+
    +     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:71)+
    +     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:38)+
    +     at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.invoke(Interceptors_Transaction.java:22)+
    +     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:21)+
    +     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:16)+
    +     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:133)+
    +     at com.sap.engine.services.ejb3.runtime.impl.DefaultEJBProxyInvocationHandler.invoke(DefaultEJBProxyInvocationHandler.java:164)+
    +     at $Proxy330.process(Unknown Source)+
    +     at com.sap.aii.adapter.soap.web.MessageServlet.callModuleProcessor(MessageServlet.java:175)+
    +     at com.sap.aii.adapter.soap.web.MessageServlet.doPost(MessageServlet.java:470)+
    +     at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)+
    +     at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)+
    +     at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.runServlet(FilterChainImpl.java:162)+
    +     at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:81)+
    +     at com.sap.engine.services.servlets_jsp.server.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:124)+
    +     at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:73)+
    +     at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:441)+
    +     at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:291)+
    +     at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:396)+
    +     at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:385)+
    +     at com.sap.engine.services.servlets_jsp.filters.DSRWebContainerFilter.process(DSRWebContainerFilter.java:48)+
    +     at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)+
    +     at com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:76)+
    +     at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)+
    +     at com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:240)+
    +     at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)+
    +     at com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:78)+
    +     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.MemoryStatisticFilter.process(MemoryStatisticFilter.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.filters.DSRHttpFilter.process(DSRHttpFilter.java:42)+
    +     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:457)+
    +     at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:250)+
    +     at com.sap.engine.services.httpserver.server.rcm.RequestProcessorThread.run(RequestProcessorThread.java:45)+
    +     at com.sap.engine.core.thread.execution.Executable.run(Executable.java:109)+
    +     at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:314)</text>+
                </s:SystemError>
             </detail>
          </SOAP:Fault>
       </SOAP:Body>
    </SOAP:Envelope>
    nd the find a note :sapnote_0001239995  can solve the problem in the pi 7.10 .but my pi is 7.11 .anybody know which note  should be apply to solve the problem in the pi7.11 .thanks .

    hi,
    Either you are using an incomplete URL
    you can however try with this URL format:
    http://<IPAddress OR ServerName>:<PORT_No>/XISOAPAdapter/MessageServlet?channel=:<SenderBusinessService>:<SenderSOAPCC>&version=3.0&Sender.Service=<SenderBusinessService>&Interface=<SenderInterfaceNamespace>%5E<SenderMI>
    refer blog related ur issue:
    ADAPTER.JAVA_EXCEPTION: Sender soap adapter PI 7.11
    thanks,

  • Invocation of SOAP Sender Adapter using Apache SOAP

    Hi,
    I'm trying to invoke the XI SOAP Sender Adapter using the Apache SOAP API. It seems that my message header is missing a few parameters (see exception below). Does anybody know which to set?
    Regards,
    Heiko
    ==========
    Exception:
    <?xml version='1.0'?>
    <!-- see the documentation -->
    <SOAP:Envelope xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/'>
      <SOAP:Body>
        <SOAP:Fault>
          <faultcode>SOAP:Server</faultcode>
          <faultstring>Server Error</faultstring>
          <detail>
            <s:SystemError xmlns:s='http://sap.com/xi/WebService/xi2.0'>
              <context>XIAdapter</context>
              <code>Exception</code>
              <text><![CDATA[
    com.sap.aii.af.mp.module.ModuleException
         at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:502)
         at com.sap.aii.af.mp.module.ModuleLocalLocalObjectImpl3.process(ModuleLocalLocalObjectImpl3.java:103)
         at com.sap.aii.af.mp.ejb.ModuleProcessorBean.process(ModuleProcessorBean.java:227)
         at com.sap.aii.af.mp.processor.ModuleProcessorLocalLocalObjectImpl0.process(ModuleProcessorLocalLocalObjectImpl0.java:103)
         at com.sap.aii.af.mp.soap.web.MessageServlet.callModuleProcessor(MessageServlet.java:162)
         at com.sap.aii.af.mp.soap.web.MessageServlet.doPost(MessageServlet.java:507)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:392)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:345)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:323)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:865)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:240)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:37)
         at com.sap.engine.core.cluster.impl6.session.UnorderedChannel$MessageRunner.run(UnorderedChannel.java:71)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged1(Native Method)
         at java.security.AccessController.doPrivileged(AccessController.java:321)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:159)
    Caused by: java.lang.Exception: Bubble configuration error: parameter 'XI.InterfaceNamespace' is missing
         at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.getParaRequired(XISOAPAdapterBean.java:895)
         at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.createDefaultMessageHeader(XISOAPAdapterBean.java:942)
         at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.setup(XISOAPAdapterBean.java:214)
         at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:496)
         ... 22 more
              ]]></text>
            </s:SystemError>
          </detail>
        </SOAP:Fault>
      </SOAP:Body>
    </SOAP:Envelope>

    Hi Heiko,
    You are missing the Namespace Parameter in the sender soap adapter configuration in XI3.0
    Thanks
    Prasad

  • SOAP sender adapter issue

    Hi,
    We are facing a peculiar issue when using SOAP sender adapter.It is a SOAP-XI-ECC scenario.
    We have created WSDL using propose URL. Edited the address location in WSDL and included QoS=ExactlyOnce.
    When we are testing from SOAPUI, it is making a asynchronous call, which is the requirement. But when the actual sender is sending the data using the same WSDL, it is making synchronous call. Any idea if Synchronous/Asyncronous decision/setiing is made at XI end or the portal end? And what is the solution?
    Thanks,
    Vishal

    Hi Shabarish,
    As mentioned in my query I have already tested it from SOAPUI and it is making asynchronous call.
    URL is:
    [http://server/sap/xi/engine?type=entry&version=3.0&Sender.Service=BusinessService&Interface=http://namespace^MI_product_oa&QualityOfService=ExactlyOnce]
    Regards,
    Vishal

  • Use of variable header XHeaderName1 in SOAP sender adapter

    Hi all,
    I have a doubt regarding the use of adapter-specific attributes in SOAP sender adapter. In specific:
    the SOAP client should be able to pass a variable with the SOAP request (XHeaderName1 header variable) and this should be available in mapping (Dynamic configuration)
    I've already checked the [help page|http://help.sap.com/saphelp_nw04/helpdata/en/fc/5ad93f130f9215e10000000a155106/frameset.htm] but it seems I'm doing something wrong.
    I tried with those settings in SOAP adapter configuration:
    Keep headers checked
    XHeaderName1 = Test
    I try to call the SOAP adapters in the following 2 ways, but none works (the value is not available in message mapping with Dynamic configuration)
    1. Pass "Test" value xxxx in SOAP Header as a tag
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
         <SOAP-ENV:Header>
              *<Test>xxxx</Test>*
         </SOAP-ENV:Header>
         <SOAP-ENV:Body>
         </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    2. Pass "Test" value xxxx in SOAP URL
    http://host:50000/XISOAPAdapter/MessageServlet?channel=p:s:c&version=3.0&Sender.Service=...&Interface=...&Test=xxxx
    Could anyone give me a hint about how to pass those values in the SOAP call and eventually the correct config. of SOAP sender ?
    Thanks a lot,
    Manuel

    Hi Manuel,
    Could you give a bit more detail on how you handled the SOAP message yourself.
    I have a similar issue. I am consuming a non SAP Web Service which requires a non-standard token element to be passed back. I have created a an RFC sender to SOAP reciever scenario which works fine for the inital logon and returns the token it expects in the follow up messages.
    At present I'm at a loss so your help would be much appreciated. We have got round the immediate issue by creating and sending the SOAP message directly from SAP WAS.
    Could we use the XI Adapter and ABAP proxy in a similar way?
    Thanks,
    Tim J.

  • 'Keep Header' Option in SOAP sender adapter not working

    Hi all
    I have exposed  a webservice using a SOAP sender adapter in XI. A SOAP client is sending request to this service.
    The SOAP request has some elements in the header like wssecurity and ws addressing tags.
    When I remove the header elements and send the request my scenario works as expected but when I include the header fields I get a time out in my soap client application and cannot see any message, any where on  XI. Can somebody help me understand why this is happening.
    Thanks
    Dilip

    Hi Stefan
    In my scenario it is ok if XI ignores the soap header tags it does not understand. I want the system to ignore the header tags and go ahead and process only the payload.
    But unfortunately I keep getting a time out whenever I send a request with the header tags. When I remove the header I can sucessfully post documents.
    I tried increased the time out to 5 min but still continue to get the problem.  So am sure the problem is not exactly related to timeout, but due to the header tags.
    What do you suggest?
    Regards
    Dilip

  • Reading Header data in a SOAP Envelope for SOAP Sender Adapter

    Hello All,
    Am using a SOAP sender adapter and want to use the data inside the SOAP Header for some routing purpose(extended receiver determination). Any SOAP message coming into XI will look something like below. But XI will pass the contents of <SOAP-ENV:Body> to Payload and <SOAP-ENV:Header> to the SOAP Header category you can see that in SXMB_MONI.
    Is there a way to read the data in my SOAP Header to be later used in my extended receiver determination.
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:Q-ENV="/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
         <SOAP-ENV:Header>
              <Q-ENV:Header>
                   <Q-ENV:Sender-Id>1</Q-ENV:Sender-Id>
                   <Q-ENV:Receiver-Id></Q-ENV:Receiver-Id>
                   <Q-ENV:Correlation-Id></Q-ENV:Correlation-Id>
                   <Q-ENV:Message-Id></Q-ENV:Message-Id>
                   <Q-ENV:Date-Sent></Q-ENV:Date-Sent>
                   <Q-ENV:Document-Type></Q-ENV:Document-Type>
                   <Q-ENV:Message-Format></Q-ENV:Message-Format>
              </Q-ENV:Header>
         </SOAP-ENV:Header>
         <SOAP-ENV:Body>
              <Q-ENV:Body>
                   <Q-ENV:Content-Type>text/xml</Q-ENV:Content-Type>
                   <Q-ENV:Message-Type></Q-ENV:Message-Type>
                   <Q-ENV:Encoding>UTF-8</Q-ENV:Encoding>
                   <Q-ENV:Message-Body>
         </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    Thanks for your replies in advance.
    Regards,
    Prashanth

    Hello,
    but they were not getting any response back from XI and the sending system kept resending the message.. may be it was acting like a HTTP post.
    The method that is used by the native SOAP Adapter is always HTTP Post. Not sure why you are not getting a response, have you checked the outbound firewall of the sending party or the inbound firewall of XI? To which SOAP URL are you sending to?
    Hope this helps,
    Mark

  • SOAP sender adapter and several interfaces

    I have several interfaces and want to connect them via SOAP sender adapter. How can I use 1 communication channel for this interfaces? or do i need to create communicaton channel for each interface?

    Hi,
    you can't use one communication channel, cause you got different WS.
    As you have a WS individual parameter (
    SOAP action) in the communication channel you need individual communication channels.
    A workaround would be to develop a >wrapper WebService< and deploy it on the backend. This Wrapper is able to call the different other WSs.In this case you need only one CC. Additionaly you need a parameter, which tells the wrapper-WS which individual WS he has to call.
    Regards Mario
    Message was edited by:
            Mario Müller

  • Variable Transport binding - SOAP Sender Adapter

    Hi All
    have a scenarion where Sender System is sending Custom SOAP Header as below into P through SOAP Sender ChannelI.
    And the requirement is to access the values coming in Header fields, example within Message Mapping need to Map Headername1 value to Outgoing structure.
    <soapenv:Header>
         <Header1>S1</Header1>
         <Header2>S2</Header2>
         <Header3>S3</Header3>
    </soapenv:Header>
       <soapenv:Body>
         u2026..
       </soapenv:Body>
    Have checked the Paramter KEEP Headers in SOAP Adapter and in Adapter Specific Message Attributes have defined the following
    Variable Header (XHeaderName1) = Header1
    Variable Header (XHeaderName2) = Header2
    Variable Header (XHeaderName1) = Header3
    Now need to know what should be mentioned in the UDF in the Message Mapping for accessing Dynamic Configuration. Will these headers mentioned will be a part of Dynamic Configuration or not ?
    Using the below UDF and its failing in Message Mapping - kindly suggest the corect way of achieving the same
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key1 = DynamicConfigurationKey.create( "http://sap.com/xi/XI/System/SOAP", "XHeaderName1");
    String value = conf.get(key1);
    return  value  ;
    Appreciate response in this regard
    //Swetank

    Hi Abhishek
    Its failing at runtime at Message Mapping stage. The real problem is that I can't see the Header1 in my Dynamic Configuration header - it has all the other fields like SServerHost, SRemoteUser, but not my Header1 (S1) field. Thus either the UDF is wrong or any configuration in SOAP Sender Channel needs to be adjusted.
    Further I am not sure whether Custom SOAP Header fields can be a part of Dynamic Configuration or they only show fields which are part of HTTP header.
    //Swetank

  • Using custom http headers in SOAP sender adapter

    Hi,
    my problem is exactly the same as reported [here|Re: SOAP Sender - Extract Header Values;] and [here|Variable Transport Binding - Soap Sender;
    Basically I'd like to send through the soap sender adapter some custom http headers. I check the necessary options in the advanced tab (set adapter-specific message attributes and variable transport binding), and in the variable header one I put x-StoreCode, which is the same http header I send to PI.
    But I won't see anything in the dynamic configuration section when the message is persisted in PI.
    Very surprised that I've seen this issue is a common problem others have faced before without success.
    Thanks!

    Hi Michal,
    the extra info I'm trying to send separated from the message is an http header, not part of the query string.
    If I incorporate the extra info as a parameter to the query string like this, for example:
    http://host:50000/XISOAPAdapter/MessageServlet?senderParty=&senderService=S1&receiverParty=&receiverService=&interface=Int&interfaceNamespace=urn:test&x-StoreCode=13&nosoap=true
    Then I can see the value in the dynamic configuration section:
    <SAP:Record namespace="http://sap.com/xi/XI/System/SOAP" name="SQueryString">senderParty=&senderService=S1&receiverParty=&receiverService=&interface=Int&interfaceNamespace=urn:test&x-StoreCode=13&nosoap=true</SAP:Record>
    But what I'm trying to do shoould be possible, according to sap help:
    http://help.sap.com/saphelp_nwpi71/helpdata/en/fc/5ad93f130f9215e10000000a155106/content.htm (section Define Adapter-Specific Message Attributes)

  • ASMA in SOAP Sender adapter.

    Hi All,
    Using ASMA under SOAP sender adapter I am trying to get the username of the user . I am referring below links for the same:
    /people/michal.krawczyk2/blog/2009/05/26/pixi-pseudo-principal-propagation (referring this only for getting username)
    getting user name from sopa header
    But while testing through XML SPY , i am getting error :
    Com.sap.engine.interfaces.messaging.api.exception.MessagingException: Received HTTP response code 500 : Error during parsing of SOAP header.
    Please help??.
    Thanks
    Amit

    Hi.
    I have created WSDL file using below URL:
    http://ISVSAPPIDEV:50100/XISOAPAdapter/MessageServlet?channel=:BS:CC_SOAP_Sender
    Actually its a synchronous SOAP -PI - RFC scenario. When i am pinging the PI through XML spy(ASMA AND Transport Binding is UNCHECKED in soap sender channel)  i am getting the response back from RFC,  but when i am pinging after chking the ASMA and Transport Binding in SOAP sender adapter i am getting this error(the message is itself not reaching the PI):
    Com.sap.engine.interfaces.messaging.api.exception.MessagingException: Received HTTP response code 500 : Error during parsing of SOAP header.
    Thanks
    Amit

  • Remove XML Prefix in SOAP Sender Adapter

    Hi
    I am using a SOAP sender adapter and testing it from SOAP UI. The format that is generated from the web service is
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
       <soapenv:Body>
          <sap:SALES_ORDER xmlns:sap="http://XYZ.org/">
             <sap:HEADER>
                <sap:BATCH_ID>XYZ</sap:BATCH_ID>
                <sap:CREATE_DT>XYZ</sap:CREATE_DT>
    This format when processed in SOAP UI gave error which its not giving for other files. Clearly I need to remove this sap: tag, I can't use XML anonymizer as it is SOAP adapter and I can't select do not use soap env...Could anyone provide me Java/xslt code for the same..I tried all the codes on sdn but none of them worked.
    Regards,

    SImple Java mapping, that should help
    import java.io.InputStream;
    import java.io.OutputStream;
    import com.sap.aii.mapping.api.*;
    import org.w3c.dom.*;
    public class DeleteCDATA_DOM_mapping extends  AbstractTransformation  {
         public void traceXML(Node n,int i)
         {   AbstractTrace trace = getTrace();
              trace.addInfo(i+"$"+n.getNodeName());
              trace.addInfo(i+"$"+n.getNodeValue());
              trace.addInfo(i+"$"+n.getNodeType()+"");
         public void traceNL(NodeList nl)
              {       for (int i=0 ; i<nl.getLength();i++)
                        traceXML(nl.item(i),i);
         public void transform(TransformationInput in, TransformationOutput out)
                   throws StreamTransformationException {
                        AbstractTrace trace = getTrace();
                             try {
                                  InputStream is0=in.getInputPayload().getInputStream();
                                  StringBuffer out1 = new StringBuffer();
                                  byte[] b = new byte[4096];
                                  for (int n; (n = is0.read(b)) != -1;) {
                                       out1.append(new String(b, 0, n,"UTF-8"));
                                  String sss=out1.toString();
                                  sss=sss.replaceAll("<sap:", "<");
                                  sss=sss.replaceAll("</sap:", "<");
                                  OutputStream os = out.getOutputPayload().getOutputStream();
                                  os.write(sss.getBytes("UTF-8"));
                             } catch (Exception e) {
                                  throw new StreamTransformationException(
                                       "Exception in DeleteCDATA_DOM_mapping JAVA mapping ): "
                                            + e.getMessage());

  • Problem to invoke SOAP Sender Adapter

    Hi,
    i've got a problem to invoke the SOAP sender adapter. The returned exception says:
    "Some of the IS access information is not available. SLDAcess property may be set to true, but SLD is not available."
    I can access the SLD web client and I have also refreshed the SLD runtime cache. The J2EE engine had a shutdown due to an "out of memory error", could it be that some things have become upside down there?
    Regards,
    Heiko

    hi,
    restart your j2ee server and try again.
    naveen

  • HTTPS-based SOAP Sender Adapter

    Dear all,
    We're using NetWeaver 2004s SP12. I need to enable an HTTPS based SOAP sender adapter. According to online-help document at http://help.sap.com/saphelp_nw2004s/helpdata/en/fc/5ad93f130f9215e10000000a155106/content.htm, there should be a field "HTTP security level" to specify whether HTTPS is used. But I cannot find it in the communication channel configuration UI. Does anybody have any idea?
    Thanks + Best Regards
    Jerome

    Hi 
    Just a try with this link am not sure ...
    <i>If you want to specify security checks in the message header for the plain HTTP inbound channel, create a communication channel <b>for the party and service</b> in the Integration Directory.</i>
    http://help.sap.com/saphelp_nw04/helpdata/en/43/64db4daf9f30b4e10000000a11466f/content.htm

  • Error while posting messages to SOAP sender adapter SP 13

    Hi Friends,
                    I have configured a SOAP sender adapter in XI 3.0 and is using the URL
    http://host:port/XISOAPAdapter/MessageServlet?channel=:BS_WEBSERVICE:CC_WEBSERVICE_SOAP to post the messages. When I open the URL in the browser I am getting the error.
    Message Servlet is in Status ERROR
    Status information:
    Servlet com.sap.aii.af.mp.soap.web.MessageServlet (Version $Id: //tc/aii/30_VAL_REL/src/_adapters/_soap/java/com/sap/aii/af/mp/soap/web/MessageServlet.java#5 $) bound to /MessageServlet
    Classname ModuleProcessor: null
    Lookupname for localModuleProcessorLookupName: localejbs/ModuleProcessorBean
    Lookupname for remoteModuleProcessorLookupName: null
    ModuleProcessorClass not instantiated
    ModuleProcessorLocal not instantiated
    ModuleProcessorRemote not instantiated
    But when I test the URL http://host:port/XISOAPAdapter/HelperServlet?action=FindChannel&channel=:BS_WEBSERVICE:CC_WEBSERVICE_SOAP to check the communication channel I am getting the right response as below.
    <?xml version="1.0" ?>
    <http://host:port/XISOAPAdapter/HelperServlet?action=FindChannel&channel=:BS_EBTR_WEBSERVICE:CC_EBTR_WEBSERVICE_SOAP> <s:ChannelInfo xmlns:s="http://sap.com/xi/WebService/xi30">
      <channelID>e7ac884596ea3d088cbfd8b434f942f2</channelID>
      <name>CC_WEBSERVICE_SOAP</name>
      <type xmlns:st="http://sap.com/xi/XI/System">st:SOAP</type>
      <direction>INBOUND</direction>
      <party />
      <service>BS_WEBSERVICE</service>
      </s:ChannelInfo
    I used the http capture to debug, In the 1st case though I am getting "Message Servlet in status error" I am seeing a 200 OK code in the http capture tool. When the message is posted from .net client proxy we are getting a 500 internal server error.
    Am not sure what causes the error ? I saw two notes in SDN related to SOAP - J2EE SP13. We are in SP13. Is this the issue ? Wanted to know your opinion before applying the notes.
    Thanks & Regards,
    Mathew

    ABAP & Java stack was on different SP levels.

Maybe you are looking for

  • How Do I determine what AP Group an AP Belongs to with WCS?

    I am running WCS 7.0.164 and I can't seem to find where I can determine what AP Group an AP belongs to. Can anyone point me in the right direction? i'd expect it to be a field under Monitor/Access Point but I don't see it and my google-fu is getting

  • Oracle SQL template to create re-usable DDL/DML Scripts for Oracle database

    Hi, I have a requirement to put together a Oracle SQL template to create re-usable DDL/DML Scripts for Oracle databases. Only the Oracle DBA will be running the scripts so permissions is not an issue. The workflow for any DDL is as follows:- 1) New T

  • Streifen im Bildschirm MacBook pro early 2009

    Zeitweise bilden sich am unteren Bildschirmrand nach oben gerichtete Streifen ab. Mit einer Tastenkombination soll das verschwinden - weiß das wohl jemand. Danke im Voraus!

  • LDAP and SAP integration

    Hi, As a part of a project requirement, we are trying to integrate Solution manager with LDAP (Lightweight Directory Access Protocol). Using the directory service, we are trying to synchronize the CUA (Central user administration within Solution mana

  • Error when installing WEB AS JAVA on HPUX.

    The environmantal variables are set. JAVA_HOME=/opt/java1.4 and PATH=/opt/java1.4/bin its showing the version and even it works when i do echo $JAVA_VERSION. i tried with sdk1.4.2.8 and aslo with version sdk1.4.2.6 for both it give the same error. ER