ABAP-销售发票冲销

FUNCTION zsd_fm_44.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(I_VBELN_VF) TYPE  VBELN_VF
*"  EXPORTING
*"     VALUE(STATUS) TYPE  C
*"     VALUE(MESSAGE) TYPE  CHAR200
*"----------------------------------------------------------------------

  DATA:

    ls_return  LIKE bapireturn1,

    ls_success LIKE bapivbrksuccess,

    l_bill_doc LIKE bapivbrksuccess-bill_doc.

  DATA: ls_re TYPE bapireturn.


  DATA:

    lt_return  LIKE TABLE OF bapireturn1,

    lt_success LIKE TABLE OF bapivbrksuccess.



  CLEAR: l_bill_doc.

  l_bill_doc = i_vbeln_vf"发票凭证


*--- 取消发票

  CALL FUNCTION 'BAPI_BILLINGDOC_CANCEL1'
    EXPORTING
      billingdocument = l_bill_doc
    TABLES
      return          = lt_return
      success         = lt_success.

  READ TABLE lt_return INTO     ls_return

                       WITH KEY type 'E'.

  IF sy-subrc NE 0.

    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait 'X'.
    status  'S'.
    message '冲销成功'.
  ELSE.

    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK' .

    status  'E'.
    CLEAR ls_re.

    CALL FUNCTION 'BALW_BAPIRETURN_GET'
      EXPORTING
        type       'E'
        cl         = ls_return-id
        number     = ls_return-number
*       PAR1       = ' '
*       PAR2       = ' '
*       PAR3       = ' '
*       PAR4       = ' '
*       LOG_NO     = ' '
*       LOG_MSG_NO = ' '
      IMPORTING
        bapireturn = ls_re
*     EXCEPTIONS
*       ONLY_2_CHAR_FOR_MESSAGE_ID       = 1
*       OTHERS     = 2
      .
    IF sy-subrc <> 0.
* Implement suitable error handling here
    ENDIF.
    message = ls_re-message.
  ENDIF.




ENDFUNCTION.

posted @ 2021-11-29 12:58  東東東東  阅读(213)  评论(0编辑  收藏  举报