创建会计凭证:BAPI_ACC_DOCUMENT_POST 增强字段
在ABAP程序中使用BAPI_ACC_DOCUMENT_POST的时候,如果有些字段在Tables参数中没有,比如,现在大家都用Reason code来作为现金流量表的表现方案。但是在BAPI_ACC_DOCUMENT_POST的accountgl参数是没有原因代码这个字段的,这种情况下,如何能在导入凭证的时候,包括这个字段呢?毫无疑问:使用增强来实现
一、简介
- 首先定义一个包括POSNR(类型为POSNR_ACC) 和**RSTGR(原因代码)**两个字段。POSNR这个字段必须有,因为在BAPI_ACC_DOCUMENT_POST中会包含多个tables参数,所以需要使用行项目号来关联。比如第一行#1的总账科目、金额、extensions等。
- SE19实现BADI增强ACC_DOCUMENT,这个增强是用来将BAPI_ACC_DOCUMENT_POST参数表EXTENSION2传入系统表ACCIT。只需要实现change方法
- 在BAPI_ACC_DOCUMENT_POST 中,启用 extension2 参数,将扩展字段传入
二、定义结构
-
事务码SE11定义一个结构ZSACC,包括POSNR (类型为 POSNR_ACC ) 和 RSTGR (原因代码) 两个字段。
-
通过BADI将扩展字段传入系统表
-
SE19,使用 Classical BADI,BADI name 为 ACC_DOCUMENT,点击 Create 按钮。
-
系统弹出如下对话框,输入implementation name:
-
点击确认后,进入如下界面,下面有一个Filter Values,添加一行,选择BKPFF,表示这个BADI实现只适合用于会计凭证直接输入。(根据需要添加对应的选项即可)
-
点击激活按钮,系统提示migrate到New Badi.并弹出如下对话款
-