ABAP - 会计凭证行项目文本和抬头文本增强
需求:VF01开票后会计凭证抬头文本和行项目需要自动赋值
实现效果如下图所示:
实现这个功能的主要功能主要通过BADI:AC_DOCUMENT实现
BAIDI功能
【作为FICO顾问必须知道此BADI使用位点以及注意事项】。
除了F-02、FB05等手工凭证不调用此BAPI,大部分调用BAPI或集成的场景情都调用此BAPI,
例如,下面几种场景会使用到此BADI:
- 自开发程序调用BAPI:BAPI_ACC_DOCUMENT_CHECK / BAPI_ACC_DOCUMENT_POST
- SD和FI集成生成的会计凭证,包括:销售发货VL01N/VL02N、销售开票过账VF01/VF02
- MM和FI集成生成的会计凭证,包括:采购收货MIGO、发票校验过账MIRO
- HR和FI集成生成的会计凭证,包括:薪酬计提和发放PCP0 / PC00_M99_CIPE
BADI详解参考大佬文档,原文链接:https://blog.csdn.net/wangjolly/article/details/120430876
实现关键代码如下:在方法CHANGE_AFTER_CHECK中写入
METHOD if_ex_ac_document~change_after_check.DATA:it_accit TYPE accit_t.DATA:it_sub_t TYPE accit_sub_t.it_accit = im_document-item[].LOOP AT it_accit INTO DATA(wa_accit).wa_accit-sgtxt = '往来加工业务'.CLEAR wa_accit_sub.MOVE-CORRESPONDING wa_accit TO wa_accit_sub.APPEND wa_accit_sub TO it_sub_t.ENDLOOP.ex_document-item[] = it_sub_t[].ex_document-header-bktxt = '往来加工业务'.ENDMETHOD.
注意:ABAP人员在进入此方法断点时,如果是公司间采购(公司间库存转储)流程,发货方完成发货过账后,配置了IDoc生成自动生成接收方采购发票,需要用到外部断点。