ABAP-SD-创建发票-BAPI_BILLINGDOC_CREATEMULTIPLE

*&---------------------------------------------------------------------*
*&      Form  FRM_CREATE_INVOICE
*&---------------------------------------------------------------------*
*       text 
*----------------------------------------------------------------------*
FORM FRM_CREATE_INVOICE.
  ATA: LS_CREATORDATAIN         TYPE BAPICREATORDATA,
       LT_BILLING TYPE STANDARD TABLE OF BAPIVBRK,
       LT_RETURN1 TYPE STANDARD TABLE OF BAPIRETURN1,
       LT_ERRORS  TYPE STANDARD TABLE OF BAPIVBRKERRORS,
       LT_SUCCESS TYPE STANDARD TABLE OF BAPIVBRKSUCCESS,
       LS_BILLING TYPE BAPIVBRK,
       LS_RETURN1 TYPE BAPIRETURN1,
       LS_ERRORS  TYPE BAPIVBRKERRORS,
       LS_SUCCESS TYPE BAPIVBRKSUCCESS.

*创建发票
  LS_CREATORDATAIN-CREATED_BY = SY-UNAME.
  LS_CREATORDATAIN-CREATED_ON = '20190108'.

  LS_BILLING-REF_DOC    = CS_OUTTAB-VBELN.
  LS_BILLING-BILL_DATE  =  '20190131'.
  LS_BILLING-REF_DOC_CA = 'K'. " 'L'.
  LS_BILLING-COSTCENTER = P_KOSTL.    " 成本中心 K时
  APPEND LS_BILLING TO LT_BILLING.
  
  CALL FUNCTION 'BAPI_BILLINGDOC_CREATEMULTIPLE'
*      exporting
*        creatordatain = ls_creatordatain
    TABLES
      BILLINGDATAIN = LT_BILLING
      ERRORS        = LT_ERRORS
      RETURN        = LT_RETURN1
      SUCCESS       = LT_SUCCESS.
  IF LT_SUCCESS[] IS NOT INITIAL.
    READ TABLE LT_SUCCESS INTO LS_SUCCESS INDEX 1.
    IF SY-SUBRC EQ 0.
      CS_OUTTAB-VBELF = LS_SUCCESS-BILL_DOC."发票凭证
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          WAIT = 'X'.
      LOOP AT LT_RETURN1 INTO LS_RETURN1 WHERE TYPE = 'E' .
        CS_OUTTAB-MESSAGE = LS_RETURN1-MESSAGE.
        EXIT.
      ENDLOOP.
    ENDIF.
  ELSE.
    CLEAR CS_OUTTAB-MESSAGE.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    LOOP AT LT_ERRORS INTO LS_ERRORS WHERE TYPE = 'E' OR TYPE = 'A'.
      CONCATENATE CS_OUTTAB-MESSAGE LS_ERRORS-MESSAGE INTO CS_OUTTAB-MESSAGE.
      CLEAR LS_ERRORS.
    ENDLOOP.
  ENDIF.
  
ENDFORM.                    "FRM_CREATE_INVOICE

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值