Quantcast
Channel: SCN : Document List - ABAP Development
Viewing all articles
Browse latest Browse all 935

Creation of RESTful Webservice in SAP

$
0
0

As you all aware of that creation of SOA (System oriented architecture) web service using FM. Now let's create a REST(Representational state transfer) web service which is getting much attention now a days.

 

Recently I have been given with a requirement to create a REST( Representational state transfer) web service which returns the sales order details in XML format.

 

Business requirement: Consumer want to get the details of sales order from the SAP by passing the sales order number as ID through URL.

 

What is REST ful web service?

It's a named resource which can be accessed using the URL containing the ID (In our case Sales order number ) of the resource in distributed environment.

 

Eg: http://eccehp4.myserver.com:8000/sap/bc/zrest_service/0000004969

 

With the help of SCN and Wiki documents I have created Web service as below.

 

Step1: Create a handler class which is having the business logic to get the sales order details

           Go to se24 enter the class name

 

 

Step 2: Now we need to implement the interface IF_HTTP_EXTENSION


 

You can see the method HANDLE_REQUEST from the interface IF_HTTP_EXTENSION.We will use this method in future to implement business logic.

 

 

Step 3:Write below code in the HANDLE_REQUEST method

 


 

Source code:

method IF_HTTP_EXTENSION~HANDLE_REQUEST.

 

  data:lv_path type string,

       lv_data type string,

       lt_data type table of string.

 

  types:begin of ty_head,

        VBELN type vbak-VBELN,

        KUNNR type vbak-KUNNR,

        VKORG type vbak-VKORG,

        end of ty_head.

 

  data:ls_head type ty_head,

       lt_list type table of BAPIORDERS,

       ls_list type BAPIORDERS,

       XML_OUT type string.

 

* get the request attributes

  lv_path = server->REQUEST->get_header_field( name = '~PATH_INFO' ).

 

  SHIFT lv_path LEFT BY 1 PLACES.

 

* Get the sales order details

 

  select single vbeln

                kunnr

                vkorg

           into ls_head

           from vbak

          where vbeln = lv_path.

 

* Convert the data to  XML format

 

  CALL TRANSFORMATION ID

               SOURCE TAB = ls_head

           RESULT XML XML_OUT

              OPTIONS XML_HEADER = 'WITHOUT_ENCODING'.

 

* Set the converted data to Browser

  server->response->set_cdata( data = XML_OUT ).

 

endmethod.

 

Step4: Go to transaction SICF and click on Execute button

 


 

Step 5: Create a child node under the services hierarchy by right click on the node. I have created services in the following path

 

Default host->SAP->bc

 

Step 6: Enter the service name click to continue

 


 

Added service will be under the respective hierarchy as below

 

 

Step 7: Double click on the service zrest_service then below screen will appear


 

Step 8: Go to Handler list tab and give the handler name which we created earlier as ZCL_SALES_ORDER_HANDLER

Step 9: Save and activate the service as below

 


 

Step 10: Now test the service

 


 

Step 11:Give sales order number in URL and click F5


Note: To debugthe web service you have to put external break point in the method HANDLE_REQUEST

 

Reference Link :  Building Mash-Ups and simplifying Application Integration withRESTful Web Services in SAP ABAP


Viewing all articles
Browse latest Browse all 935

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>