背景:因公司要求,践行H1-碗里的,H2锅里的,H3田里的 增长曲线,财务要求体现在会计凭证里面,原先尝试实用基金中心字段,考虑到特殊性,最后放弃,改用cording block维护客制化字段
参考 SAP Cording Block维护客户化字段_abap codingblock-CSDN博客 及 https://zhuanlan.zhihu.com/p/689467264
我新增了字段 zzplusl 对应增长曲线
obc4 科目组 控制字段 隐藏,必输,可选
OB41 维护 过账码的 隐藏 必输 可选
PBO代码
MODULE FRM_MDF_SCREEN OUTPUT.
IF sy-tcode = 'FB01' OR sy-tcode = 'FB02'.
LOOP AT SCREEN.
IF SCREEN-NAME+0(7) = 'COBL-ZZ'.
SCREEN-INPUT = 1.
SCREEN-ACTIVE = 1.
SCREEN-INVISIBLE = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
elseIF sy-tcode = 'FB03'.
LOOP AT SCREEN.
IF SCREEN-NAME+0(7) = 'COBL-ZZ'.
SCREEN-INPUT = 0.
SCREEN-ACTIVE = 0.
SCREEN-INVISIBLE = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDMODULE.
BPAI增强 se19 ACC_DOCUMENT
METHOD IF_EX_ACC_DOCUMENT~CHANGE.
DATA: WA_EXTENSION TYPE BAPIPAREX,
ZEXT_DATA TYPE ZFIDOCEXT,
ZEXT_FI TYPE ZSFI_EXTENSION2.
FIELD-SYMBOLS: <ACCIT> TYPE ACCIT.
IF C_EXTENSION2[] IS NOT INITIAL.
LOOP AT C_EXTENSION2 INTO WA_EXTENSION
WHERE STRUCTURE = 'ZFIDOCEXT'.
ZEXT_DATA = WA_EXTENSION-VALUEPART1.
READ TABLE C_ACCIT ASSIGNING <ACCIT> WITH KEY POSNR = ZEXT_DATA-POSNR.
IF SY-SUBRC = 0.
<ACCIT>-BSCHL = ZEXT_DATA-BSCHL.
<ACCIT>-ZZPLUSL = ZEXT_DATA-ZZPLUSL.
IF <ACCIT>-BSCHL = '70'."固定资产
<ACCIT>-ANBWA = ZEXT_DATA-ANBWA.
ENDIF.
<ACCIT>-RSTGR = ZEXT_DATA-RSTGR.
ENDIF.
ENDLOOP.
LOOP AT C_EXTENSION2 INTO WA_EXTENSION
WHERE STRUCTURE = 'ZSFI_EXTENSION2'.
ZEXT_FI = WA_EXTENSION-VALUEPART1.
READ TABLE C_ACCIT ASSIGNING <ACCIT> WITH KEY POSNR = ZEXT_FI-POSNR.
IF SY-SUBRC = 0.
<ACCIT>-BSCHL = ZEXT_FI-BSCHL.
<ACCIT>-ZZPLUSL = ZEXT_FI-ZZPLUSL.
* IF <accit>-bschl = '70'."固定资产
* <accit>-anbwa = zext_data-anbwa.
* ENDIF.
<ACCIT>-RSTGR = ZEXT_FI-RSTGR.
ENDIF.
ENDLOOP.
" PARK 预制凭证
READ TABLE C_EXTENSION2 INTO WA_EXTENSION WITH KEY STRUCTURE = 'PARK'.
IF SY-SUBRC = 0.
MOVE '2' TO C_ACCHD-STATUS_NEW.
DELETE C_EXTENSION2 INDEX SY-TABIX.
ENDIF.
ENDIF.
ENDMETHOD.