SOAP dynamic

Scenario is X --> SAP XI ---> Y.
Y is a webserver. So I am using SOAP receiver channel.Generally there is an option in receiver channel to mention target URL.
Is it possible to read the target URL dynamically from the message mapping(If sender system sends it in the Input payload)?
Or
Is there any option like variable substitution in SOAP receiver communication channel?
Thanks
Regards,
Naresh

Hi Naresh,
1.Do I need to add an extra field to the target structure(target DT) to handle the URL?
No that is not required, as the ASMA that are set in the channel are not a part of the message payload but the header. The server url will be set and you can see the dynamic url in the DYNAMIC CONFIGURATION tab of SXMB_MONI.
See this link for more details on dynamic configuration:
http://help.sap.com/saphelp_nw04/helpdata/en/43/03612cdecc6e76e10000000a422035/frameset.htm
2.If I enable Adapter specific attributes in receier soap channel, what I needs to give in target URL option?What are the other changes I need to do in the channel?
You can provide any dummy value there. It will be over written by the dynamic url provided. No other changes are required.
Regards,
Sanjeev.

Similar Messages

  • SOAP adapter and dynamic target URL

    My scenario: synchronous communication ABAP Proxy <=> XI <=> External WebServices.
    There is a need to have configurable (dynamic) target URL for SOAP Adapter. This target should be configurable from ABAP Proxy. Any idea how can I achieve my goal?
    Some additional notes why I need configurable target URL. I've multiple WebService instances which has identical interfaces and the only difference is target URL. I see no need to define for each webservice different SOAP Adapter. The other thing is that customer want to have configuration of destination (target) url on backend system (where ABAP Proxy is used).

    Check http://help.sap.com/saphelp_nw70/helpdata/EN/29/5bd93f130f9215e10000000a155106/frameset.htm
    It's possible to set the URL for Soap dynamically.
    To process adapter attributes in the message header of the XI message, set the Use Adapter-Specific Message Attributes indicator and the Variable Transport Binding indicator.
    You can evaluate the following attributes in the message header:
    Description: You can set the entire URL.
    Technical name: TServerLocation

  • Show icon on table insert

    hi i would like to have a notice on my webpage if a new
    record gets inserted to a table in my database
    ie if a new record is entered a small icon appears on the
    page, can this be done without having to refresh the page?

    There is another option of using SOAP & Dynamic HTML. You
    have to write a component in VB that will retrive the data from
    your database and return back. The method in the VB has to be
    exposed and SOAP WSDL configured. You can use MS SOAP toolkit to
    built the WSDL for your component if you are not used to it.
    In your web page, write javascript that calls a function say
    every minute. This javascript function has to use MSXML objects and
    submit a request as SOAP call. You will get the response and based
    on the response, dynamically manupulate your web page without
    refreshing.
    If you are not familiar with all these write a <IFRAME>
    with no border in your page and this frame content will refresh
    every minute to get the content what you want. Really the user will
    not know you are refreshing the page as the iframe will be small
    and only a part of your page.

  • Error while passing URL Dynamically in SOAP AXIS adapter..!!

    Hi ,
    Idoc> XI>SOAP-AXIS
    I am doing a scenario where I need to pass the URL dynamically in SOAP-AXIS adapter by taking the RCVPRN of Idoc.
    If
    RCVPRN = 100 , message has to go to http://10.190.25.16:8210/file/receiver
    RCVPRN = 200 , message has to go to    http://10.190.25.16:8210/file/receiver2
    RCVPRN = 300 , message has to go to    http://10.190.25.16:8210/file/receiver3
    I used the below UDF and it is working correctly and generating the URL dynamically .
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey keyHeader1 = DynamicConfigurationKey.create( "http://sap.com/xi/XI/System/SOAP", "TServerLocation");
    conf.put(keyHeader1, a);
    return "";
    The value is coming in SOAP document as expected like below.
    <sap:DynamicConfiguration xmlns:sap="http://sap.com/xi/XI/Message/30" SOAP:mustUnderstand="1">
      <sap:Record namespace="http://sap.com/xi/XI/System/SOAP" name="TServerLocation">http://10.190.25.16:8210/file/receiver3</sap:Record>
      </sap:DynamicConfiguration>
    I used the below Configuration modules in receiver SOAP-AXIS adapter as suggested in Note 1028961.
    AF_Adapters/axis/AFAdapterBean ---> afreq
    AF_Adapters/axis/HandlerBean ---> xireq
    AF_Adapters/axis/HandlerBean ---> dc
    AF_Adapters/axis/HandlerBean ---> remover
    AF_Adapters/axis/HandlerBean ---> trp
    AF_Adapters/axis/HandlerBean ---> xires
    AF_Adapters/axis/AFAdapterBean ---> afres
    xireq -> handler.type-> java:com.sap.aii.axis.xi.XI30OutboundHandler
    dc -> handler.type-> javasap.aii.axis.xi.XI30DynamicConfigurationHandler
    dc ---> key.1 ---> write http://sap.com/xi/XI/System/SOAP TServerLocation
    dc ---> location.1 ---> context
    dc ---> value.1 ---> transport.url
    remover ---> handler.type ---> java:com.sap.aii.axis.soap.HeaderRemovalHandler
    remover ---> namespace ---> http://sap.com/xi/XI/Message/30
    trp ---> handler.type ---> java:com.sap.aii.adapter.axis.ra.transport.http.HTTPSender
    trp ---> module.pivot ---> true
    xires ---> handler.type ---> java:com.sap.aii.axis.xi.XI30OutboundHandler
    and I am getting the below error in SOAP-AXIS channel at the point java:com.sap.aii.adapter.axis.ra.transport.http.HTTPSender.
    2009-03-02 15:23:44 Success Axis: getting handler trp of java:com.sap.aii.adapter.axis.ra.transport.http.HTTPSender
    2009-03-02 15:23:45 Error Axis: error in invocation: (500)internal server error
    2009-03-02 15:23:45 Error MP: Exception caught with cause (500)internal server error
    2009-03-02 15:23:45 Error Exception caught by adapter framework: (500)internal server error
    2009-03-02 15:23:46 Error Delivery of the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: (500)internal server error: (500)internal server error.
    2009-03-02 15:23:46 Error The message status set to NDLV.
    Kindly let me know if anyone has any idea what might be wrong?
    Note : The given URL is correct one because I cross checked by passing them normally by giving directly in adapter and they are all working and the message is going to receiver.
    Thanks
    Deepthi

    Hi Stefan,
    >> dc -> handler.type-> javasap.aii.axis.xi.XI30DynamicConfigurationHandler
    >> dc ---> key.1 ---> write http://sap.com/xi/XI/System/SOAP TServerLocation
    >> dc ---> location.1 ---> context
    >> dc ---> value.1 ---> transport.url
    >> Try read instead of write
    When I tried with this, I am getting the below error "Connection refused ".
    Success Axis: entering HandlerBean
    Success Axis: getting handler trp of java:com.sap.aii.adapter.axis.ra.transport.http.HTTPSender
    Error Axis: error in invocation: java.net.ConnectException: Connection refused
    Error MP: Exception caught with cause java.net.ConnectException: Connection refused
    Error Exception caught by adapter framework: ; nested exception is: java.net.ConnectException: Connection refused
    Error Delivery of the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: ; nested exception is: java.net.ConnectException: Connection refused: java.net.ConnectException: Connection refused.
    Success The message status set to WAIT.
    It is going successfully when I tried sending directly. Looks like Dynamic Configuration is not working for SOAP-AXIS.
    Any Suggestion?
    Thanks
    Deepthi.

  • Setting interface name dynamically from client for SOAP Adapter...

    Hi,
    does anyone have experience in setting the sender interface name in the HTTP-SOAP request dynamically? I have followed the instructions in "How To Use the XI 3.0 SOAP Adapter" on page 17 (see also SAP Note 856597) which say:
    "If you select Use Encoded Headers and Use Query String,
    [...]The sender SOAP adapter creates the XI message header according to the
    information provided in the query string. [...] In the sender SOAP adapter, you can use only some of the parameters, but the first
    parameter must always be the version. For example, you send from the Web service client to the following URL: http://<host>:<j2ee-port>/XISOAPAdapter/MessageServlet?channel=<party>:<service>:<channel>&version=3.0&Interface=http%3A
    %2F%2Fsap.com%2Ftest%5ETest
    This will overwrite the default interface and namespace of the sender channel."
    This is exactly what I need! However, what I actually get as a response following this description is a SOAP:Fault with a java.lang.StringIndexOutOfBoundsException: String index out of range: -1.
    Has anyone got this to work properly?
    Thanks in advance.

    Thank you for your input. I am using the following format for the call (with "x" standing for one letter each):
    http://xix.xxx.xx.xxx:5xx00/XISOAPAdapter/MessageServlet?channel=:xx_xxx_xxx_xxxx:xx_xxx_x_SOAP_S&version=3.0&Interface=http%3A%2F%2Fxxxxxxxx.xx%2Fxxxxxx%2Fxxxxxxxxxxxxxxxxxxxxxxxx%5Exxxxxxxxxxxxxxxxxxxxxx
    Anything wrong with that? With unchecked "Use Encoded Headers" and "Use Query String" it works fine (default interface) but as soon as I set these flags I get the SOAP-Fault response.
    We are on XI 3.0 SPS18.

  • Dynamic URL in SOAP Receiver adapter

    Hi all,
    I have a scenario where I am using a SOAP receiver adapter to send a cXML document to some vendors. I need to change the URL based on the vendor number (passed by sender SRM system). So I have created a user-defined function and used in message mapping to assign the right URL to the variable TServerLocation. But the communication channel still prompts for a static URL which appears to be a mandatory field. Even though the DynamicConfiguration tab in Message Monitoring shows that the TServerLocation was correctly assigned, the scenario does not work when I put some dummy in the static URL field like 'dummy' or '*'. Any ideas on how to make the communication channel go for the dynamic URL field and ignore the static URL field? I have already selected the'Use Adapter Specific Message attributes' and 'Variable Transport Binding' check boxes. Am I referring to the correct variable that references the target URL? Also other than the two checkboxes that I mentioned, I am not displayed anything else under "Adapter Specific Message Attributes" section in the comm. channel.
    Thanks

    James,
    I ve just been digging into SAP help, and have tried it too ... Looks like it doesnt work the way it is supposed to.
    Anotheer point i found was, in the FILE ADAPTER, when we say ADAPTER SPECIFI ATTRIBUTES , we can select the attirbutes.. This is not possible in a SOAP adapter...
    Maybe, we can only access the ADAPTER SPECIIFC ATTIRIBUTES of a SOAP adapter, but cannot set them dynamically.
    Let me know if you find something on this issue.
    Regards,
    Bhavesh

  • Issue in Dynamic configuration in SOAP receiver channel

    Hi All,
    My scenario is file to SOAP. At receiver side I want to generate URL dynamically.
    To proceed step by step, I started with passing a constant URL to Dynamic configuration UDF.
    mapping:
    Dynamic conf. UDF
    Channel Configuration:
    From testing, I found that channel always takes the url given in Target URL field and dynamic URL in TserverLocation is been ignored by the channel.
    That is dynamic configuration is not working completely.
    I went through a lot of blogs and also tried a lot of trial and error methods, but none helped. Every thing I configured looks perfect for me, but still not working. I don't understand where I went wrong. Please help me.

    Hi Experts,
    I am facing similar issue,
    URL --> UDF --> @dynamicvariable
    I have created a variable underparent node eg: DESADV-->dynamicvariable
    passed complete URL to UDF, below is the UDF
    & configured SOAP Receiver Channel as well. This is IDOC to IDOC scenario, using IDOC_AAE on sender side and SOAP on receiver in single stack.
    --> Checked ASMA
    --> Checked Variable Transport Binding and given "TServerLocation" without quotes in XHeaderName1
    --> Target URL: http://
    But when I am running this interface, nothing is coming in Dynamic configuration.
    Ref: Message Log:
    MM and OM is also perfect in ESR.
    Any suggestions? Please advice.
    Regards
    Singh

  • Use of SOAP Receiver Adapter in a recursive way with dynamic Target URLs

    Hi all,
    I have a following scenario.
    1. I have to call a webservice with a URL http://myserver.com/default.aspx?action=index
    This will return a list of xml filenames as below
    <?xml version="1.0" encoding="UTF-8"?>
    <filelist>
      <file uuid="test1" />
      <file uuid="test2" />
      <file uuid="test3" />
      <file uuid="test4" />
    </filelist>
    2. Now I have to call the same webservice with a change in action so that the url looks like
    URL - http://myserver.com/default.aspx?action=fetch&uuid=
    for all the filenames in the list
    So in essence, I have to create a dynamic URLs recursively like
    http://myserver.com/default.aspx?action=fetch&uuid=test1
    http://myserver.com/default.aspx?action=fetch&uuid=test2 and so on
    3. And with each call to the URL in step 2, the incoming xml is to be mapped to an IDoc.
    I will be creating a ABAP proxy to initiate the calls.
    I would like some ideas so as to have a less complex approach to the solution.
    Regards,
    Neeraj

    Hi,
    dynamic SOAP URL - adapter specific properties (http receiver adapter)
    Dynamic configuration payload - https://media.sdn.sap.com/javadocs/NW04/SPS15/pi/com/sap/aii/mapping/api/DynamicConfiguration.html
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get
    (StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/SOAP","THeaderSOAPACTION");
    String a = http://something.abcd/applicationName/xmlMessage //set the value of actual action here
    conf.put(key, a);
    return "";

  • Problem with Dynamic Configuration in SOAP-AXIS adapter..!!!

    Hi ,
    Idoc> XI>SOAP-AXIS
    I am doing a scenario where I need to pass the URL dynamically in SOAP-AXIS adapter by taking the SNDPRN of Idoc.
    If SNDPRN = 100 , message has to go to  http://10.190.25.16:8210/file/receiver
       SNDPRN = 200 , message has to go to  http://20.180.26.16:8210/file/receiver
    It is working correctly when I tried for single receiver. When I' tried to use DynamicConfiguration, it is coming in SOAP document but it is not working and not passing to correct channel.  According to this note 1039369, I mentioned the following modules.
    AF_Adapters/axis/AFAdapterBean  --->                 afreq
    AF_Adapters/axis/HandlerBean      --->                  xireq 
    AF_Adapters/axis/HandlerBean      --->                  dc
    AF_Adapters/axis/HandlerBean       --->                 remover        
    AF_Adapters/axis/HandlerBean       --->                 trp
    AF_Adapters/axis/HandlerBean        --->                xires       
    AF_Adapters/axis/AFAdapterBean    --->               afres
    xireq ->  handler.type-> java:com.sap.aii.axis.xi.XI30OutboundHandler
    dc    ->  handler.type-> javasap.aii.axis.xi.XI30DynamicConfigurationHandler
    dc   --->   key.1 --->      write http://sap.com/xi/XI/System/SOAP TServerLocation
    dc    --->          location.1  --->         context
    dc     --->         value.1      --->        transport.url
    remover    --->  handler.type    --->   java:com.sap.aii.axis.soap.HeaderRemovalHandler
    remover     ---> namespace    --->      http://sap.com/xi/XI/Message/30
    trp         --->     handler.type   --->    java:com.sap.aii.adapter.axis.ra.transport.http.HTTPSender
    trp           --->  module.pivot  --->     true
    xires     --->    handler.type   --->    java:com.sap.aii.axis.xi.XI30OutboundHandler
    and I am getting the below error in SOAP-AXIS channel
    Error Axis:    error in invocation: java.lang.IllegalArgumentException: object type invalid: class com.sap.aii.adapter.xi.ms.XIMessage
    Error MP:     Exception caught with cause java.lang.IllegalArgumentException: object type invalid: class com.sap.aii.adapter.xi.ms.XIMessage
    Error           Exception caught by adapter framework: object type invalid: class com.sap.aii.adapter.xi.ms.XIMessage
    Error Delivery of the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: object type invalid: class com.sap.aii.adapter.xi.ms.XIMessage: java.lang.IllegalArgumentException: object type invalid: class com.sap.aii.adapter.xi.ms.XIMessage
    Kindly let me know if anyone has any idea what might be wrong?
    Thanks
    Deepthi

    I have a similar problem. I also like to add some header fields to my message und that's way I'm trying to use the AXIS adapter. (Axis adapter FAQ question 30) Unfortunately I'm getting exactly the same error message:
    com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.lang.IllegalArgumentException: object type invalid: class com.sap.aii.adapter.xi.ms.XIMessage
    Deepthi, you wrote that you have missed one jar file. Can you remember which file it was?

  • Dynamic Configuration of SOAP Action

    Hello Everyone,
    I am currently working on a project which requires us to set the SOAP action dynamically:
    I did follow the guidelines mentioned in the following links
    Dynamic Configuration of Some Communication Channel Parameters using Message Mapping
    Dynamic webservice selection
    The process which we are using is as follows
    We are creating the following UDF and mapping the root nodes in message mapping using it
    DynamicConfigurationKey keyURL = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/SOAP","THeaderSOAPACTION");
    // access dynamic configuration
    DynamicConfiguration conf = (DynamicConfiguration) container
    .getTransformationParameters()
    .get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    conf.put(keyURL,"RetrieveList");
    return "";
    In the Receiver Comm Channel we are setting the use adapter specific identifiers option and the use variable binding option. We are leaving the SOAP Action field blank.
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <!-- Inbound Message
    -->
    <SOAP:Fault xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    <faultcode>SOAP:Server</faultcode>
    <faultstring>String index out of range: 0</faultstring>
    <faultactor>Server</faultactor>
    </SOAP:Fault>
    Now we tested the scenario using TCP Mon and we identified that for the value of SOAP Action we are getting the following results
    SOAPAction:
    SOAPAction: actual value
    It means that 2 SOAP Action are generated one being the empty SOAP Action from Receiver Comm Channel and the other being the one generated using UDF.
    Can anyone please update us on if our steps are proper or is there a way to supress the SOAP Action which we left empty in the receiver comm channel.
    Your help is truly appreciated.
    Thanks.
    Kiran

    Did you follow all the three steps I have pointed in the thread,
    1. In the Receiver SOAP adapter,Select options ,
    a) Use Adapter Specific Message Attributes
    b) variable Transport Binding.
    c) Keep the SOAP action field empty.
    In the receiver SOAP adapter, make sure that the soap action is empty and the above options are selected.
    In this case, the SOAP action from the UDF will be choosen.
    But, if you enter something in the receiver SOAP adapter's SOAP action this will be treated as the SOAP action rather than the UDF code.
    Regards
    Bhavesh

  • Dynamic URL for SOAP receiver adapter

    Hey!
    I've been looking all over the forum for this issue. What I have seen is many good suggestions, but no one seems to have made this work.
    I have tried with message mapping and TServerLocation, but when the scenario is executed, Target URL in the communication channel always overrides the suggested URL from the mapping.
    Is is possible to do this dynamic configuration? Do I have to use HTTP adapter and create envelope with mapping instead? Anyone in here actually got this dynamic URL working?
    Thanks a bunch!
    regards Ole

    Hello Cengiz Aytemir,
    I am stuck with a similar issue that you faced earlier. I've configured the scenario as you have suggested (Both the UDF and the CC settings). I've hard coded the Target URL as http://
    I can see the dynamic URL set correctly in the MONI but the request that I am sending is not reaching the web service.
    Below is the error that I am getting:
    <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>RecoverableException</code>
                   <text>com.sap.aii.af.ra.ms.api.DeliveryException: XIAdapterFramework:GENERAL:com.sap.aii.af.ra.ms.api.DeliveryException: invalid content type for SOAP: TEXT/HTML
         at com.sap.aii.adapter.xi.ms.XIEventHandler.onTransmit(XIEventHandler.java:453)
         at com.sap.aii.af.ra.ms.impl.core.queue.CallConsumer.onMessage(CallConsumer.java:131)
         at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:834)
         at com.sap.aii.af.ra.ms.runtime.MSWorkWrapper.run(MSWorkWrapper.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)</text>
                </s:SystemError>
             </detail>
          </SOAP:Fault>
       </SOAP:Body>
    </SOAP:Envelope>
    When I hard code the Target URL as Test, the error that I get is different. (Detailed error shown below)
    <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>RecoverableException</code>
                   <text>com.sap.aii.af.ra.ms.api.DeliveryException: XIAdapterFramework:GENERAL:com.sap.aii.af.ra.ms.api.DeliveryException: no scheme
         at com.sap.aii.adapter.xi.ms.XIEventHandler.onTransmit(XIEventHandler.java:453)
         at com.sap.aii.af.ra.ms.impl.core.queue.CallConsumer.onMessage(CallConsumer.java:131)
         at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:834)
         at com.sap.aii.af.ra.ms.runtime.MSWorkWrapper.run(MSWorkWrapper.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)</text>
                </s:SystemError>
             </detail>
          </SOAP:Fault>
       </SOAP:Body>
    </SOAP:Envelope>
    I am on PI 7.0.
    Any help in this regard is highly appreciated.
    Best Regards,
    Vijay

  • SOAP Receiver Adapter - Dynamic URL

    Has anyone tried modifying SOAP URL dynamically using UDF in the mapping?. I searched Forum and couldn't get right answer. Does it work with Adapter Specific settings and variable transport binding? Please donot post links to other posts unless it got an answer or atleast close to being answered. We are on PI7.0. Thanks

    Hi,
    I have similar situation. My target URL lookslike this
    http://devlsales.test.com:8000/soap/services/AdapterService which is a working right now.
    With Variable transport binding ( TServerLocation ),  Can I change http://devlsales.test.com from above URL to
    http://devlprofits.test.com and remaining text same resulting
    http://devlprofits.test.com:8000/soap/services/AdapterService   by using UDFs.
    Thanks
    ST
    Thanks

  • Issue while passing Target URL dynamically in SOAP Receiver Adapter

    Experts,
    I am stuck with an issue while passing the Target URL dynamically.
    The UDF required for this works just fine. I can see the Target URL in Dynamic Configuration header(The Key is TServerLocation) in SXMB_MONI but the request that I am sending is not reaching the web service.
    Some posts have suggested to hard code the Target URL as http://.
    Below is the error that I am getting when I hard the Target URL as http://:
    <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>RecoverableException</code>
                   <text>com.sap.aii.af.ra.ms.api.DeliveryException: XIAdapterFramework:GENERAL:com.sap.aii.af.ra.ms.api.DeliveryException: invalid content type for SOAP: TEXT/HTML
         at com.sap.aii.adapter.xi.ms.XIEventHandler.onTransmit(XIEventHandler.java:453)
         at com.sap.aii.af.ra.ms.impl.core.queue.CallConsumer.onMessage(CallConsumer.java:131)
         at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:834)
         at com.sap.aii.af.ra.ms.runtime.MSWorkWrapper.run(MSWorkWrapper.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)</text>
                </s:SystemError>
             </detail>
          </SOAP:Fault>
       </SOAP:Body>
    </SOAP:Envelope>
    When I hard code the Target URL as Test (any dummy value), the error that I get is different. (Detailed error shown below)
    <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>RecoverableException</code>
                   <text>com.sap.aii.af.ra.ms.api.DeliveryException: XIAdapterFramework:GENERAL:com.sap.aii.af.ra.ms.api.DeliveryException: no scheme
         at com.sap.aii.adapter.xi.ms.XIEventHandler.onTransmit(XIEventHandler.java:453)
         at com.sap.aii.af.ra.ms.impl.core.queue.CallConsumer.onMessage(CallConsumer.java:131)
         at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:834)
         at com.sap.aii.af.ra.ms.runtime.MSWorkWrapper.run(MSWorkWrapper.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)</text>
                </s:SystemError>
             </detail>
          </SOAP:Fault>
       </SOAP:Body>
    </SOAP:Envelope>
    I've referred the post [Dynamic URL for SOAP receiver adapter;.
    I am on PI 7.0.
    Any help in this regard is highly appreciated.
    Best Regards,
    Vijay

    Issue resolved... by doing this:
    DynamicConfigurationKey key2 = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/SOAP", "TAuthKey");
    conf.put (key2, "username");
    In the advanced tab of the communication channel, set the flag "View Authorization keys", and then added "username" (user to access the dynamic target url) and the password (2 times).
    That's it...

  • Can Soap Action be dynamically substituted in receiver side soap Action ?

    Hi all
    I am trying to place Action in Soap Receiver adapter.
    I could see the THeaderSoapAction  and the action I have specified in Dynamic Configuration and that action is not getting triggered
    I was going through previous posts and Raj was mentioning that there was some problem with Soap Receiver adapter while dynamically placing Soap Action.
    Is it so? Has anyone dynamically passed Soap Action using Adapter specific parameters?
    If its cannot be achieved with ASP, What is the best alternate to this ?
    Thanks and Regards,
    Nikhil.

    Have not tried this option, but theoretically it should work using the Adapter Specific message attributes
    http://help.sap.com/saphelp_nw2004s/helpdata/en/29/5bd93f130f9215e10000000a155106/content.htm
    Regards,
    Prateek

  • Error when setting dynamically the target URL in receiver SOAP Adapter

    Hi,
    I'm setting dynamically (from the mapping) the target URL in the receiver SOAP adapter:
    String url = "http://mosxd30:50000/XISOAPAdapter/MessageServlet?senderParty=&senderService=DUM&receiverParty=&receiverService=&interface=SI_OA_CustomInvoiceData&interfaceNamespace=urn:repsol.com:laboratory:firma";
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/SOAP", "TServerLocation");
    conf.put(key, url);
    The receiver adapter fails with:
    "invalid content type for SOAP: TEXT/HTML; HTTP 401 Unauthorized"
    Reading weblogs, etc, the most probable cause for this is a wrong target URL, but then what I did was to set it as a fixed URL in the C.Channel, and it worked, so the URL is fine.
    In the communication channel, I'm using "Configure user authentication", with a user and password, and what I think it's happening is that if I use another different URL dynamically, the channel is ignoring the user authentication settings.
    Any ideas?
    Thanks

    I forgot to say that I've checked the SAP note "FAQ Soap adapter", and it says:
    Q: I get an authorization error "401 Unauthorized" from the adapter's servlet. What went wrong?
               A: The adapter's servlet is protected by default. You must use one of the user names assigned in security role xi_adapter_soap_message for component XISOAPAdapter. Please consult the documentation for Visual Administrator to view and change the security setting.
               The user authentication of the SOAP adapter is not part of the SOAP adapter but of the web container of the J2EE engine. The default authentication setting is defined in the web.xml descriptor file of the SOAP dapter web application. This setting may be modified from Visual Administrator with some restriction. Please refer to the security documentation for the J2EE engine.
               Please note that 710 onwards there is no Visual Administrator instead the Netweaver Administrator is to be used to assign the roles to the user to access the SOAP adater servlet.The user must be assigned one of the following roles SAP_XI_IS_SERV_USER, SAP_XI_APPL_SERV_USER, SAP_XI_DEVELOPER_J2EE, SAP_XI_ADMINISTRATOR_J2EE.
    The target URL is a sender soap adapter (the result of one interface is sent to another one via soap adapter), and it's this one which is complaining because of the authentication I think. But I don't know why it's ignoring the user authentication flag I'm using.

Maybe you are looking for