Skip to Content
Author's profile photo Former Member

The Right Way to Create Web Services from Function Modules

The two main ways of developing Web services in the ABAP environment are often referred to as inside-out and outside-in. Inside-out refers to taking existing functions – for example, remote-enabled function modules and making Web services out of them. However, the recommended way of development is normally outside-in – that means modeling the service first and then implementing the methods.

The big advantage of the model-first approach is that you have complete control over the signature of the service. If you simply take an existing RFC function module and let the interface be generated, you have no influence over how it looks.

Since SAP NetWeaver 7.02 you can model in the ABAP environment and expose only what you want of your function module.

Metadata Repository (MDR)

The Metadata Repository is integrated in SE80 and is a local repository. This is in contrast to the Enterprise Services Repository (ESR), which is by its nature a central repository.

Some types of users who might be interested in MDR:

  • Customers who do not use SAP middleware, and have been creating Web services in ABAP using generation from remote-enabled function modules.
  • Customers who use SAP intensively, have a strong governance team, have SAP NW PI and the ESR but want to do a proof-of-concept development that requires minimal effort regarding governance, infrastructure, and so on.
  • Partners and consultants doing in-house development before moving objects to customer systems. For example, when the customer’s development system is not available for the start of the project.

Improvements in SAP NetWeaver 7.4

If you have been using the Metadata Repository in earlier releases, you may have noticed that displaying all the objects of large services can take a fairly long time. To make working with such services much smoother, only the higher level objects are now displayed by default and a sort of lazy loading has been introduced so that objects are loaded and displayed as required. Of course you can still choose to “Load All” (you can find this on the Objects tab) and wait a bit – then you have everything to hand as before.


The search functionality for enterprise service objects in SE80 is also much improved. More detailed search criteria are possible and you can search for more object types. For example, you can now search for a service group without the need to know the relevant package. The backend Metadata Repository objects that are important for the new Integration and Connectivity in ABAP are also supported.



For some scenarios it is over-the-top to install an ESR when all you need is some quick and simple modeling capability (perhaps a delivered service definition requires a minor modification). Or perhaps, you are just starting out in Web services and are not yet prepared to go the full way of SOA with all the governance and so on. Here the ability to create models directly in the ABAP system is useful.

Although SOAP-based Web services are no longer in fashion, support for them in the ABAP environment is getting better and better.

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Mika Karvonen
      Mika Karvonen

      Hi Martin,

      Thanks for the good content and keep up the good work!

      It is good news that SAP has done some improvement in 7.4. As I tested MDR with version 7.02 SP08, MDR editor seemed to be in pilot phase. For example modeling complex content inline types were not possible to do. Same seems to be with 7.30 SP 7. Last phrase got me thinking, if SOAP based Web Services are not popular anymore, what could be the next popular method?

      Author's profile photo Former Member
      Former Member
      Blog Post Author

      Hi Mika,

      thanks for commenting - I was having beginning to doubt about posting.

      There are a couple of restrictions relative to ESR. 1. Inline data types cannot be modeled or used in the MDR. 2. MDR can use only external definitions that describe a complete service (provider or consumer) whereas ESR can import less complete files describing, for example, data types. These restrictions will remain most likely.

      The MDR has been productive for a while. I think the developers forgot about the popup warning that it is "beta" because they never see it. I expect that popup to be removed soon.

      I did not mean to imply that SOAP-based Web services were not popular or little used. On the contrary, my understanding is that they are much used. Its is just that the hype is gone and the reality is here. To me it is clear that REST services and OData are in the limelight at the moment. Having said that, Web services are back at TechEd this year having missed out last year.

      Best regards,

      Author's profile photo Tobias Trapp
      Tobias Trapp

      Hi Martin,

      I really like your series about Connectivity.

      I'm not sure whether MDR is the "right" way to create Enterprise Services from functions modules. I think the Service Implementation Workbench is quite useful, too, and creating MDR content using SIW would be a great feature.

      In my opinion the greatest challenge in an Enterprise SOA is coexistence betweeb ABAP-based solutions and PI which can be used for general web service development. This is the reasons why at the moment for my current use cases MDR doesn't seem to be the best choice.

      Best Regards,


      Author's profile photo Former Member
      Former Member
      Blog Post Author

      Hi Tobias,

      I tend to agree with much of your comment. The way I see it, MDR is one of several
      options. For some, it will be ideal, but for others it is irrelevant. The same applies to the services registry in ABAP.

      Using 'right' in the title was knowingly a bit provocative. I still use the quick
      'wrong' way myself for test purposes.

      Best regards,