Calling external web service from ABAP Program

Hi All,
Can somebody point me to the documentation where how to call an external (3rd party) web service from ABAP program is explained?
Thanks & Regards,
-Smita

which version of R/3 you are using. if you are on was 6.40 its very simple, there are delivered tools to generate client proxy for consuming webservice. if you are on wa 6.20 you can use cl_http_client to achieve the same. check out the following weblogs.
/people/durairaj.athavanraja/blog/2005/07/12/send-sms-to-india-from-abap
/people/thomas.jung3/blog/2005/05/13/calling-webservices-from-abap-via-https
/people/thomas.jung3/blog/2004/11/17/bsp-a-developers-journal-part-xiv--consuming-webservices-with-abap
Regards
Raja

Similar Messages

  • HELP!!! Problem of Calling external Web Service from a Java Stored Procedur

    1.I read the topic on http://www.oracle.com/technology/sample_code/tech/java/jsp/samples/wsclient/Readme.html about Calling external Web Service from a Java Stored Procedur.
    2.After I import .jar to Oracle what is required by the topic,som error occued.
    Like: ORA-29521: javax/activation/ActivationDataFlavor class not found,
    ORA-29545: badly formed class.
    3.These is not enough .jar required on the topic? What can I do for ORA-29545: badly formed class?
    Thany you!

    Try this
    Re: HELP! Loading Java Classes into Oracle ERROR

  • Problems calling external Web Service from a Java Stored Procedure

    I'm using a sample code that I found here about calling external web services from a Java Store Procedure ( Credit Agency Web Service http://www.oracle.com/technology/sample_code/tech/java/jsp/samples/wsclient/Readme.html ) but when I run it ,send this error. I dont know what can I do or what is missing. Please help me. Thanks.
    Error: Premature EOF encountered [java.io.EOFException] [SOAPException: faultCode=SOAP-ENV:IOException; msg=Premature EOF encountered; targetException=java.io.EOFException: Premature EOF encountered] at org.apache.soap.SOAPException.(SOAPException.java:77) at oracle.soap.transport.http.OracleSOAPHTTPConnection.send(OracleSOAPHTTPConnection.java:765) at org.apache.soap.rpc.Call.invoke(Call.java:261) at oracle.otnsamples.wsclient.CreditAgencyServiceStub.authorizeCustomer(CreditAgencyServiceStub.java:84) at Products.jspService(Products.jsp:120) at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:139) at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:349) at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:509) at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:413) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:795) at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:330) at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:794) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:270) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:112) at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192) at java.lang.Thread.run(Thread.java:534)

    I'm also facing problem in running the example on the page http://www.oracle.com/technology/sample_code/tech/java/jsp/samples/wsclient/Readme.html
    I've Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 and Oracle Application Server 10g (10.1.3). When I executed the following command,
    loadjava -thin -user sys/password@localhost:1521:oradb -resolve -synonym -verbose -grant public %OC4J_HOME%/webservices/lib/soap.jar %OC4J_HOME%/lib/dms.jar %OC4J_HOME%/jlib/javax-ssl-1_1.jar %ORACLE_HOME%/lib/servlet.jar %OC4J_HOME%/j2ee/home/lib/mail.jar
    ... mentioned in step 3 under the "Configuring the Application" section on the above link, the process terminates with the following error
    The following operations failed
    class oracle/net/www/protocol/https/Handler: resolution
    class oracle/net/www/protocol/https/HttpsURLConnection: resolution
    class oracle/soap/client/ProviderManagerClient: resolution
    class oracle/soap/client/ServiceManagerClient: resolution
    class oracle/soap/providers/JavaProvider: resolution
    class oracle/soap/providers/ejbprov/EntityEJBProvider: resolution
    class oracle/soap/providers/ejbprov/StatefulEJBProvider: resolution
    class oracle/soap/providers/ejbprov/StatelessEJBProvider: resolution
    class oracle/soap/providers/sp/SpProvider: resolution
    class oracle/soap/server/http/SOAPServlet: resolution
    class oracle/soap/transport/http/OracleSOAPHTTPConnection$1: resolution
    class oracle/soap/transport/http/OracleSOAPHTTPConnection: resolution
    class org/apache/soap/messaging/Message: resolution
    class org/apache/soap/rpc/Call: resolution
    class org/apache/soap/rpc/RPCMessage: resolution
    class org/apache/soap/rpc/Response: resolution
    class javax/net/DefaultServerSocketFactory: creation (createFailed)
    class javax/net/DefaultSocketFactory: creation (createFailed)
    class javax/net/ServerSocketFactory: creation (createFailed)
    class javax/net/SocketFactory: creation (createFailed)
    class javax/net/ssl/DefaultSSLServerSocketFactory: creation (createFailed)
    class javax/net/ssl/DefaultSSLSocketFactory: creation (createFailed)
    class javax/net/ssl/HandshakeCompletedEvent: creation (createFailed)
    class javax/net/ssl/HandshakeCompletedListener: creation (createFailed)
    class javax/net/ssl/SSLException: creation (createFailed)
    class javax/net/ssl/SSLHandshakeException: creation (createFailed)
    class javax/net/ssl/SSLKeyException: creation (createFailed)
    class javax/net/ssl/SSLPeerUnverifiedException: creation (createFailed)
    class javax/net/ssl/SSLProtocolException: creation (createFailed)
    class javax/net/ssl/SSLServerSocket: creation (createFailed)
    class javax/net/ssl/SSLServerSocketFactory: creation (createFailed)
    class javax/net/ssl/SSLSession: creation (createFailed)
    class javax/net/ssl/SSLSessionBindingEvent: creation (createFailed)
    class javax/net/ssl/SSLSessionBindingListener: creation (createFailed)
    class javax/net/ssl/SSLSessionContext: creation (createFailed)
    class javax/net/ssl/SSLSocket: creation (createFailed)
    class javax/net/ssl/SSLSocketFactory: creation (createFailed)
    class javax/security/cert/Certificate: creation (createFailed)
    class javax/security/cert/CertificateEncodingException: creation (createFailed)
    class javax/security/cert/CertificateException: creation (createFailed)
    class javax/security/cert/CertificateExpiredException: creation (createFailed)
    class javax/security/cert/CertificateNotYetValidException: creation (createFailed)
    class javax/security/cert/CertificateParsingException: creation (createFailed)
    class javax/security/cert/X509Certificate: creation (createFailed)
    exiting : Failures occurred during processing
    I've checked the path to all the jar files.
    I tried to run the command again with system/password instead sys/password but then I got the following stacktrace:
    The following operations failed
    class oracle/net/www/protocol/https/Handler: resolution
    class oracle/net/www/protocol/https/HttpsURLConnection: resolution
    class oracle/soap/client/ProviderManagerClient: resolution
    class oracle/soap/client/ServiceManagerClient: resolution
    class oracle/soap/providers/JavaProvider: resolution
    class oracle/soap/providers/ejbprov/EntityEJBProvider: resolution
    class oracle/soap/providers/ejbprov/StatefulEJBProvider: resolution
    class oracle/soap/providers/ejbprov/StatelessEJBProvider: resolution
    class oracle/soap/providers/sp/SpProvider: resolution
    class oracle/soap/server/http/SOAPServlet: resolution
    class oracle/soap/transport/http/OracleSOAPHTTPConnection$1: resolution
    class oracle/soap/transport/http/OracleSOAPHTTPConnection: resolution
    class org/apache/soap/messaging/Message: resolution
    class org/apache/soap/rpc/Call: resolution
    class org/apache/soap/rpc/RPCMessage: resolution
    class org/apache/soap/rpc/Response: resolution
    exiting : Failures occurred during processing
    Thanks in advance for any useful help.
    -

  • Call to Java web service from abap program

    HI,
    I want to call to Java WS from abap program and i read some post how to do that in release of NW 6.4 but I want to know what is the simplest way to do that in release 7.0 .
    Many Thanks,
    Nina

    Hi Uwe,
    Thank you.
    I have WSDL or URL how i can call to them ,in the example that you send i don't find the place that it called.
    Do i have to create proxy for that ?
    BR
    Nina

  • Error while trying to call external  web service from oracle PL/SQL 10.2 g

    Hi I am trying to call an external web service from oracle PL/SQL .I am getting following run time error when I try to set the opeartion style.
    But as per the oracle documentation this is one of the 2 valid values.
    ORA-29532: Java call terminated by uncaught Java exception: operation style: "document" not supported.Teh webservice does expect the operation style as document.
    Following is the code I am executing.
    FUNCTION email
    return varchar2
    AS
    service_ SYS.utl_dbws.SERVICE;
    call_ SYS.utl_dbws.CALL;
    service_qname SYS.utl_dbws.QNAME;
    port_qname SYS.utl_dbws.QNAME;
    operation_qname SYS.utl_dbws.QNAME;
    string_type_qname SYS.utl_dbws.QNAME;
    retx ANYDATA;
    retx_string VARCHAR2(1000);
    retx_double number;
    retx_len number;
    params SYS.utl_dbws.ANYDATA_LIST;
    l_input_params SYS.utl_dbws.anydata_list;
    l_result ANYDATA;
    l_namespace VARCHAR2(1000);
    begin
    -- open internet explorer and navigate to http://webservices.imacination.com/distance/Distance.jws?wsdl
    -- search for 'targetNamespace' in the wsdl
    l_namespace := 'http://service.xmlservices.global.freedomgroup.com/';
    -- search for 'service name' in the wsdl
    service_qname := SYS.utl_dbws.to_qname(l_namespace, 'ClientCoreWebServiceBeanService');
    -- this is just the actual wsdl url
    service_ := SYS.utl_dbws.create_service(HTTPURITYPE('http://hostname/GlobalWebServices/services/ClientCoreWebService?wsdl'), service_qname);
    -- search for 'portType name' in the wsdl
    port_qname := SYS.utl_dbws.to_qname(l_namespace, 'ClientCoreWebServiceBeanPort');
    -- search for 'operation name' in the wsdl
    -- there will be a lot, we will choose 'getCity'
    operation_qname := SYS.utl_dbws.to_qname(l_namespace, 'postalCodelookup');
    -- bind things together
    call_ := SYS.utl_dbws.create_call(service_, port_qname, operation_qname);
    -- default is 'FALSE', so we make it 'TRUE'
    SYS.utl_dbws.set_property(call_, 'SOAPACTION_USE', 'TRUE');
    -- search for 'operation soapAction' under <wsdl:operation name="getCity">
    -- it is blank, so we make it ''
    SYS.utl_dbws.set_property(call_, 'SOAPACTION_URI', '');
    -- search for 'encodingstyle' under <wsdl:operation name="getCity">
    SYS.utl_dbws.set_property(call_, 'ENCODINGSTYLE_URI', 'http://schemas.xmlsoap.org/soap/encoding/');
    -- search for 'binding style'
    SYS.utl_dbws.set_property(call_, 'OPERATION_STYLE', 'DOCUMENT');
    -- search for 'xmlns:xs' to know the value of the first parameter
    -- under <wsdl:message name="getCityResponse"> you will see the line <wsdl:part name="getCityReturn" type="xsd:string" />
    -- thus the return type is 'string", removing 'xsd:'
    string_type_qname := SYS.utl_dbws.to_qname('http://www.w3.org/2001/XMLSchema', 'string');
    -- in the line <wsdl:operation name="getCity" parameterOrder="zip">
    -- the parameterOrder is 'zip', thus we put in 'zip'
    -- the 'ParameterMode.IN' is used to specify that we will be passing an "In Parameter" to the web service
    -- the 'ParameterMode.IN' is a constant variable in the sys.utl_dbws package
    --vj this cud be either params or xml
    SYS.utl_dbws.add_parameter(call_, 'param1', string_type_qname, 'ParameterMode.IN');
    SYS.utl_dbws.add_parameter(call_, 'param2', string_type_qname, 'ParameterMode.IN');
    SYS.utl_dbws.set_return_type(call_, string_type_qname);
    -- supply the In Parameter for the web service
    params(0) := ANYDATA.convertvarchar('<TFGGlobalBasicXMLDO><systemCd>GLOBAL</systemCd><username>GlobalAdmin</username><password>GlobalAdmin</password><localID>1</localID></TFGGlobalBasicXMLDO>');
    params(1) := ANYDATA.convertvarchar('<TFGGlobalPostalCodeLookupIDDO><postalCode>02446</postalCode><countryCode>USA</countryCode><stateCode>MA</stateCode><cityDisplay>BROOKLINE</cityDisplay><countyDisplay>NORFOLK</countyDisplay><include_inactive_flag>True</include_inactive_flag></TFGGlobalPostalCodeLookupIDDO>');
    -- invoke the web service
    retx := SYS.utl_dbws.invoke(call_, params);
    dbms_output.put_line(retx.gettypename);
    -- access the returned value and output it to the screen
    retx_string := retx.accessvarchar2;
    dbms_output.put_line('done' || retx_string);
    dbms_output.put_line('PL/SQL DII client return ===> ' || retx_string);
    -- release the web service call
    SYS.utl_dbws.release_service(service_);
    return retx_string;
    end email;

    thsi is urgent anybody ????

  • How can I call external web service from BPEL

    1. I have "EmpService" webservice (simple webservice to get emp salary, not in BPEL domain) running in Oracle AS host1. If I want to call this web service from BPEL in another host2. How can I do this?
    2. Is it a must to deploy this EmpService to Oracle BPEL domain in order to call it? If so, how can I deploy it. As many BPEL example tutorial demonstrate the "obant" command to deploy the BPEL process, but not show how to deploy a external web service not in BPEL project. Please help. ...

    Create a partner link in BPEL and point it to the WSDL deployed on external server.
    this thread will also help
    Axis generated WS to Bpel WS

  • Error in calling External web service from soa suite 11.1.1.3

    Hi
    I am getting following error while calling external web service......
    ####<Jan 20, 2011 6:54:26 PM IST> <Warning> <oracle.integration.platform> <in-mum-adina05> <soa_server1> <[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <BEA1-490B9BABECE372A277DF> <24b9eca72eaaa6a3:-4bc6fb7c:12da206ca2c:-7ffd-0000000000006287> <1295529866047> <SOA-20136> <WS Binding: exception durign SOAP invocation: java.util.NoSuchElementException>
    ####<Jan 20, 2011 6:54:26 PM IST> <Warning> <oracle.soa.mediator.common> <in-mum-adina05> <soa_server1> <[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <BEA1-490B9BABECE372A277DF> <24b9eca72eaaa6a3:-4bc6fb7c:12da206ca2c:-7ffd-0000000000006287> <1295529866047> <BEA-000000> < Payload after BaseActionHander.requestMessage :{parameters=oracle.xml.parser.v2.XMLElement@bd2382}>
    ####<Jan 20, 2011 6:54:26 PM IST> <Warning> <oracle.soa.mediator.common> <in-mum-adina05> <soa_server1> <[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <BEA1-490B9BABECE372A277DF> <24b9eca72eaaa6a3:-4bc6fb7c:12da206ca2c:-7ffd-0000000000006287> <1295529866063> <BEA-000000> < Properties after BaseActionHander.requestMessage :{ReferenceInstance=[email protected]63ea5,
    ####<Jan 20, 2011 6:54:29 PM IST> <Error> <oracle.webservices.service> <in-mum-adina05> <soa_server1> <[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <24b9eca72eaaa6a3:-4bc6fb7c:12da206ca2c:-7ffd-0000000000006287> <1295529869375> <OWS-04115> <An error occurred for port: FabricProvider: javax.xml.rpc.soap.SOAPFaultException: oracle.fabric.common.FabricInvocationException.>
    I am able to hit external ws from soap ui and getting response but while calling from soa suite getting this error.
    Any clues?
    Thanks
    Vibhor

    WS Binding: exception durign SOAP invocation: java.util.NoSuchElementException
    Looks like the error is in the data sent to or expected from the service in your composite. Check that audit logs and composite flow to make sure your soap message when using soapui matches what you are working with in soa suite.

  • Calling external web service from XI 3.0

    Does anyone know how I can call an external web service from xi to post a message? I have a WSDL for the web service.

    Hi,
      Refer the how to guide, How To Develop a Simple Web Service Application Using SAP NetWeaver Developer Studio & SAP XI, You can find at ,
    https://websmp106.sap-ag.de/nw-howtoguides
    --> EXCHANGE INFRASTRUCTURE.
    Or
    https://websmp106.sap-ag.de/~form/sapnet?_SHORTKEY=01200252310000071155&_SCENARIO=01100035870000000202
    Yes, u may use WSDL.
    Regards,
    Anirban.

  • Error when calling Java Web Services from ABAP.

    Hello experts:
        In my project, I will call Java Web Services with ABAP coding. With WSDL, I generated a proxy class and created a HTTP connection (t-code: SM59) and a logical port (t-code:lpconfig) for this proxy class. But when running, I would receive the folllowing errors:
       SOAP:1.023 SRT: Processing error in Internet Communication Framework: ("ICF Error when receiving the response: HTTP COMMUNICATION FAILURE")
       If I used HTTPS, there is no problem.
    Regards
    Bob

    Hi Bob,
    It might be the possibility that your java web server is configured to listen only on HTTPS.
    If your HTTPS is working fine, then first check with your JAVA server for HTTP connectivity, then try it calling through ABAP.
    Regards,
    Piyush

  • Calling External Web Service from Workflow

    Hello Gurus,
    I'm working on a workflow development in which I have to invoke an external web service (non-SAP) from a workflow task. As soon as the work item is created in SAP, I need to send a notification via web service call. So I thought of having a workflow step to call the web Service.
    (1) Can I use WF_EXTSRV wihout having a BSP application.? There is no BSP application in my case.
    (2) What are the possible options I have to achieve this?
    Thanks
    Steve.

    Hi,
    I don't see a reason why you should necessarily use WF_EXTSRV.
    Just create ABAP class in SE24, for example ZCLASS. Add interface IF_WORKFLOW to the interface tab. Implement the interface methods. Actually you don't really even have to implement them, just go into the methods and activate them. Now you have a workflow compatible ABAP class.
    Now create new static&public method to it, for example CALL_WEBSERVICE. Add any importing and exporting parameters that you need (what info you need from workflow to call the web service and vice versa). Code your web service call from this new method.
    Create new task in PFTC. Call your new method ZCLASS->CALL_WEBSERVICE. from the task. Add the task as a new step into the workflow in a suitable place.
    Regards,
    Karri
    Edited by: Karri Kemppi on Nov 30, 2011 10:04 PM

  • Consume External Web Service from ABAP

    Hello All,
    I have a Web Service existing on a Non R/3 system.
    I want to access this Web Service from my Development system (SAP 6.40).
    I created a Client Proxy pointing to this WSDL named "ZUSER_ARS_EXCHANGECO_UPDATE".
    I have created an FM to call this Web Service and update the data to it with the following code ->
    DATA: lv_proxy TYPE REF TO zuser_ars_exchangeco_update,
            ws_header TYPE REF TO if_wsprotocol_ws_header,
            sys_fault TYPE REF TO cx_ai_system_fault,
            appl_fault TYPE REF TO cx_ai_application_fault,
            lv_request TYPE zuser_ars_exchangecreate_soap1,
            lv_response TYPE zuser_ars_exchangecreate_soap.
      TRY.
          CREATE OBJECT lv_proxy
          EXPORTING
            logical_port_name = 'TO_ARS'
        CATCH cx_ai_system_fault .
      ENDTRY.
      MOVE-CORRESPONDING ip_userdata TO lv_request-parameters.
      TRY.
          CALL METHOD lv_proxy->create
            EXPORTING
              input  = lv_request
            IMPORTING
              output = lv_response.
        CATCH cx_ai_system_fault INTO sys_fault.
          IF sys_fault IS NOT INITIAL.
            RAISE proxy_create_system_fault.
          ENDIF.
        CATCH cx_ai_application_fault INTO appl_fault.
          IF appl_fault IS NOT INITIAL.
            RAISE proxy_create_appl_fault.
          ENDIF.
      ENDTRY.
    But when I am trying to execute, I am getting the error "cx_ai_system_fault " with the following Error Text -> "ARERR [149] Im Steuerungsdatensatz muss ein Benutzername angegeben werden." When translated to English, using Google, it is "ARERR [149] The control record must be a user name."
    The WSDL has a line as follows -> soap:header message="s0:ARAuthenticate"
    How do I pass the username and password to this "ARAuthenticate" parameter?
    Can someone please help me in getting this fixed?
    Thanks and Regards
    Gladson Jacob

    I created an HTTP RFC Destination to the WSDL URL and provided the username and password in the RFC Connection. And called the RFC Destination in the Proxy, instead of calling the URL directly in the proxy. But after that, I am getting some new errors, for which I have not received a solution yet. So, still stuck!!!
    For steps on creating a Proxy, I need to know the ABAP version your are using.

  • Call to web service from abap proram

    Hi,
    How i can call to WS from abap program ?
    There is other way except of BSP ?
    Regards
    Michael
    Edited by: Michael  A on Apr 27, 2009 3:00 PM

    check the below piece of code.
    REPORT zvalidate_email.PARAMETERS: p_mail(100) LOWER CASE.                 " E-Mail id to be verifiedDATA: http_client TYPE REF TO if_http_client .DATA: w_string TYPE string ,
          w_result TYPE string ,
          r_str    TYPE string .DATA: result_tab TYPE TABLE OF string.START-OF-SELECTION .
      CLEAR w_string .
      CONCATENATE
      'http://www.webservicex.net/ValidateEmail.asmx/IsValidEmail?Email=' p_mail
    INTO
      w_string .  CALL METHOD cl_http_client=>create_by_url
        EXPORTING
          url                = w_string
        IMPORTING
          client             = http_client
        EXCEPTIONS
          argument_not_found = 1
          plugin_not_active  = 2
          internal_error     = 3
          OTHERS             = 4.  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.
      CLEAR w_result .
      w_result = http_client->response->get_cdata( ).  REFRESH result_tab .
      SPLIT w_result AT cl_abap_char_utilities=>cr_lf INTO TABLE result_tab .  READ TABLE result_tab INTO r_str INDEX 2.
      IF r_str+44(1) = 't'.
        WRITE:/ 'Valid email address'.
      ELSE.
        WRITE:/ 'Invalid email address'.
      ENDIF.

  • Calling a secured external web service from ABAP

    Hi,
    I've created a client proxy from a wsdl to call a secured external WS from ABAP.
    The question is: how to pass in the user/password in the client proxy?
    thanks

    Hi Rika,
      have a look to the blog: https://weblogs.sdn.sap.com/pub/wlg/1645. [original link is broken] [original link is broken] [original link is broken] [original link is broken]
      Screen shots are "old" but the concepts are already there. Serach the chapter "SAP Side - Setup".
      Basically: define your RFC destination via SM59 of type G. There you'll define the target host and the user/password.
      Then in LPCONFIG you can specify the defined RFC destination.
      Have a look also to http://help.sap.com/saphelp_nw2004s/helpdata/en/16/285d32996b25428dc2eedf2b0eadd8/content.htm
      and to
    http://help.sap.com/saphelp_nw04s/helpdata/en/da/11df3a9b10355ae10000000a11405a/content.htm
    Sergio
    PS
    Kindly close the thread and award appropriate a points to the answer given.
    Message was edited by:
            Sergio Ferrari

  • Calling a web service from abap

    Hi all,
    I want to call a webservice from ABAP.
    In my report i use the below code .
    web_rul =' http://test.asmx'.
    CALL METHOD CL_HTTP_CLIENT=>CREATE_BY_URL
             EXPORTING
             URL                = WEB_URL
             IMPORTING
             CLIENT             = CLIENT
             EXCEPTIONS
             ARGUMENT_NOT_FOUND = 1
             PLUGIN_NOT_ACTIVE  = 2
             INTERNAL_ERROR     = 3
             OTHERS             = 4.
             CLIENT->REQUEST->SET_HEADER_FIELD( NAME  = '~REQUEST_METHOD' VALUE = 'GET' ).
             CLIENT->SEND( ).
             CALL METHOD CLIENT->RECEIVE
             EXCEPTIONS
             HTTP_COMMUNICATION_FAILURE = 1
             HTTP_INVALID_STATE         = 2
             HTTP_PROCESSING_FAILED     = 3
             OTHERS                     = 4.
             RET_DATA = CLIENT->RESPONSE->GET_CDATA( ).
             REPLACE  ALL OCCURRENCES OF '&LT;' IN RET_DATA WITH '<' .
             REPLACE ALL OCCURRENCES OF '&GT;' IN RET_DATA WITH '>' .
    Please correct me if my approach is wrong. when i execute the report the value in ret_Data is
    ####<html>####    <head><link rel="alternate" type="text/xml" href="test.asmx?disco" />####    <style type="text/css">##    ####BODY { color: #000000; background-color: white; font-family: Verdana; margin-left: 0px; margin-top: 0px
    what is the mistake in this. how should i call the webservice from abap.
    Regards,
    Subasree

    Hi,
    Here is a sample code I've been using for CL_HTTP_CLIENT.
    PARAMETERS  pa_symbl TYPE string.
    CONSTANTS:           
                 cv_host TYPE string VALUE 'www.webservicex.net',
                 cv_host1 TYPE string VALUE 'http://www.webservicex.net:80',
                 cv_service TYPE string VALUE '80',
                 cv_soapaction TYPE string VALUE 'http://www.webserviceX.NET/GetQuote'.
    DATA:   li_client TYPE REF TO if_http_client,
                 lv_path TYPE string VALUE '/stockquote.asmx/GetQuote?symbol=',
                 lv_tmp TYPE string.
    CL_HTTP_CLIENT=>CREATE(
         EXPORTING
           HOST = cv_host
           SERVICE = cv_service
           SCHEME = '1'
         IMPORTING
           CLIENT = li_client
         EXCEPTIONS
           ARGUMENT_NOT_FOUND = 1
           INTERNAL_ERROR = 2
           PLUGIN_NOT_ACTIVE = 3
           OTHERS = 4 ).
    *CL_HTTP_CLIENT=>CREATE_BY_URL(
    *  EXPORTING
    *     URL = cv_host1
    *  IMPORTING
    *     CLIENT = li_client
    *  EXCEPTIONS
    *     ARGUMENT_NOT_FOUND = 1
    *     INTERNAL_ERROR = 2
    *     PLUGIN_NOT_ACTIVE = 3
    *     OTHERS = 4 ).
    CONDENSE pa_symbl.
    CONCATENATE lv_path pa_symbl INTO lv_path.
    li_client->REQUEST->SET_HEADER_FIELD(
       EXPORTING
         NAME = '`~request_method'
         VALUE = 'GET' ).
    li_client->REQUEST->SET_HEADER_FIELD(
       EXPORTING
         NAME = '~server_protocol'
         VALUE = 'HTTP/1.1' ).
    li_client->REQUEST->SET_HEADER_FIELD(
       EXPORTING
         NAME = '~request_uri'
         VALUE = lv_path ).
    li_client->SEND(        "sends the HTTP REQUEST
       EXPORTING
         TIMEOUT = 300
       EXCEPTIONS
         HTTP_COMMUNICATION_FAILURE = 1
         HTTP_INVALID_STATE = 2
         HTTP_PROCESSING_FAILED = 3
         OTHERS = 4 ).
    li_client->RECEIVE(     "receives the HTTP RESPONSE
       EXCEPTIONS
         HTTP_COMMUNICATION_FAILURE = 1
         HTTP_INVALID_STATE = 2
         HTTP_PROCESSING_FAILED = 3
         OTHERS = 4 ).
    lv_tmp = li_client->RESPONSE->GET_CDATA( ).
    The code will allow you to call the stockquote webservice using GET
    http://www.webservicex.net/stockquote.asmx?op=GetQuote
    Your code is missing the request uri which is needed in a GET call.
    Hope this helps,
    Mark

  • Create an SAP Web Service Consumer (calling External Sharepoint Web Service from ABAP)

    hi all,
    i am trying to
    Create an SAP Web Service Consumer (calling sharepoint Web Service from ABAP) using blog given on following link
    Create an SAP Web Service Consumer (calling External Web Service from ABAP) 
    but when i am using my url at the end of step 3, i am getting error as follows:
    i dont want to use local file option. Can anyone help me in this??
    thanks in advance
    regards,
    SDS

    Hi SDS,
    you recieved a http 404 error when trying to access the Sharepoint Web service. Http 404 indicates that the resource is not reachable (cf. HTTP 404 - Wikipedia, the free encyclopedia). There could be different reasons for that. I'd suggest rubble checking the URL of the Web service first. Try to access it from a browser on you desktop. If the URL is correc. Most likely the SAP system is not able to connect to the URL. This could, for example, be due to some firewall restrictions. You should ask a SAP Basis colleague if they are able to access the URL of the Web service from the server on which the SAP system is running.
    Christian

