SAP 中修改数据的记录可以通过表 CDPOS CDHDR查到。
这里我也还可以利用CDPOS CDHDR做些其他事情,利用change point做一些额外的动作,比如往消息中间件传输数据。
需要:
1、定义消息类型 Message Type (WE81),定义change point (BD52),激活change point
实现BADI BDCP_BEFORE_WRITE,
FILTER: EDI_MESTYP, 把定义好的message type放入。这样相关change point 只有该message type才会进入增强中。
在增强中加入如下代码,change_document_positions 其实就CDPOS,change_pointers代表表BDCP2,这样满足条件的表就会记录到BDCP2中,其中PROCESS代表是否有处理。
loop at change_pointers assigning field-symbol(<fs_change_pointer>).
"check new value
read table change_document_positions assigning field-symbol(<fs_change_document>)
with key objectid = <fs_change_pointer>-cdobjid
fname = gc_fname_load_plan_item_status " 'LOAD_PLAN_ITEM_STATUS'
value_new = gc_status_finalized. "'20'.
if sy-subrc eq 0.
continue.
else.
delete change_pointers.
endif.
endloop.
之前可以利用connection and replication object customizing 去做往消息中间件发送数据的动作。
增加相关配置,配置相关的select(抽取数据) format(转化数据) FM, 利用STRANS等工具获取并转化数据。这些做完后,就可以利用 /ASADEV/ACI 发送数据了。这个程序会读取这里的配置信息发送数据。