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.
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号