SAP 凭证冲销可以使用BAPI_ACC_DOCUMENT_REV_POST或者BDC录制FB08来做

凭证冲销可以使用BAPI_ACC_DOCUMENT_REV_POST或者BDC录制FB08来做,效果相同

本文介绍使用BAPI_ACC_DOCUMENT_REV_POST做冲销凭证
 
部分代码实现:
*@---------------------------------------------------------------------*
*@   BAPI函数用到的变量
DATA: wa_bapidochdrr TYPE bapiacrev,
            gt_return          TYPE TABLE OF bapiret2 WITH HEADER LINE.
   LOOP AT gt_bkpf ASSIGNING <fs_bkpf> WHERE xreversal = ''.
*   给 BAPI 函数相应的参数赋值
    wa_bapidochdrr-obj_type     = <fs_bkpf>-awtyp.
    wa_bapidochdrr-obj_key      = <fs_bkpf>-awkey.
    wa_bapidochdrr-obj_key_r    = <fs_bkpf>-awkey.
    wa_bapidochdrr-pstng_date   = <fs_bkpf>-budat.
    wa_bapidochdrr-fis_period   = <fs_bkpf>-monat.
    wa_bapidochdrr-comp_code    = <fs_bkpf>-bukrs.
    wa_bapidochdrr-ac_doc_no    = <fs_bkpf>-belnr.
    wa_bapidochdrr-reason_rev   = '03'.
*   取得系统 LOGICAL SYSTEM
    CALL FUNCTION 'OWN_LOGICAL_SYSTEM_GET'
      IMPORTING
        own_logical_system = wa_bapidochdrr-obj_sys.
*   调用 BAPI 函数,冲销会计凭证
    CALL FUNCTION 'BAPI_ACC_DOCUMENT_REV_POST'
*      EXPORTING
*        obj_type = gv_glvor
      EXPORTING
        reversal = wa_bapidochdrr
        bus_act  = <fs_bkpf>-glvor
      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.
        APPEND LINES OF gt_return TO gt_info.
        MESSAGE '会计凭证过账成功' TYPE 'S'.
      ELSE.
        APPEND i_return TO gt_info.
        CLEAR: i_return-number, i_return-id.
        i_return-type = 'E'.
        i_return-message = '过账失败,请用事务代码ST22查看详细信息'.
        APPEND i_return TO gt_info.
        MESSAGE '会计凭证过账失败' TYPE 'E'.
      ENDIF.
    ELSE.
      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
*   将返回信息添加到结果信息内表
      APPEND LINES OF gt_return TO gt_info.
    ENDIF.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值