自动同步
到目前为止,我们演示的都是手工发送IDoc,但在很多业务场景下,许多数据是需要自动触发来发送IDoc的,比如订单之类的。如何解决呢? SAP提供了Change Pointer这个工具可以帮助我们轻松的搞定这个需求,下面就来演示如何进行操作。
第一步 激活Change Pointer
T-code:BD61
在Change pointers activated – generally前打上勾,保存即可
第二步 激活消息类型的Change pointer
我这个例子中会用到自己的消息类型:ZMATMAS_DEMO2,这个消息类型直接从MATMAS中拷贝而来,只传送毛重、净重和容量三个字段,不做其它操作。
T-code:BD50
默认情况下这个消息类型不会出现在列表中,你可以添加,然后在后面的复选框中打上勾,保存。
第三步 指定消息类型触发Change pointer的条件
T-code:BD52
选定我们所需的消息类型,确定
填入你所想要的对象、表名及字段名,这个示例演示的是当物料主数据中的毛重这个字段发生变化时,会触发Change pointer并生成IDoc发送,保存。
第四步 测试
T-code:MM02
将毛重从400改为600,保存
T-code:SE38
运行报表RBDMIDOC
输入消息类型,执行
再到目的端
数据修改成功。
另一个实验不再详细截图,即修改其它非毛重的值,再运行ABAP报表(只截了个运行报表时出现的报告,有0个数据产生),则此时目的端数据不会产生更改(因为IDoc没有生成且传送也没有发生)。
我们可以将这个ABAP程序安排成后台进程,定期运行,这样就能自动发送设置好触发条件的IDoc了,下面做了个截屏,是用SM36安排后台进程时所做的定义
只要把这个任务安排成定期执行的后台进程,自动发送就变成可能