Standard behavior: I have maintained Organizational management data in Service Order Header:
And if we add a product to this service order as line item, the header organization data will automatically be copied to item.
How this automatic data flow is achieved? Once the product IMU is maintained in item level, function module CRM_ORDER_MAINTAIN is triggered with following input:
Within the callstack there is an event AFTER_CREATE raised against object ORDERADM_I:
Which event listeners are registered for this object? Check registration table CRMC_EVENT_CALL, there we can find function module CRM_ORGMAN_PRODUCT_CHANGED_EC which actually is responsible to copy the organizational data from header to item.
This screenshot gives a hint that how the registered event callback function module is called:
Check the source code of organizational management view, the layout of it in the runtime is generated by the configuration metadata:
And when debugging the code where HTML native code for UI element is generated, I find all UI controls are marked as read only according to the code line line 225:
The logic to determine whether a field should be rendered as read only or editable is again done in application code and the result is returned to UI framework.
The comment in line 13 clearly shows that the organizational management data in item level should always be read only.
When you maintain header level organization data, a link is created triggered by CRM_ORGMAN_CREATE_OW:
This will lead to an insertion of one record in table CRMD_LINK:
21 means ORGMAN:
And when a new product is created, the corresponding link to item will be created by CRM_ORGMAN_PRODUCT_CHANGED_EC mentioned previously:
Once item is also saved successfully, we will have two records in CRMD_LINK, one links header with its organizational data and the other links item.
要获取更多Jerry的原创文章,请关注公众号"汪子熙":