Change point的第二种方法就是SMD,通过一系列的配置和Job,你就可以做到,让不同的Message type自动分发。这里所谓的自动分发,就是当一个系统中的主数据发生修改,创建,删除时,其他相关联的系统也会自动更新。我这边主要用的就是这个技术。
下面来具体讲一下:
有几张表大家需要熟悉:
BDCP : change point
BDCPS:Change pointer: Status
BDCP2: Aggregated Change Pointers (BDCP, BDCPS)
T-code :BD52 change document item for message type Table : TBD62
T-code :BD61 Activate change pointers-generally
T-code :BD50 Activate change pointers for message type Table : TBDA2
T-code :BD60 Additional Data for Message Type (这里要配Function,所以之前需要定义好相关的Function) Table :TBDME
关于BD60中的Function,标准的是MASTERIDOC_CREATE_SMD_*****,*****是Message type
同样这个Function是用以执行change point和生成IDoc的
其中要注意的几点:
1. read all not processed change pointer for the give messagetype
CALL FUNCTION 'CHANGE_POINTERS_READ'
2. MSGFN的几种状态:009(新建主数据),004(修改过的数据),003(删除的数据),018(没有改动,但是附属于它的segment需要分发)
3. CALL FUNCTION 'MASTERIDOC_CREATE_MATMAS
上面的Function中 CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'
就是把IDoc传到ALE,进行分发。
4. * write staus of all processed pointers
CALL FUNCTION 'CHANGE_POINTERS_STATUS_WRITE'
T-code :BD64 change distribution model,把message type
T-code :BD21 它对应的是程序 RBDMIDOC,它会根据BD60中的配置,找到相应的Function进行分发。在实际应用中,会设置batch job,使这一切都成为自动化。
阅读(3490) | 评论(0) | 转发(0) |