前言:因为替代的逻辑涉及到其他行的会计凭证,因此本次替代选择了使用BADI:AC_DOCUMENT来实现
增强步骤:
1. SE19,创建实施:
2.完善实施信息:
3.编辑代码:

DATA:LS_ACCIT_T TYPE ACCIT.DATA:LS_ACCIT TYPE ACCIT.DATA:LS_ACCIT_SUB TYPE ACCIT_SUB."利润中心替代"IF IM_DOCUMENT-HEADER-TCODE EQ 'VF02' .READ TABLE IM_DOCUMENT-ITEM WITH KEY PRCTR = '' TRANSPORTING NO FIELDS. "判断是否有空利润中心的记录"IF sy-subrc = 0.CLEAR:LS_ACCIT_T.LOOP AT IM_DOCUMENT-ITEM INTO LS_ACCIT_T WHERE PRCTR <> ''.EXIT. "获取利润中心"ENDLOOP.LOOP AT IM_DOCUMENT-ITEM INTO LS_ACCIT WHERE PRCTR = ''.MOVE-CORRESPONDING LS_ACCIT TO LS_ACCIT_SUB. "将空的利润中心替代为其他科目的利润中心"LS_ACCIT_SUB-PRCTR = LS_ACCIT_T-PRCTR.APPEND LS_ACCIT_SUB TO EX_DOCUMENT-ITEM .CLEAR:LS_ACCIT.ENDLOOP.ENDIF.ENDIF."MIRO抬头文本为空的话,将文本内容替换为参照"IF IM_DOCUMENT-HEADER-BKTXT = '' AND IM_DOCUMENT-HEADER-TCODE EQ 'MIRO'.IF IM_DOCUMENT-HEADER-AWREF <> ''.EX_DOCUMENT-HEADER-BKTXT = IM_DOCUMENT-HEADER-AWREF.ELSE.EX_DOCUMENT-HEADER-BKTXT = 'Header Text!'.ENDIF.ENDIF.
