本文主要是介绍SAP FI会计凭证的更改记录与EDI,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
要求当会计凭证进行增删改时,把会计凭证的内容记录到自定义表中,以便用后其它BW抽取,
一开始想到的当然是SAP标准记录的更改记录表:CDHDR,CDPOS表了,测试发现对会计凭证BKPF,BSEG的修改(增加)都会记录表CDHDR,CDPOS中,所以最简单的做法就是在写这两表时做增强,把数据保存到需要的自定义表中,
1.打开CDHDR表发现表中更改的对像保为BELEG。
2.打开事务码:SCDO,查找BELEG,并查看“生成信息”,可看到使用的处理函数为:BELEG_WRITE_DOCUMENT。
3,SE37打开此函数在函数的结尾处增加Implicit Enhancement.
4.在其中写入变量时的处理代码就行了,比如保存到自义表中。
但里不好判断修改的是那个字段,并且使用Implicit Enhancement.总感觉不太完美。
后来测试了一下,只是觉得要增加配置,所以后面的功能没正式使用,但测试是正常的。
1.BD50,激活信息类型ACC_DOCUMENT(默认可能没有这个,没有的话,增加并设置为活动)。
2.DB52,增加信息类型ACC_DOCUMENT,所要关注的相关字段。
3.把以上配置传到开发、测试机。
4.SE19实现BADI增强:BDCP_BEFORE_WRITE,例子中实现为ZBDCP_BEFORE_WRITE,
5.在信息类型的过滤条件中加入ACC_DOCUMENT
6.实现IF_EX_BDCP_BEFORE_WRITE~FILTER_BDCPV_BEFORE_WRITE,在其中,可以依据FLT_VAL的值 等于ACC_DOCUMENT,来判断此时是修改的会计凭证,然后就可以进行数据处理了。
7.此时,在修改(创建)凭证时就可以判断出修改的是那一个字段了,
但此时会计凭证清账时,发现并不会触发此增强,所以可以从第一步中考虑再增加一个信息类型其它的信息类型(可以从表EDIMSGT中找找看,我没仔细找应该是那一个信息类型。)
这篇关于SAP FI会计凭证的更改记录与EDI的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!