采购信息记录维护

作者:斌将军 约 8 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:MM, 物料管理
采购信息记录维护 - 封面图
采购信息记录维护 - 封面图

**1**

**概念**

采购信息记录维护 - 封面图
采购信息记录维护 - 封面图

SAP的采购信息记录(Purchase Info

Record)是SAP系统中用于管理供应商、物料和采购条件的记录。它包含了与某个特定供应商相关的物料采购的详细信息,如价格、交货条件、折扣、支付条件等。

采购信息记录的主要目的是简化采购订单的创建过程,减少手工输入的工作量,并确保采购订单的一致性和准确性。

**采购信息记录包括:**

基本信息:

• 供应商主数据:包括供应商的代码、名称等。

• 物料主数据:包括物料的代码、描述、规格等。

• 采购组织:指定采购活动的组织单元。

• 采购组:负责特定物料或供应商的采购团队。

价格信息:

• 净价:不包含税和折扣的物料价格。

• 税:适用的税种和税率。

• 总价:包含税和折扣的最终价格。

• 有效期:价格信息的有效时间段。

交货条件:

• 交货地点:物料需要送达的地点。

• 运输条件:运输方式和相关费用。

• 交货时间:供应商承诺的交货时间。

折扣和返利:

• 数量折扣:根据采购数量的不同,给予不同的折扣。

• 价值折扣:根据采购金额的不同,给予不同的折扣。

• 返利:供应商提供的奖励或返点。

支付条件:

• 支付条款:如现金支付、信用支付、分期支付等。

• 信用期限:供应商允许的信用支付期限。

• 支付方式:如银行转账、支票等。

附加信息:

• 最低订购量:供应商要求的最低订购数量。

• 包装规格:物料的包装方式和数量。

• 货币:采购交易使用的货币类型。

**采购信息记录的主要用途包括:**

• 简化采购订单创建:在创建采购订单时,系统可以直接引用采购信息记录中的内容,自动填充价格、交货条件等信息,减少手工输入错误。

• 确保采购一致性:通过标准化采购条件,避免因不同人员操作导致的采购条件不一致。

• 提高采购效率:减少重复性工作,加快采购流程。

• 供应商评估:通过对采购信息记录的分析,可以评估供应商的绩效,如交货准时率、价格竞争力等。

**采购信息记录的维护:**

为了确保采购信息记录的准确性和有效性,需要定期进行维护,包括:

• 更新价格和条件:当供应商提供新的价格或条件时,需要及时更新采购信息记录。

• 审查有效期:检查采购信息记录的有效期,过期的记录需要更新或删除。

• 校验数据准确性:定期检查数据的准确性,确保与供应商提供的实际情况一致。

通过有效的管理,采购信息记录可以显著提高采购过程的效率和准确性,帮助企业更好地控制采购成本和供应商关系。

**2**

**前台创建**

采购信息记录维护 - 封面图
采购信息记录维护 - 封面图

事务代码:ME11

采购信息记录维护 - 封面图
采购信息记录维护 - 封面图

采购信息记录一般数据

采购信息记录维护 - 封面图
采购信息记录维护 - 封面图

采购组织数据

采购信息记录维护 - 封面图
采购信息记录维护 - 封面图

条件

采购信息记录维护 - 封面图
采购信息记录维护 - 封面图

**3**

**参考代码**

采购信息记录维护 - 封面图
采购信息记录维护 - 封面图

调用函数:ME_INFORECORD_MAINTAIN

另有函数:ME_INFORECORD_MAINTAIN_MULTI可以批量处理

"--------------------@斌将军--------------------

