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查看交货单凭证流
定期更文,欢迎关注
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