SAP Tutorials Blog

 

 


REPORT  zpw_webservice.


 


*&---------------------------------------------------------------------*


*&      Selection Screen


*&---------------------------------------------------------------------*


PARAMETERS : p_cnt TYPE t005t-landx .


 


*&---------------------------------------------------------------------*


*&      Types and Data


*&---------------------------------------------------------------------*


DATA:  http_client    TYPE REF TO if_http_client ,


       http_url       TYPE string                ,


       p_content      TYPE string                .


 


*&---------------------------------------------------------------------*


*&      Start of Selection


*&---------------------------------------------------------------------*


START-OF-SELECTION .


 


* Build the url string based on input


  CONCATENATE 'http://www.webservicex.net/globalweather.asmx'


  '/GetCitiesByCountry?CountryName='


  p_cnt


  INTO http_url .


 


* Creation of new IF_HTTP_Client object


  CALL METHOD cl_http_client=>create_by_url


    EXPORTING


      url                = http_url


    IMPORTING


      client             = http_client


    EXCEPTIONS


      argument_not_found = 1


      plugin_not_active  = 2


      internal_error     = 3


      OTHERS             = 4.


 


  http_client->request->set_header_field( name  = '~request_method'


  value = 'GET' ).


* Send the request


  http_client->send( ).


 


* Reterive the result


  CALL METHOD http_client->receive


    EXCEPTIONS


      http_communication_failure = 1


      http_invalid_state         = 2


      http_processing_failed     = 3


      OTHERS                     = 4.


 


  p_content = http_client->response->get_cdata( ).


  REPLACE  ALL OCCURRENCES OF '&lt;' IN p_content WITH '<' .


  REPLACE  ALL OCCURRENCES OF '&gt;' IN p_content WITH '>' .


 


*&---------------------------------------------------------------------*


*&      Processing string


*&---------------------------------------------------------------------*


 


  DATA : moff  TYPE syst-tabix ,


         moff1 TYPE syst-tabix ,


         len   TYPE syst-tabix .


 


  DO .


    FIND '<City>' IN SECTION OFFSET moff OF p_content IGNORING CASE MATCH OFFSET moff .


    IF sy-subrc = 0 .


      moff = moff + 6 .


      FIND '</City>' IN SECTION OFFSET moff OF p_content IGNORING CASE MATCH OFFSET moff1 .


      len = moff1 - moff .


      WRITE : / p_content+moff(len) .


    ELSE.


      EXIT.


    ENDIF.


  ENDDO .


Serkan AKKAVAK

Computer Engineer BSc

SAP Department Manager

Contact : serkurumsal@yandex.com