Professional Documents
Culture Documents
integration-excellence.com/how-to-design-abap-proxies-without-esr-using-mdr/
Without SAP Process Orchestration or SAP PI we also have no ESR (Enterprise Service
Repository) to model/design our Service Interfaces (and generate ABAP Proxies from
ESR).
However, it makes a lot sense to integrate with SAP Cloud Integration (fka CPI)
using ABAP Proxies.
They are much better than the 1000 character-per-line-only SAP propietary IDocs, not
only because they use XML natively, but they support synchronous and asynchronous
communication as well as the handling of attachments (how would you pass a PDF along
with an invoice in an IDoc? As a Base64-String separated between all the segments?
noo…).
ABAP-XI-Proxies are better to interact with SAP Cloud Integration especially for
asynchronous communication, because you can use the XI Adapter, which enables you
to queue/buffer messages in the DataStore/JMS Queue. In addition, you can use EOIO
on sender side (ABAP Client Proxy) and process the messages with the SOAP adapter
(1.x) robust mode (see our guidelines here).
ABAP-WS-Proxies can be generated from WSDL files, but ABAP-XI-Proxies can be only
generated from the ESR or from the MDR (Backend Metadata Repository). This is done
in transaction SPROXY:
Now, in order to generate an ABAP Proxy from the Backend, you have to create a
namespace using transaction SPXNGENAPPL:
Then you enter the external name (the equivalent to a Service Interface):
Then the (empty) Proxy is created and you have to fill it with content by adding the typical
content of a Service Interface (as you might know from ESR):
Operation
Message Type
Data Type
I have to admit that the navigation and control is not super-intuitive but it works well and
you can build complex (also table-based) structures. So far for the design time. If you
design a Server Proxy (Provider, Inbound), you can stop reading here.
1/5
SPROXY
MDR
External Name
2/5
Add Operation
To make it work at runtime for Client Proxies, you have to configure the Integration
Engine. This is NOT required, if you are using a generic destination towards SAP Cloud
Integration.
Last, but not least: If you ever had your ABAP-system connected to an SLD and assigned
a Business System name, you are good. This is stored in the table LCRT_CLNTCACHE
and will be used all over again even when no SLD connection exists.
Usually you then enter SLDAPICUST and connect against the SLD of your Solution
Manager where you add your system as a Business System. If this is not possible (or to
bureaucratic), keep on reading:
3/5
If the table LCRT_CLNTCACHE is
empty, you have to fill it yourself, e.g.
by debugging the function module
SXMSIF
SM59
SXMB_ADM
4/5
REPORT z_xi_set_business_system.
ls_cache-srtfd = text.
ls_cache-aedat = sy-datum.
ls_cache-bs_key_name = bs_name.
ls_cache-bs_caption = bs_name.
ls_cache-bs_role = 'LOC'.
MODIFY lcrt_clntcache FROM ls_cache.
IF sy-subrc IS INITIAL.
WRITE:/ 'SLD Cache updated successfully with ', bs_name.
ENDIF.
5/5