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.
Below is a simple explanation about each parameter of FM COM_IL_DB_READ, using read on relationship PRDCPN for example.
PRDCPN - relationship name
COMT_IL_PRDCPN_ATTR_TYPE - contains relationship specific business data, in this example, the customer product id is stored in field PRID_VENDOR
sourceguid or destiguid contains product guid. This will be used by the generic read API to select against DB table using OPEN SQL.
The exporting parameter:
Relationship specific data, in this example, PRID_VENDOR, stores the detail value.
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.
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.