cancel
Showing results for 
Search instead for 
Did you mean: 

Meta Data Repository (MDR) to Enhance Standard WebService?

markus_greutter
Participant
0 Kudos
5,125

Hello Experts,

I have to extend the standard service BusinessPartnerSUITEBulkReplicateRequest_In which is originally modelled in ESR. But unfortunately we don't have an ESR available in the customer system landscape to follow the "normal" enhancement approach.

The blog post "MDR: Defining Web Services from ABAP without requiring PI" describes the possibility to create a Web Service definition in a pure ABAP environment so the hope grows that MDR can also be used to enhance a standard service.

Unfortunately besides this blog I cannot find much information about MDR. So maybe the community can help me and answers some questions.

The first and essenial question: Is it principally possible to enhance standard services in a pure ABAP environment and is MDR the correct tool for it?

In the Enterprise Services Browser in SE80 I don't have the choice "Create MDR Proxy" with a right-click on a namespace as it is described in the blog. Is it necessary to activate / setup MDR first? The customer is on SAP_BASIS 750 so principally it should be available.

Folloging the blog I first defined a new namespace in transaction SPXNGENAPPL. Within this namespace I created a Data Type Enhancement for the mentioned service which is now also visible in the standard message type. But I cannot regenerate the service so the enhancement is not available in the WSDL.

Then I found the possiblility of "Migration ESR Proxies -> MDR" under the "Tips & Tricks" section in the Enterprise Services Browser. It says it is possible to migrate ESR-Proxys using Report SPXNMIG. Running this report for the namespace of the service (http://sap.com/xi/SAP_BS_FND/MDG/Global2) provided an empty result list.

What can I do to regenerate the enhanced service?

Best regards,
Markus

Accepted Solutions (1)

Accepted Solutions (1)

aditya_avadhanula
Participant

Hi Marcus ,

I actually tried the same for extending a standard service for lead replication.

Basically from sproxy for the service I went to the proxy editor and added the data type I created in MDR namespace ( while the service itself is in esr) .

When I excuted the service to test from sproxy the extended field appears along with the new extended fields . In wsdl section some how the new fields does not appear right away , but when I change the user settings for wsdl display and come back to sproxy I was able to locate the extended field in wsdl file .We have used this wsdl ( in HCI ) and are able to pass the data .

The only question remains is that when I move the proxy enhancement to qa system I might have to maintain the name space manually again in the system before moving the transport . however how it will behave is still to be checked .

Do let me know if you have already achieved the same in your case.

Regards

Aditya

markus_greutter
Participant
0 Kudos

Hello Aditya,

thank you for answering to my question.

We just tried to send the data and as it arrived correctly. So I did not investigate further. But in the meantime the enhancements are visible in the WSDL.

As far as I remember we maintained the namespace manually in the test system.

Best regards,
Markus

Answers (1)

Answers (1)

aditya_avadhanula
Participant

Hi All ,

Just wanted to provide an update that this works . I.e MDR extension ( data type extension in ABAP) can be used in an ESR based webserivice. This is specifically useful in cases like ours where we USE HCI and have no access to ESR objects for edit .

Scenario : We extended the lead replication web service for Sap hybris marketing ( on premise ) which would be sending the Leads to C4C via HCI . We had a requirement to Add some additional fields in the lead Proxy object .

Steps :1) The the custom name space for Backend MDR in each client where you want this extension ( Say https://xyz.com )

2) Naviagte to the Proxy structure where you want to make changes via the proxy editor .

3) Create the data type extension object and get the WSDL or the extended proxy object in Sproxy .

( you can refer to the other blogs for details )

4) Search for Exit / Badi / Implicit enhancement where the values for these custom fileds could be passed back to the generated extended structure .

5) Provide this WSDL to HCI and make corresponding settings .

Hope this helps ...