SAP中实现分布式的一个机制就是ALE/IDoc,而在具体一点就是change point。
这里就以物料主数据为例
IDOC basic type
Message type
Change point是用来分发主数据的。主要有两种实现方式,一种是直接方式,另外一种是通过SMD tool(shared data master tool)来实现。
物料主数据那么多字段,是修改任意一个字段都需要发送吗?
这里可以配置那些字段修改触发 change point
BD52:
这块完整的配置流程我自己没有配过,有兴趣和时间的自己研究下即可。
下面说一个增强。
场景是这样的,MM02 修改主数据,比如描述,会触发change point发送idoc
后来想加一个 storage bin字段。如果这个字段修改了,就触发idoc。
现在是想不修改这个字段,修改别的字段的时候也把这个值带过去。
(修改什么字段会触发idoc以及带哪些字段过去可以回头研究下那个basic type 和segment)
或者自定义的segment之类的,如果也想一起发送过去,可以考虑下面的增强。
下面说下增强位置:
出口MGV00001
调用的位置在这里
MASTERIDOC_CREATE_MATMAS
可以控制的message type, segment name等。
他是有一些change check的点儿。如果修改了,就进一次这个函数。具体看下MASTERIDOC_CREATE_MATMAS代码就一目了然了。
最后所有的check点儿都完了,会最后进入一次这个出口函数。
此时,参数segment name是空。 Idoc_data[]应该是非空。这个可以作为一个判断条件。当然可以根据项目具体情况来综合判断。
在这里面把需要的segment赋值,然后append到 IDOC_DATA 即可。