SAP Standard Interface (SAP ESR Content/ Package) Enhancement in PI
In a preeminent SAPC(SAP Consulting) project, integration part should also be treated as high priority same as business functionality. A bad case is that one project which would GoLive with ERP 6.0 EHP7 and other latest SAP products, but lack of good integration management. Then after GoLive end user and IT person always complained that why we used latest product, but performance deficiency, interface errors and even business process issues happen frequently. After investigation, major reason is that chaotic integration design and wrong PI usage. It just like a brilliant machine but with a rusty cable, so how can we expect such collocation could work together without obstruction. So please no not just blame why PI is difficult to use.
As SAP always push forward SOA platform so far (Integration as Service coming now for cloud integration), so it is very important to take care of SOA governance. From PI/PO perspective, that should be how to design interface and how to governance interface etc. A responsible integration architect/ integration lead in one project should well control interface usage type (IDoc, Proxy, RFC, WS etc.), interface naming conversion, QoS, interface version and also interface enhancement.
So in this document, we will focus on how to do the enhancement of SAP standard interface base on the SAP ESR content/package. Because this part almost happen in every integration project, especially for SAP RDS (Rapid Develop Solution), PoC(Proof of Concept) project which use SAP predefined ESR package with customized requirement. For example, in MFG(manufacturing) solution,like SAP ME,MII and SAP TM/EWM/SNC, it is very common that customer need to add some customized field under SAP standard interface.
For IDoc and RFC interface, it is easy to create ZIDoc and ZRFC as enhancement in Backend system, then import into PI ESR do the following PI implementation. Because they are fulfit Inside-out interface develop strategy. Following document will demonstrate another situation which is Outside-in interface develop strategy. From PI point of view that is so-called ABAP Proxy, we should first enhance interface in ESR, then generate proxy in Backend system; From whole SAP ES(enterprise service) develop point of view is that all related ES enhancement even not go through PI, like pure WebService interfaces or POL(Process Object Layer) interfaces which use ESR as interface repository.
Due to SCN Web format reason, it is not clear to see the picture until you double-click on it. You can just choose “View as PDF” on the right “Action” tab, then all the picture in clear mode. Or directly via https://scn.sap.com/docs/DOC-62041.pdf
Demonstration Description/ Requirement:
Add one customized field(ZLEON_ID) under standard AribaNetWork SAP interface(Interface Name: MIAbs_Async_LastUpdate_File, Interface Namespace:https://ariba.com/xi/ASN/ERPInvoice)
Step by Step:
1. Find the interface which would be enhanced;
In this demo, it is following standard AribaNetWork SAP interface(Interface Name: MIAbs_Async_LastUpdate_File, Interface Namespace:https://ariba.com/xi/ASN/ERPInvoice ,corresponding Data Type: DT_LastUpdate_File). So we will add ZLEON_ID field under
|Data Type in ESR||DT_LastUpdate_File||Type|
2. Create customized SWCV and maintain SAP standard SWCV as its prerequisite software component in SLD;
In this demo: create TUCC_INTERFACE SWCV, and set AribaNetWork 12 as its prerequisite SWCV.
Note: It is not recommended to change SAP standard SWCV in ESR directly, even if you could while you change it into Modifiable. But it will break up SAP SWCV Lifecycle Management and will bring risk in the future develop. So we should create own SWCV, and mark SAP standard one as prerequisite under Dependencies tab.
3. In ESR, also maintain SAP standard SWCV as Underlying SWCV.
In the demo: set ARIBA_SUPPLIER_CONN_ADAPTER_12S2 as TUCC_INTERFACE‘s underlying SWCV.
4. Create Data Type Enhancement in own SWCV;
In the demo: Create Data Type Enhancement Ariba_SAP_Interface_Enhancement2 under TUCC_INTERFACE. Customized field named ZLEON_ID in DT Enhancement.
5. Generate and Active corresponding proxy in Backend system via SPROXY;
Note: During proxy generation, error may happen. Said source Namespace:https://ariba.com/xi/ASN/ERPInvoice ,corresponding Data Type: DT_LastUpdate_File not exist on system. Need to generate the standard DT firstly, then generate Enhancement DT.
While generation completed, you will see ZXLEONZLEON_ID(ZXLEON is prefix) in Internal View.
6. Check if enhancement successfully in standard SWCV.
While generation completed and successfully, you will see ZXLEONZLEON_ID(ZXLEON is prefix) in standard SWCV ARIBA_SUPPLIER_CONN_ADAPTER_12S2 SWCV. Now standard interface MIAbs_Async_LastUpdate_File enhanced with one customized field named ZLEON_ID.
7. Following ABAP developing as normal;
While enhancement completed and successfully, you can implement proxy method via customized ABAP code or BAdI enhancement spot as normally Proxy development.
We do see some bad enhancement cases in real project.
1.Directly change SAP package for the current requirement:
In the future, if same SAP interface used in other business requirement. Then it will confuse new developer, why some customized field exist and which ones are standard. More worse, such behavior(break up SAP SWCV Lifecycle) will endanger system upgrade/migration.
2.Create new customized SWCV as enhancement:
Totally customer management, not in SAP SOA governance. It is difficult to reuse exist interface in the future while new developer don’t know details about old customized SWCV, more and more SWCV will be created by customer. Instead, you can search all the SAP ES interface via ES-Workplace | SAP and maintain enhancement under SAP standard ones.