VF01/VF11 创建和冲销开票凭证
1、创建开票凭证
1.1、前台
VF01创建开票凭证
1.2、源代码
"--------------------@斌将军--------------------
DATA:lt_billingdatain TYPE TABLE OF bapivbrk WITH HEADER LINE, lt_conditiondatain TYPE TABLE OF bapikomv WITH HEADER LINE, lt_success TYPE TABLE OF bapivbrksuccess, lt_return TYPE TABLE OF bapiret1. DATA:lv_check TYPE char1, lv_message TYPE char200. CLEAR:lt_billingdatain. lt_billingdatain-ref_doc = '0080012360'."交货单号 lt_billingdatain-ref_item = '10'. lt_billingdatain-doc_number = '0010001709'."销售订单号 lt_billingdatain-itm_number = '10'. " lt_billingdatain-ref_doc_ca = 'J'."凭证类别 *lt_billingdatain-payer = lv_payer. "付款方 20191030 add *lt_billingdatain-material = ''."gs_root-matnr. "物料编码 *lt_billingdatain-req_qty = ''."gs_root-fkimg. "数量 *lt_billingdatain-sales_unit = ''."gs_root-vrkme. "数量单位 APPEND lt_billingdatain. *CLEAR:lt_conditiondatain. *gv_index = gv_index + 1. *lt_conditiondatain-data_index = gv_index. "其他结构的表格项目的指针 *lt_conditiondatain-cond_type = 'ZPR1'. "条件类型 *lt_conditiondatain-cond_value = gs_root-kbetr."金额 *lt_conditiondatain-cond_curr = 'CNY'. "货币单位 *lt_conditiondatain-cond_p_unt = '1'. "货币单位 *APPEND lt_conditiondatain. "调用bapi生成发票号 CALL FUNCTION 'BAPI_BILLINGDOC_CREATEMULTIPLE' TABLES billingdatain = lt_billingdatain conditiondatain = lt_conditiondatain return = lt_return success = lt_success. CLEAR:lv_check,lv_message. LOOP AT lt_return INTO DATA(ls_return) WHERE type CA 'AEX'. lv_check = 'E'. lv_message = lv_message && ls_return-message. ENDLOOP. IF lv_check = 'E'. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. ENDIF.
"--------------------@斌将军--------------------
2、冲销开票凭证
2.1、前台
VF11冲销开票凭证
2.2、源代码
"--------------------@斌将军-------------------- DATA:lv_bill_doc TYPE bapivbrksuccess-bill_doc, lt_success TYPE TABLE OF bapivbrksuccess, lt_return TYPE TABLE OF bapiret1. DATA:lv_check TYPE char1, lv_message TYPE char200. lv_bill_doc = '0090000367'."需要冲销的发票 CALL FUNCTION 'BAPI_BILLINGDOC_CANCEL1' EXPORTING billingdocument = lv_bill_doc TABLES return = lt_return success = lt_success. CLEAR:lv_check,lv_message. LOOP AT lt_return INTO DATA(ls_return) WHERE type CA 'AEX'. lv_check = 'E'. lv_message = lv_message && ls_return-message. ENDLOOP. IF lv_check = 'E'. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. ENDIF. "--------------------@斌将军--------------------
VL03N查看交货单凭证流
定期更文,欢迎关注