首页 > SAP > ABAP > 采购订单ME21N创建关键点
2025
03-01

采购订单ME21N创建关键点

1.一、ME21N创建采购订单关键点

  • 采购组织/采购组
    • 字段:EKORG(采购组织)、EKGRP(采购组)
    • 关键点:采购组织必须与公司代码(Company Code)关联,采购组对应采购员职责范围
    • 示例:公司代码1000的采购组织需在SPRO中配置关联(OX01)
  • 供应商主数据(Vendor Master)
    • 字段:LIFNR(供应商编号)
    • 关键点:供应商需维护采购组织层级的采购视图(事务代码XK01/XK02)
  • 物料/服务描述
    • 字段:MATNR(物料号)或KNTYP(科目分配类别)
    • 服务采购场景:使用KNTYP = K(服务)并输入文本描述
  • 价格确定机制
    • 数据源:信息记录(Info Record, ME11/ME12)或框架协议(Contract/Outline Agreement)
    • 错误规避:未维护条件记录(Condition Record)会触发错误ME161 "Price cannot be determined"
  • 账户分配类别(Account Assignment Category)
    • 字段:KNTYP(如K-成本中心、F-固定资产等)
    • 财务集成:选择错误类别会导致过账失败(如CO对象未维护)

2.二、实际业务场景及操作细节

| 场景 | 业务需求 | ME21N操作要点 |
|————————-|————————–|———————————————————————————

| 1. 生产原料采购 | 根据生产工单采购原材料 | 输入物料号+工厂,勾选”基于需求”(Account Assignment Category = F) |
| 2. 服务采购 | 维护IT外包合同 | 使用KNTYP=K,输入服务描述,关联框架协议(合同编号) |
| 3. 库存转储订单 | 跨工厂调拨库存 | 使用移动类型UB,输入发货工厂和收货工厂,触发后续移动(MIGO) |
| 4. 框架协议发布 | 按长期协议生成交货计划 | 输入框架协议编号(如合同/计划协议),自动继承价格和条款 |
| 5. 紧急采购(无物料主数据) | 未编码物料的临时采购 | 使用MATNR = 非限制物料(如输入文本描述),手动维护价格和单位 |

3.三、常见错误及解决方案

| 错误号 | 错误描述 | 原因分析 | 解决方案 |
|————|————————————-|——————————–|—————————————————————————|
| ME161 | 价格无法确定(Price cannot be determined) | 信息记录未维护或有效期错误 | 执行ME11维护条件记录,检查有效期/采购组织匹配性 |
| ME165 | 账户分配类别未找到(Account assignment category not found) | 未输入或错误填写KNTYP字段 | 检查字段值(如K/F/M)并确保相关CO对象(成本中心/订单)已存在 |
| ME032 | 采购组织未分配到公司代码(Purch. organization not assigned to company code) | 采购组织与公司代码关联缺失 | 通过SPRO路径:MM > 采购 > 分配采购组织到公司代码(OX01) |
| ME083 | 供应商未在采购组织中维护(Vendor not maintained in purchasing org) | 供应商主数据未扩展采购组织视图 | 使用XK02为供应商扩展采购组织层数据 |
| F5118 | 总账科目未定义(GL account not defined) | 自动科目确定失败(如税码/工厂组合错误) | 检查OBYC配置(事务代码)或手动输入正确科目 |
| ME129 | 采购订单类型不允许(Order type not allowed) | 订单类型与采购组织不兼容 | 通过OMET配置允许的订单类型组合 |
| ME262 | 工厂未分配给采购组织(Plant not assigned) | 工厂未在采购组织层级关联 | 通过事务代码OWZ1分配工厂到采购组织 |
| ME280 | 框架协议项目已关闭(Contract item closed) | 关联的框架协议状态为已完成 | 检查框架协议(ME33K)并重新打开项目或创建新协议 |
| M7305 | 收货地址不完整(Incomplete delivery address) | 供应商或装运数据缺失 | 维护供应商主数据中的装运视图(XD02)或手动输入地址 |
| ME21N系统锁 | 用户被锁定(User locked by system) | 用户会话冲突或权限不足 | 检查SM04终止重复会话,或申请权限角色(如添加权限对象M_BEST_APP) |

4.四、ABAP创建采购订单示例代码

5.五、代码说明

  • BAPI选择:使用标准BAPI BAPI_PO_CREATE1,支持复杂业务逻辑(如多科目分配)
  • 必填字段:确保供应商、公司代码、物料等主数据有效性
  • 扩展性:可添加增强字段(如增强结构BAPIEKPOX/BAPIEKPOCX
  • 调试建议:使用ME22NME23N检查生成的PO是否符合业务规则

如需进一步优化(如增强校验或输出打印),可通过BADI ME_PROCESS_PO_CUST实现。

最后编辑:
作者:yangsen
本站为个人博客网站,全由我个人维护,我从事SAP开发13年,其它ERP开发7年,基本都是零售行业。本站记录工作学习的过程, 有SAP相关询问专、兼职工作可随时联系我。 有网站相关的问题可直接在文章下方留言,或者联系我。 邮件:yan252@163.com给我。 QQ:415402519

留下一个回复

你的email不会被公开。