You are on page 1of 13

Creating ABAP based web services and consuming the same

in ABAP
By Chandra Dasari, YASH Technologies
Description: Creating ABAP based Web services and consuming in report. In this example we will be using wizard provided by SAP.

Go to SE37. Enter the name of the function module already created.

Menu->utilities->more utilities->create web service->from function module:

Enter the Service Definition Name followed by short text as shown below

Select the end point, as of now the following options are available

Function module

Function Group

BAPI

Message interface (from XI)

Select the function module created earlier

Since we are using basic Authorizations, select the option as shown

Make sure we select the check box release Service for Runtime
If this is not selected we need to go to TCode: WSCONFIG & release it
This is the final screen for wizard before completion.

Click on Complete and save it in package.


Go to TCode wsconfig to check whether the wsd created has been released for soap runtime

Click on Display button

Click on ICF Details button


The web service is created in sicf transaction as shown

Go back

Yes the green icon shows the wsd is released successfully for soap runtime.
Generating the wsdl from wsd
Go to transaction code wsadmin as shown

Select the wsd for which the wsdl has to be generated.


Make sure the administrative settings has been configured

Click on generate function after selecting the respective wsd

Save the wsdl file on to the local pc for further use

Testing the web service

Click on submit button

Copy the wsdl as shown


WSDL:
http://yhsapx09.yashsap.com:8003/sap/bc/srt/rfc/sap/Z_ESA_GETCARRIERS_WSD?sapclient=100&wsdl=1.1
Click

service

on

test

button

to

test

the

functionality

of

web

Click on the parameters


Enter the input parameters and click on

submit

Comments: The web service has been tested successfully and is ready to use.
Create any client application for consuming it.

Creating ABAP based web services and consuming the same


in ABAP
...Previous

Generating the proxy object-Consuming in ABAP


Login to SAP system.
Go to SE80 create proxy object,
Path: create-> enterprise web service->proxy object

Select the option local File and select the wsdl saved on local pc in earlier step.
Specify the package & prefix (z) save it.

Creating RFC destination for Yhsapi01.


Create RFC destination of type H

If needed configure the proxy settings


For configuring proxy settings click on Global Configuration

Save the settings

Creating Logical port


Go to lpconfig

Creating Client Application-> report


*&---------------------------------------------------------------------*
*& Report ZXI3
*& AUTHOR: chandra dasari
*&---------------------------------------------------------------------*
REPORT ZXI3.
*&----------------------------------------------------------------*&
*& Data Declaration
*&----------------------------------------------------------------*&
tables : spfli.
DATA: proxy TYPE REF TO zco_zgetflightdet19_wsd,
OUTPUT type ZZGETSFLIGHTDETRESPONSE ,
INPUT type ZZGETSFLIGHTDET .
Data : sys_fault type ref to cx_ai_system_fault,
app_fault type ref to cx_ai_application_fault.
Data : itab type spfli.
*&----------------------------------------------------------------*&
*& UI Declaration
*&----------------------------------------------------------------*&
parameters : p_carrid type spfli-carrid,
p_connid type spfli-connid.
*&----------------------------------------------------------------*&
*& Application logic
*&----------------------------------------------------------------*&
start-of-selection.
TRY.
CREATE OBJECT proxy
exporting
LOGICAL_PORT_NAME = 'ZCO_ZGETFLIGHTDET19_WSD'
.
CATCH cx_ai_system_fault .
create object sys_fault.
write :/ 'error at level 1', sys_fault->errortext.
exit.
ENDTRY.
TRY.

input-carrid = p_carrid.
input-connid = p_connid.
CALL METHOD proxy->zgetsflightdet
EXPORTING
input = input
IMPORTING
OUTPUT = output
.
CATCH CX_AI_SYSTEM_FAULT .
create object sys_fault.
write :/ 'error at level 2', sys_fault->errortext.
exit.
CATCH ZCX_EXCEPTION00 .
CATCH CX_AI_APPLICATION_FAULT .
write : 'error 3'.
exit.
ENDTRY.
write : / 'TEST RESULTS OF CLIENT APPLICATION RUNNING ON YHSAPX05'.
WRITE : / 'THE CLIENT APPLICATION CALLS THE WEBSERVICE LOCATED ON YHSAPI01
SYSTEM'.
SKIP.
write :/ output-carrid,
/ output-connid,
/ output-currency,
/ output-planetype,
/ output-price,
/ output-seatsmax,
/ output-seatsocc.
Performing test from client application.
Execute the application.
Input screen:

Output:

You might also like