如果实现AC_DOCUMENT中的类IF_EX_AC_DOCUMENT的方法CHANGE_INITIAL 或 CHANGE_AFTER_CHECK,当使用BAPI_ACC_DOCUMENT_POST创建会计凭证时,抬头文本将会为空。解决方法就是将一段逻辑添加到CHANGE_INITIAL 和 CHANGE_AFTER_CHECK中。
后来发现项目中确实有人使用了AC_DOCUMENT这个增强点,并且实现了CHANGE_INITIAL方法,因此,需要增加逻辑。
IF_EX_AC_DOCUMENT~CHANGE_INITIAL |
METHOD if_ex_ac_document~change_initial. DATA: ls_header TYPE acchd. * IF sy-xprog EQ 'SAPMSSY1' OR sy-xprog EQ 'SAPCNVE'. *<SAPLBPFC> is for Posting with BAPI: BAPI_ACC_DOCUMENT_CHECK *<SAPMSSY1> is for Test(Check) with BAPI: BAPI_ACC_DOCUMENT_POST *<SAPCNVE > is for Posting(Tax) with BAPI: BAPI_ACC_DOCUMENT_POST CLEAR ls_header. ls_header = im_document-header. ex_document-header-bktxt = ls_header-bktxt. CLEAR ls_header. * ENDIF. ENDMETHOD. |
IF_EX_AC_DOCUMENT~CHANGE_AFTER_CHECK |
METHOD if_ex_ac_document~change_after_check. * 此处因为实现了该方法,导致了会计凭证批导的抬头文本无法维护,因此加以下代码 DATA: ls_header TYPE acchd. CLEAR ls_header. ls_header = im_document-header. ex_document-header-bktxt = ls_header-bktxt. CLEAR ls_header. ENDMETHOD. |