How To Create Web Services ABAP Based
How To Create Web Services ABAP Based
Posted by Juan Manuel in Process Integration (PI) & SOA Middleware on Oct 24, 2012 3:38:19 PM
Tweet
Using SAP XI/PI middleware we can create and expose WebServices, in this blog we are
going to try to explain how an ABAP WebService can be created, exposed and tested only
using ABAP.
First, we have to expose a Function Group as an Enterprise Service which is going to be
ready to be called.
Well
use
Function
Group Z_WEBSERVICE_TEST which
has
Function
ModuleZ_CALCULO and we are going to expose it as an Enterprise Service.
We are using the wizard for Web Service creation.
Right click on the Function Group, then select Create -> Web Service
Write the Service Definition Name, a brief description and set the EndPoint as Function
Group
We have to specify the Function Group name that is going to implement this Service
Definition.
Use the default profile called PRF_DT_IF_SEC_LOW to establish the lowest security
profile in this Service Definition.
Make sure to check the field Deploy Service. If you dont check the field, you can
complete this step later manually from transaction code SOAMANAGER using the option
for creating an EndPoint in 'Configurations' tab.
Check Local Object field to save the object locally (not transport)
Now that we have completed the previous step we can see the next screen where we can
explore the service definition.
We have to enter to the trx. SOAMANAGER and choose the tab Application and Scenario
Communication -> Single Service Administration.
When we click on Open WSDL Document for selected binding a new windows pops
up with the WSDL document:
With this, we have finished the creation of the WebService and it's ready to be used
for any external application.
Note: If you change some parameters in you function, you need to update it in the service
definition. To do this go to trx. SE80 and select your previously created Service Definition
and do a syntax check, then it will ask you if you want to correct the new parameters in the
definition.
In the next chapter we are going to find how can we consume this WS using an ABAP
proxy class.
In this part, well see the process to create Proxy consumer service.
Previously, we have seen how to create an ABAP based web service
First, we have to start the wizard to create a new service using trx. SE80. Right click and
then Create->Enterprise Service.
For the Service Consumer source, we can choose amongst Enterprise Service Repository,
URL or the path of WSDL a local file, UDDI, and the Service Registry.
Please select URL/HTTP Destination.
Search the Service previously created and choose Apply Selection. Now we can see the
Service Definition details.
You have to click on the Open Web Service navigator for Selected Binding link. The
combo button shows the Endpoint defined for the Service. Itll pop up the WSDL where we
have to take the URL to create the proxy.
In final step, you can click on Complete to start the creation of the Proxy object.
Go back to the SOAMANAGER trx. to configurate a logical port for our service provider.
Logical ports are made to configurate the time features of a WS execution. We can create a
logical port from LPCONFIG (obsolete) or SOAMANAGER as we are showing next.
A consumer proxy never stores details about a server URL (which is system specific).
These details have to be configured through logical ports and EndPoints.
For example: when we transport a proxy class from a Development system to QA system.
The proxy class doesnt contain any information about which server the WS has to be
called, this is handled by a logical port-.
Go back to the SOAMANAGER trx. This time, when you search in Web Service
Administration choose Consumer Proxy. Dont forget to click on Apply Selectiona
after highlighting the proxy.
In the pop-up shown, you have to fill several parameters. First, give a name for the logical
port and set it as the default logical port.
Next we have to select Config. Type based on WSDL.
The application reads all the security parameters needed to call this service directly from
WSDL definition.
Finally, we have to fill the WSDL URL for the called Web Services. Also, you have to give
the system user name and password to access the WSDL
If the creation was success, the system will take us back to the Config. Screen, where we
can continue with the logical port configuration. Once more, introduce the user name and
password (they are going to be used as a credentials to call this service and to save the
logical port).
The next and final section is: Testing a Service Consumer Proxy:
In this section we will see how to test a proxy. To do this we can press the icon highlighted
in the picture below (or pressing F8):
In the Test Service Consumer window, we choose the Logical Port that we previously
created from SOAMANAGER transaction code:
Change to the XML editor, and modify the default values. You can also skip this and
execute the request.
Now if we want to consume the WS using ABAP, we have to enter to trx. SE80 and create
a new report:
Drag and drop the proxy class ZTESTCO_ZWS_CALCULO and youll get a template to
consume it as shown below:
Note: setting the logical port in EXPORTING parameters its not mandatory because when
we created it from SOAMANAGER trx. we checked the Logical Port is default option.
Now we can execute it:
This is just a dummy report, but its enough to understand the basis about how to consume
a WS.
Avinash Palavai |
1 Comment |
SAP ABAP
Introduction:
This article demonstrates the entire process of creation and consuming of a WebService
in SAPABAP.
There are few changes made by SAP in the screens of transactions like SOAMANAGER, that we
see in the process of configuring the WebService definition and the transaction LPCONFIG, which
is used to create the logical port in the process of consuming the WebService is obsolete.
Now we come across this information message, when we run the transaction LPCONFIG,
So, this article helps out in following the new SAP screens and an alternative process of creating
the logical port, rather than using the transaction LPCONFIG.
The entire article is divided into two parts,
1. Creation of WebService and
2. Consuming a WebService in ABAP.
3. It opens the following WebService creation wizard; enter the Service Definition name
description.
5. Select the security profile, which is the authentication method to be followed while
consuming the WebService.
6. Save
9. Now this WebService has to be configured in SOA Management, to publish it.Run the
transaction SOAMANAGER, which would launch a Web Dynpro ABAP based SOA
Management application in your Internet Browser.
10. Below is the SOA Management window. This screen has been modified by SAP. Now click on
the WebService configuration link highlighted in orange color under the Service
Administration tab.
12. Now the screen will be expanded with the part where the service has to be configured. Click
on create under configurations tab.
13. A pop up will be opened. Enter the following details and click on apply settings,
14. Now the screen will be extended with the part, where the authentication method has to be
selected. Select User ID/Password under transport channel authentication and click on save.
15. The service definition has been configured.
16. Under the overview tab, click on Show/ hide selected bindings or services WSDL URL,
which would generate the WSDL link. Copy it locally.
2. A consumer proxy creation wizard will be opened, select the Service Consumer.
6. Click on complete.
8. Now the logical port has to be created. As the transaction LPCONFIG is obsolete, this can be
done through the SOAMANAGER. Again run the SOAMANAGER and select the consumer
proxy.
9. The screen will be extended, with a part to create the logical port. Click on create under
configuration tab.
10. It will open a pop up to enter the logical port name and settings as follows. Under the WSDL
location, enter the WSDL URL of the WebService to be consumed and the authentication
credentials.
12. Now test the service consumer from the SAP GUI by clicking on execute.
16. Now create a program to consume the WebService in ABAP and execute.
17. Result
Below are the steps required to create a service definition within ABAP and SE80 to
provide a webservice to the outside world. The example creates a webservice
based on the BAPI Function module BAPI_USER_GETLIST and shows how to get
the created WSDl so that you can consume this web service from another system.
Step 1 - Access ABAP Service Definition creation wizard via SE80
Execute transaction SE80 and within the the 'edit object' popup screen select
'Service Definition' from the 'Enterprise Services' tab and press create. I think you
have to actually enter a name within the service definition field but please note the
wizard does not seem to use this and asks you for the service definition name
again (i.e. Z_SAPWEBSERVICE).
Enter the name of the BAPI Function module you are going to create a web service
from (BAPI_USER_GETLIST), check the checkbox and Press Continue.
The next screen should be filled in with the correct details, all you need to do is
tick the 'Deploy Service' checkbox and press continue.
Select your package and transport or tick the Local object checkbox and press
continue.
Right thats it, simply press the complete button and your service definition will be
created.
In later version of SAP the option has been re-named 'Web Service Configuration'.
A new window will open containing the WSDL information for your web service,
simply copy the browser URL. This URL can now be used to consume this web
service from another system, for example via SAP's Visual composer.
Below are the steps required for consuming a webservice WSDL with ABAP and
SE80. It is using a webservice called Currency converter available on
thexmethods.com website, but the concept can be applied to any webservice you
find, as long as you have the url of its WSDL.
Step 1 - Access ABAP proxy creation wizard via SE80
Execute transaction SE80 and within the the 'edit object' popup screen select
Client proxy from the 'Enterprise Services' tab and press create.
Next you need to select URL, enter the url of your webservice WSDL and press
continue. For this example the WSDL will be
http://webservice.webserviceshare.com/currencyconverter/rates.asmx?WSDL
Now enter the package details or just click the local object checkbox and enter a
prefix of 'ZES_'. When the auto generation occurs SAP only has a finite number of
of characters for the name of the proxy, this prefix helps ensure it does not
encounter any duplication problems when it trims dowm names to fit in the field
available. Now press Continue and on the next screen press Complete.
Your ABAP proxy should now generate and you should be presented with the
following screen. Save and activate it!
style="document"/>