Soap adapter query string

Sending Soap adapter question
If the message id is duplicate , the message is rejected?
How does the Query string look?
thanks
kumar

Hi Kumar,
the query string is
http://host:port/XISOAPAdapter/MessageServlet?channel=party:service:channel
The message ID is give by XI, it is allways unique.
Have a look to <a href="http://help.sap.com/saphelp_nw2004s/helpdata/en/fc/5ad93f130f9215e10000000a155106/content.htm">Configuring the Sender SOAP Adapter</a>
Regards,
Udo

Similar Messages

  • HTTP adapter: Query string with no payload

    Hi,
    I have a requirement where I want to send an HTTP request where the only thing I need to send is the Query String (ie. no payload details)
    Is this possible to do this ?
    I know how to set the query string (TargetURL) but unsure how to suppress the payload without any issues.
    Knd regards
    Colin.

    Hi Collin, Did you find the solution? I am facing similar problem where I do not want to send any xml/payload. Invoke PI interface with URL only. Please help.

  • Reading parameters from Query string : Sender SOAP adapter.

    Hello Experts,
    I have a SOAP to SOAP scenario. Here we will have multiple receivers and dynamic receiver determination is needed.
    The sender will send a Value in Query string of URL to sender SOAP adapter. This value in Query string parameter will decide the receiver at runtime.
    I need to know, how can we read values from Query string of incoming call? I did tried to search blogs & forum threads but unfortunately not able to hit the right links.
    Any inputs will be of great help.
    Should i use "Use Query String" on sender soap channel? I tried it, but i was not able to find any query string parameters in SOAP header or payload.
    Please guide me, its bit urgent.
    Regards,
    Abhi.

    > But the argument provided from their side is: They are using standard XSD and this service is provided out of box with sender application.
    If they can add a URL parameter, they can also add a field to the structure.
    > They cant control the value mapping of parameters in payload to the extent required to implement this change.
    Adding a new field to the structure would not affect any existing mapping.
    > Since they have this custom requirement of multiple receivers & receiver to be determined at runtime, they need to go for Query string.
    This can be done based on any field of the payload.
    > I need to find a way to read the query string in any case.
    This is not supported by SOAP adapter.
    > Can I use one of the header parameters to be mapped to this value  (By selecting "Use Query string" & "Keep Headers" flag in sender CC) & then extract this value from header using Dynamic configuration ?
    This feature works only for XI header fields, like message ID or QoS.
    Not for individual parameters.

  • Receiver SOAP Adapter Use Query String

    Hello everybody,
    I want to include in my Receiver SOAP Adapter the message id as part of the URL String, but I need to include only the MessageId value, if I use the Use Encoded Headers and Use Query String options it includes all the header fields as part of the URL, is there a way to define only the fields that I need?, thanks in advance.
    Regards,
    Julio Cesar

    May be you could try to use adapter specific message attribute "TServerLocation". This will help you set the dynamic URL.
    http://help.sap.com/saphelp_nw04/helpdata/en/29/5bd93f130f9215e10000000a155106/frameset.htm
    Regards,
    Prateek

  • Receiver HTTP Adapter Dynamic Query String

    Hello,
    I am using HTTP Adapter on receiver side.
    My URL is  <b>http://server:port/abc/def?xyz=123&luw=345</b>
    When I am using Adapter specific attributes.
    If I check apply Parameters and pass
    Parameter 1 as xyz and Parameter 2 as luw and pass their values through dynamic configuration will they get appended to the dynamic querystring
    http://server:port/abc/def at the end and I get back the complete URL.
    Can this be achieved? I am stuck on this.
    Regards,

    Srihari,
    The best way to debug this and check what is happening would be to use the TCP gateway tool as shown in this blog by Stefan Grube.
    /people/stefan.grube/blog/2007/03/29/troubleshooting-soap-http-and-mail-adapter-scenarios-with-tcpgateway
    Send the request to the TCP gateway and forward it from there to the correspionding target.
    You will be able to see the URL being passed including the Query String parameters.
    Regards
    Bhavesh

  • Dynamic Routing Using Query String (SOAP)

    Hi Folks,
    Does anyone have any examples on how to do a dynamic routing using a query string from a SOAP Adapter. I know how to get the query string but don't know how to map for dynamic routing.
    Thanks,
    AArhyn.

    After some further examination it seems that both calls are picked up by the same interface. In the RWB both the messages are picked up by the MIOS_GetDetails...
    How can i fix this?

  • How to build dynamic query strings in the query using DB adapter 'Pure SQL'

    Dear Forum,
    I am building an application which will access DB to fetch some result set. The query involves retrieving data from multiple tables(nearly 10 tables). So I have created a DB adapter using 'execute pure sql' option. With this query works fine, but my inputs parameters will vary. So I need to make my query dynamic to append the query strings at runtime depending on the inputs.
    For example I have 3 input variables - input1,input2 and input3 (in my request xsd) which are used in the pure sql query. Now if I get a 4th input parameter input4 in the request, I need to append this to query string as 'AND input4=[some value]' at runtime. Otherwise my query should have only 3 parameters. Please suggest how this can be achieved.
    Regards,
    Satya.

    This is a strange requirement, depending on the columns you have and what are optional in them, one way is to have separate operations and each opeartion will have different inputs and for each operation , a different DB Adapter is called. But this way, it results in more number of operations for the service as well as more number of references in the composite. Even if you pass the column inputs to the SQL procedure, it will result in a large number of if-else cases..
    Thanks,
    N

  • Problem with SOAP Adapter receiver not receiving the proper string

    Hi friends
    I have a very simple scenario as follows using SOAP Syncronous Call
    SENDING SCENARIO
    ================
    ExternalClient --> SOAP ADAPTER --> XI -> RFC ADAPTER --> ZBAPI
    RECEIVING SCENARIO
    ==================
    ZBAPI  --> RFC ADAPTER   --> XI    -->   SOAP ADAPTER  --> ExternalClient
    Here External Client is sending a search ID and ZBAPI searches for that record and send the FirstName and LastName.
    I am using external Definitions in XSD format as follows.
    INPUT XSD is
    =========================================
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://cincom.com/xi/socrates/customerSearch" targetNamespace="http://cincom.com/xi/socrates/customerSearch">
         <xsd:element name="ZBAPI_GET_NAME">
              <xsd:complexType>
                   <xsd:all>
                        <xsd:element name="ID" type="xsd:integer" minOccurs="0" />
                   </xsd:all>
              </xsd:complexType>
         </xsd:element>
    </xsd:schema>
    ===========================================
    Reciving XSD file has
    ==============================================
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:socrates.cincom.com" targetNamespace="urn:socrates.cincom.com">
         <xsd:element name="ZBAPI_GET_NAME_RESPONSE">
         <xsd:complexType>
         <xsd:all>
         <xsd:element name="ADDRESSDATA" minOccurs="0">
         <xsd:complexType>
         <xsd:sequence>
         <xsd:element name="FNAME" minOccurs="0">
              <xsd:simpleType>
                   <xsd:restriction base="xsd:string">
                        <xsd:maxLength value="20" />
                   </xsd:restriction>
              </xsd:simpleType>
         </xsd:element>
         <xsd:element name="LNAME" minOccurs="0">
              <xsd:simpleType>
                   <xsd:restriction base="xsd:string">
                        <xsd:maxLength value="20" />
                   </xsd:restriction>
              </xsd:simpleType>
         </xsd:element>
         </xsd:sequence>
         </xsd:complexType>
         </xsd:element>
         </xsd:all>
         </xsd:complexType>
         </xsd:element>
    </xsd:schema>
    =========================================================
    I HAVE TESTED THE ZBAPI AND IT WORKS WELL ON ITS OWN. ALSO I HAVE TESTED THAT THE MESSAGE SENT FROM OUTSIDE CLIENT IS REACHING BAPI. HOWEVER WHEN I GOTO 'SXMB_MONI' AND CHECK THE
    XML STRING THAT THE RECIEVER IS GETTING, I SEE JUST THE FOLLOWING TWO LINES
    ===================================
      <?xml version="1.0" encoding="UTF-8" ?>
      <ns1:ZBAPI_GET_NAME_RESPONSE xmlns:ns1="urn:socrates.cincom.com" />
    ======================================
    IF YOU NEED ANY FURTHER INFO, PLEASE LET ME KNOW.
    HOPE SOME ONE CAN GUIDE ME WITH THIS PROBLEM.
    THANKS IN ADVANCE
    RAM

    Ram
    Can you pls. confirm whether the mapping of your XSD fields & BAPI fields are in same sequence. I mean hierarchy is same or not.
    Just to verify, as you said you are using Sync scenario that means you are using ONE Sender Soap & ONE Reciever RFC adapter.
    Regards
    Lalit

  • In JDBC Sender Adapter , the server is Microsoft SQL .I need to pass current date as the input column while Executing stored procedure, which will get me 10 Output Columns. Kindly suggest me the SQL Query String

    In JDBC Sender Adapter , the server is Microsoft SQL .I need to pass current date as the input column while Executing stored procedure, which will get me 10 Output Columns. Kindly suggest me the SQL Query String , for executing the Stored Procedure with Current date as the input .

    Hi Srinath,
    The below blog might be useful
    http://scn.sap.com/community/pi-and-soa-middleware/blog/2013/03/06/executing-stored-procedure-from-sender-adapter-in-sap-pi-71
    PI/XI: Sender JDBC adapter for Oracle stored procedures in 5 days
    regards,
    Harish

  • Is there a way to see the string returned by SOAP adapter at the Reciever

    Hello Friends
    I have a scenario as follows
    Sender:        Outside Client   -
    >>  Soap Adapter   -
    >XI   --->   RFC Adapter   ---> ZBAPI.
    The outside client sends an id to search through XI using SOAP adapter which inturn calls a ZBAPI
    to look for the record in the table and sends the found record back to XI and from there to the outside client via SOAP adapter.
    I have made sure that the ZBAPI is being contacted successfully.
    However, the return data is not coming to the client.
    Is there a way to findout what xml string is being received at the receiver SOAP adapter.
    I have checked the zbapi, mapping etc., and everything is ok.
    Any suggestion or feedback will be highly appreciated.
    Thanks
    Ram

    You should be able to see the Request and the response in SXMB_MONI.
    Just make sure that synch logging is turned on in MONI. Add the entry LOGGING_SYNC with value as 1 in SXMB_ADM --> Integartion Engine Configuration.
    Regards
    Bhavesh

  • Dynamic Query string in Receiver HTTP_AAE adapter

    Hi All,
         Currently I am working with a scenario where I need to use HTTP_AAE receiver adapter. I need to create the query string http://server:port/WebOrder?param=value dynamically.
    I created below mentioned UDF.
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey urlParameter1 = DynamicConfigurationKey.create( "http://sap.com/xi/XI/System/HTTP_AAE", "URLParamOne");
    conf.put(urlParameter1, "value");
    return "";
    In configuration part I entered below mentioned details in HTTP receiver adapter,
    Target Host: server
    Target Port: port
    Path: /WebOrder?
    Click Set Adapter specific Message properties
    Click URL Parameters
    I entered "param".
    But I am getting the below mentioned error.
    exception caught with cause com.sap.aii.adapter.http.api.HttpAdapterException: STATUS_CODE_NOT_OK-Not Found.
    Could you please help me here.
    Thanks
    Dipankar

    Dear Team,
    I am working on SAP PO 7.4 Single stack. we are have scenario to send sms to customers via portal system and the delivery status has to be updated in ECC. Failed to hit the sms portal by using the HTTP_AAE adapter.
    URL - http://103.112.70/smpp/sendsms?username=xxxxx&password=xxxxx&to=919797979797&from=919560054422&text=test message.
    Scenario - ECC(proxy) -> PO(HTTP adapter) -> SMS portal
    Development:
    ESR - In the mapping
    Five parameters- username , password , to , from and text from ECC to PO as part of request message.
    UDF -
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey parmValue;
    try{
                      parmValue = DynamicConfigurationKey.create( "http://sap.com/xi/XI/System/HTTP", "URLParamOne");
                      conf.put(parmValue, var1);
                      parmValue = DynamicConfigurationKey.create( "http://sap.com/xi/XI/System/HTTP", "URLParamTwo");
                      conf.put(parmValue, var2);
                      parmValue = DynamicConfigurationKey.create( "http://sap.com/xi/XI/System/HTTP", "URLParamThree");
                      conf.put(parmValue,  var3);
                      parmValue = DynamicConfigurationKey.create( "http://sap.com/xi/XI/System/HTTP", "URLParamFour");
                      conf.put(parmValue,  var4);
                      parmValue = DynamicConfigurationKey.create( "http://sap.com/xi/XI/System/HTTP", "URLParamFive");
                      conf.put(parmValue,  var5);
    }catch(Exception ex){}
    return "";
    Integration Directory-
    Communcation channel:
    Tranport Protocol - HTTP 1.1
    Message Protocol - GET
    General Tab-
    Addressing Mode - URL Address
    Target Host - 103.112.70
    Target Port - 80
    Path - smpp/sendsms
    Mainpayload Parameter Name - MT_SMS_Cust_Req
    Advanced Tab-
    Header fileds - EMPTY
    Query Parameters - sender party - enabled
                                  sender service - enbled
                                  Receiver Interface - enabled
                                  Message ID - enabled
                                  Quality of service - enabled
    Adapter -Specific Message Properties
    set Adapter -specific Message Properties - enabled
    URL parameters - enabled
    parameter 1(URLParamOne) - username
    parameter 2(URLParamTwo)-password
    parameter3(URLParamThree)-to
    parameter4(URLParamFour)-from
    parameter5(URLParamFive)-text
    After the configureations..The structture is not getting created as per the url format . In runtime PO system is sending only - smpp/sendsms to SMS portal and getting the response as Not authorized means the username&Password&to&from&text are not hitting the SMS porta.
    Please check the configurations and guide me if any configurations were missing.
    Regards,
    Teja.

  • Soap adapter: string transformations issues

    I have a difficult issue:
    I want to send a SOAP message to a thirdparty environment ,this environment requieres a special format of the message XML to String; iu2019ll put a sample:
    < SOAP:Body >
    < ns0:application xmlns:ns0=u201Dhttp://xxxxxx/yyyyyyy.com/zzzzu201D >
    < in0>
    < inputMessage >
    < request>name </request >
    < versionMsg>x.0
    u2026u2026u2026u2026..
    < /parameters >
    < /inputMessage>
    This is the meesage that i process with PI. Then when it arrives to the other environment should be as this one, i'll write wrong the chars because the web change it in code...:
    u201C< SOAP:Body >
    < ns0:application xmlns:ns0=u201Dhttp://xxxxxx/yyyyyyy.com/zzzzu201D>
    < in0>
    & lt inputMessage& gt
    & lt request & gt name& lt /request& gt
    & lt versionMsg& gt x.0& lt /versionMsg& gt
    etc etc etcu2026u2026.u201D
    I have changed it in the mapping, it's something easy to map a source structure ot a target whit a string field and mark Return as XML in the source field. that's ok.
    But now is the problem: The SOAP adapter changes all the '&' in differents chars as:&|#|34 (i separate whit |in this sample) or the tag > or < in other ascii chars.
    Some one knows what can i do? i have tried too whit the last post, the module config for SOAP adapter: strictXML2PlainBean but it doesn't work.
    Any help will be appreciated.
    Best regards and thanks in advance.
    Thanks in advance and best regards.

    No, the problem is that the SOAP adapter does the escaping of these chars, so i can't control it. I am trying to deploy a EAR in the server, but i guess that an easiest way should exist for this case.
    The main problem is that the thirdparty system has an filter and this kind of chars are not allowed, this system only understand & lt and & gt in the string field.
    Thanks anyway
    Edited by: Cantabria on Mar 18, 2010 3:07 PM

  • HTTPS Receiver Adapter with POST and query String

    Hi there,
    we are currently running a http connection with an external partner. We use the plain http adapter to send documents.
    Now we want to secure the whole thing and switch to https.
    Currently we solely use the comm. channel in the directory. In the URL we include the required query string (http:/xxx/yyy<b>?msgtype=order</b>)
    As I understand, the only way to use httpS is to use a RFC Dest. Type G in sm59.
    But I am not able to add a query to the url there.
    I guess that it is not an option to ask our partner to search the posted document for parameters. We were already happy that they were able to do it like we have it.
    Does anyone has an idea how we could include a query in the url or give somehow the partner explicitly the info about the message type we send?
    Thanks in advance,
    Helge

    Hi Helge,
    as far as I know this should be possible with SP16 by using the settings in the adapter configuration.
    We had this requirement, but with SP15 it isn´t possible.
    Have a look on the documentation
    http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm
    Chapter Adapter-Specific Message Attributes
    There you can use up to 6 URL Parameters. I never used it, if you have SP16, try it.
    Regards
    Thomas

  • Action and Query-String in HTTP Adapter

    Hi,
    I am doing an IDOC -> SAP PI -> HTTP scenario
    HTTP application is external party (using Party).
    I have to build the URL Dynamically; so I use Dynamic Configuration in Message Mapping.
    The URL format (from help.sap.com) is http://<hostname:port>/<path>?<query-string>
    Hostname and port are know to me.
    From where will I get information about path and query-string , are they mandatory?
    help.sap.com has given details about sender HTTP: http://help.sap.com/saphelp_nwpi711/helpdata/en/44/8f54b8b01e3673e10000000a114a6b/content.htm but i want to know about receiver HTTP.
    Is there any example available?
    Thank you,
    Pankaj.

    > So I have to ask the External Parties to send the message (to SAP PI) to the URL (http://hostname:port/<action>?<query-string>)?
    When you replace the varaibles, yes.
    > Any idea about my original question (about action and query-string in receiver channel's URL) or should I use a RFC destination there (now it will be Type G I suppose)
    Just put the URL of the receiver.
    > There is SSL configuration also between External Parties and SAP PI (if this information is required).
    In that case, you put a URL with https://..

  • SOAP Receiver adapter query

    Hi All
    I have configured a RFC to SOAP scenario. I am trying to do a test from RWB. It is a synchronous scenario.
    When I send the message from RWB with Qos ( BE )it gives me the following error in RWB and also in SXMB_MONI.
    Error While Sending Message: Additional error text from response: com.sap.engine.interfaces.messaging.api.exception.MessagingException: SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: Error Record Rejected
    Is there anything that needs to be looked into ..
    Thanks
    Amit

    Hi Amit,
    Since you are using RFC-SOAP scenario. The configuration must be as below.
    1. The legacy application will send a syncronous call to RFC function via XI sender SOAP adapter/HTTP.
    2. SAP ECC receives a web service request from Legacy through XI and sends the response as a remote function call to Legacy/TP
    3. The request received from Legacy is mapped to the RFC Request Structure and the response from SAP ECC is sent back as the response to Legacy/TP.
    TP application - > XI - > ECC scenario.
    For the same do the following :
    In the IR:
    1. Create a Outbound synchronous  Message Interface. Use output message as "RFC request structre" and input message as " RFC response structure".
    2. Create a Request message mapping where the source and target message is the RFC request structure.
    3. Create a Response message mapping where source and target message is the RFC response structure.
    4. Create an interface mapping.
    In the Integration Directory :
    1. Create the receiver determination,Interface determination, and receiver agreement and RFC receiver communiction channel.
    2. No need to have sender soap. u can use HTTP as sender so no need to add sender HTTP adapter.
    3. Goto Tools-> Define Webservice. Give necessary data and generate the WSDL. Tell the leagacy/TP application to consume this WSDL so that the structure sits in their system.
    4. Next use the HTTP client to send data to XI. You would get the desired response after some time.
    ECC->XI -> TP application.
    In the IR:
    1. Create a Inbound synchronous  Message Interface. Use output message as "RFC request structre" and input message as " RFC response structure".
    2. Create a Request message mapping where the source and target message is the RFC request structure.
    3. Create a Response message mapping where source and target message is the RFC response structure.
    4. Create an interface mapping.
    In the Integration Directory :
    1. Create the receiver determination,Interface determination, and receiver agreement and SOAP receiver communiction channel.
    2. You can also use HTT receiver if SOAP receiver does not work. 
    3. Goto Tools-> Define Webservice. Give necessary data and generate the WSDL. Tell the leagacy/TP application to consume this WSDL so that the structure sits in their system. Get the URL and soap action.
    4. Use this URL in the soap receiver channel. also the action can be got from the URL. Use as your action. Untick all check boxes and activate channel.
    5. Test scenario from RWB.
    Edited by: Debaprasad Narendra on Nov 24, 2010 8:24 AM

Maybe you are looking for