SAP CRM Relationship API设计原理

Unlike settype, relationship does not have a dedicated read function module maintained in its metadata table. Instead, the generic read function module COM_IL_DB_READ is used.

SAP CRM Relationship API设计原理

Below is a simple explanation about each parameter of FM COM_IL_DB_READ, using read on relationship PRDCPN for example.

IV_RELTYPE

PRDCPN - relationship name

IV_ATTR_TYPE

COMT_IL_PRDCPN_ATTR_TYPE - contains relationship specific business data, in this example, the customer product id is stored in field PRID_VENDOR

SAP CRM Relationship API设计原理

IT_LINK_IDENTS

sourceguid or destiguid contains product guid. This will be used by the generic read API to select against DB table using OPEN SQL.

SAP CRM Relationship API设计原理

The exporting parameter:

SAP CRM Relationship API设计原理

ET_INTERLINKAGE - relationship header data - generic data

SAP CRM Relationship API设计原理

ET_IL_ATTR

Relationship specific data, in this example, PRID_VENDOR, stores the detail value.

SAP CRM Relationship API设计原理
SAP CRM Relationship API设计原理
SAP CRM Relationship API设计原理

Approach1

If we can enhance COM_IL_DB_READ, we then redirect the read from CRM relationship storage table to S4 relationship storage table.
Since it is not allowed to enhance SAP_ABA function module, we have to consider CDS view redirect.
Further research is needed here: compare the structure of both storage table in CRM and S4 and evaluate whether view direct is feasible or not.

SAP CRM Relationship API设计原理

Approach2

Since we can only make changes on BBPCRM, we have to copy the whole implementation which are in SAP_ABAP listed below into new function & subroutine, make needed changes ( table redirect ) and let FORM UI_GETDETAIL call those new implementations. This approach takes huge effort.

SAP CRM Relationship API设计原理

本文来自栖社区合作伙伴“汪子熙”,了解相关信息可以关注微信公众号"汪子熙"。