one order event handling - 初始化过程
Created by Jerry Wang on Aug 19, 2014
通過(guò)UI創(chuàng)建一個(gè)transaction type為TA的sales order為例:
?
?
?
?
transaction type TA對(duì)應(yīng)的transaction category如下:
?
Order修改的所有操作都是通過(guò)FM CRM_ORDER_MAINTAIN 統(tǒng)一trigger:
?
最終會(huì)調(diào)用CRM_ORDER_H_MAINTAIN_OW 或者?CRM_ORDER_I_MAINTAIN_OW處理Header或者Item:
?
?
里面的FM CRM_ORDERADM_H_PUBLISH_OW統(tǒng)一raise Order header level的各種事件,從而調(diào)用事件上注冊(cè)的callback。
?
在該function module內(nèi)搜索關(guān)鍵字 CRM_EVENT_PUBLISH_OW,能找出該FM 負(fù)責(zé)raise的所有支持的event:
?
?
internal table gt_allowed_callbacks_hdr 存放了當(dāng)前系統(tǒng)注冊(cè)的所有call back信息。系統(tǒng)理一次進(jìn)入CRM_EVENT_PUBLISH_OW時(shí),該內(nèi)表是空的,通過(guò)subroutine register_callbacks 初始化。
?
?
?
當(dāng)前創(chuàng)建的sales order
?
?
?
gt_pr_assign包含兩個(gè)從SPRO里維護(hù)的category 再加上一個(gè)generic的BUS20001:
?
?
?
register完畢后針對(duì)transaction type TA,有411個(gè)可用的callback:
?
?
?
?
?
?
CRM_EVENT_PUBLISH_OW的執(zhí)行邏輯就是找出這411個(gè)callback中有哪些是注冊(cè)在Order的header level,且event為after_create:
?
?
?
?
lv_guid_hdr: 新創(chuàng)建的sales order guid
?
lt_atonce_exets: 需要立即執(zhí)行的function module name
?
?
真正的function module 執(zhí)行發(fā)生在這里:
總結(jié)
以上是生活随笔為你收集整理的one order event handling - 初始化过程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 雷军公布小米13 Ultra多张拍摄样张
- 下一篇: 森马集团旗下棉致冰丝男裤到手39元:轻薄