之前介绍了使用 BAPI_ACC_DOCUMENT_POST 创建会计凭证DEMO。

《​​DEMO:F-02固定资产  BAPI_ACC_DOCUMENT_POST 完整demo​​》


下面介绍下 BAPI_ACC_DOCUMENT_REV_POST 凭证冲销。


前台操作:FB08

DEMO:凭证冲销 BAPI_ACC_DOCUMENT_REV_POST_自定义

直接点保存:

DEMO:凭证冲销 BAPI_ACC_DOCUMENT_REV_POST_自定义_02

查看库表BKPF:

DEMO:凭证冲销 BAPI_ACC_DOCUMENT_REV_POST_自定义_03

自定义demo程序执行界面:


DEMO:凭证冲销 BAPI_ACC_DOCUMENT_REV_POST_自定义_04

执行完查看BKPF库表:

DEMO:凭证冲销 BAPI_ACC_DOCUMENT_REV_POST_自定义_05

干货代码:

*&---------------------------------------------------------------------*
*& Report ZLM_DEMO_REVERSE
*&---------------------------------------------------------------------*
REPORT ZLM_DEMO_REVERSE.
PARAMETERS:
P_BUKRS TYPE BKPF-BUKRS,
P_BELNR TYPE BKPF-BELNR,
P_GJAHR TYPE BKPF-GJAHR.

DATA:
GS_REVERSAL TYPE BAPIACREV,
LV_MSG TYPE STRING,
LV_OBJ_TYPE TYPE BAPIACHE09-OBJ_TYPE,
LV_OBJ_KEY TYPE BAPIACHE09-OBJ_KEY,
LV_OBJ_SYS TYPE BAPIACHE09-OBJ_SYS,
LT_RETURN TYPE TABLE OF BAPIRET2 WITH HEADER LINE.

CLEAR: GS_REVERSAL.

SELECT SINGLE AWTYP AWKEY AWKEY BUDAT
INTO (GS_REVERSAL-OBJ_TYPE,GS_REVERSAL-OBJ_KEY,GS_REVERSAL-OBJ_KEY_R,GS_REVERSAL-PSTNG_DATE)
FROM BKPF
WHERE BELNR EQ P_BELNR
AND BUKRS EQ P_BUKRS
AND GJAHR EQ P_GJAHR.

CALL FUNCTION 'OWN_LOGICAL_SYSTEM_GET'
IMPORTING
OWN_LOGICAL_SYSTEM = GS_REVERSAL-OBJ_SYS.

GS_REVERSAL-COMP_CODE = P_BUKRS.
GS_REVERSAL-REASON_REV = '03'.


CALL FUNCTION 'BAPI_ACC_DOCUMENT_REV_POST'
EXPORTING
REVERSAL = GS_REVERSAL
BUS_ACT = 'RFBU'
IMPORTING
OBJ_TYPE = LV_OBJ_TYPE
OBJ_KEY = LV_OBJ_KEY
OBJ_SYS = LV_OBJ_SYS
TABLES
RETURN = LT_RETURN.

LOOP AT LT_RETURN WHERE TYPE = 'E'.
WRITE LT_RETURN-MESSAGE.
ENDLOOP.

IF SY-SUBRC <> 0.
COMMIT WORK AND WAIT.

WRITE LV_OBJ_KEY.
ELSE.
ROLLBACK WORK .
ENDIF.


上面的demo仅供参考,如有疑问欢迎留言。

谢谢支持~

DEMO:凭证冲销 BAPI_ACC_DOCUMENT_REV_POST_自定义_06