SAP change_document
SAP change_document1、通过TCODE:SCDO 创建一个change document object。
1)输入TCODE:SCDO
http://simg.sinajs.cn/blog7style/images/common/sg_trans.gifchange_document"TITLE="SAP change_document" />
http://simg.sinajs.cn/blog7style/images/common/sg_trans.gifchange_document"TITLE="SAP change_document" />
2)为change document object命名
Namespace(名字空间)可以不填;
注意:Customers changedocument object必须以Z或Y开始。
http://simg.sinajs.cn/blog7style/images/common/sg_trans.gifchange_document"TITLE="SAP change_document" />
http://simg.sinajs.cn/blog7style/images/common/sg_trans.gifchange_document"TITLE="SAP change_document" />
3)为change document object指定一个application table;然后插入条目;
http://simg.sinajs.cn/blog7style/images/common/sg_trans.gifchange_document"TITLE="SAP change_document" />
http://simg.sinajs.cn/blog7style/images/common/sg_trans.gifchange_document"TITLE="SAP change_document" />
http://simg.sinajs.cn/blog7style/images/common/sg_trans.gifchange_document"TITLE="SAP change_document" />
4)返回到如下界面,将光标放在更改对象上,点击生成更新程序;
http://simg.sinajs.cn/blog7style/images/common/sg_trans.gifchange_document"TITLE="SAP change_document" />
http://simg.sinajs.cn/blog7style/images/common/sg_trans.gifchange_document"TITLE="SAP change_document" />
5)出现如下界面,在功能组栏输入一个function group 名称。
此function group名称如果在b步中指定的package中不存在,则会自动创建一个新的function group。直接点击“生成”;
http://simg.sinajs.cn/blog7style/images/common/sg_trans.gifchange_document"TITLE="SAP change_document" />
http://simg.sinajs.cn/blog7style/images/common/sg_trans.gifchange_document"TITLE="SAP change_document" />
6)出现如下将要生成的清单;
http://simg.sinajs.cn/blog7style/images/common/sg_trans.gifchange_document"TITLE="SAP change_document" />
7)点击“保存”按钮。
http://simg.sinajs.cn/blog7style/images/common/sg_trans.gifchange_document"TITLE="SAP change_document" />
8)查看生成的代码:
http://simg.sinajs.cn/blog7style/images/common/sg_trans.gifchange_document"TITLE="SAP change_document" />
至此, 成功创建了一个你所指定的application table的change document object,
2、如何记录数据库字段
1)对需要修改的字段,数据元素—更改文档打钩
http://simg.sinajs.cn/blog7style/images/common/sg_trans.gifchange_document"TITLE="SAP change_document" />
http://simg.sinajs.cn/blog7style/images/common/sg_trans.gifchange_document"TITLE="SAP change_document" />
2)调用程序更新change document
分别有两种方式:
方式一:通过上面介绍的4个包含程序;
先为FZLM_TEST001CDF和FZLM_TEST001CDV中定义的变量赋值.然后使用perform语法去调用FZLM_TEST001CDC这个include中的form 程序;
方式二:程序中直接调用
CALL FUNCTION 'ZBP_TEST_WRITE_DOCUMENT' IN UPDATE TASK
因为方式一perform的那个form实际做的也是call 这个functionmodule.
下面详述下这种方式的步骤:
Ø 先为Document header的管理数据等全局变量赋值;
Object Id:是document key的一部分,所以需要考虑好起什么样的object id,以便今后搜索方便。一种方式是把changed record的KEY作为objectid;
global fields:tcode,utime,udate,username输入当前的transaction code,change time anddate以及改变数据的username即可.
UPD_<application table’sname> = 'U ' 表示做的是更新;
UPD_<application table’sname> = 'I ' 表示做的是创建;
UPD_<application table’sname> = 'D ' 表示做的是删除;
Ø 封装程序修改之前的数据和修改之后的数据。通过与表结构一样的结构体去封装;
Ø 在同一个SAP LUW中去做application table的更新和change document的更新;
Ø 提交事务。
程序demo如下:
http://simg.sinajs.cn/blog7style/images/common/sg_trans.gifchange_document"TITLE="SAP change_document" />
执行结果:
http://simg.sinajs.cn/blog7style/images/common/sg_trans.gifchange_document"TITLE="SAP change_document" />
http://simg.sinajs.cn/blog7style/images/common/sg_trans.gifchange_document"TITLE="SAP change_document" />
3、查看 changedocument
通过TCODE:RSSCD100
http://simg.sinajs.cn/blog7style/images/common/sg_trans.gifchange_document"TITLE="SAP change_document" />
http://simg.sinajs.cn/blog7style/images/common/sg_trans.gifchange_document"TITLE="SAP change_document" />
附录:
1、命名规则和功能简介:
1)更新函数模块:它是自动创建的,命名规则是:<change documentobject’name>_WRITE_DOCUMENT;
在这个例子中就为ZLM_TEST001_WRITE_DOCUMENT;
通过调用这个functionmodule,按照它的要求去传参数就能实现我们的记录表的更新的作用;该方法是update V1 模式的。
2)四个包含程序:命名规则分别是:
F<change documentobject’name>CDT 对应 FZLM_TEST001CDT
F<change documentobject’name>CDF 对应 FZLM_TEST001CDF
F<change documentobject’name>CDV 对应 FZLM_TEST001CDV
F<change documentobject’name>CDC 对应 FZLM_TEST001CDC
分别打开四个包含程序,可以看到:
a)FZLM_TEST001CDT内容是:
include fzlm_test001cdf.
include fzlm_test001cdv.
b)FZLM_TEST001CDF内容是:
一些全局变量的定义,任何一个change documentobject的创建都会有这些,与具体的application table无关;
c)FZLM_TEST001CDV内容是:
一些与该change documentobject对应的applicationtable相关的变量定义;
d)FZLM_TEST001CDC内容是:
一个form 程序。参数是:FZLM_TEST001CDF和FZLM_TEST001CDV定义的变量。
这个form 程序所做的工作就是:
CALL FUNCTION 'ZLM_TEST001_WRITE_DOCUMENT' IN UPDATE TASK
……
注意:要加上IN UPDATE TASK.
2、各种模式的测试:
http://simg.sinajs.cn/blog7style/images/common/sg_trans.gifchange_document"TITLE="SAP change_document" />
1)当插入使用‘I’模式时,能体现记录情况,没有插入的新旧值记录
2)删除使用‘D’模式,显示删除记录,没有记录删除的新旧值变化
3)在插入时使用‘U’模式:体现了插入的新值变化
4)删除时使用’U’,没有操作记录,所有删除不能使用U模式
页:
[1]