Maybe you are looking for

  • IMovie 7.0 won't open in Mac OS X.5.8

    Am I being completely stupid and misunderstanding the hardware requirements for this program? I am running iLife '08 (iMovie v7.0) on a PowerPC G5 with a 2.3ghz dual core processor. When I try to launch iMovie, it tells me that I cannot use this vers

  • How do I display thumbnails for subfolders with images in Finder?

    Hello. I've settled in quite nicely with OS X but I find there's one thing I couldn't replace with a better alternative from XP and I've looked extensively for a solution but with no luck, so I figured I'd ask. It's best described with a picture (htt

  • Hi,about message?

    what is conversionID? what does it  feature ? When will it appear in message? why do not find ConversionID in the RWB? where is the ConversionID of message?

  • Significance of FRE

    hi in pricing proced for a cond type FRA1 am maintaing acct key as FRE , accrual key as FR1 when am taking GR accounts are updating like this for Ex Inventory ac Dr   BSX  110 Rs/ GR/IR ac Cr    WRX   100 Rs/ Frt ac Cr          FR1   10 Rs/ here am n

  • I want to activate my windows 2008R2 64bit server getting error message is invalid license key

    i download the windows 2008R2 64bit media from microsoft site and install it after that try to activate my key but error message coming invalid license key. pls help me.