日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

VF01 BAPI :BAPI_BILLINGDOC_CREATEMULTIPLE

發布時間:2025/3/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VF01 BAPI :BAPI_BILLINGDOC_CREATEMULTIPLE 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

需求:合并開票

同一種發票類型的開在一張發票上,不同類型的發票類型開在不同發票上;
即:同一客戶、銷售組織、開票類型的結算單,開在同一張發票上。

也可以通過?VF04?合并開票。
如若通過BAPI,則可以通過?BAPI_BILLINGDOC_CREATEMULTIPLE?開票:



Data:
? gt_vbak TYPE TABLE OF vbak WITH HEADER LINE,
? gt_vbap TYPE TABLE OF vbap WITH HEADER LINE,
?
Data:
? gt_billingdatain ? TYPE TABLE OF bapivbrk WITH HEADER LINE,
? gt_conditiondatain TYPE TABLE OF bapikomv WITH HEADER LINE,
? gt_errors ? ? ? ? ?TYPE TABLE OF bapivbrkerrors WITH HEADER LINE.
?
?
*-------------------------------------------------------------------------
* ? ? ? ? ? ?BAPI 賦值
*-------------------------------------------------------------------------
FORM frm_ready_billing .
?
? DATA: lv_message TYPE bapi_msg.
?
? REFRESH:gt_vbfa[],gt_likp[].
?
* "找交貨單號
? SELECT * ? ? ? ??
? ? FROM vbfa
? ? INTO CORRESPONDING FIELDS OF TABLE gt_vbfa
? ? FOR ALL ENTRIES IN gt_alv
? ? WHERE vbelv = gt_alv-vbeln
? ? ? AND vbtyp_n = 'J'.
?
? IF gt_vbfa[] IS NOT INITIAL.
?
? ? SELECT *
? ? ? FROM likp
? ? ? INTO CORRESPONDING FIELDS OF TABLE gt_likp
? ? ? FOR ALL ENTRIES IN gt_vbfa
? ? ? WHERE vbeln = gt_vbfa-vbeln.
?
? ENDIF.
?
? SORT gt_alv BY fkara vkorg kunnr. "同一銷售組織、開票類型、客戶,統一開票
?
? LOOP AT gt_alv INTO gw_alv.
?
? ? READ TABLE gt_vbfa WITH KEY vbelv = gw_alv-vbeln.
? ? IF sy-subrc = 0.
?
? ? ? LOOP AT gt_vbfa WHERE vbelv = gw_alv-vbeln.
?
? ? ? ? gv_count = gv_count + 1.
?
? ? ? ? gt_billingdatain-ref_doc ? ?= gt_vbfa-vbelv. ?"憑證號
? ? ? ? gt_billingdatain-ref_item ? = gt_vbfa-posnv.
?
? ? ? ? gt_billingdatain-doc_number = gt_vbfa-vbeln. ?"交貨單號
? ? ? ? gt_billingdatain-itm_number = gt_vbfa-posnn. ?"
?
?
? ? ? ? gt_billingdatain-doc_type ? = gw_alv-auart. ? "銷售憑證類型
? ? ? ? gt_billingdatain-ref_doc_ca = 'C'. ? ? ? ? ? ?"SD 憑證類別
?
? ? ? ? gt_billingdatain-ordbilltyp = gw_alv-fkara. ? "開票類型
? ? ? ? gt_billingdatain-salesorg ? = gw_alv-vkorg. ? "銷售組織
?
?
? ? ? ? READ TABLE gt_vbak WITH KEY vbeln = gw_alv-vbeln.
? ? ? ? IF sy-subrc = 0.
? ? ? ? ? gt_billingdatain-distr_chan = gt_vbak-vtweg. "分銷渠道
? ? ? ? ? gt_billingdatain-division ? = gt_vbak-spart. "產品組
?
? ? ? ? ? LOOP AT gt_konv WHERE knumv = gt_vbak-knumv.
? ? ? ? ? ? gt_conditiondatain-data_index = gv_count.
? ? ? ? ? ? gt_conditiondatain-cond_curr ?= gt_konv-waers.
? ? ? ? ? ? APPEND gt_conditiondatain.
? ? ? ? ? ENDLOOP.
?
? ? ? ? ENDIF.
?
? ? ? ? gt_billingdatain-ship_to = gw_alv-kunnr. "客戶
? ? ? ? gt_billingdatain-sold_to = gt_billingdatain-ship_to. ?"售達方
? ? ? ? gt_billingdatain-bill_to = gt_billingdatain-ship_to. ?"開票方
? ? ? ? gt_billingdatain-payer ? = gt_billingdatain-ship_to. ?"付款方
? ? ? ? READ TABLE gt_vbkd WITH KEY vbeln = gw_alv-vbeln.
? ? ? ? IF sy-subrc = 0.
? ? ? ? ? gt_billingdatain-payment_terms = gt_vbkd-zterm. ? ? "付款方式
? ? ? ? ? gt_billingdatain-incoterms1 = gt_vbkd-inco1. ? ? ? ?"國際貿易條款1
? ? ? ? ? gt_billingdatain-incoterms2 = gt_vbkd-inco2. ? ? ? ?"國際貿易條款2
? ? ? ? ENDIF.
? ? ? ? READ TABLE gt_vbap WITH KEY vbeln = gw_alv-vbeln.
? ? ? ? IF sy-subrc = 0.
? ? ? ? ? gt_billingdatain-plant = gt_vbap-werks. ? ? ? ? ? ? "工廠
? ? ? ? ? gt_billingdatain-material = gt_vbap-matnr. ? ? ? ? ?"物料
? ? ? ? ? gt_billingdatain-currency = gt_vbap-waerk. ? ? ? ? ?"currency
? ? ? ? ENDIF.
? ? ? ? gt_billingdatain-req_qty ? ? ? = abs( gt_vbfa-rfmng ). "數量
? ? ? ? gt_billingdatain-sales_unit ? ?= gt_vbfa-meins. ? ? ? ?"單位
? ? ? ? gt_billingdatain-bill_date ? ? = pr_sdate. ? ? ? ? ? ? "開票日期
? ? ? ? gt_billingdatain-price_date ? ?= pr_sdate. ? ? ? ? ? ? "開票日期
?
? ? ? ? APPEND gt_billingdatain.
?
? ? ? ENDLOOP.
?
? ? ELSE.
?
? ? ? CLEAR gt_vbap.
?
? ? ? " vbap
? ? ? READ TABLE gt_vbap WITH KEY vbeln = gw_alv-vbeln.
? ? ? IF sy-subrc = 0.
? ? ? ? CLEAR gt_vbap.
? ? ? ? LOOP AT gt_vbap WHERE vbeln = gw_alv-vbeln.
?
? ? ? ? ? gv_count = gv_count + 1.
?
? ? ? ? ? gt_billingdatain-ref_doc ? ?= gt_vbap-vbeln. ?"憑證號
? ? ? ? ? gt_billingdatain-ref_item ? = gt_vbap-posnr.
?
? ? ? ? ? gt_billingdatain-doc_number = gt_vbap-vbeln. ?"交貨單號
? ? ? ? ? gt_billingdatain-itm_number = gt_vbap-posnr.
?
? ? ? ? ? gt_billingdatain-doc_type ? = gw_alv-auart. ? "銷售憑證類型
? ? ? ? ? gt_billingdatain-ref_doc_ca = 'C'. ? ? ? ? ? ?"SD 憑證類別
?
? ? ? ? ? gt_billingdatain-ordbilltyp = gw_alv-fkara. ? "開票類型
? ? ? ? ? gt_billingdatain-salesorg ? = gw_alv-vkorg. ? "銷售組織
?
?
? ? ? ? ? READ TABLE gt_vbak WITH KEY vbeln = gw_alv-vbeln.
? ? ? ? ? IF sy-subrc = 0.
? ? ? ? ? ? gt_billingdatain-distr_chan = gt_vbak-vtweg. "分銷渠道
? ? ? ? ? ? gt_billingdatain-division ? = gt_vbak-spart. "產品組
?
? ? ? ? ? ? LOOP AT gt_konv WHERE knumv = gt_vbak-knumv.
? ? ? ? ? ? ? gt_conditiondatain-data_index = gv_count.
? ? ? ? ? ? ? gt_conditiondatain-cond_curr ?= gt_konv-waers.
? ? ? ? ? ? ? APPEND gt_conditiondatain.
? ? ? ? ? ? ENDLOOP.
?
? ? ? ? ? ENDIF.
?
? ? ? ? ? gt_billingdatain-ship_to = gw_alv-kunnr. "客戶
? ? ? ? ? gt_billingdatain-sold_to = gt_billingdatain-ship_to. ?"售達方
? ? ? ? ? gt_billingdatain-bill_to = gt_billingdatain-ship_to. ?"開票方
? ? ? ? ? gt_billingdatain-payer ? = gt_billingdatain-ship_to. ?"付款方
? ? ? ? ? READ TABLE gt_vbkd WITH KEY vbeln = gw_alv-vbeln.
? ? ? ? ? IF sy-subrc = 0.
? ? ? ? ? ? gt_billingdatain-payment_terms = gt_vbkd-zterm. ?"付款方式
? ? ? ? ? ? gt_billingdatain-incoterms1 = gt_vbkd-inco1. ? ? "國際貿易條款1
? ? ? ? ? ? gt_billingdatain-incoterms2 = gt_vbkd-inco2. ? ? "國際貿易條款2
? ? ? ? ? ENDIF.
? ? ? ? ? READ TABLE gt_vbap WITH KEY vbeln = gw_alv-vbeln.
? ? ? ? ? IF sy-subrc = 0.
? ? ? ? ? ? gt_billingdatain-plant ? ?= gt_vbap-werks. ? ? ? ? ?"工廠
? ? ? ? ? ? gt_billingdatain-material = gt_vbap-matnr. ? ? ? "物料
?
? ? ? ? ? ? gt_billingdatain-currency = gt_vbap-waerk. ? ? ? ? ?"currency
? ? ? ? ? ENDIF.
? ? ? ? ? gt_billingdatain-req_qty ? ? ? = abs( gt_vbap-zmeng ). "數量
? ? ? ? ? gt_billingdatain-sales_unit ? ?= gt_vbap-zieme. ? ? ? ?"單位
? ? ? ? ? gt_billingdatain-bill_date ? ? = pr_sdate. ? ? ? ? ? ?"開票日期
? ? ? ? ? gt_billingdatain-price_date ? ?= pr_sdate. ? ? ? ? ? ?"開票日期
?
? ? ? ? ? APPEND gt_billingdatain.
?
?
? ? ? ? ENDLOOP.
? ? ? ENDIF.
?
? ? ENDIF.
?
? ? AT END OF kunnr. ? "同一銷售組織、單據類型、客戶,統一開票
?
? ? ? PERFORM frm_order_billing CHANGING lv_message. ? "開票
?
? ? ? CLEAR gt_billingdatain[].
? ? ? CLEAR gv_count.
? ? ? gv_item = 10.
? ? ENDAT.
?
? ENDLOOP.
?
* 開票異常
? IF NOT gv_flagx IS INITIAL.
?
* ? MESSAGE s285 DISPLAY LIKE cn_fail.
? ? CONCATENATE '錯誤:開票失敗,' lv_message INTO lv_message.
? ? MESSAGE lv_message TYPE cn_fail.
?
* 開票成功
? ELSEIF gv_flagw = space AND gv_flagx = space.
?
? ? MESSAGE s284 DISPLAY LIKE cn_succ.
?
* 開票出現錯誤,但可開票,出警告
? ELSEIF NOT gv_flagw IS INITIAL AND gv_flagx = space.
?
? ? CONCATENATE '警告:開票成功,' lv_message INTO lv_message.
? ? MESSAGE lv_message TYPE cn_warn.
?
? ENDIF.
ENDFORM. ? ? ? ? ? ? ? ? ? ?" FRM_READY_BILLING
?
?
*-------------------------------------------------------------------------
* ? ? ? ? ? ?CALL BAPI
*-------------------------------------------------------------------------
FORM frm_order_billing CHANGING pv_message.
?
? DATA: lt_success TYPE TABLE OF bapivbrksuccess WITH HEADER LINE,
? ? ? ? lt_return ?TYPE TABLE OF bapiret1 WITH HEADER LINE.
?
? SORT gt_billingdatain BY ref_doc.
? REFRESH: lt_return[],lt_success[],gt_errors[].
?
* Test Run
? CALL FUNCTION 'BAPI_BILLINGDOC_CREATEMULTIPLE'
? ? EXPORTING
* ? ? CREATORDATAIN ? =
? ? ? testrun ? ? ? ? = 'X'
* ? ? posting ? ? ? ? = 'X'
? ? TABLES
? ? ? billingdatain ? = gt_billingdatain
? ? ? conditiondatain = gt_conditiondatain
* ? ? CCARDDATAIN ? ? =
* ? ? TEXTDATAIN ? ? ?=
? ? ? errors ? ? ? ? ?= gt_errors
? ? ? return ? ? ? ? ?= lt_return
? ? ? success ? ? ? ? = lt_success.
?
? IF NOT gt_errors[] IS INITIAL.
? ? gv_flagx = cn_flagx.
? ENDIF.
?
? IF NOT lt_return[] IS INITIAL.
?
? ? LOOP AT lt_return WHERE type = 'E'.
? ? ? CONCATENATE lt_return-message ' ' INTO pv_message.
? ? ENDLOOP.
?
? ? gv_flagw = cn_flagx.
? ENDIF.
?
? IF gv_flagx IS INITIAL.
?
* Post Run
? ? CALL FUNCTION 'BAPI_BILLINGDOC_CREATEMULTIPLE'
? ? ? EXPORTING
* ? ? ? CREATORDATAIN ? =
? ? ? ? testrun ? ? ? ? = ''
* ? ? ? posting ? ? ? ? = 'X'
? ? ? TABLES
? ? ? ? billingdatain ? = gt_billingdatain
? ? ? ? conditiondatain = gt_conditiondatain
* ? ? ? CCARDDATAIN ? ? =
* ? ? ? TEXTDATAIN ? ? ?=
? ? ? ? errors ? ? ? ? ?= gt_errors
? ? ? ? return ? ? ? ? ?= lt_return
? ? ? ? success ? ? ? ? = lt_success.
?
? ? IF NOT lt_success[] IS INITIAL.
? ? ? CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
? ? ? ? EXPORTING
? ? ? ? ? wait = 'X'.
? ? ENDIF.
? ENDIF.
?
ENDFORM. ? ? ? ? ? ? ? ? ? ?" FRM_ORDER_BILLING

總結

以上是生活随笔為你收集整理的VF01 BAPI :BAPI_BILLINGDOC_CREATEMULTIPLE的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。