• 变更指针 主数据分发


    目的

    主数据对象的变化由SMD工具来管理,SMD工具可以将主数据的变化分发到别的体统。SMD工具根据信息变化的内容和时间将变化的信息收集起来,首先,如果通过操作不同的SAP事务代码,而使主数据发生了多个变化,并且这些变化信息存储在多个表中,SMD会将所有变化整合成主数据对象的一个单一变化,其次,如果主数据接连发生变化,SMD工具也会将所有变化整合成主数据对象的一个单一变化,并分发这个单一变化。

    h-00100030000_image002

    SMD工具与变更文档接口相连接,如果主数据变更信息被分发,程序就会在变更文档中写值。这些内容都会传给SMD工具,SMD工具将变化写入指针,读取数据,并且创建主IDoc。

    主IDoc于是被传输到ALE层,进一步传输到目标系统。

    如果想使用SMD工具来分发主数据变更,则需要将主数据对象的变更信息用变更指针来标记,以此来分发到别的系统。

    变更指针表(BDCP和BDCPS)应该尽可能的小,并且使用较少的变更指针,当你不再需要的时候,就把变更指针删除。

    前提

    确保已经创建变更指针

    如果你在SAP中修改了物料或者供应商主数据等.系统会在变更指针表(BDCP,BDCPS)中创建项目

    有时可能需要在变更指针表(BDCP,BDCPS)中手动创建项目,系统标准函数就可以达到此目的,查看函数组BD01中的函数,例如:CHANGE_POINTERS_READ, CHANGE_POINTERS_DELETE, CHANGE_POINTERS_CREATE等

    活动

    保持变更指针尽可能小的检查项:

    • 是否真的需要变更指针?

    需要变更指针并使用ALE/SMD工具来分发变化,如果你不需要使用该工具,则不需要写入变更指针;

    可取消激活变更指针,或者使用BD61重新激活;

    • 是否真的需要为此类消息类型激活变更指针?

    如果一些消息类型不需要使用变更指针来分发,则可以使用(BD50)对这种消息类型取消激活变更指针,也可以重新激活

    激活后,检查表TBDA2 :查看消息类型的字段'BDCP2_ACT'是否有'X'标记,X表示变更指针可以记录在表BDCP2中.

    事物码:BD52,可以维护变更指针创建时,所需对照的字段

    • 是否有太多的变更指针需要处理?

    在变更指针表(BDCP,BDCPS)中创建项目后,可使用程序RBDMIDOC,来收集变更指针,并标记为已处理,在IDOCs创建后,进行处理,也就是将变化信息分发到别的系统.

    在IDOCs创建后,变更指针的生命周期已经结束了.basis人员会删除表中所有标记为已处理的变更指针

    image_final

    如果变更指针是周期性建立的,则RBDMIDOC也需要周期性运行

    • 不再需要的变更指针是否要重新组织?

    程序RBDCPCLR(BD22)用来重新组织变更指针,根据多少变更指针被创建和需要处理,这个程序应该按照计划后台执行,可以使每小时,每天或者每周,你应该删除所有过期的指针,也可以使用这个程序来指明消息类型

    • 根据特殊条件来限制变更指针的生成?

    BDCP_BEFORE_WRITE

    这个BADI会在变更指针生成之前被调用,如果你想根据某些条件来生成变更指针,来实例化该BADI。例如:根据消息类型(MATMAS)作为过滤条件来实例化该BADI

  • 相关阅读:
    S2 第二章数据库的实现
    理解ThreadLocal(之二)
    理解ThreadLocal(之一)
    save(),saveOrUpdate(),merge()的区别
    Hibdernate入门
    Hibernate第一个例子
    在运行Hibernate Hello World程序的时候,抛如下错误: view plain Exception in thread "main" org.hibernate.exception.LockAcquisitionException 解决方法
    Oracle函数
    UDP
    多线程下真正的单例
  • 原文地址:https://www.cnblogs.com/SolisOculus/p/3040210.html
Copyright © 2020-2023  润新知