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

Similar Messages

  • 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

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

  • 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

  • SOAP Action missing in Axis adapter

    Hi,
         I am not able to send data to a Web Service using Axis Adapter (SOAP 1.2) and getting an error of "SOAP Action is missing". Can see that SOAP action is missing in the SOAP message sent to Web Service. Communication channel is configured with SOAP Action.
    Am on PI 7.10 SP6.
    Any help is appreciated!!
    Thanks
    Kiran

    Hello,
    I tink you are using receiver SOAP Communication channel... Ask your client to provide the same... because.... your message will be processed at receiver side by using SOAP Action at receiver side...
    SOAP action is mandatory for SOAP Receiver communication channels...
    Thnx
    Subbu

  • Using Dynamic Configuration api for SOAP adapter

    I want to use Dynamic Configuration api to send a SOAP request to a webservice.
    tha value in my adapter is
    my Target URL  is
    http://xidr3.bcs.de:50000/XISOAPAdapter/MessageServlet? channel=:Routing2_Service:SS_SOAP_Sender_Working_June12&nosoap=true
    which is the corresponding field i have to set in Dynamic Configuration?
    I have written the following code is this right?
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    String temp = "http:/"+"/sap.com/xi/XI/System/SOAP";
    DynamicConfigurationKey key = DynamicConfigurationKey.create(temp, "TServerLocation");
    String varURL =
    "http:/"+"/xidr3.bcs.de:50000/XISOAPAdapter/MessageServlet?channel=:Routing2_Service:SS_SOAP_Sender_Working_June12&nosoap=true";
    conf.put(key,varURL);
    return "";

    Hi,
    Yes, your code looks fine. Can you let me know what is the error you are getting. Have you checked the Flag in your communication channel.
    Use Adapter-Specific Message Attributes
    Variable Transport Binding 
    Once you test your scenario you can see the Dynamic URL in your message Header by going to tcode sxmb_moni. See if you are able to find something called DynamicConfiguration in your message haeader. If yes what is the value set there.
    PS: From the target URL you posted It looks like your webservice is hosted on the XI box itself. Is it the same XI box or different box? Just curious to know.
    Reward point if answer is helpful
    Thanks
    Amit

  • PI 7.1 SOAP Action parameters in SOAP request?

    Hi all,
    I have to implement an IDOC->PI->XML interface to transfer some master data. After performing the mapping, the mapped data needs to be sent to the target system using a SOAP request via a webservice.
    On PI, I specified the URL for the WS in a SOAP-oriented Communication Channel. In the parameter "SOAP Action" of this CC, I entered the relevant method name to be used to transfer the mapped data. However, this method requires 2 parameters:
    - applicationName: this is the name of the target structure used in the Message Mapping
    - xmlMessage: this is the actual mapped message string
    So my question is: how can I bind these 2 parameters in my PI design and configuration?
    Thanks for your help,
    Eric

    there can be one WS having many actions....which means one WS can be used in multiple interfaces.
    However, this method requires 2 parameters:
    - applicationName: this is the name of the target structure used in the Message Mapping
    - xmlMessage: this is the actual mapped message string
    If I get it correctly, you have to actually set the SOAP action before you send the message to the WS....and you want to do it in SAP PI?
    so your action is something like http://something.abcd/applicationName/xmlMessage and you have to set the things here?
    If yes, then you can use the Dynamic Configuration (adapter specific message attributes...ASMA) in SOAP channel (UDF in mapping) and set this ASMA THeaderSOAPACTION
    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 "";
    Regards,
    Abhishek.

  • Soap action: in Proxy to soap scenario

    Hi experts,
    I have a senario of Proxy to webservices.
    I have imported the wsdl file as external defination, and  have to use two message inside 1) to Insert 2) To Update.
    Now proxy will run twice a month with same data structure,
    I have to do insert action first and 2nd time Update.
    I have only one receiver. So How to achive this in communication channel >> Soap Action.
    1> Is is possible to provide two Soap action in a single communication channel.?
    2> do i need to create 2 mapping and two interface ? My Source coming from Proxy is with one structure.
    Regards,
    Sumit Gupta

    >
    sumit gupta wrote:
    > Hi experts,
    >
    > I have a senario of Proxy to webservices.
    >
    > I have imported the wsdl file as external defination, and  have to use two message inside 1) to Insert 2) To Update.
    >
    > Now proxy will run twice a month with same data structure,
    >
    > I have to do insert action first and 2nd time Update.
    >
    > I have only one receiver. So How to achive this in communication channel >> Soap Action.
    > 1> Is is possible to provide two Soap action in a single communication channel.?
    > 2> do i need to create 2 mapping and two interface ? My Source coming from Proxy is with one structure.
    >
    > Regards,
    >
    > Sumit Gupta
    You can either go for dynamic configuration and configure the action or you can go for two different Communication channels with separate actions.
    In the proxy use a field as an indicator for the required action i.e INSERT or UPDATE and based on XPATH in your interface determination call the required channel or in case you are using a single channel create the dynamic action in your mapping based on that field.
    Ref:
    /people/shabarish.vijayakumar/blog/2008/01/08/troubleshooting--rfc-and-soap-scenarios-updated-on-20042009
    /people/suraj.sr/blog/2006/01/05/multiple-inbound-interfaces-within-a-service
    /people/shabarish.vijayakumar/blog/2009/03/26/dynamic-configuration-vs-variable-substitution--the-ultimate-battle-for-the-file-name

  • Checking SOAP action in monitoring

    Experts,
    is there a possibility somewhere in the monitoring to check what SOAP action was used for a message sent via SOAP adapter?
    Thank you very much in advance.
    Best regards
    Michael

    hi,
    >>>is there a possibility somewhere in the monitoring to check what SOAP action was used for a message sent via SOAP adapter?
    Thank you very much in advance.
    yes:
    1. you can see action in SOAP receiver adapter in ID (in parameters)
    2. if you use dynamic action you will see that in dynamic configuration section of the XI message
    in monitoring - it will be visible with attribute - THeaderSOAPACTION
    Regards,
    Michal Krawczyk

  • Calling Soap Action in Soap Receiver

    Hi ALL,
    I have a requirement where i have a WSDL file which contains multiple actions and multiple Soap Action Parameters ,
    whereas i need to combine all the Soap action Parameters into single SOAP Parameter and call it in my SOAP action parameter at the receiver side
    of the SOAP.
    Please guide me how to achieve this.

    Hi,
    If you mean setting it dynamically, yes, it is possible. The technical name for soap action in dynamic configuration is THeaderSOAPACTION with namespace http://sap.com/xi/XI/System/SOAP
    http://help.sap.com/saphelp_em900/helpdata/en/48/327519a3af58d8e10000000a421937/frameset.htm
    Hope this helps,
    Mark

  • How to call Function through Soap Action

    Hi all,
    I have a Receiver communication channel in PI that sends data to from the interface to Oracle Webservice.
    At that moment a function should be called with two constant parameters and the third one is the xml with all the data.
    updateExchangeRates("CJV", "connector", ratesXML)
    xml schema:
    Anyone knows if it is possible to call that function in PI soap action and how should I do it?
    I've tested soap action with
    updateExchangeRates("CJV", "connector", list_wrapper)
    and got the error:
    invalid content type for SOAP: TEXT/HTML; HTTP 401 Unauthorized
    Thnaks in advance,
    Regards

    Hi,
    Please refer the below blogs for dynammic soap action
    How to set soap action in soap adapter during configuration when there are multiple operations in a web service?
    Dynamically providing URL and action values to receiver SOAP communication channe
    regards,
    Harish

  • Dynamic Configuration of HTTP Destinations in SOAPReceiver

    Dear PI Developers
    I'll define a dynamic Configuration for my HTTP Destination in SOAPReceiver with XI3.0 Protocol.
    The solution for that is to use an Adapter Module to set the dynamic Configuration Value.
    Process: ... > SOAP Receiver > MyAdapterModule, set HTTP Destination > SOAP Receiver, send Message to HTTP Destination
    URL-Adressing work's fine
    This works fine for URL-Adressing, here's my Java Code from my Adapter Module:
    Message message = (Message) inputModuleData.getPrincipalData();
    message.setMessageProperty(new MessagePropertyKey("TServerLocation", "http://sap.com/xi/XI/System/SOAP"), "http://domain.com/foobar");
    HTTP Destination, how it works?
    If I'll use HTTP Destination as Adressing Type but the HTTP Destination will not set.
    I think the "TServerLocation" Property don't work for the HTTP Destination, but I don't find a Property in:
    Configuring the Receiver SOAP Adapter - Advanced Adapter Engine - SAP Library
    My Questions
    Did someone know the coresponding property name for HTTP Destinations instead of "TServerLocation"?
    Are there other Solutions to set the HTTP Destination dynamicaly, for Example with variables %my_http_dest% ?
    How can I set my own variables %my_http_dest% in my Adapter Module?
    Background
    We have a lot of Destinations and a lot of Szenarios and won't create a SOAPReceiver and Routing for each Destination in each Szenario.
    The Destination depends on a HTTP Header Parameter from Sender, I'll map this Parameters to the coresponding HTTP Destination in the Adapter Module, that's the same Mapping for all Scenarios. To keep the performance, I cache this Routing Table in the Adapter Module.

    Here's a way to misapplay "mesage:{var}" variables:
    SAP NetWeaver XI: Variable Substitution with Adapter-Specific Message Attributes via DynamicConfigurationBean
    But it is a dangerous solution, I think we use URL-Adressing in place of HTTP Destination

  • Dynamic configuration not fil in reused OM in NW BPM

    Hi,
    I'm having problem in operation mapping that i re-used in nw bpm.
    In my scenerio in the operation mapping, a UDF writes on "TServerLocation" and in the next step of BPM, i have receiver determination rule which read from "TServerLocation" variable.
    Below step calls OM which in PI.
    (UDF writes on TserverLocation)
    This next step, reads TserverLocation in receiver tab of Integration Conguration.
    Receiver rule
    So the problem is dynamic configuration doesn't write on TserverLocation or integration confiuration object removes in soap header somehow.
    This was a ccBPM integration and all esr objects, mapping,udfs working fine. No problem with that.
    I checked below blog but not get this work.
    Dynamic Configuration not working with Integrated Configuration
    Has anyone faced similar problem ?
    Thank you
    -Tahir

    HI,
    In general Correlation , concept, whatever we configured in Correlation editor , i mean in runtime which xml element should filled with which element of which interface ..as you said you have configured the local correlation to block, in block it is the first receive step, while receiving the first message which is relevent to first recieve step , i mean if it receives the one message which is related to first receive step inteface .. the respective element data will be filled in correlation id and it will assign on giud for processing , so while assign the runtime data to correlation element ( imean filling stage) check you said two elements in correlation does the first message contains these two elements ??
    if so ok , no then check , and try to use the IM before calling the IP to fill the payload.
    Regards
    Chilla
    Oh closed!!
    Message was edited by:
            Chandra Sekhar Chilla
    Message was edited by:
            Chandra Sekhar Chilla

  • Dynamic Configuration for determining filename

    Hi ,
    I am using dynamic configuration for determining the filename sent by the sender
    I am using the following code::
    int i = 0;
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
    String ourSourceFileName = conf.get(key);
    if  (ourSourceFileName.equals("data.txt"))
    for (i = 0 ; i < 1 ; i++)
    result.addValue(ourSourceFileName);
    i have also 'checked' filename in set Adapter specific message propertiesas  in sender communication channel.
    But Still it is not working.
    Please provide some help on it.
    Thanks & Regards
    Nilima

    Hi,
    Michal
    In SXMB-MONIthe response part contains DYNAMIC CONFIGURATION node
    and it displays::
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <!--  Response
      -->
    <SAP:DynamicConfiguration xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Record namespace="http://sap.com/xi/XI/System/File" name="FileName"><b>try1.txt</b></SAP:Record>
      </SAP:DynamicConfiguration>
    please sir provide some help on it.
    Thanks once again.

  • Dynamic configuration bean in JMS Adapter

    Hello Experts,
    My scenario is JMS(Active MQ) to File.Its just Passthrough scenario and no mapping involved.
    Filename will be coming in one of the JMS Property (say businessId) and I need to set this filename to file adapter.
    I have refered the stefan's blog and used the Dynamic configuration bean module in sender JMS adapter.
    getFilename key.1 write http://sap.com/xi/System/JMS DCJMSMessageProperty4
    getFilename value.1 module.filename
    setFilename key.1 read http://sap.com/xi/System/File FileName
    setFilename value.1 module.filename
    But required filename is not populated in the target File.Any other configuration is missing here?

    Hi Karthiga
    Did you set the ASMA properties in both your sender JMS channel and receiver File channel?
    For the JMS adapter, as shown below, you will need to enter the DCJMSMessageProperty4 into the table
    Configuring the Sender JMS Adapter - Configuring the JMS Adapter in the Integration Directory/PCK - SAP Library
    If you want to set additional JMS message attributes, select Specify Additional JMS Message Properties (Maximum of 10).
    In the table, enter the names of the JMS message properties whose values are to be included in the message header of the PI message.
    The technical names of the additional attributes are DCJMSMessageProperty0, DCJMSMessageProperty1, ..., DCJMSMessageProperty9.
    For the File adapter, you need to check the ASMA FileName attribute.
    Once you have this configured, in your message, you should be able to see that the value is in the DynamicConfiguration section of the SOAP header.
    Rgds
    Eng Swee

Maybe you are looking for

  • Living in Puerto Rico+Buying a MacBook+Apple Store=0 MacBook

    I'd like to buy a MacBook from the Apple Store, but I'm afraid don't know how, since I don't see Puerto Rico listed anywhere. Don't you guys ship to Puerto Rico? If not, WHY? What other way is there for me to get the MacBook I want? --> The White Mac

  • Collaboration Rooms in Detailed Navaigation

    Hi I have created a collaboration rooms using room templates. All rooms are displaying under Rooms directory. But now i need to get this rooms in detailed navigation For eg: We have diffrent roles like sites , departments etc.. When user clicks on pr

  • Content Preparation Progress (Not Responding)

    Is there a way to stop the "Content Preparation Progress" process from happening? If I cancel out of it quickly, I can open my documents- but 7 times out of ten, if I don't Acrobat hangs up on me and I get a "Not Responding" error. What is this proce

  • Remove adware from apple user id

    Adware popups are constantly popping up on my computer. I went to the Apple store and they were not able to find the source. They recommended that I create a new user and move my pictures and documents  over to the new ID. I went to create a new user

  • MY CPU is extera slow

    I (have) a 06' iMac (and another one same model, even more memory taken up at a different house is not doing this) that has 131 GB free and has been extera slow in the last 4 months help!!!!! Message was edited by: crazy person