欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

one order event handling - 初始化过程

发布时间:2023/12/19 编程问答 53 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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 - 初始化过程的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。