Webservice testing from ABAP

Hello All,
I have created a webservice for an RFC enable function module in ABAP..
For the FM i have created a webservice definition and release the webservice using WSCONFIG...
Now i am trying to test the webservice from WSADMIN...
The webservice navigator is not displaying the page in the internet explorer..
Couly you let me know the problem for the above and provide me the solution
Thanks in advance
Regards
Shiva

in WSADMIN did you set the url of the j2ee engine from go to->administration settings ?
Raja

Similar Messages

  • Exposing WebService directly from ABAP Class not from BAPI

    Hi guys,
    is it possible ti expose a Webservice direct from an ABAP OO-Class.
    I know the possebility to do it for RFC enabled Funktionmodules but I think it is no good coding style to call ABAP-OO-Methods using RFC-Module only for providing them as methods of an WebService...
    Is there anyone who has exerience on that area ?
    Thanks in advance.
    Bast regards
    André

    Hi Micky,
    thanks for your answer. But the WS-Call are OO codings and the class is OO coding. From my point of view it is not a good style using an RFC Functionmodule as "middleware" between OO-Classes.
    However, if it is not possible I have to live with the possabilities SAP provides.
    regards
    André

  • Webservice call from Abap

    Hi
    <u>ABAP:</u>
    I wish to know ,Do we need to configure SNC for calling an Abap side webservice using X509 certificate ?I m calling webservice from Abap.I created a certificate through VisualAdministrator and asign it to R/3 in STRUST transaction.Now can I pass it to my Webservice so that it should not ask for user/password.Any other way ,if u can suggest for the same,is welcome.
    <u>JAVA:</u>
    If  i need to do the same with J2EE WAS webservice-then will the steps vary,as i feel no SNC can be configured in J2EE WAS.
    Regards
    Dhanya

    Hi,
      Besides that i think you can do it by configuring the ITS and calling the webservice by means of using BSP applications in ABAP .
    Regards
    Abhishek
    Message was edited by: Abhishek Raj

  • Reading Webservice information from ABAP Program

    Hi All,
    How to read a webservice information from a ABAP program ?
    Are there any webservices available in ABAP which can do this .
    Gopal.

    Hi,
    The following code will call the web service and fill the data into internal table which was received from the Web service. This code will send & Receive the data from ABAP to Webservice.
    Change the Header detail as per your Webservice.
    REPORT  ZWORKORDER.
    TYPES: BEGIN OF OUTTAB1 ,
      JOBCODE(20),
      COMPONENTCODE(20),
      ACCURATEHOURS(20),
      ACCURATECOST(20),
      LENGTH TYPE I,
       END OF OUTTAB1 .
    DATA: OUTTAB TYPE  TABLE OF OUTTAB1.
    DATA: TAB TYPE OUTTAB1.
    DATA: WF_O LIKE LINE OF OUTTAB .
    DATA: XSLT_ERR TYPE REF TO CX_XSLT_EXCEPTION .
    DATA: RLENGTH TYPE I,
          TXLEN TYPE STRING  .
    DATA: HTTP_CLIENT TYPE REF TO IF_HTTP_CLIENT .
    DATA: WF_STRING TYPE STRING .
    DATA: WF_STRING1 TYPE STRING .
    DATA: WF_PROXY TYPE STRING ,
          WF_PORT TYPE STRING .
    CLEAR WF_STRING .
    Form the input string to send the Input Data to Web service.
    CONCATENATE
    '<?xml version="1.0" encoding="utf-8"?>'
    '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'
    '  <soap:Body>'
    '    <GetWorkOrder xmlns="http://*******erica.net/webservices/">'
    '      <nWorkOrder>2</nWorkOrder>'
    '      <nDistributorCode>4871</nDistributorCode>'
    '      <model>HM400</model>'
    '     <type>1 </type>'
    '    </GetWorkOrder>'
    '  </soap:Body>'
    '</soap:Envelope>'
    INTO WF_STRING .
    CLEAR :RLENGTH , TXLEN .
    RLENGTH = STRLEN( WF_STRING ) .
    MOVE: RLENGTH TO TXLEN .
    CLEAR: WF_PROXY, WF_PORT .
    CALL METHOD CL_HTTP_CLIENT=>CREATE
      EXPORTING
        HOST    = '192.168.1.41' "'http://****merica.net/webservices'
        SERVICE = '8080'
        SCHEME  = '1'
      IMPORTING
        CLIENT  = HTTP_CLIENT.
    HTTP_CLIENT->PROPERTYTYPE_LOGON_POPUP = HTTP_CLIENT->CO_DISABLED.
    CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
      EXPORTING
        NAME  = '~request_method'
        VALUE = 'POST'.
    CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
      EXPORTING
        NAME  = '~server_protocol'
        VALUE = 'HTTP/1.1'.
    CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
      EXPORTING
        NAME  = '~request_uri'
        VALUE = '/service/accurate/workorder.asmx?'.
    CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
      EXPORTING
        NAME  = 'Content-Type'
        VALUE = 'text/xml; charset=utf-8'.
    CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
      EXPORTING
        NAME  = 'Content-Length'
        VALUE = TXLEN.
    CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
      EXPORTING
        NAME  = 'SOAPAction'
        VALUE = 'http://********merica.net/webservices/GetWorkOrder'.
    CALL METHOD HTTP_CLIENT->REQUEST->SET_CDATA
      EXPORTING
        DATA   = WF_STRING
        OFFSET = 0
        LENGTH = RLENGTH.
    Send the Input Data to Web service.
    CALL METHOD HTTP_CLIENT->SEND
      EXCEPTIONS
        HTTP_COMMUNICATION_FAILURE = 1
        HTTP_INVALID_STATE         = 2.
    Receive the Input from Web Serice.
    CALL METHOD HTTP_CLIENT->RECEIVE
      EXCEPTIONS
        HTTP_COMMUNICATION_FAILURE = 1
        HTTP_INVALID_STATE         = 2
        HTTP_PROCESSING_FAILED     = 3.
    CLEAR WF_STRING1 .
    WF_STRING1 = HTTP_CLIENT->RESPONSE->GET_CDATA( ).
    DATA: LENGTH TYPE I.
    LENGTH = STRLEN( WF_STRING1 ).
    DATA: VALUE_FIELD TYPE NAME_KOMP.
    DATA: VALUE TYPE REF TO DATA.
    FIELD-SYMBOLS: <FS_CONVERTED_DATA>.
    DATA: TAB1 TYPE TABLE OF STRING.
    DATA: FROM_LENGTH TYPE I VALUE 1.
    DATA: TO_LENGTH TYPE I.
    DATA: DIFF TYPE I.
    DATA: START TYPE I VALUE 1.
    DO.
    JOBCODE.
      SEARCH WF_STRING1 FOR 'JobCode=' . "STARTING AT START .
      IF SY-SUBRC <> 0.
        EXIT.
      ENDIF.
      FROM_LENGTH = SY-FDPOS .
      FROM_LENGTH = FROM_LENGTH  + 8.
      SEARCH WF_STRING1 FOR 'JobDescription=' ."STARTING AT START ..
      TO_LENGTH = SY-FDPOS .
      DIFF = TO_LENGTH - FROM_LENGTH .
      MOVE WF_STRING1+FROM_LENGTH(DIFF) TO TAB-JOBCODE.
      TO_LENGTH = DIFF + TO_LENGTH.
      SHIFT WF_STRING1 BY TO_LENGTH PLACES.
    COMPONENT CODE
      SEARCH WF_STRING1 FOR 'ComponentCode=' .
      IF SY-SUBRC <> 0.
        EXIT.
      ENDIF.
      FROM_LENGTH = SY-FDPOS .
      FROM_LENGTH = FROM_LENGTH  + 14.
      SEARCH WF_STRING1 FOR 'ComponentDescription=' .
      TO_LENGTH = SY-FDPOS .
      DIFF = TO_LENGTH - FROM_LENGTH .
      MOVE WF_STRING1+FROM_LENGTH(DIFF) TO TAB-COMPONENTCODE.
      TO_LENGTH = DIFF + TO_LENGTH.
      SHIFT WF_STRING1 BY TO_LENGTH PLACES.
    AccurateHours
      SEARCH WF_STRING1 FOR 'AccurateHours=' .
      IF SY-SUBRC <> 0.
        EXIT.
      ENDIF.
      FROM_LENGTH = SY-FDPOS .
      FROM_LENGTH = FROM_LENGTH  + 14.
      SEARCH WF_STRING1 FOR 'AccurateCost='.
      TO_LENGTH = SY-FDPOS .
      DIFF = TO_LENGTH - FROM_LENGTH .
      MOVE WF_STRING1+FROM_LENGTH(DIFF) TO TAB-ACCURATEHOURS.
      TO_LENGTH = DIFF + TO_LENGTH.
    AccurateCost
      SEARCH WF_STRING1 FOR 'AccurateCost='.
      FROM_LENGTH =  SY-FDPOS.
      FROM_LENGTH =  FROM_LENGTH + 13.
      SEARCH WF_STRING1 FOR '/>'.
      TO_LENGTH = SY-FDPOS.
      DIFF = TO_LENGTH - FROM_LENGTH .
      MOVE WF_STRING1+FROM_LENGTH(DIFF) TO TAB-ACCURATECOST.
      TO_LENGTH = DIFF + TO_LENGTH.
      SHIFT WF_STRING1 BY TO_LENGTH PLACES.
      APPEND TAB TO OUTTAB.
    ENDDO.
    WRITE: (10) 'JOBCODE'.
    WRITE (20) 'COMPONENTCODE'.
    WRITE (30) 'ACCURATEHOURS'.
    WRITE (40) 'ACCURATECOST'.
    LOOP AT OUTTAB INTO TAB.
      WRITE:/ TAB-JOBCODE .
      WRITE (20) TAB-COMPONENTCODE.
      WRITE (30) TAB-ACCURATEHOURS.
      WRITE (40) TAB-ACCURATECOST.
    ENDLOOP .
    It is better to create a proxy, it then puts a level of abstraction between in that coding. All you need to do is then access the proxy class.
    Besides that i think you can do it by configuring the ITS and calling the webservice by means of using BSP applications in ABAP
    <b>I believe you need to create a proxy in order to consume your web service.
    http://help.sap.com/saphelp_nw2004s/helpdata/en/bf/d005244e9d1d4d92b2fe7935556b4c/frameset.htm
    Reward points</b>
    Regards

  • Webservice Consumption from ABAP without XI

    Hi Experts,
    Im trying to consume a webservice which I got from ESB(IBM) team. Basically I got a wsdl file.
    First I have created a proxy from SE80 by uploading this wsdl file and I have activated sucessfully.
    Second from SOA Manager I have created Logical port for this wsdl file.
    Finally I wrote one ABAP program to consume webservice and got the return message.
    Now for this I have few doubts.
    1) Because I'm uploading WSDL file manually, in future if there is any change in the webservice do i need to upload new wsdl file again?
    2) In the wsdl file endpoints like URL will change from dev to qa and prod. If that is the case, from SAP how can we transport from dev to Quality to Prod?  Do we need to manually change those urls? How can we transport to different  servers?
    3)suppose I have uploaded 2 wsdl files. And in SOA manager I have created logical ports with the same name. Then in our program how can we call the right service as there are two logical ports with the same name?
    Appreciate your help .
    Regards,
    Ravi.D

    Hi,
    >1) Because I'm uploading WSDL file manually, in future if there is any change in the webservice do i >need to upload new wsdl file again?
    It depends of the changes. Suppose, one optional input parameter has been added in the wsdl, and you don't need this parameter from the client side. You would not need to regenereate the client proxy from the new wsdl. But if you want to play it safe, regenerate the proxy each time the wsdl is modified.
    It should not change every day !
    >2) In the wsdl file endpoints like URL will change from dev to qa and prod. If that is the case, from SAP >how can we transport from dev to Quality to Prod? Do we need to manually change those urls? How >can we transport to different servers?
    This is runtime configuration that you have to do manually in each system. It cannot be transported and should not as it would have no meaning.
    3)suppose I have uploaded 2 wsdl files. And in SOA manager I have created logical ports with the same name. Then in our program how can we call the right service as there are two logical ports with the same name?
    It would be a bad idea to create 2 different logical ports with the same name but if you do, thare will be no confusion because the logical port is defined for the client proxy.
    Regards,
    Olivier

  • Calling a webservice runtime from ABAP

    Hi All,
    I have a doubt regarding the usage  of webservice runtime.
    I have a scenario where we have a webdynpro ABAP program which displays all the messages for a particular interface. In our scenario we have only an Integration server of PI 7.1. In this server we have developed the web dynpro ABAP program. Now in this program we need to display the adapter status of the message also.
    For getting the adapter status from the Java Stack we developed a webservice. but now the problem is that we cannot consume the webserive using a proxy runtime from the inntegration server.
    I have heared that it can be done if we are using  webservice runntime instead of the proxy runtime, but i dont have a clue in how to use the web service runtime.
    so please somebody help me understand the concept of using the webservice runtime, and how to create and use the webservice runntime to achieve my requirement.
    Thanks in advance.
    AjithV

    Hi All,
    I have a doubt regarding the usage  of webservice runtime.
    I have a scenario where we have a webdynpro ABAP program which displays all the messages for a particular interface. In our scenario we have only an Integration server of PI 7.1. In this server we have developed the web dynpro ABAP program. Now in this program we need to display the adapter status of the message also.
    For getting the adapter status from the Java Stack we developed a webservice. but now the problem is that we cannot consume the webserive using a proxy runtime from the inntegration server.
    I have heared that it can be done if we are using  webservice runntime instead of the proxy runtime, but i dont have a clue in how to use the web service runtime.
    so please somebody help me understand the concept of using the webservice runtime, and how to create and use the webservice runntime to achieve my requirement.
    Thanks in advance.
    AjithV

  • Webservice consumption from abap system

    hi colleagues,
    I want to consume webservice that is in ABAP syatem  in webdynpro java project .
    I just want to know what is the basic thing need to do  for consuming webservice.
    Thanks,
    sudhanshu

    Hi,
    You need to create the Adaptive Webservice Model.
    After that you need to create the destination for this WebService in the below location of Visual Admin.
    services>WebServiceSecurity>Dynamic WebService Proxies-->Click on Create button.
    And you need to give this destination in the properties of Webservice Model.
    See the below document for destinations configuration:
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/b2bc0932-0d01-0010-6d8e-cff1b2f22bc7
    This destination is to handle the url, credentials (uname, pwd) dynamically.
    See the complete tutorial "Accessing an Email Web Service using the Adaptive Web Service Model" in the below link.
    Web Dynpro Java Tutorials and Samples NW 2004 [original link is broken]
    If you are using CE 7.1 go through the below document.
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/50d70a19-45a3-2b10-bba0-807d819daf46
    Regards,
    Charan

  • Webservice generated from ABAP

    I am using ECC 6.40. I have generated a webservice for a function module. In this function module i have an import parameter refering to a structure defined in data dictionary (SE11).
    The import parameter is optional. I see this in the virtual interface of the webservice. But i would also like to make each field of the structure optional. Goal is that the WSDL will have nillable fields or minoccurs = 0.
    What i would like to have is like the wsdl from the bapi BAPI_CUSTOMER_CREATEFROMDATA1
    <xsd:element name="PI_COMPANYDATA" minOccurs="0" type="s0:BAPIKNA106" />
    - <xsd:complexType name="BAPIKNA106">
    - <xsd:sequence>
    - <xsd:element name="TITLE" minOccurs="0">
    - <xsd:simpleType>
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="30" />
      </xsd:restriction>
      </xsd:simpleType>
      </xsd:element>
    - <xsd:element name="TITLE_KEY" minOccurs="0">
    - <xsd:simpleType>
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="4" />
      </xsd:restriction>
      </xsd:simpleType>
      </xsd:element>
    In my case i get for the my defined structure ZcvClientfilterRec:
    <xsd:element name="FilterLow" minOccurs="0" type="tns:ZcvClientfilterRec" />
    - <xsd:complexType name="ZcvClientfilterRec">
    - <xsd:sequence>
      <xsd:element name="Clientno" type="n0:char10" />
      <xsd:element name="Clientgroup" type="n0:char2" />
      <xsd:element name="Clientstatus" type="n0:char3" />
    Can anyone help me with this or tell my how i can generate the wsdl so it looks like the standard bapi

    I am using ECC 6.40. I have generated a webservice for a function module. In this function module i have an import parameter refering to a structure defined in data dictionary (SE11).
    The import parameter is optional. I see this in the virtual interface of the webservice. But i would also like to make each field of the structure optional. Goal is that the WSDL will have nillable fields or minoccurs = 0.
    What i would like to have is like the wsdl from the bapi BAPI_CUSTOMER_CREATEFROMDATA1
    <xsd:element name="PI_COMPANYDATA" minOccurs="0" type="s0:BAPIKNA106" />
    - <xsd:complexType name="BAPIKNA106">
    - <xsd:sequence>
    - <xsd:element name="TITLE" minOccurs="0">
    - <xsd:simpleType>
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="30" />
      </xsd:restriction>
      </xsd:simpleType>
      </xsd:element>
    - <xsd:element name="TITLE_KEY" minOccurs="0">
    - <xsd:simpleType>
    - <xsd:restriction base="xsd:string">
      <xsd:maxLength value="4" />
      </xsd:restriction>
      </xsd:simpleType>
      </xsd:element>
    In my case i get for the my defined structure ZcvClientfilterRec:
    <xsd:element name="FilterLow" minOccurs="0" type="tns:ZcvClientfilterRec" />
    - <xsd:complexType name="ZcvClientfilterRec">
    - <xsd:sequence>
      <xsd:element name="Clientno" type="n0:char10" />
      <xsd:element name="Clientgroup" type="n0:char2" />
      <xsd:element name="Clientstatus" type="n0:char3" />
    Can anyone help me with this or tell my how i can generate the wsdl so it looks like the standard bapi

  • Calling a Webservice From ABAP

    Hi All,
    Can We make a Webservice call From ABAP ???
    Regards
    Vamsi

    Vamsi,
    1. The Following links were used by me when I was working with Web services XI:
    Hope these links are useful to you.
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/336365d3-0401-0010-9884-a651295aeaa9
    http://help.sap.com/saphelp_nw04/helpdata/en/31/daa0404dd52b54e10000000a1550b0/frameset.htm
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/ebb4c490-0201-0010-86be-88dd6fd46475
    /people/siva.maranani/blog/2005/03/01/testing-xi-exposed-web-services
    2. You can create webservices directly in the ABAP stack of CRM. To do so, refer to the following...
    http://help.sap.com/saphelp_nw04/helpdata/en/9b/dad1ae3908ee44a5caf57e10918be9/frameset.htm
    Web Services Development in ABAP [original link is broken]

  • Error Consuming a webservice from ABAP

    Hi all,
      I am consuming an external webservice from abap. I created teh proxy using WSDl file. While testing teh service its giving an exception like this-
    "JAXB unmarshalling exception: Unable to create an instance of de.*******v2.MeldungType; nested exception is javax.xml.bind.UnmarshalExcept
    ion: Unable to create an instance of de.****.MeldungType# - with linked exception:#[java.lang.InstantiationException]"
    With a soapfaultcode: 1..
    can any one help out in arriving at teh reason for this..
    Regards
    Sandeep

    I've seen lots of unmarshalling errors whilst trying to consume web services via Web Dynpro Java...  Usually, it was due to an inconsistency between the WSDL file being used and the underlying web service definition.  It might be worth checking the WSDL you are using is correct and up to date, in case the underlying service interface has changed.
    Also worth checking if you have any simple boolean type parameters defined as part of the service interface - they have to have a value assigned when you call the service and cannot be null.
    HTH.

  • How to connect external webservice from ABAP

    Hi,
    Please see code pasted below and tell me what is wrong.
    We try to connect external webservice via https. Should I install certificate is SAP for this connection? (if YES, how can I do this?)
    Should I configure something else in SAP to connect external webservice via https?
      DATA: client type ref to if_http_client,
            lv_content type String,
            lv_xml_string type string,
            lv_length type I,
            lv_response type I,
            lv_node type ref to IF_IXML_NODE,
            lv_xml_doc type ref to cl_xml_document.
    ****Create the HTTP client
    call method cl_http_client=>create_by_url
       EXPORTING
         url    = 'http://services-demo.krd.pl/raina/1.0/KrdAPI.asmx'
       IMPORTING
         client = client
       EXCEPTIONS
         others = 1.
    CALL METHOD CL_HTTP_CLIENT=>CREATE
      EXPORTING
        HOST               = 'services-demo.krd.pl'
         SERVICE = '443'
        SCHEME  = '2'
       PROXY_HOST         =
       PROXY_SERVICE      =
       SCHEME             = SCHEMETYPE_HTTP
       SSL_ID             =
       SAP_USERNAME       =
       SAP_CLIENT         =
      IMPORTING
        CLIENT             = client.
    EXCEPTIONS
       ARGUMENT_NOT_FOUND = 1
       PLUGIN_NOT_ACTIVE  = 2
       INTERNAL_ERROR     = 3
       others             = 4
    CONCATENATE
    '<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"'
    ' xmlns:xsd="http://www.w3.org/2001/XMLSchema" '
    'xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rain="http://raina.krd.pl">'
    '<soapenv:Header/>'
    '<soapenv:Body>'
    '<rain:Login soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">'
    '<id xsi:type="xsd:string">B03EB34F02</id>'
    '<password xsi:type="xsd:string">Akquinet99</password>'
    '<appId xsi:type="xsd:string">test</appId>'
    '<appInstId xsi:type="xsd:string">test</appInstId>'
    '<custom xsi:type="xsd:string">test</custom>'
    '</rain:Login>'
    '</soapenv:Body>'
    '</soapenv:Envelope>'
    INTO lv_content.
    CALL METHOD client->request->set_header_field
        EXPORTING
          name  = '~request_method'
          value = 'POST'.
    CALL METHOD client->REQUEST->SET_HEADER_FIELD
      EXPORTING
        NAME  = '~request_uri'
        VALUE = '/raina/1.0/KrdAPI.asmx?'.
      CALL METHOD client->request->set_header_field
        EXPORTING
          name  = 'Content-Type'
          value = 'text/xml; charset=utf-8'.
      call method client->request->set_header_field
        EXPORTING
          name  = 'SOAPAction'
          value = 'Login'.
      lv_length = STRLEN( lv_content ).
      call method client->request->set_cdata
        EXPORTING
          data   = lv_content
          offset = 0
          length = lv_length.
    ****Make the call
      client->send( ).
    ****Receive the Response Object
      call method client->receive
        EXCEPTIONS
          http_communication_failure = 1
          http_invalid_state         = 2
          http_processing_failed     = 3
          others                     = 4.
    *****Get the response content
      client->response->GET_STATUS( IMPORTING CODE = lv_response ).
      lv_xml_string = client->response->get_cdata( ).
    Regards,
    Michal

    HI ,
            Error in accessing External Web Service
    Calling a secured external web service from ABAP
    Edited by: A kumar on Aug 21, 2008 11:58 AM

  • What is the use of a proxy client to test web service from ABAP code?

    In NW640, we need to create a proxy client to test our web service from a ABAP code.
    Why is this so? What is the significance of a proxy client? Is this mandatory? Can we test the webservice from a ABAP code without proxy client?

    Hi Gopal,
    There are two types of proxies that can be generated from ABAP - the client proxy (to call an internet web service) and a server proxy (to communicate with XI). It sounds to me like you are looking for information about the client proxy, if so you can see the following link from SAP Help:
    http://help.sap.com/saphelp_nw04s/helpdata/en/e5/a68d10f4eb894087fc9c1c3f9ae433/frameset.htm
    Hope this helps.
    Sudha

  • Consume webservice from ABAP : SoapFaultCode:4

    Hi ,
        I need your valuable ideas in overcoming the problem mentioned below.
        This problem relates to consumption of a webservice from ABAP - Client Proxy without XI. The system is WAS 6.40.
    I had created a client proxy (along with the corresponding methods) using a WSDL file pasted below. I had also created a logical port for the proxy class generated.
    When I test the interface for one of the methods , I get the following error message.
    <u>Error Message</u>
    <?xml version="1.0" encoding="utf-8" ?>
    - <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
    - <asx:values>
      <SYSTEMFAULT href="#o103" />
      </asx:values>
    - <asx:heap xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:abap="http://www.sap.com/abapxml/types/built-in" xmlns:cls="http://www.sap.com/abapxml/classes/global" xmlns:dic="http://www.sap.com/abapxml/types/dictionary">
    - <cls:CX_AI_SYSTEM_FAULT id="o103">
    - <CX_ROOT>
      <TEXTID>F63AFF63DBE4BB4786A7F52CC4167145</TEXTID>
      <PREVIOUS />
      <KERNEL_ERRID />
    - <INTERNAL_SOURCE_POS>
      <PROGID>193</PROGID>
      <CONTID>1050</CONTID>
      </INTERNAL_SOURCE_POS>
      </CX_ROOT>
      <CX_STATIC_CHECK />
    - <CX_AI_SYSTEM_FAULT>
      <CODECONTEXT>http://www.sap.com/xml_errorcodes</CODECONTEXT>
      <CODE>SoapFaultCode:4</CODE>
      <ERRORTEXT>System.Web.Services.Protocols.SoapException: Server did not recognize the value of HTTP Header SOAPAction: //10.136.129.245/PinnacleWebServices/DatabaseAvailable. at System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest() at System.Web.Services.Protocols.SoapServerProtocol.Initialize() at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)</ERRORTEXT>
      <LANGUAGE />
      </CX_AI_SYSTEM_FAULT>
      </cls:CX_AI_SYSTEM_FAULT>
      </asx:heap>
      </asx:abap>
    <u>WDSL file used for creating the Client Proxy</u>
    <?xml version="1.0" encoding="utf-8"?>
    <wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="//10.136.129.245/PinnacleWebServices" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="//10.136.129.245/PinnacleWebServices" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
       <wsdl:types>
          <s:schema elementFormDefault="qualified" targetNamespace="//10.136.129.245/PinnacleWebServices">
             <s:element name="DatabaseAvailable">
                <s:complexType>
                   <s:sequence>
                      <s:element minOccurs="0" maxOccurs="1" name="s_dbalias" type="s:string" />
                   </s:sequence>
                </s:complexType>
             </s:element>
             <s:element name="DatabaseAvailableResponse">
                <s:complexType>
                   <s:sequence>
                      <s:element minOccurs="0" maxOccurs="1" name="DatabaseAvailableResult" type="s:string" />
                   </s:sequence>
                </s:complexType>
             </s:element>
             <s:element name="AddCustomers">
                <s:complexType>
                   <s:sequence>
                      <s:element minOccurs="0" maxOccurs="1" name="s_dbalias" type="s:string" />
                      <s:element minOccurs="0" maxOccurs="1" name="s_xml" type="s:string" />
                   </s:sequence>
                </s:complexType>
             </s:element>
             <s:element name="AddCustomersResponse">
                <s:complexType>
                   <s:sequence>
                      <s:element minOccurs="0" maxOccurs="1" name="AddCustomersResult" type="s:string" />
                   </s:sequence>
                </s:complexType>
             </s:element>
             <s:element name="AddContracts">
                <s:complexType>
                   <s:sequence>
                      <s:element minOccurs="0" maxOccurs="1" name="s_dbalias" type="s:string" />
                      <s:element minOccurs="0" maxOccurs="1" name="s_xml" type="s:string" />
                   </s:sequence>
                </s:complexType>
             </s:element>
             <s:element name="AddContractsResponse">
                <s:complexType>
                   <s:sequence>
                      <s:element minOccurs="0" maxOccurs="1" name="AddContractsResult" type="s:string" />
                   </s:sequence>
                </s:complexType>
             </s:element>
             <s:element name="AddInstalledEquipment">
                <s:complexType>
                   <s:sequence>
                      <s:element minOccurs="0" maxOccurs="1" name="s_dbalias" type="s:string" />
                      <s:element minOccurs="0" maxOccurs="1" name="s_xml" type="s:string" />
                   </s:sequence>
                </s:complexType>
             </s:element>
             <s:element name="AddInstalledEquipmentResponse">
                <s:complexType>
                   <s:sequence>
                      <s:element minOccurs="0" maxOccurs="1" name="AddInstalledEquipmentResult" type="s:string" />
                   </s:sequence>
                </s:complexType>
             </s:element>
             <s:element name="AddProducts">
                <s:complexType>
                   <s:sequence>
                      <s:element minOccurs="0" maxOccurs="1" name="s_dbalias" type="s:string" />
                      <s:element minOccurs="0" maxOccurs="1" name="s_xml" type="s:string" />
                   </s:sequence>
                </s:complexType>
             </s:element>
             <s:element name="AddProductsResponse">
                <s:complexType>
                   <s:sequence>
                      <s:element minOccurs="0" maxOccurs="1" name="AddProductsResult" type="s:string" />
                   </s:sequence>
                </s:complexType>
             </s:element>
             <s:element name="AddCreditAlerts">
                <s:complexType>
                   <s:sequence>
                      <s:element minOccurs="0" maxOccurs="1" name="s_dbalias" type="s:string" />
                      <s:element minOccurs="0" maxOccurs="1" name="s_xml" type="s:string" />
                      <s:element minOccurs="1" maxOccurs="1" name="bool_updatecustomers" type="s:boolean" />
                      <s:element minOccurs="1" maxOccurs="1" name="bool_updatecontracts" type="s:boolean" />
                   </s:sequence>
                </s:complexType>
             </s:element>
             <s:element name="AddCreditAlertsResponse">
                <s:complexType>
                   <s:sequence>
                      <s:element minOccurs="0" maxOccurs="1" name="AddCreditAlertsResult" type="s:string" />
                   </s:sequence>
                </s:complexType>
             </s:element>
             <s:element name="AddStockFigures">
                <s:complexType>
                   <s:sequence>
                      <s:element minOccurs="0" maxOccurs="1" name="s_dbalias" type="s:string" />
                      <s:element minOccurs="0" maxOccurs="1" name="s_xml" type="s:string" />
                   </s:sequence>
                </s:complexType>
             </s:element>
             <s:element name="AddStockFiguresResponse">
                <s:complexType>
                   <s:sequence>
                      <s:element minOccurs="0" maxOccurs="1" name="AddStockFiguresResult" type="s:string" />
                   </s:sequence>
                </s:complexType>
             </s:element>
             <s:element name="string" nillable="true" type="s:string" />
          </s:schema>
       </wsdl:types>
       <wsdl:message name="DatabaseAvailableSoapIn">
          <wsdl:part name="parameters" element="tns:DatabaseAvailable" />
       </wsdl:message>
       <wsdl:message name="DatabaseAvailableSoapOut">
          <wsdl:part name="parameters" element="tns:DatabaseAvailableResponse" />
       </wsdl:message>
       <wsdl:message name="AddCustomersSoapIn">
          <wsdl:part name="parameters" element="tns:AddCustomers" />
       </wsdl:message>
       <wsdl:message name="AddCustomersSoapOut">
          <wsdl:part name="parameters" element="tns:AddCustomersResponse" />
       </wsdl:message>
       <wsdl:message name="AddContractsSoapIn">
          <wsdl:part name="parameters" element="tns:AddContracts" />
       </wsdl:message>
       <wsdl:message name="AddContractsSoapOut">
          <wsdl:part name="parameters" element="tns:AddContractsResponse" />
       </wsdl:message>
       <wsdl:message name="AddInstalledEquipmentSoapIn">
          <wsdl:part name="parameters" element="tns:AddInstalledEquipment" />
       </wsdl:message>
       <wsdl:message name="AddInstalledEquipmentSoapOut">
          <wsdl:part name="parameters" element="tns:AddInstalledEquipmentResponse" />
       </wsdl:message>
       <wsdl:message name="AddProductsSoapIn">
          <wsdl:part name="parameters" element="tns:AddProducts" />
       </wsdl:message>
       <wsdl:message name="AddProductsSoapOut">
          <wsdl:part name="parameters" element="tns:AddProductsResponse" />
       </wsdl:message>
       <wsdl:message name="AddCreditAlertsSoapIn">
          <wsdl:part name="parameters" element="tns:AddCreditAlerts" />
       </wsdl:message>
       <wsdl:message name="AddCreditAlertsSoapOut">
          <wsdl:part name="parameters" element="tns:AddCreditAlertsResponse" />
       </wsdl:message>
       <wsdl:message name="AddStockFiguresSoapIn">
          <wsdl:part name="parameters" element="tns:AddStockFigures" />
       </wsdl:message>
       <wsdl:message name="AddStockFiguresSoapOut">
          <wsdl:part name="parameters" element="tns:AddStockFiguresResponse" />
       </wsdl:message>
       <wsdl:message name="DatabaseAvailableHttpGetIn">
          <wsdl:part name="s_dbalias" type="s:string" />
       </wsdl:message>
       <wsdl:message name="DatabaseAvailableHttpGetOut">
          <wsdl:part name="Body" element="tns:string" />
       </wsdl:message>
       <wsdl:message name="AddCustomersHttpGetIn">
          <wsdl:part name="s_dbalias" type="s:string" />
          <wsdl:part name="s_xml" type="s:string" />
       </wsdl:message>
       <wsdl:message name="AddCustomersHttpGetOut">
          <wsdl:part name="Body" element="tns:string" />
       </wsdl:message>
       <wsdl:message name="AddContractsHttpGetIn">
          <wsdl:part name="s_dbalias" type="s:string" />
          <wsdl:part name="s_xml" type="s:string" />
       </wsdl:message>
       <wsdl:message name="AddContractsHttpGetOut">
          <wsdl:part name="Body" element="tns:string" />
       </wsdl:message>
       <wsdl:message name="AddInstalledEquipmentHttpGetIn">
          <wsdl:part name="s_dbalias" type="s:string" />
          <wsdl:part name="s_xml" type="s:string" />
       </wsdl:message>
       <wsdl:message name="AddInstalledEquipmentHttpGetOut">
          <wsdl:part name="Body" element="tns:string" />
       </wsdl:message>
       <wsdl:message name="AddProductsHttpGetIn">
          <wsdl:part name="s_dbalias" type="s:string" />
          <wsdl:part name="s_xml" type="s:string" />
       </wsdl:message>
       <wsdl:message name="AddProductsHttpGetOut">
          <wsdl:part name="Body" element="tns:string" />
       </wsdl:message>
       <wsdl:message name="AddCreditAlertsHttpGetIn">
          <wsdl:part name="s_dbalias" type="s:string" />
          <wsdl:part name="s_xml" type="s:string" />
          <wsdl:part name="bool_updatecustomers" type="s:string" />
          <wsdl:part name="bool_updatecontracts" type="s:string" />
       </wsdl:message>
       <wsdl:message name="AddCreditAlertsHttpGetOut">
          <wsdl:part name="Body" element="tns:string" />
       </wsdl:message>
       <wsdl:message name="AddStockFiguresHttpGetIn">
          <wsdl:part name="s_dbalias" type="s:string" />
          <wsdl:part name="s_xml" type="s:string" />
       </wsdl:message>
       <wsdl:message name="AddStockFiguresHttpGetOut">
          <wsdl:part name="Body" element="tns:string" />
       </wsdl:message>
       <wsdl:message name="DatabaseAvailableHttpPostIn">
          <wsdl:part name="s_dbalias" type="s:string" />
       </wsdl:message>
       <wsdl:message name="DatabaseAvailableHttpPostOut">
          <wsdl:part name="Body" element="tns:string" />
       </wsdl:message>
       <wsdl:message name="AddCustomersHttpPostIn">
          <wsdl:part name="s_dbalias" type="s:string" />
          <wsdl:part name="s_xml" type="s:string" />
       </wsdl:message>
       <wsdl:message name="AddCustomersHttpPostOut">
          <wsdl:part name="Body" element="tns:string" />
       </wsdl:message>
       <wsdl:message name="AddContractsHttpPostIn">
          <wsdl:part name="s_dbalias" type="s:string" />
          <wsdl:part name="s_xml" type="s:string" />
       </wsdl:message>
       <wsdl:message name="AddContractsHttpPostOut">
          <wsdl:part name="Body" element="tns:string" />
       </wsdl:message>
       <wsdl:message name="AddInstalledEquipmentHttpPostIn">
          <wsdl:part name="s_dbalias" type="s:string" />
          <wsdl:part name="s_xml" type="s:string" />
       </wsdl:message>
       <wsdl:message name="AddInstalledEquipmentHttpPostOut">
          <wsdl:part name="Body" element="tns:string" />
       </wsdl:message>
       <wsdl:message name="AddProductsHttpPostIn">
          <wsdl:part name="s_dbalias" type="s:string" />
          <wsdl:part name="s_xml" type="s:string" />
       </wsdl:message>
       <wsdl:message name="AddProductsHttpPostOut">
          <wsdl:part name="Body" element="tns:string" />
       </wsdl:message>
       <wsdl:message name="AddCreditAlertsHttpPostIn">
          <wsdl:part name="s_dbalias" type="s:string" />
          <wsdl:part name="s_xml" type="s:string" />
          <wsdl:part name="bool_updatecustomers" type="s:string" />
          <wsdl:part name="bool_updatecontracts" type="s:string" />
       </wsdl:message>
       <wsdl:message name="AddCreditAlertsHttpPostOut">
          <wsdl:part name="Body" element="tns:string" />
       </wsdl:message>
       <wsdl:message name="AddStockFiguresHttpPostIn">
          <wsdl:part name="s_dbalias" type="s:string" />
          <wsdl:part name="s_xml" type="s:string" />
       </wsdl:message>
       <wsdl:message name="AddStockFiguresHttpPostOut">
          <wsdl:part name="Body" element="tns:string" />
       </wsdl:message>
       <wsdl:portType name="Pinnacle_x0020_Web_x0020_ServicesSoap">
          <wsdl:operation name="DatabaseAvailable">
             <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Checks if a connection to the selected database is available.</documentation>
             <wsdl:input message="tns:DatabaseAvailableSoapIn" />
             <wsdl:output message="tns:DatabaseAvailableSoapOut" />
          </wsdl:operation>
          <wsdl:operation name="AddCustomers">
             <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Add or Update Customers within Service Director</documentation>
             <wsdl:input message="tns:AddCustomersSoapIn" />
             <wsdl:output message="tns:AddCustomersSoapOut" />
          </wsdl:operation>
          <wsdl:operation name="AddContracts">
             <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Add or Update Contracts within Service Director</documentation>
             <wsdl:input message="tns:AddContractsSoapIn" />
             <wsdl:output message="tns:AddContractsSoapOut" />
          </wsdl:operation>
          <wsdl:operation name="AddInstalledEquipment">
             <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Add or Update Installed Equipment within Service Director</documentation>
             <wsdl:input message="tns:AddInstalledEquipmentSoapIn" />
             <wsdl:output message="tns:AddInstalledEquipmentSoapOut" />
          </wsdl:operation>
          <wsdl:operation name="AddProducts">
             <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Add or Update Products within Service Director</documentation>
             <wsdl:input message="tns:AddProductsSoapIn" />
             <wsdl:output message="tns:AddProductsSoapOut" />
          </wsdl:operation>
          <wsdl:operation name="AddCreditAlerts">
             <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Add Credit Alerts to Customers and/or Contracts within Service Director. Warning - Will remove all credit alerts first as it assumes a full list is provided every time.</documentation>
             <wsdl:input message="tns:AddCreditAlertsSoapIn" />
             <wsdl:output message="tns:AddCreditAlertsSoapOut" />
          </wsdl:operation>
          <wsdl:operation name="AddStockFigures">
             <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Add Stock Figures to mobile_data_connector within Service Director in order that the PDA get updated.</documentation>
             <wsdl:input message="tns:AddStockFiguresSoapIn" />
             <wsdl:output message="tns:AddStockFiguresSoapOut" />
          </wsdl:operation>
       </wsdl:portType>
       <wsdl:portType name="Pinnacle_x0020_Web_x0020_ServicesHttpGet">
          <wsdl:operation name="DatabaseAvailable">
             <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Checks if a connection to the selected database is available.</documentation>
             <wsdl:input message="tns:DatabaseAvailableHttpGetIn" />
             <wsdl:output message="tns:DatabaseAvailableHttpGetOut" />
          </wsdl:operation>
          <wsdl:operation name="AddCustomers">
             <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Add or Update Customers within Service Director</documentation>
             <wsdl:input message="tns:AddCustomersHttpGetIn" />
             <wsdl:output message="tns:AddCustomersHttpGetOut" />
          </wsdl:operation>
          <wsdl:operation name="AddContracts">
             <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Add or Update Contracts within Service Director</documentation>
             <wsdl:input message="tns:AddContractsHttpGetIn" />
             <wsdl:output message="tns:AddContractsHttpGetOut" />
          </wsdl:operation>
          <wsdl:operation name="AddInstalledEquipment">
             <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Add or Update Installed Equipment within Service Director</documentation>
             <wsdl:input message="tns:AddInstalledEquipmentHttpGetIn" />
             <wsdl:output message="tns:AddInstalledEquipmentHttpGetOut" />
          </wsdl:operation>
          <wsdl:operation name="AddProducts">
             <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Add or Update Products within Service Director</documentation>
             <wsdl:input message="tns:AddProductsHttpGetIn" />
             <wsdl:output message="tns:AddProductsHttpGetOut" />
          </wsdl:operation>
          <wsdl:operation name="AddCreditAlerts">
             <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Add Credit Alerts to Customers and/or Contracts within Service Director. Warning - Will remove all credit alerts first as it assumes a full list is provided every time.</documentation>
             <wsdl:input message="tns:AddCreditAlertsHttpGetIn" />
             <wsdl:output message="tns:AddCreditAlertsHttpGetOut" />
          </wsdl:operation>
          <wsdl:operation name="AddStockFigures">
             <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Add Stock Figures to mobile_data_connector within Service Director in order that the PDA get updated.</documentation>
             <wsdl:input message="tns:AddStockFiguresHttpGetIn" />
             <wsdl:output message="tns:AddStockFiguresHttpGetOut" />
          </wsdl:operation>
       </wsdl:portType>
       <wsdl:portType name="Pinnacle_x0020_Web_x0020_ServicesHttpPost">
          <wsdl:operation name="DatabaseAvailable">
             <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Checks if a connection to the selected database is available.</documentation>
             <wsdl:input message="tns:DatabaseAvailableHttpPostIn" />
             <wsdl:output message="tns:DatabaseAvailableHttpPostOut" />
          </wsdl:operation>
          <wsdl:operation name="AddCustomers">
             <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Add or Update Customers within Service Director</documentation>
             <wsdl:input message="tns:AddCustomersHttpPostIn" />
             <wsdl:output message="tns:AddCustomersHttpPostOut" />
          </wsdl:operation>
          <wsdl:operation name="AddContracts">
             <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Add or Update Contracts within Service Director</documentation>
             <wsdl:input message="tns:AddContractsHttpPostIn" />
             <wsdl:output message="tns:AddContractsHttpPostOut" />
          </wsdl:operation>
          <wsdl:operation name="AddInstalledEquipment">
             <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Add or Update Installed Equipment within Service Director</documentation>
             <wsdl:input message="tns:AddInstalledEquipmentHttpPostIn" />
             <wsdl:output message="tns:AddInstalledEquipmentHttpPostOut" />
          </wsdl:operation>
          <wsdl:operation name="AddProducts">
             <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Add or Update Products within Service Director</documentation>
             <wsdl:input message="tns:AddProductsHttpPostIn" />
             <wsdl:output message="tns:AddProductsHttpPostOut" />
          </wsdl:operation>
          <wsdl:operation name="AddCreditAlerts">
             <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Add Credit Alerts to Customers and/or Contracts within Service Director. Warning - Will remove all credit alerts first as it assumes a full list is provided every time.</documentation>
             <wsdl:input message="tns:AddCreditAlertsHttpPostIn" />
             <wsdl:output message="tns:AddCreditAlertsHttpPostOut" />
          </wsdl:operation>
          <wsdl:operation name="AddStockFigures">
             <documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Add Stock Figures to mobile_data_connector within Service Director in order that the PDA get updated.</documentation>
             <wsdl:input message="tns:AddStockFiguresHttpPostIn" />
             <wsdl:output message="tns:AddStockFiguresHttpPostOut" />
          </wsdl:operation>
       </wsdl:portType>
       <wsdl:binding name="Pinnacle_x0020_Web_x0020_ServicesSoap" type="tns:Pinnacle_x0020_Web_x0020_ServicesSoap">
          <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
          <wsdl:operation name="DatabaseAvailable">
             <soap:operation soapAction="//10.136.129.245/PinnacleWebServices/DatabaseAvailable" style="document" />
             <wsdl:input>
                <soap:body use="literal" />
             </wsdl:input>
             <wsdl:output>
                <soap:body use="literal" />
             </wsdl:output>
          </wsdl:operation>
          <wsdl:operation name="AddCustomers">
             <soap:operation soapAction="//10.136.129.245/PinnacleWebServices/AddCustomers" style="document" />
             <wsdl:input>
                <soap:body use="literal" />
             </wsdl:input>
             <wsdl:output>
                <soap:body use="literal" />
             </wsdl:output>
          </wsdl:operation>
          <wsdl:operation name="AddContracts">
             <soap:operation soapAction="//10.136.129.245/PinnacleWebServices/AddContracts" style="document" />
             <wsdl:input>
                <soap:body use="literal" />
             </wsdl:input>
             <wsdl:output>
                <soap:body use="literal" />
             </wsdl:output>
          </wsdl:operation>
          <wsdl:operation name="AddInstalledEquipment">
             <soap:operation soapAction="//10.136.129.245/PinnacleWebServices/AddInstalledEquipment" style="document" />
             <wsdl:input>
                <soap:body use="literal" />
             </wsdl:input>
             <wsdl:output>
                <soap:body use="literal" />
             </wsdl:output>
          </wsdl:operation>
          <wsdl:operation name="AddProducts">
             <soap:operation soapAction="//10.136.129.245/PinnacleWebServices/AddProducts" style="document" />
             <wsdl:input>
                <soap:body use="literal" />
             </wsdl:input>
             <wsdl:output>
                <soap:body use="literal" />
             </wsdl:output>
          </wsdl:operation>
          <wsdl:operation name="AddCreditAlerts">
             <soap:operation soapAction="//10.136.129.245/PinnacleWebServices/AddCreditAlerts" style="document" />
             <wsdl:input>
                <soap:body use="literal" />
             </wsdl:input>
             <wsdl:output>
                <soap:body use="literal" />
             </wsdl:output>
          </wsdl:operation>
          <wsdl:operation name="AddStockFigures">
             <soap:operation soapAction="//10.136.129.245/PinnacleWebServices/AddStockFigures" style="document" />
             <wsdl:input>
                <soap:body use="literal" />
             </wsdl:input>
             <wsdl:output>
                <soap:body use="literal" />
             </wsdl:output>
          </wsdl:operation>
       </wsdl:binding>
       <wsdl:binding name="Pinnacle_x0020_Web_x0020_ServicesHttpGet" type="tns:Pinnacle_x0020_Web_x0020_ServicesHttpGet">
          <http:binding verb="GET" />
          <wsdl:operation name="DatabaseAvailable">
             <http:operation location="/DatabaseAvailable" />
             <wsdl:input>
                <http:urlEncoded />
             </wsdl:input>
             <wsdl:output>
                <mime:mimeXml part="Body" />
             </wsdl:output>
          </wsdl:operation>
          <wsdl:operation name="AddCustomers">
             <http:operation location="/AddCustomers" />
             <wsdl:input>
                <http:urlEncoded />
             </wsdl:input>
             <wsdl:output>
                <mime:mimeXml part="Body" />
             </wsdl:output>
          </wsdl:operation>
          <wsdl:operation name="AddContracts">
             <http:operation location="/AddContracts" />
             <wsdl:input>
                <http:urlEncoded />
             </wsdl:input>
             <wsdl:output>
                <mime:mimeXml part="Body" />
             </wsdl:output>
          </wsdl:operation>
          <wsdl:operation name="AddInstalledEquipment">
             <http:operation location="/AddInstalledEquipment" />
             <wsdl:input>
                <http:urlEncoded />
             </wsdl:input>
             <wsdl:output>
                <mime:mimeXml part="Body" />
             </wsdl:output>
          </wsdl:operation>
          <wsdl:operation name="AddProducts">
             <http:operation location="/AddProducts" />
             <wsdl:input>
                <http:urlEncoded />
             </wsdl:input>
             <wsdl:output>
                <mime:mimeXml part="Body" />
             </wsdl:output>
          </wsdl:operation>
          <wsdl:operation name="AddCreditAlerts">
             <http:operation location="/AddCreditAlerts" />
             <wsdl:input>
                <http:urlEncoded />
             </wsdl:input>
             <wsdl:output>
                <mime:mimeXml part="Body" />
             </wsdl:output>
          </wsdl:operation>
          <wsdl:operation name="AddStockFigures">
             <http:operation location="/AddStockFigures" />
             <wsdl:input>
                <http:urlEncoded />
             </wsdl:input>
             <wsdl:output>
                <mime:mimeXml part="Body" />
             </wsdl:output>
          </wsdl:operation>
       </wsdl:binding>
       <wsdl:binding name="Pinnacle_x0020_Web_x0020_ServicesHttpPost" type="tns:Pinnacle_x0020_Web_x0020_ServicesHttpPost">
          <http:binding verb="POST" />
          <wsdl:operation name="DatabaseAvailable">
             <http:operation location="/DatabaseAvailable" />
             <wsdl:input>
                <mime:content type="application/x-www-form-urlencoded" />
             </wsdl:input>
             <wsdl:output>
                <mime:mimeXml part="Body" />
             </wsdl:output>
          </wsdl:operation>
          <wsdl:operation name="AddCustomers">
             <http:operation location="/AddCustomers" />
             <wsdl:input>
                <mime:content type="application/x-www-form-urlencoded" />
             </wsdl:input>
             <wsdl:output>
                <mime:mimeXml part="Body" />
             </wsdl:output>
          </wsdl:operation>
          <wsdl:operation name="AddContracts">
             <http:operation location="/AddContracts" />
             <wsdl:input>
                <mime:content type="application/x-www-form-urlencoded" />
             </wsdl:input>
             <wsdl:output>
                <mime:mimeXml part="Body" />
             </wsdl:output>
          </wsdl:operation>
          <wsdl:operation name="AddInstalledEquipment">
             <http:operation location="/AddInstalledEquipment" />
             <wsdl:input>
                <mime:content type="application/x-www-form-urlencoded" />
             </wsdl:input>
             <wsdl:output>
                <mime:mimeXml part="Body" />
             </wsdl:output>
          </wsdl:operation>
          <wsdl:operation name="AddProducts">
             <http:operation location="/AddProducts" />
             <wsdl:input>
                <mime:content type="application/x-www-form-urlencoded" />
             </wsdl:input>
             <wsdl:output>
                <mime:mimeXml part="Body" />
             </wsdl:output>
          </wsdl:operation>
          <wsdl:operation name="AddCreditAlerts">
             <http:operation location="/AddCreditAlerts" />
             <wsdl:input>
                <mime:content type="application/x-www-form-urlencoded" />
             </wsdl:input>
             <wsdl:output>
                <mime:mimeXml part="Body" />
             </wsdl:output>
          </wsdl:operation>
          <wsdl:operation name="AddStockFigures">
             <http:operation location="/AddStockFigures" />
             <wsdl:input>
                <mime:content type="application/x-www-form-urlencoded" />
             </wsdl:input>
             <wsdl:output>
                <mime:mimeXml part="Body" />
             </wsdl:output>
          </wsdl:operation>
       </wsdl:binding>
       <wsdl:service name="Pinnacle_x0020_Web_x0020_Services">
          <wsdl:port name="Pinnacle_x0020_Web_x0020_ServicesSoap" binding="tns:Pinnacle_x0020_Web_x0020_ServicesSoap">
             <soap:address location="http://10.136.129.245/pinnaclewebservices/maintenance.asmx" />
          </wsdl:port>
          <wsdl:port name="Pinnacle_x0020_Web_x0020_ServicesHttpGet" binding="tns:Pinnacle_x0020_Web_x0020_ServicesHttpGet">
             <http:address location="http://10.136.129.245/pinnaclewebservices/maintenance.asmx" />
          </wsdl:port>
          <wsdl:port name="Pinnacle_x0020_Web_x0020_ServicesHttpPost" binding="tns:Pinnacle_x0020_Web_x0020_ServicesHttpPost">
             <http:address location="http://10.136.129.245/pinnaclewebservices/maintenance.asmx" />
          </wsdl:port>
       </wsdl:service>
    </wsdl:definitions>
    Thanks in advance.

    Hi Raja,
                  Thanks for your prompt reply. I tried changing in the WSDL file the SOAP action parameters (http) like you said and still I got the same error message while testing the interface.
                  I have corrected the problem by trying a different approach. Earlier I used file option for Client Proxy creation and I got the error message.
    Now I created the Client Proxy by using the option URL/HTTP destination ( which was also showing errors earlier but it is OK now after our Network Specialists opened the concerned port.)
                    Your reply was usefull as it helped me to check the  "Soap Action" in the "OPERATIONS" tab of the "LOGICAL PORT" for the client proxy. I have awarded the points for that.
                    I have seen your Blogs and the your replies to the questions in this form. I would like to thank you and all the like minded contributors of this forum. Keep up the good work.
    Regards.
    François

  • Calling an existing webservice from ABAP ?

    I am trying to call an existing webservice from abap and cannot seem to get it right.
    We are on 640.
    What are the steps I need to follow ?
    The address of the test wsdl is http://obcbox:50000/EMWSApp/DCCGen?wsdl
    and http://obcbox:50000/wsnavigator/jsps/explorer.jsp?localWS=RU1XU0FwcC9zYXAuY29tJTJGRU1XU0FwcEVhci9FTVdTYXBwLmphcg%3D%3D
    I need to be able to send data to the dccGenerator so it can do its work.
    Any help would be greatly appreciated.
    Cheers Steve.

    The following code will call the web service and fill the data into internal table which was received from the Web service. This code will send & Receive the data from ABAP to Webservice.
    Change the Header detail as per your Webservice.
    REPORT  ZWORKORDER.
    * Author : Raja T
    * Company :******
    TYPES: BEGIN OF OUTTAB1 ,
      JOBCODE(20),
      COMPONENTCODE(20),
      ACCURATEHOURS(20),
      ACCURATECOST(20),
      LENGTH TYPE I,
       END OF OUTTAB1 .
    DATA: OUTTAB TYPE  TABLE OF OUTTAB1.
    DATA: TAB TYPE OUTTAB1.
    DATA: WF_O LIKE LINE OF OUTTAB .
    DATA: XSLT_ERR TYPE REF TO CX_XSLT_EXCEPTION .
    DATA: RLENGTH TYPE I,
          TXLEN TYPE STRING  .
    DATA: HTTP_CLIENT TYPE REF TO IF_HTTP_CLIENT .
    DATA: WF_STRING TYPE STRING .
    DATA: WF_STRING1 TYPE STRING .
    DATA: WF_PROXY TYPE STRING ,
          WF_PORT TYPE STRING .
    CLEAR WF_STRING .
    * Form the input string to send the Input Data to Web service.
    CONCATENATE
    '<?xml version="1.0" encoding="utf-8"?>'
    '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'
    '  <soap:Body>'
    '    <GetWorkOrder xmlns="http://*******erica.net/webservices/">'
    '      <nWorkOrder>2</nWorkOrder>'
    '      <nDistributorCode>4871</nDistributorCode>'
    '      <model>HM400</model>'
    '     <type>1 </type>'
    '    </GetWorkOrder>'
    '  </soap:Body>'
    '</soap:Envelope>'
    INTO WF_STRING .
    CLEAR :RLENGTH , TXLEN .
    RLENGTH = STRLEN( WF_STRING ) .
    MOVE: RLENGTH TO TXLEN .
    CLEAR: WF_PROXY, WF_PORT .
    CALL METHOD CL_HTTP_CLIENT=>CREATE
      EXPORTING
        HOST    = '192.168.1.41' "'http://****merica.net/webservices'
        SERVICE = '8080'
        SCHEME  = '1'
      IMPORTING
        CLIENT  = HTTP_CLIENT.
    HTTP_CLIENT->PROPERTYTYPE_LOGON_POPUP = HTTP_CLIENT->CO_DISABLED.
    CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
      EXPORTING
        NAME  = '~request_method'
        VALUE = 'POST'.
    CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
      EXPORTING
        NAME  = '~server_protocol'
        VALUE = 'HTTP/1.1'.
    CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
      EXPORTING
        NAME  = '~request_uri'
        VALUE = '/service/accurate/workorder.asmx?'.
    CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
      EXPORTING
        NAME  = 'Content-Type'
        VALUE = 'text/xml; charset=utf-8'.
    CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
      EXPORTING
        NAME  = 'Content-Length'
        VALUE = TXLEN.
    CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
      EXPORTING
        NAME  = 'SOAPAction'
        VALUE = 'http://********merica.net/webservices/GetWorkOrder'.
    CALL METHOD HTTP_CLIENT->REQUEST->SET_CDATA
      EXPORTING
        DATA   = WF_STRING
        OFFSET = 0
        LENGTH = RLENGTH.
    * Send the Input Data to Web service.
    CALL METHOD HTTP_CLIENT->SEND
      EXCEPTIONS
        HTTP_COMMUNICATION_FAILURE = 1
        HTTP_INVALID_STATE         = 2.
    * Receive the Input from Web Serice.
    CALL METHOD HTTP_CLIENT->RECEIVE
      EXCEPTIONS
        HTTP_COMMUNICATION_FAILURE = 1
        HTTP_INVALID_STATE         = 2
        HTTP_PROCESSING_FAILED     = 3.
    CLEAR WF_STRING1 .
    WF_STRING1 = HTTP_CLIENT->RESPONSE->GET_CDATA( ).
    DATA: LENGTH TYPE I.
    LENGTH = STRLEN( WF_STRING1 ).
    DATA: VALUE_FIELD TYPE NAME_KOMP.
    DATA: VALUE TYPE REF TO DATA.
    FIELD-SYMBOLS: <FS_CONVERTED_DATA>.
    DATA: TAB1 TYPE TABLE OF STRING.
    DATA: FROM_LENGTH TYPE I VALUE 1.
    DATA: TO_LENGTH TYPE I.
    DATA: DIFF TYPE I.
    DATA: START TYPE I VALUE 1.
    DO.
    * JOBCODE.
      SEARCH WF_STRING1 FOR 'JobCode=' . "STARTING AT START .
      IF SY-SUBRC <> 0.
        EXIT.
      ENDIF.
      FROM_LENGTH = SY-FDPOS .
      FROM_LENGTH = FROM_LENGTH  + 8.
      SEARCH WF_STRING1 FOR 'JobDescription=' ."STARTING AT START ..
      TO_LENGTH = SY-FDPOS .
      DIFF = TO_LENGTH - FROM_LENGTH .
      MOVE WF_STRING1+FROM_LENGTH(DIFF) TO TAB-JOBCODE.
      TO_LENGTH = DIFF + TO_LENGTH.
      SHIFT WF_STRING1 BY TO_LENGTH PLACES.
    * COMPONENT CODE
      SEARCH WF_STRING1 FOR 'ComponentCode=' .
      IF SY-SUBRC <> 0.
        EXIT.
      ENDIF.
      FROM_LENGTH = SY-FDPOS .
      FROM_LENGTH = FROM_LENGTH  + 14.
      SEARCH WF_STRING1 FOR 'ComponentDescription=' .
      TO_LENGTH = SY-FDPOS .
      DIFF = TO_LENGTH - FROM_LENGTH .
      MOVE WF_STRING1+FROM_LENGTH(DIFF) TO TAB-COMPONENTCODE.
      TO_LENGTH = DIFF + TO_LENGTH.
      SHIFT WF_STRING1 BY TO_LENGTH PLACES.
    * AccurateHours
      SEARCH WF_STRING1 FOR 'AccurateHours=' .
      IF SY-SUBRC <> 0.
        EXIT.
      ENDIF.
      FROM_LENGTH = SY-FDPOS .
      FROM_LENGTH = FROM_LENGTH  + 14.
      SEARCH WF_STRING1 FOR 'AccurateCost='.
      TO_LENGTH = SY-FDPOS .
      DIFF = TO_LENGTH - FROM_LENGTH .
      MOVE WF_STRING1+FROM_LENGTH(DIFF) TO TAB-ACCURATEHOURS.
      TO_LENGTH = DIFF + TO_LENGTH.
    *  AccurateCost
      SEARCH WF_STRING1 FOR 'AccurateCost='.
      FROM_LENGTH =  SY-FDPOS.
      FROM_LENGTH =  FROM_LENGTH + 13.
      SEARCH WF_STRING1 FOR '/>'.
      TO_LENGTH = SY-FDPOS.
      DIFF = TO_LENGTH - FROM_LENGTH .
      MOVE WF_STRING1+FROM_LENGTH(DIFF) TO TAB-ACCURATECOST.
      TO_LENGTH = DIFF + TO_LENGTH.
      SHIFT WF_STRING1 BY TO_LENGTH PLACES.
      APPEND TAB TO OUTTAB.
    ENDDO.
    WRITE: (10) 'JOBCODE'.
    WRITE (20) 'COMPONENTCODE'.
    WRITE (30) 'ACCURATEHOURS'.
    WRITE (40) 'ACCURATECOST'.
    LOOP AT OUTTAB INTO TAB.
      WRITE:/ TAB-JOBCODE .
      WRITE (20) TAB-COMPONENTCODE.
      WRITE (30) TAB-ACCURATEHOURS.
      WRITE (40) TAB-ACCURATECOST.
    ENDLOOP .
    Message was edited by:
            Raja T

  • Call webservice from abap

    Hello,
    I use the following code to call web service from abap, but in the method "http_client->receive"  i see "http_communication_failure = 1" .
    this is the code:
    DATA: SMS_TEXT       TYPE STRING,
           SMS_TEXT_UTF   TYPE STRING,
           SEND_STRING    TYPE STRING.
    DATA: w_string TYPE string ,
           w_result TYPE string ,
           r_str    TYPE string .
    DATA: result_tab TYPE TABLE OF string.
    DATA: http_client    TYPE REF TO if_http_client.
    SEND_STRING = 'http://www.currencyserver.de/webservice/currencyserverwebservice.asmx/getDollarValue?provider=AVERAGE&currency=EUR'.
    CALL METHOD cl_http_client=>create_by_url
       EXPORTING
         url                = SEND_STRING
       IMPORTING
         client             = http_client
       EXCEPTIONS
         argument_not_found = 1
         plugin_not_active  = 2
         internal_error     = 3
         others             = 4.
    if sy-subrc = 0.
       CALL METHOD http_client->send
         EXCEPTIONS
           http_communication_failure = 1
           http_invalid_state         = 2.
       CALL METHOD http_client->receive
         EXCEPTIONS
           http_communication_failure = 1
           http_invalid_state         = 2
           http_processing_failed     = 3.
       if sy-subrc = 0.
         w_result = http_client->response->get_cdata( ).
         REFRESH result_tab .
         SPLIT w_result AT cl_abap_char_utilities=>cr_lf INTO TABLE result_tab .
         loop at result_tab into w_result.
           write :/ w_result.
         endloop.
       endif.
    endif.
    Any Idea?
    thanks.
    Ouail.

    *& Report  ZBS_TEST
    REPORT zbs_test.
    *Data
    DATA: xml_doc TYPE REF TO cl_xml_document,
           node TYPE REF TO if_ixml_node,
           value TYPE string,
           lv_result TYPE string,
           lv_service TYPE string,
           lo_http_client TYPE REF TO if_http_client.
    lv_service = 'http://www.currencyserver.de/webservice/currencyserverwebservice.asmx/getDollarValue?provider=AVERAGE&currency=EUR'.
    *Call method to invoke web service
    cl_http_client=>create_by_url(
       EXPORTING
         url                = lv_service
       IMPORTING
         client             = lo_http_client
       EXCEPTIONS
         argument_not_found = 1
         plugin_not_active  = 2
         internal_error     = 3
         OTHERS             = 4 ).
    lo_http_client->send(
       EXCEPTIONS
         http_communication_failure = 1
         http_invalid_state         = 2 ).
    lo_http_client->receive(
       EXCEPTIONS
         http_communication_failure = 1
         http_invalid_state         = 2
         http_processing_failed     = 3 ).
    *Create XML parser object using xml returned from web service
    CLEAR lv_result.
    lv_result = lo_http_client->response->get_cdata( ).
    CREATE OBJECT xml_doc.
    xml_doc->parse_string( stream = lv_result ).
    *Use XML parser to get initial row and then loop through all rows
    CALL METHOD xml_doc->get_first_node
       RECEIVING
         node = node.
    *Loop through xml document extracting the data into an internal table
    WHILE NOT node IS INITIAL.
       CLEAR value.
       CALL METHOD node->get_value
         RECEIVING
           rval   = value.
       WRITE: / 'Value', value.
       CALL METHOD node->get_next
         RECEIVING
           rval = node.
    ENDWHILE.
    Try this code it should work to retrieve your values from the webservice.

Maybe you are looking for