What is the specific IDOC change point you are referring to?

2026-05-29 07:474阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计874个文字,预计阅读时间需要4分钟。

What is the specific IDOC change point you are referring to?

SAP中实现分布式的一个机制是ALE/IDoc,而整体上则是通过change point来实现。这里以物料主数据为例,记录IDoc的基本类型、消息类型、Change point等,用于分发生成主数据。主要有两种实现方式,一种是直接实现。


SAP中实现分布式的一个机制就是ALE/IDoc,而在具体一点就是change point。


这里就以物料主数据来记录

What is the specific IDOC change point you are referring to?

IDOC basic type

message type


Change point是用来分发主数据的。主要有两种实现方式,一种是直接方式,另外一种是通过SMD tool(shared data master tool)来实现。


我们先来讲一下直接方式。所谓的直接方式,就是运行一个为一个主数据专门的Repoort程序,填入相关参数,就可以对此主数据进行分发。


一般这样的报表的名字是这样的:RBDSE***,***是message type的前三位,比如物料主数据MATMAS,它的程序就是RBDSEMAT。

这些程序的逻辑都是固定的,其中总有一个名字形如:MASTERIDOC_CREATE_REQ_*****的Function,*****是message type,接上个例子,就是MATMAS。这个程序就是执行change point和生成IDoc的主要Function。

CALL FUNCTION 'MASTERIDOC_CREATE_REQ_MATMAS'

这个Function中有几点大家要注意的:

1. DATA: C_MSGFN_R LIKE BDIMARAKEY-MSGFN VALUE '005'.

生成的IDoc中MSGFN字段都是’005’

2. CALL FUNCTION 'MASTERIDOC_CREATE_MATMAS

上面的Function中 CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'

就是把IDoc传到ALE,进行分发。

3. 最后才是提交和解锁

COMMIT WORK.

CALL FUNCTION 'DEQUEUE_ALL'.



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,使这一切都成为自动化。



程序:RBDMIDOC 根据message type去发送

物料主数据那么多字段,是修改任意一个字段都需要发送吗?

这里可以配置那些字段修改触发 change point

BD52:





本文共计874个文字,预计阅读时间需要4分钟。

What is the specific IDOC change point you are referring to?

SAP中实现分布式的一个机制是ALE/IDoc,而整体上则是通过change point来实现。这里以物料主数据为例,记录IDoc的基本类型、消息类型、Change point等,用于分发生成主数据。主要有两种实现方式,一种是直接实现。


SAP中实现分布式的一个机制就是ALE/IDoc,而在具体一点就是change point。


这里就以物料主数据来记录

What is the specific IDOC change point you are referring to?

IDOC basic type

message type


Change point是用来分发主数据的。主要有两种实现方式,一种是直接方式,另外一种是通过SMD tool(shared data master tool)来实现。


我们先来讲一下直接方式。所谓的直接方式,就是运行一个为一个主数据专门的Repoort程序,填入相关参数,就可以对此主数据进行分发。


一般这样的报表的名字是这样的:RBDSE***,***是message type的前三位,比如物料主数据MATMAS,它的程序就是RBDSEMAT。

这些程序的逻辑都是固定的,其中总有一个名字形如:MASTERIDOC_CREATE_REQ_*****的Function,*****是message type,接上个例子,就是MATMAS。这个程序就是执行change point和生成IDoc的主要Function。

CALL FUNCTION 'MASTERIDOC_CREATE_REQ_MATMAS'

这个Function中有几点大家要注意的:

1. DATA: C_MSGFN_R LIKE BDIMARAKEY-MSGFN VALUE '005'.

生成的IDoc中MSGFN字段都是’005’

2. CALL FUNCTION 'MASTERIDOC_CREATE_MATMAS

上面的Function中 CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'

就是把IDoc传到ALE,进行分发。

3. 最后才是提交和解锁

COMMIT WORK.

CALL FUNCTION 'DEQUEUE_ALL'.



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,使这一切都成为自动化。



程序:RBDMIDOC 根据message type去发送

物料主数据那么多字段,是修改任意一个字段都需要发送吗?

这里可以配置那些字段修改触发 change point

BD52: