创建Invoice和公司间Invoice
“创建发票和公司间开票
REPORT ztesta.
SELECTION-SCREEN BEGIN OF BLOCK bk WITH FRAME TITLE text-001.
PARAMETERS: l_vbeln TYPE vbeln OBLIGATORY.
SELECTION-SCREEN END OF BLOCK bk.
*data: lt_billingdatain TYPE TABLE OF bapivbrk WITH HEADER LINE,
* ls_billingdatain TYPE TABLE OF bapivbrk WITH HEADER LINE,
*
* lt_conditions TYPE STANDARD TABLE OF bapikomv WITH HEADER LINE,
*
* lt_success TYPE TABLE OF bapivbrksuccess,
* ls_success TYPE bapivbrksuccess,
*
* lt_return2 TYPE TABLE OF bapiret1,
* ls_return2 TYPE bapiret1.
*
*data: lv_fkdat TYPE vbrk-fkart VALUE 'ZF2',
* lv_vbtyp TYPE vbrk-vbtyp VALUE 'C'.
*
*data: lt_likp TYPE TABLE OF likp WITH HEADER LINE ,
* l_likp LIKE LINE OF lt_likp,
* lt_lips type table of lips with header line,
* l_lips LIKE LINE OF lt_lips.
* DATA: LT_TVFK LIKE TABLE OF TVFK WITH HEADER LINE ,
* L_TVFK LIKE LINE OF LT_TVFK.
*
*START-OF-SELECTION.
*
* SELECT SINGLE * INTO CORRESPONDING FIELDS OF l_likp FROM likp WHERE vbeln = l_vbeln.
*
* SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_lips FROM lips WHERE vbeln = l_vbeln.
* SELECT SINGLE * INTO CORRESPONDING FIELDS OF l_tvfk FROM tvfk WHERE fkart = 'ZIV'.
*if lt_lips[] is NOT INITIAL.
* loop at lt_lips INTO l_lips WHERE vbeln = l_vbeln.
*
* ls_billingdatain-doc_number = l_likp-vbeln .
* ls_billingdatain-doc_number = l_lips-posnr .
*
* ls_billingdatain-ref_doc = l_likp-vbeln .
* ls_billingdatain-ref_item = l_lips-posnr .
* ls_billingdatain-ordbilltyp = lv_fkdat.
* ls_billingdatain-ref_doc_ca = l_likp-vbtyp.
* ls_billingdatain-salesorg = l_likp-vkorg .
** ls_billingdatain-distr_chan = l_likp-vtweg .
** ls_billingdatain_payment_terms =
* ls_billingdatain-plant = l_lips-werks .
* ls_billingdatain-material = l_lips-matnr .
* ls_billingdatain-sales_unit = l_lips-meins.
*
* APPEND ls_billingdatain.
* ENDLOOP.
*
* call FUNCTION 'BAPI_BILLINGDOC_CREATEMULTIPLE'
* TABLES
* BILLINGDATAIN = LS_BILLINGDATAIN
* RETURN = LT_RETURN2
* SUCCESS = LT_SUCCESS .
*
*
* if lt_success[] is INITIAL.
* CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
* ELSE.
* CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
* EXPORTING
* WAIT = 'X'.
* ENDIF.
* clear lt_return2[].
* clear lt_success[].
*
* ENDIF.
*
*
*"----STATEMENT
*
*
*TABLES:KOMFK,vbsk,vbfs,vbss,vbrk,vbrp,vbpa,komv,thead,tvfk.
*
*DATA: L_SUBRC TYPE SY-SUBRC.
*data: l_sd_billing_exit TYPE REF TO if_ex_badi_sd_billing,
* active TYPE xfeld,
* tabcount TYPE i.
*
*DATA: L_FKART TYPE VBRK-FKART VALUE 'ZIV',
* L_FKDAT TYPE VBRK-FKDAT,
* LV_BAD_DATA LIKE RVSEL-XFELD,
* REBATE_DETERMINED TYPE C,
* CALC_TYPE TYPE C.
*CLEAR: L_FKDAT,LV_BAD_DATA, REBATE_DETERMINED,CALC_TYPE.
*
*DATA : LT_VBSK LIKE TABLE OF VBSK ,
* L_VBSK LIKE LINE OF LT_VBSK,
*
*
*
* LT_TVFKT LIKE TABLE OF TVFKT WITH HEADER LINE,
* L_TVFKT LIKE LINE OF LT_TVFKT,
*
* LT_VBUK LIKE TABLE OF VBUK WITH HEADER LINE,
* L_VBUK LIKE LINE OF LT_VBUK,
*
*
*
* XKOMFK LIKE KOMFK OCCURS 0 WITH HEADER LINE , "STRUCTURE
* XTHEAD LIKE THEADVB OCCURS 0 WITH HEADER LINE, "TABLE
* XVBFS LIKE VBFS OCCURS 0 WITH HEADER LINE, "TABLE
* XVBSS LIKE VBSS OCCURS 0 WITH HEADER LINE,
* XVBRK LIKE VBRKVB OCCURS 0 WITH HEADER LINE, "TABLE
* XVBRP LIKE VBRPVB OCCURS 0 WITH HEADER LINE,
* XVBPA LIKE VBPAVB OCCURS 0 WITH HEADER LINE,
* XKOMV LIKE KOMV OCCURS 0 WITH HEADER LINE , "STUCTURE
*
* L_KOMFK LIKE LINE OF XKOMFK.
*
*"-----STATEMENT 创建公司间开票
*
*
*PERFORM tvfk_select USING l_fkart.
*
*FORM TVFK_SELECT USING TS_FKART .
*
* L_SUBRC = 0 .
* SELECT SINGLE * INTO L_TVFK FROM TVFK WHERE FKART = TS_FKART .
*
* IF SY-SUBRC NE 0.
* CLEAR L_TVFK.
* L_SUBRC = 4.
* ENDIF.
*
* SELECT SINGLE * INTO L_TVFKT FROM TVFKT WHERE SPRAS = SY-LANGU
* AND FKART = L_FKART.
*
* IF SY-SUBRC NE 0 .
* CLEAR: L_TVFK, L_TVFKT.
* L_SUBRC = 4.
* ENDIF.
*
* PERFORM KOMFK_SELECT.
*
*ENDFORM.
*
*FORM KOMFK_SELECT .
*
*
*
* "MAKE SURE KOMFK-VBELN IS NOT SPACE
* SELECT SINGLE * INTO L_VBUK FROM VBUK WHERE VBELN = L_VBELN.
* IF SY-SUBRC EQ 0 .
* L_SUBRC = 4.
* ENDIF.
*
* L_KOMFK-VBTYP = L_VBUK-VBTYP.
*
* IF L_KOMFK-VBTYP = ''.
* L_SUBRC = 4.
* ENDIF.
* L_KOMFK-MANDT = SY-MANDT.
*
* READ TABLE XKOMFK INDEX 1 .
* IF NOT SY-SUBRC IS INITIAL.
* L_KOMFK-VBELN = L_VBELN.
* XKOMFK-MANDT = SY-MANDT.
* XKOMFK-VBELN = L_KOMFK-VBELN.
* XKOMFK-VBTYP = L_KOMFK-VBTYP.
* APPEND XKOMFK.
* ENDIF.
*
* PERFORM VBSK_SELECT.
*ENDFORM.
*
*FORM VBSK_SELECT .
*
* L_VBSK-MANDT = SY-MANDT.
* L_VBSK-ERNAM = SY-UNAME.
* L_VBSK-ERDAT = SY-DATUM.
* L_VBSK-UZEIT = SY-UZEIT.
* L_VBSK-SMART = 'F'.
* L_VBSK-SAMMG = SPACE.
*
*
*CALL FUNCTION 'RV_INVOICE_CREATE'
* EXPORTING
* INVOICE_TYPE = L_FKART
* INVOICE_DATE = L_FKDAT
** PRICING_DATE = RV60A-PRSDT "定价日期和汇率
** DELIVERY_DATE = RV60A-FBUDA "提供服务日期
** SELECT_DATE = RV60A-SELDAT "出具发票被执行的最后日期
* VBSK_I = L_VBSK
* IMPORTING
* VBSK_E = L_VBSK
* OD_BAD_DATA = LV_BAD_DATA "复选框
* DET_REBATE = REBATE_DETERMINED "回扣已经重新确定
* TABLES
* XKOMFK = XKOMFK
* XTHEAD = XTHEAD
* XVBFS = XVBFS
* XVBSS = XVBSS
* XVBRK = XVBRK
* XVBRP = XVBRP
* XVBPA = XVBPA
* XKOMV = XKOMV.
*IF NOT LV_BAD_DATA IS INITIAL.
* CLEAR XKOMFK-FKSTK.
* CLEAR XKOMFK-FKSAK.
* CLEAR XKOMFK-FXMSG.
* MODIFY XKOMFK TRANSPORTING FKSTK FKSAK FXMSG WHERE MANDT = SY-MANDT.
** FCODE = 'ENT1'.
* ENDIF.
*
* LOOP AT XVBRK
* WHERE VBELN = VBRK-VBELN .
* VBRK-RPLNR = XVBRK-RPLNR .
* EXIT .
* ENDLOOP.
*
* IF REBATE_DETERMINED = 'Y' .
* CALC_TYPE = 'A' .
* ELSE.
* CALC_TYPE = 'I' .
* ENDIF.
*CALL FUNCTION 'RV_INVOICE_DOCUMENT_ADD'
* EXPORTING
* VBSK_I = VBSK
* WITH_POSTING = 'A'
* PREISFINDUNGSART = CALC_TYPE
* IMPORTING
* VBSK_E = VBSK
* TABLES
* XKOMFK = XKOMFK
* XTHEAD = XTHEAD
* XVBFS = XVBFS
* XVBSS = XVBSS
* XVBRK = XVBRK
* XVBRP = XVBRP
* XVBPA = XVBPA
* XKOMV = XKOMV.
*
*ENDFORM.
*&----------------------------------------for bapi---------------|
总结
以上是生活随笔为你收集整理的创建Invoice和公司间Invoice的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: SD-关于定价日期的设置
- 下一篇: 基于采购订单的MIRO校验过程