观察者模式在OneOrder回调函数中怎么应用

本篇内容介绍了“观察者模式在One Order回调函数中怎么应用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

成都创新互联公司-专业网站定制、快速模板网站建设、高性价比当雄网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式当雄网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖当雄地区。费用合理售后完善,十载实体公司更值得信赖。

例如需求是搞清楚function module CRM_PRODUCT_I_A_CHANGE_ORGM_EC在什么样的场景下会被调用。当然最费时间的做法是设一个断点,然后跑对应的场景,观察断点何时被触发。也有另一种不通过调试的分析方法:

使用事务码CRMV_EVENT, 输入函数名称CRM_PRODUCT_I_A_CHANGE_ORGM_EC:

观察者模式在One Order回调函数中怎么应用

得到结果:

观察者模式在One Order回调函数中怎么应用

上述结果的业务含义是:每当Sales area被创建或者更新时,我们查询的function module都会自动被One Order框架调用。

观察如下调用栈:

观察者模式在One Order回调函数中怎么应用

那么为什么从业务上来说,每当一个订单的Organization Model组织架构数据发生变化之后,就需要调用这个回调函数呢?打开这个函数的源代码,在102行看到了CRM Product的settype之一, CRMM_PR_SALESG(Set type allowing you to group products for various purposes. As this set type is dependent on distribution chains, a distribution chain has to be selected before data can be maintained)的数据被读取。

关于这个settype更多说明,请参考SAP Help.

观察者模式在One Order回调函数中怎么应用

这个settype是一个Distribution Chain相关的settype, 离开了某个具体的Sales area则无意义。

观察者模式在One Order回调函数中怎么应用

因此每当订单的Organization model数据发生变化时,CRMM_PR_SALESG的数据必须根据变化后最新的Organization model数据重新读取。利用One Order框架,这种Organization model的变化和CRMM_PR_SALESG的读取这种依赖关系实际上通过设计模式里的"观察者模式"来完成的。CRM_PRODUCT_I_A_CHANGE_ORGM_EC是Organization model数据变化的众多观察者之一,通过事务码CRMV_EVENT订阅了Organization model数据变化这一事件。每当Organization ,model数据发生变化时,这个变化通过下图的CRM_EVENT_PUBLISH_OW发布出去,其他观察者就能基于这个发布者发布的事件进行对应处理,在我文章的这个例子里,就会调用CRM_PRODUCT_I_A_CHANGE_ORGM_EC根据最新的Organization model读取settype CRMM_PR_SALESG的数据。

观察者模式在One Order回调函数中怎么应用

“观察者模式在One Order回调函数中怎么应用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


本文标题:观察者模式在OneOrder回调函数中怎么应用
URL分享:http://azwzsj.com/article/jipsic.html