one order event handling - 初始化过程
Created by Jerry Wang on Aug 19, 2014
通過UI創建一個transaction type為TA的sales order為例:
?
?
?
?
transaction type TA對應的transaction category如下:
?
Order修改的所有操作都是通過FM CRM_ORDER_MAINTAIN 統一trigger:
?
最終會調用CRM_ORDER_H_MAINTAIN_OW 或者?CRM_ORDER_I_MAINTAIN_OW處理Header或者Item:
?
?
里面的FM CRM_ORDERADM_H_PUBLISH_OW統一raise Order header level的各種事件,從而調用事件上注冊的callback。
?
在該function module內搜索關鍵字 CRM_EVENT_PUBLISH_OW,能找出該FM 負責raise的所有支持的event:
?
?
internal table gt_allowed_callbacks_hdr 存放了當前系統注冊的所有call back信息。系統理一次進入CRM_EVENT_PUBLISH_OW時,該內表是空的,通過subroutine register_callbacks 初始化。
?
?
?
當前創建的sales order
?
?
?
gt_pr_assign包含兩個從SPRO里維護的category 再加上一個generic的BUS20001:
?
?
?
register完畢后針對transaction type TA,有411個可用的callback:
?
?
?
?
?
?
CRM_EVENT_PUBLISH_OW的執行邏輯就是找出這411個callback中有哪些是注冊在Order的header level,且event為after_create:
?
?
?
?
lv_guid_hdr: 新創建的sales order guid
?
lt_atonce_exets: 需要立即執行的function module name
?
?
真正的function module 執行發生在這里:
總結
以上是生活随笔為你收集整理的one order event handling - 初始化过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 雷军公布小米13 Ultra多张拍摄样张
- 下一篇: Live rates territory