采购信息记录维护
1、概念
SAP的采购信息记录(Purchase Info Record)是SAP系统中用于管理供应商、物料和采购条件的记录。它包含了与某个特定供应商相关的物料采购的详细信息,如价格、交货条件、折扣、支付条件等。
采购信息记录的主要目的是简化采购订单的创建过程,减少手工输入的工作量,并确保采购订单的一致性和准确性。
采购信息记录包括
-
基本信息:
- 供应商主数据:包括供应商的代码、名称等。
- 物料主数据:包括物料的代码、描述、规格等。
- 采购组织:指定采购活动的组织单元。
- 采购组:负责特定物料或供应商的采购团队。
-
价格信息:
- 净价:不包含税和折扣的物料价格。
- 税:适用的税种和税率。
- 总价:包含税和折扣的最终价格。
- 有效期:价格信息的有效时间段。
-
交货条件:
- 交货地点:物料需要送达的地点。
- 运输条件:运输方式和相关费用。
- 交货时间:供应商承诺的交货时间。
-
折扣和返利:
- 数量折扣:根据采购数量的不同,给予不同的折扣。
- 价值折扣:根据采购金额的不同,给予不同的折扣。
- 返利:供应商提供的奖励或返点。
-
支付条件:
- 支付条款:如现金支付、信用支付、分期支付等。
- 信用期限:供应商允许的信用支付期限。
- 支付方式:如银行转账、支票等。
-
附加信息:
- 最低订购量:供应商要求的最低订购数量。
- 包装规格:物料的包装方式和数量。
- 货币:采购交易使用的货币类型。
采购信息记录的主要用途包括:
- 简化采购订单创建:在创建采购订单时,系统可以直接引用采购信息记录中的内容,自动填充价格、交货条件等信息,减少手工输入错误。
- 确保采购一致性:通过标准化采购条件,避免因不同人员操作导致的采购条件不一致。
- 提高采购效率:减少重复性工作,加快采购流程。
- 供应商评估:通过对采购信息记录的分析,可以评估供应商的绩效,如交货准时率、价格竞争力等。
采购信息记录的维护
为了确保采购信息记录的准确性和有效性,需要定期进行维护,包括:
- 更新价格和条件:当供应商提供新的价格或条件时,需要及时更新采购信息记录。
- 审查有效期:检查采购信息记录的有效期,过期的记录需要更新或删除。
- 校验数据准确性:定期检查数据的准确性,确保与供应商提供的实际情况一致。
通过有效的管理,采购信息记录可以显著提高采购过程的效率和准确性,帮助企业更好地控制采购成本和供应商关系。
2、前台创建
事务代码:ME11
采购信息记录一般数据
采购组织数据
条件
3、参考代码
调用BAPI:ME_INFORECORD_MAINTAIN
"--------------------@斌将军-------------------- 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~infnr INTO lv_infnr FROM eina JOIN eine ON eina~infnr = eine~infnr WHERE 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'."此处不能打X ls_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. "BAPI CALL 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. "--------------------@斌将军--------------------
定期更文,欢迎关注