Skip to Content
Author's profile photo Florian Wunderle

MDR: Defining web services from ABAP without requiring PI

Traditionally when providing Web Services from ABAP system either a PI system including an ESR or another system providing service definition WSDL files was required. There was no possibility to create Web Service Proxies locally in the ABAP backend except of using the functionality of exposing a function module as a web services or to use some application specific functionality (e.g. the web service tool in SAP CRM to expose BOL objects).

With ABAP 7.02 the meta data repository (MDR) functionality is available enabling the creation of Web services locally in the backend system and releasing them in WSDL and WSIL files. The tool is still in a pilot phase and SAP states that there are certain maintenance restrictions.

The following steps describe how to create a Web Service definition and the according proxy objects in NetWeaver 7.02.

1.     Define Namespace for MDR

In Transaction SPXNGENAPPL a new namespace should be defined. In my example I call it mdr.test.loca:MDRTEST. In a real scenario this should follow the company’s domain namespace.

/wp-content/uploads/2012/05/define_namespace_101496.png

2.     Define data elements for proxy objects

In transaction SPROXY a new proxy object is being created with a right-click on any namespace component.

/wp-content/uploads/2012/05/start_wizard_101497.png

A wizard is opened to first choose the type of object to be created, the external name and the namespace to be chosen and finally to choose the ABAP package and the transport request to be used.

3.     Define proxy type

In this step the type of proxy is being defined. The tool both supports the approach of beginning with the service and add existing and even new components.

4.     Define external name

When defining the external name the name to be presented to the (non-ABAP) applications consuming/providing the web service is defined. Here usually a camel case description is used. From this name the system even generates the ABAP type names.

/wp-content/uploads/2012/05/step2_choose_ext_name_101501.png

5.     Define package and transport

Like all other repository objects a workbench transport and a package must be assigned.

After running the wizard the proxy object has been generated and it must be defined more detailed:

6.     Define ABAP type

The ABAP type is being generated by the external name. The field prefix can be used to separate the newly created proxy objects from other objects in SAP data dictionary. Personally I always use a prefix per Software Component or MDR namespace.

/wp-content/uploads/2012/05/proxy_definition_101503.png

7. Defining structure and external format

In the other tabs of the proxy screen sub objects like data elements, messages or service interfaces can be added to the proxy and the format can be defined.

/wp-content/uploads/2012/05/proxy_definition_external_101504.png

8. Generate endpoint and run service

In order to be able to execute the service an endpoint needs to be created with SOAMANAGER like for other services.

Assigned Tags

      8 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Martin Jonsson
      Martin Jonsson

      Hello Florian.

      I've tested on several 7.02 systems and I have no SPXNGENAPPL transaction or anything else in the SPX* prefix.

      Is it possible there are other dependencies I have to be aware of?

      Thanks

      Martin

      Author's profile photo Florian Wunderle
      Florian Wunderle
      Blog Post Author

      Hello Martin!

      According to OSS note 1575707 this is available from NW 7.02 SP8.

      /Florian

      Author's profile photo Martin Jonsson
      Martin Jonsson

      OK. Thanks. I'm on SP6. Time for an upgrade.

      Author's profile photo Amarnath Singanamala
      Amarnath Singanamala

      Nice to know... Thanks for sharing.

      Author's profile photo Tobias Trapp
      Tobias Trapp

      Thanks fot sharing this. Only one comment - there is no need to call the Service Provider ZFlightId - FlightId should be ok because it in an XML namespace. Only generated ABAP proxiy elements have to be in an Y, Z or customer namespace.

      Best Regards,

      Tobias

      Author's profile photo Former Member
      Former Member

      Hi,

      Is it possible to use standard web services mentioned in ES Workplace site  (http://esworkplace.sap.com/) in ABAP only scenarios (where no PI exists)?

      For e.g. "PurchaseOrderChangedInformation_Out". This namespace of this service is    http://sap.com/xi/APPL/Global2 and it seems to be modelled in ESR.

      So, my question is how we can use these standard services in ABAP MDR scenarios? Do we need to migrate these services from ESR to MDR?

      Kindly suggest.

      Thanks

      Vinod

      Author's profile photo Former Member
      Former Member

      Useful blog, thanks

      Author's profile photo Pavan Chand Bhamidipati
      Pavan Chand Bhamidipati

      Thanks for sharing. Its was really helpful for me to get an idea about, what  is MDR?; where we maintain a namesapce for MDR and ESR ?

      Regards,

      Pavan