资金管理平台-SAP创建测试程序测试冲销凭证

93 篇文章 0 订阅
7 篇文章 0 订阅

程序创建

在这里插入图片描述

代码

&---------------------------------------------------------------------*
*& Report Z_TEST_CANCEL_ACC_DOCUMENT_LHY
*&---------------------------------------------------------------------*
*& Type:Report
*& Description:测试冲销会计凭证,BAPIBAPI_ACC_DOCUMENT_REV_POST
*& Create On:2024730*& Creater:LiuHongyu
*&---------------------------------------------------------------------*
REPORT z_test_cancel_acc_document_lhy.
TABLES:bseg.
*-----------------变量定义Variable START $ ---------------*
DATA: l_reversal TYPE bapiacrev.
DATA: obj_key TYPE bapiacrev-obj_key.
DATA: gt_return TYPE TABLE OF bapiret2 WITH HEADER LINE.
DATA:i_return   TYPE bapiret2.
*----------------变量定义Variable END   $ ---------------*

*----------------选择屏幕 START $ ---------------*
SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE TEXT-001.
  SELECT-OPTIONS: s_bukrs FOR bseg-bukrs OBLIGATORY NO INTERVALS,
                  s_gjahr FOR bseg-gjahr OBLIGATORY NO INTERVALS,
                  s_belnr FOR bseg-belnr OBLIGATORY NO INTERVALS.
SELECTION-SCREEN END OF BLOCK bk1.
*----------------选择屏幕 END $ -----------------*


*--------------------------Logic START $ ---------------------------------------------*

"查询会计凭证是否存在
SELECT SINGLE * FROM bkpf INTO @DATA(l_bkpf) WHERE bukrs IN @s_bukrs
                                             AND belnr IN @s_belnr
                                             AND gjahr IN @s_gjahr
                                             AND xreversal = ''. "指定是否凭证被冲销或已被冲销
IF sy-subrc <> 0.
  MESSAGE '该会计凭证不存在或者已经被冲销' TYPE 'E'.
ENDIF.
*  bapi 参数赋值
l_reversal-obj_type     = l_bkpf-awtyp.
l_reversal-obj_key_r    = l_bkpf-awkey.
l_reversal-pstng_date   = l_bkpf-budat.
l_reversal-fis_period   = l_bkpf-budat+4(2).

*  l_reversal-fis_period   = p_datum+4(2).
l_reversal-comp_code    = l_bkpf-bukrs.
l_reversal-reason_rev   = '04'.

"取得逻辑系统 LOGICAL SYSTEM
CALL FUNCTION 'OWN_LOGICAL_SYSTEM_GET'
  IMPORTING
    own_logical_system = l_reversal-obj_sys.

"调用BAPI冲销凭证
CALL FUNCTION 'BAPI_ACC_DOCUMENT_REV_POST'
  EXPORTING
    reversal = l_reversal
    bus_act  = l_bkpf-glvor
  IMPORTING
*   OBJ_TYPE =
    obj_key  = obj_key
*   OBJ_SYS  =
  TABLES
    return   = gt_return.

READ TABLE gt_return WITH KEY type = 'E'.
IF sy-subrc NE 0.
  "提交凭证过账
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait   = 'X'
    IMPORTING
      return = i_return.
  IF i_return IS INITIAL.
    MESSAGE '会计凭证冲销成功' TYPE 'S'.
    COMMIT WORK AND WAIT.
  ELSE.
    MESSAGE '过账失败,请用事务代码ST22查看详细信息' TYPE 'E'.
  ENDIF.
ELSE.
  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  MESSAGE '会计凭证冲销失败,'&& i_return-message TYPE 'E'.
ENDIF.

*--------------------------Logic END   $ ---------------------------------------------*

运行结果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值