SAP ABAP 顾问(开发工程师)能力模型_企业数字化建设者的博客-CSDN博客目标:基于对SAP abap 顾问能力模型的梳理,给一年左右经验的abaper 快速成长为三年经验提参考ALV/REPORT|SMARTFROM|SCREEN|OLE|BAPI|BDC|PI|IDOC|RFC|API|WEBSERVICE|Enhancement|UserExits|Badi|Debughttps://blog.csdn.net/java_zhong1990/article/details/132469977
目标: 掌握SAP MM模块,主要流程相关的BAPI 函数的使用,主要有如下模块:
询价 报价 货源清单 配额安排 采购信息记录 框架协议-合同 框架协议-计划协议 采购订单 采购收货 发票校验 发票过账
BAPI是SAP系统标准函数,比如:采购申请创建函数、采购订单创建函数等等。
采购信息记录修改 | SAP_ABAP_MM_BAPI清单案例教程——采购信息记录_企业数字化建设者的博客-CSDN博客 |
框架协议-合同创建 | SAP_ABAP_MM_BAPI清单案例教程——框架协议-合同_企业数字化建设者的博客-CSDN博客 |
框架协议-合同修改 | SAP_ABAP_MM_BAPI清单案例教程——框架协议-合同_企业数字化建设者的博客-CSDN博客 |
框架协议-计划协议创建 | SAP_ABAP_MM_BAPI清单案例教程——框架协议-计划协议_企业数字化建设者的博客-CSDN博客 |
采购申请创建 | SAP_ABAP_MM_BAPI清单案例教程——采购申请_企业数字化建设者的博客-CSDN博客 |
采购订单创建 | SAP_ABAP_MM_BAPI清单案例教程——采购订单_企业数字化建设者的博客-CSDN博客 |
采购订单收货创建 | SAP_ABAP_MM_BAPI清单案例教程——采购订单收货_企业数字化建设者的博客-CSDN博客 |
采购发票预制 | SAP_ABAP_MM_BAPI清单案例教程——采购发票校验_企业数字化建设者的博客-CSDN博客 |
采购发票过账 | SAP_ABAP_MM_BAPI清单案例教程——采购发票过账_BAPI_INCOMINGINVOICE_POST_MIRO_企业数字化建设者的博客-CSDN博客 |
ME_INFORECORD_MAINTAIN | 采购信息记录修改 |
BAPI_CONTRACT_CREATE | 框架协议-合同创建 |
BAPI_CONTRACT_CHANGE | 框架协议-合同修改 |
BAPI_SAG_CREATE | 框架协议-计划协议创建 |
BAPI_PR_CREATE | 采购申请创建 |
BAPI_PO_CREATE1 | 采购订单创建 |
BAPI_GOODSMVT_CREATE | 采购订单收货创建 |
BAPI_INCOMINGINVOICE_PARK | 采购发票预制 |
BAPI_INCOMINGINVOICE_POST | 采购发票过账 |
2.3.1 创建
2.3.2 修改
2.3.3 删除
采购发票校验,复制代码直接可用
FUNCTION zfm_part.
*"----------------------------------------------------------------------
*"*"本地接口:
*"----------------------------------------------------------------------
DATA: ls_headerdata LIKE bapi_incinv_create_header,
lt_itemdata LIKE TABLE OF bapi_incinv_create_item,
ls_itemdata LIKE bapi_incinv_create_item,
lt_return LIKE TABLE OF bapiret2 WITH HEADER LINE,
ls_return TYPE bapiret2,
lv_invoicedocnumber LIKE bapi_incinv_fld-inv_doc_no,
lv_year LIKE bapi_incinv_fld-fisc_year.
DATA: lt_taxdata LIKE TABLE OF bapi_incinv_create_tax,
ls_taxdata LIKE bapi_incinv_create_tax.
DATA: lv_item TYPE n LENGTH 6.
DATA:l_msg(255) TYPE c.
IF g_flag = 'X'.
MESSAGE '已预制成功,请勿重复操作!' TYPE 'S' DISPLAY LIKE 'E' .
RETURN.
ENDIF.
IF zsmm011-ye <> '' .
MESSAGE '余额不为零!' TYPE 'S' DISPLAY LIKE 'E' .
RETURN.
ENDIF.
REFRESH:lt_itemdata,lt_return.
CLEAR:ls_headerdata,ls_itemdata,ls_return,lv_item,ls_return,lv_invoicedocnumber,l_msg.
*--表头数据
ls_headerdata-invoice_ind = 'X'."表示正常订单
ls_headerdata-comp_code = zsmm011-gsdm."公司代码
ls_headerdata-doc_date = zsmm011-pzrq."凭证中的凭证日期
ls_headerdata-pstng_date = zsmm011-gzrq."凭证中的过帐日期
ls_headerdata-ref_doc_no = zsmm011-ck.."参照
ls_headerdata-diff_inv = zsmm011-gys."供应商
ls_headerdata-gross_amount = zsmm011-je."抬头金额
ls_headerdata-del_costs_taxc = zsmm011-sm."抬头税码
ls_headerdata-item_text = zsmm011-wb."文本
ls_headerdata-bline_date = zsmm011-gzrq."到期日期计算的起算日期
ls_headerdata-pmnttrms = zsmm011-fktj."收付条件代码
ls_headerdata-currency = zsmm011-hb."货币码
* LS_HEADERDATA-PYMT_METH = ZSMM011."付款方式
* LS_HEADERDATA-PMNT_BLOCK = WA_DATA-ZLSPR."收付冻结码
* LS_HEADERDATA-ALLOC_NMBR = WA_DATA-ZUONR."分配
* LS_HEADERDATA-HEADER_TXT = WA_DATA-BKTXT."凭证抬头文本
* LS_HEADERDATA-TAX_EXCH_RATE = ''."税收汇率
CLEAR: ls_taxdata.
ls_taxdata-tax_code = zsmm011-sm."抬头税码
ls_taxdata-tax_amount = zsmm011-se."抬头税额
APPEND ls_taxdata TO lt_taxdata.
*--行项目数据
LOOP AT gt_screen ASSIGNING FIELD-SYMBOL().
CLEAR ls_itemdata.
lv_item = lv_item + 1.
ls_itemdata-invoice_doc_item = lv_item."发票凭证中的凭证项目
ls_itemdata-po_number = -ebeln."采购订单号
ls_itemdata-po_item = -ebelp."采购凭证的项目号
ls_itemdata-ref_doc = -lfbnr."入库物料凭证号
ls_itemdata-ref_doc_it = -lfpos."入库物料凭证项次
ls_itemdata-ref_doc_year = -lfgja."入库物料凭证财年
ls_itemdata-tax_code = -mwskz."税码
ls_itemdata-item_amount = -kbetr3."未税金额
ls_itemdata-quantity = -menge3."收退货数量
ls_itemdata-po_unit = -meins."单位
ls_itemdata-item_text = -xblnr."来料单
APPEND ls_itemdata TO lt_itemdata.
ENDLOOP.
CALL FUNCTION 'BAPI_INCOMINGINVOICE_PARK'
EXPORTING
headerdata = ls_headerdata
IMPORTING
invoicedocnumber = lv_invoicedocnumber
fiscalyear = lv_year
TABLES
itemdata = lt_itemdata
taxdata = lt_taxdata
return = lt_return.
IF sy-subrc = 0 AND lv_invoicedocnumber <> ''.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
LOOP AT gt_screen.
gt_screen-light = '3'.
gt_screen-re_belnr = lv_invoicedocnumber.
MODIFY gt_all FROM gt_screen TRANSPORTING light re_belnr WHERE lfgja = gt_screen-lfgja AND lfbnr = gt_screen-lfbnr AND lfpos = gt_screen-lfpos.
ENDLOOP.
MESSAGE '凭证预制成功!预制凭证号为:' && lv_invoicedocnumber TYPE 'S'.
g_flag = 'X'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
LOOP AT lt_return.
IF l_msg = ''.
l_msg = lt_return-message.
ELSE.
l_msg = l_msg && ';' && lt_return-message.
ENDIF.
ENDLOOP.
LOOP AT gt_screen.
gt_screen-light = '1'.
MODIFY gt_all FROM gt_screen TRANSPORTING light WHERE lfgja = gt_screen-lfgja AND lfbnr = gt_screen-lfbnr AND lfpos = gt_screen-lfpos.
ENDLOOP.
MESSAGE '凭证预制失败,原因:' && l_msg TYPE 'S' DISPLAY LIKE 'E'.
ENDFUNCTION.
在SAP MM(Materials Management,物料管理)模块中,采购发票预制(Invoice Preprocessing)是一个重要的过程,其作用包括以下几个方面:
减少手工工作: 采购发票预制过程旨在自动化和简化发票处理。它减少了手工数据输入和处理的工作量,降低了出错的可能性,提高了工作效率。
数据匹配: 采购发票预制通常包括对采购订单、交货记录和供应商发票的数据进行匹配。系统会自动比较这些文档中的信息,确保它们一致,从而减少了错误和争议。
异常处理: 如果在匹配过程中出现异常(例如数量或价格差异),系统可以自动将问题标记为例外情况。这使得异常处理更加高效,因为只需处理少量的例外情况。
审批流程: 在某些情况下,采购发票预制可以与审批流程集成,以确保发票在付款之前经过适当的审批。这有助于确保合规性和财务控制。
供应商关系管理: 通过采购发票预制,企业能够更好地维护供应商关系,因为它可以更快速、准确地处理发票并按时付款,提高了供应商满意度。
财务控制: 该过程有助于企业确保采购成本的准确性,避免了不必要的支出。它还提供了对未付款项的跟踪和管理能力。
自动记账: 采购发票预制过程还可以与财务会计集成,以自动执行会计凭证的生成和记账。这有助于确保财务准确性和及时性。
数据分析和报告: 通过采购发票预制,企业可以轻松访问和分析与发票处理相关的数据。这有助于进行成本分析、供应商绩效评估和预测未来采购需求。
4.1 基于Tcode的顺序排列
供应商主数据 | 物料主数据 | 货源清单 | 配额安排 | 采购信息记录 | 采购订单 | 框架协议 | 采购询价/报价 | 采购申请 | 订单收货 | 发票校验 | 物料需求计划 |
BP-供应商主数据 | MM01 - 物料主数据新增 | ME01 - 维护 | MEQ1 - 维护 | ME11 - 创建 | ME21N - 创建 | 框架协议-合同: | 询价: | ME51N - 创建采购申请 | MIGO - 货物移动 | MIRO - 发票校验 | MD01 - 联机 |
XK01 - 创建 | MM02 - 物料主数据修改 | ME03 - 显示 | MEQ3 - 显示 | ME12 - 修改 | ME22N - 更改 | ME31K - 创建 | ME41 - 创建 | ME52N - 更改采购申请 | MB03 - 显示物料凭证 | MD04 - 显示库存/需求状况 | |
XK02 - 更改 | MM03 - 物料主数据查询 | ME0M - 清单查询 | MEQ4 - 更改 | ME13 - 查询 | ME23N - 显示 | ME32K - 更改 | ME42 - 更改 | ME53N - 显示采购申请 | MB51 - 物料凭证清单 | ||
XK03 - 显示 | MM04 - 物料主数据冻结与解冻 | ME04 - 修改记录查询 | MEQM - 按物料 (清单显示) | ME14 - 修改记录查询 | ME29N - 审批 | ME33K - 显示 | ME43 - 显示 | ME54N - 批准采购请求 | MMBE - 库存总览 | ||
XK04 - 修改 | MM50 - 扩充物料视图 | ME15 - 删除 | ME34K - 维护补充 | ME44 - 维护补充 | ME5A - 清单查询 | MB52 - 现有仓库库存清单 | |||||
XK05 - 冻结 | MM06 - 删除物料标记 | ME1L - 清单查询 | ME35K - 审批 | ME45 - 审批 | |||||||
XK06 - 删除标记 | MM60 - 物料清单 | 框架协议-计划协议: | 报价: | ||||||||
XK07 - 科目组改变 | MM17 - 成批维护 | ME31L - 已知供应商 | ME47 - 维护 | ||||||||
ME37 - 库存传送计划协议 | ME48 - 显示 | ||||||||||
ME32L - 更改 | ME49 - 价格比较 | ||||||||||
ME33L - 显示 | |||||||||||
ME34L - 维护补充 | |||||||||||
ME35L - 审批 |
鸣谢:感谢查阅,请多多指教,有用请收藏、点赞哦 !