DATA: lv_flag TYPE char1, ls_eina TYPE mewieina, ls_eine TYPE mewieine, ls_einax TYPE mewieinax, ls_einex TYPE mewieinex, lt_txt TYPE mewipirtext_t, ls_txt TYPE mewipirtext, lt_validity TYPE TABLE OF mewivalidity, ls_validity TYPE mewivalidity, lt_condition TYPE TABLE OF mewicondition, ls_condition TYPE mewicondition, lt_value TYPE TABLE OF mewiscaleval, ls_value TYPE mewiscaleval, lt_quan TYPE TABLE OF mewiscalequan, ls_quan TYPE mewiscalequan, ls_eina1 LIKE mewieina, ls_eine1 LIKE mewieine, ls_return TYPE bapireturn, lt_return TYPE mewi_t_return.DATA: lv_infnr TYPE infnr, lv_check TYPE char1, lv_message TYPE char255.CLEAR: lv_flag,ls_eina,ls_einax,ls_eine,ls_einex, lt_txt,ls_txt,lt_validity,ls_validity,lt_condition,ls_condition, lt_value,ls_value,lt_quan,ls_quan, ls_eina1,ls_eine1,ls_return,lt_return."查询采购信息记录是否存在SELECT SINGLE eina~infnrINTO lv_infnrFROM einaJOIN eine ON eina~infnr = eine~infnrWHERE eina~lifnr = '0010000792' AND eina~matnr = '000000001010008955' AND eine~ekorg = '3060' AND eine~esokz = '0' AND eine~werks = '3060'.IF sy-subrc <> 0. lv_flag = 'I'. "查看是否有信息记录基础数据 SELECT SINGLE infnr FROM eina INTO lv_infnr WHERE lifnr = '0010000792' AND matnr = '000000001010008955'. IF sy-subrc = 0. ls_eina-info_rec = lv_infnr. ENDIF.ELSE. lv_flag = 'U'. ls_eina-info_rec = lv_infnr. ls_eine-info_rec = lv_infnr. ls_einex-info_rec = 'X'.ENDIF.*采购信息记录 - 一般数据ls_eina-vendor = '0010000792'."gt_tab-lifnr. "供应商ls_eina-material = '000000001010008955'."gt_tab-matnr. "物料ls_eina-po_unit = 'BOT'."gt_tab-meins. "订单计量单位*ls_eina-conv_num1 = ''."gt_tab-umrez. "单位转换的分子*ls_eina-conv_den1 = ''."gt_tab-umren. "单位转换的分母ls_einax-vendor = 'X'.ls_einax-material = 'X'.ls_einax-po_unit = 'X'.*ls_einax-conv_num1 = 'X'.*ls_einax-conv_den1 = 'X'.*采购信息记录 - 采购组织数据ls_eine-info_type = '0'."gt_tab-esokz. "信息记录类别ls_eine-purch_org = '3060'."gt_tab-ekorg. "采购组织ls_eine-plant = '3060'."gt_tab-werks. "工厂ls_eine-pur_group = '100'."gt_tab-ekgrp. "采购组ls_eine-gr_basediv = 'X'."gt_tab-webre. "标识:基于收货的发票验证ls_eine-nrm_po_qty = '1'."gt_tab-norbm. "标准采购订单数量ls_eine-min_po_qty = ''."gt_tab-minbm. "最小订单数量ls_eine-max_po_qty = ''."gt_tab-bstma. "最大订单数量ls_eine-net_price = '10'."gt_tab-netpr. "净价ls_eine-currency = 'CNY'."gt_tab-waers. "币别ls_eine-price_unit = '1'."gt_tab-peinh. "价格单位ls_eine-orderpr_un = 'BOT'."gt_tab-meins. "订单计量单位ls_eine-conv_num1 = '1'."1. "gt_tab-umrez. "单位转换的分子ls_eine-conv_den1 = '1'."1. "gt_tab-umren. "单位转换的分母ls_eine-tax_code = ''."gt_tab-mwskz. "税码ls_eine-overdeltol = ''."gt_tab-uebto. "过量交货容差ls_eine-under_tol = ''."gt_tab-untto. "交货不足容差ls_eine-conf_ctrl = ''."gt_tab-bstae. "确认控制代码ls_eine-ackn_reqd = ''."gt_tab-kzabs. "供应商需要确认订单ls_einex-info_type = 'X'.ls_einex-purch_org = 'X'.ls_einex-plant = 'X'.ls_einex-pur_group = 'X'.ls_einex-gr_basediv = 'X'.ls_einex-nrm_po_qty = 'X'.ls_einex-min_po_qty = 'X'.ls_einex-max_po_qty = 'X'.*ls_einex-net_price = 'X'."此处不能打Xls_einex-currency = 'X'.ls_einex-price_unit = 'X'.ls_einex-orderpr_un = 'X'.ls_einex-conv_num1 = 'X'.ls_einex-conv_den1 = 'X'.ls_einex-tax_code = 'X'.ls_einex-overdeltol = 'X'.ls_einex-under_tol = 'X'.ls_einex-conf_ctrl = 'X'.ls_einex-ackn_reqd = 'X'.lt_validity = VALUE #( ( plant = '3060'"gt_tab-werks valid_from = '20240620'"gt_tab-datab valid_to = '99991231'"gt_tab-datbi ) ).lt_condition = VALUE #( ( cond_count = 1 cond_type = 'PB00'"gt_tab-kschl cond_value = '10'"gt_tab-netpr currency = 'CNY'"gt_tab-waers cond_p_unt = '1'"gt_tab-peinh cond_unit = 'BOT'"gt_tab-meins calctypcon = 'C' "计算类型 vendor_no = '0010000792'"gt_tab-lifnr change_id = lv_flag ) )."阶梯价* IF gt_tab-kstb1 IS NOT INITIAL.* CLEAR: lt_condition.* lt_condition = VALUE #( ( cond_count = 1* cond_type = gt_tab-kschl* scale_type = 'A' "等级类型* scale_base_ty = 'C' "等级基础类型* scale_unit = gt_tab-meins "条件等级计量单位* calctypcon = 'C' "计算类型* cond_value = gt_tab-netpr* currency = gt_tab-waers* cond_p_unt = gt_tab-peinh* cond_unit = gt_tab-meins* vendor_no = gt_tab-lifnr* change_id = lv_flag ) ).** ls_quan-cond_count = 1.* ls_quan-line_no = 1.* ls_quan-scale_base_qty = '1'."gt_tab-kstb1.* ls_quan-cond_value = '10'."gt_tab-kbet1.* APPEND ls_quan TO lt_quan.* CLEAR ls_quan.* ENDIF.** IF gt_tab-kstb2 IS NOT INITIAL.* ls_quan-cond_count = 1.* ls_quan-line_no = 2.* ls_quan-scale_base_qty = gt_tab-kstb2.* ls_quan-cond_value = gt_tab-kbet2.* APPEND ls_quan TO lt_quan.* CLEAR ls_quan.* ENDIF."BAPICALL FUNCTION 'ME_INFORECORD_MAINTAIN' EXPORTING i_eina = ls_eina i_einax = ls_einax i_eine = ls_eine i_einex = ls_einex IMPORTING e_eina = ls_eina1 e_eine = ls_eine1 TABLES txt_lines = lt_txt cond_validity = lt_validity condition = lt_condition* cond_scale_value = lt_value* cond_scale_quan = lt_quan return = lt_return.CLEAR:lv_message.LOOP AT lt_return INTO ls_return WHERE type CA 'EXA'. lv_message = lv_message && '&' && ls_return-message.ENDLOOP.IF sy-subrc = 0 OR ls_eina1-info_rec IS INITIAL. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.ELSE. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. lv_message = '采购信息记录' && ls_eina1-info_rec && '创建成功'. WRITE:lv_message.ENDIF."--------------------@斌将军--------------------

**—— 希望本篇文章对您有所帮助 ——**

斌将军

关于作者:斌将军

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「采购信息记录维护.md」整理生成,仅用于内部技术分享与学习交流。