Вы находитесь на странице: 1из 61

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.

Select the Function Module.

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)

In the final step choose the Complete option

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.

We have to search the WS Definition that we created.

When we click on Open WSDL Document for selected binding a new windows pops
up with the WSDL document:

The final WSDL file in now available.

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.

Creating a Service Consumer Proxy


Posted by Juan Manuel in Process Integration (PI) & SOA Middleware on Oct 24, 2012 10:37:11 PM
Tweet

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.

This time, in Object Type field we choose Service Consumer:

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.

Fill with the URL of the WSDL previously created.

Before continue, we enter to SOAMANAGER transaction code and choose: Application


and Scenario Communication ->Single Service Administration.

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.

Use the URL in the wizard:

Fullfil the necesary data in the wizard.

In final step, you can click on Complete to start the creation of the Proxy object.

Enter your login data:

The proxy class is shown. Click on Save and Activate.

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 Configuration tab, select Create Logical Port.

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:

Testing a Service Consumer Proxy


Posted by Juan Manuel in Process Integration (PI) & SOA Middleware on Oct 25, 2012 5:04:32 PM
Tweet
In the previous chapter we have created a Service consumer proxy:
http://scn.sap.com/community/pi-and-soa-middleware/blog/2012/10/24/creating-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.

The response must display the calculation in XML mode.

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:

Modify the template to call the WS.

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.

Creation and consuming of a WebService in SAP


ABAP without the obsolete transaction LPCONFIG
24 December 2012 |

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.

PART 1 :- Creation of WebService in SAP


1. Create an RFC. (Here I took an example of simple addition logic in the RFC).

2. Create a WebService from the above RFC.

3. It opens the following WebService creation wizard; enter the Service Definition name
description.

4. Check the check box Map Name.

5. Select the security profile, which is the authentication method to be followed while
consuming the WebService.

6. Save

7. Click on complete. Now your WebService will be created.

8. Below is the service definition created and remember to activate it immediately.

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.

11. Select your webservice and click on apply selection button.

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.

PART 2 :- Consuming a WebService in ABAP


1. First create a consumer proxy as shown,

2. A consumer proxy creation wizard will be opened, select the Service Consumer.

3. Select the source as External WSDL.

4. Paste the WSDL URL copied locally in step 16 of part

5. Save a give some prefix, to your proxy name.

6. Click on complete.

7. Service Consumer will be created and remember to activate it immediately.

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.

11. The logical port is created.

12. Now test the service consumer from the SAP GUI by clicking on execute.

13. Enter the logical port created and execute.

14. Enter the values and execute.

15. Result will be displayed as,

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).

Step 2 - Create ABAP Service Definition


You should now be presented with the first screen of the Service Definition
generation wizard where you need to enter select 'Service Provider' and press
continue.

Select 'Existing ABAP Objects (Inside Out) and Press Continue.

Enter the Service Definition Name (Z_SAPWEBSERVICE), description and select


'Function Module' as the end point. Press Continue.

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.

Save and activate it!

Step 3 - Execute tranastion SOAMANAGER


Execute transaction SOAMANAGER. In the resultant webpage click on the 'Web
Service Administration' link within the 'Business Administrastion' tab.

In later version of SAP the option has been re-named 'Web Service Configuration'.

Step 4 - Search for your webservice


Enter your webservice name (Z_SAPWEBSERVICE) into the search pattern field
and press Go.

In later version of SAP the search has chnaged slightly

Step 5 - View your webservice


Select the resultant entry and press the 'Apply Selection' button. You just click on
the resultant entry in later versions of SAP.

Step 6 - Get the WSDL URL for your web service


Within the Overview tab simply click on the 'Open WSDL document for selected
binding' link.

Use the WSDL icons in later versions of SAP

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.

ABAP and SE80 to consume a Web Service - Example to


demonstrate simple creation process

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.

Step 2 - Create ABAP proxy


You should now be presented with the first screen of the ABAP proxy generation
wizard where you need to enter URL/HTTP Destination and press continue.

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!

Step 3 - Create a logical port


Execute transaction LPCONFIG and within Proxy class enter the proxy you just
created ZES_CO_CURRENCY_CONVERTER_SOAP in SE80. Then with the Logical
Port enter an appropriate name such as CURR_CONV_XMETHODS. Tick the Default
Port checkbox and press create.

Step 4 - Setup Call parameters


Within the 'Call Parameters' tab select URL and enter the url of the WSDL again
(http://webservice.webserviceshare.com/currencyconverter/rates.asmx?WSDL).

Step 5 - Setup Operations


Right this is where it gets a little messy as now we need to add the reference from
the actual WSDL code into each operation. Basiaclly within the WSDL there is a
section which details each operation and specifies a soapAction url. We simply
need to find this soapAction url and enter it into the operations tab for the
appropriate operation. I am just going to set up the
'GET_SUPPORTED_CURRENCIES' operation but feel setup the others at any point.
To do this select the GET_SUPPORTED_CURRENCIES operation and enter the SOAP
Action as "http://websevriceshare.com/GetSupportedCurrencies". This was found
in the following section of the WSDL:
<wsdl:operation name="GetSupportedCurrencies">
<soap:operation
soapAction="http://websevriceshare.com/GetSupportedCurrencies"

style="document"/>

Step 6 - Test your webservice ABAP proxy


Make sure you save and activate the logical port and return to your ABAP proxy
with SE80. Hit the test button and enter CURR_CONV_XMETHODS as your logical
port name and GET_SUPPORTED_CURRENCIES as the method name (action). Now
press execute!

Step 7 - Enter input details


As this method/action of the webservice does not require an input values simply
press the execute button again.

Step 8 - Enter input details


The webservice results should now be displayed, a list of all the currency codes
supported by the webservice.

Вам также может понравиться