☰
SAP采购申请转采购单报错“对象类型 PurchaseOrder 没有被创建的实例”分析与解决
2026/10/24 2:03:47 网站建设 项目流程

问题描述

在 SAP 系统中,执行自研开发事务码采购申请(Purchase Requisition)转采购订单(Purchase Order)时,系统报错:“对象类型 PurchaseOrder 没有被创建的实例.外部参考:”。

此问题通常发生在供应商(Vendor)和采购信息记录价格(Info Record)均已正确维护的情况下。经过排查,根本原因在于系统后台配置。

根本原因

该错误与采购信息记录(Info Record)的更新控制逻辑有关。具体来说,是工厂层级的条件控制(Condition Control at Plant Level)配置与前台操作中信息记录的更新标识(Update Indicator)不匹配,导致系统在创建采购订单实例时无法找到或应用正确的定价条件。

配置路径与逻辑分析

核心配置路径为:

SPRO → 物料管理 → 采购 → 条件 → 定义工厂层的条件控制 (SPRO → Materials Management → Purchasing → Conditions → Define Condition Control at Plant Level)

前台操作中的更新标识

在维护报价或创建采购订单时(例如使用 ME47 或 ME49),系统会要求为信息记录指定一个更新标识:

  • B:有工厂的更新(Update with plant),如果没有禁令(block)。
  • C:没有工厂的更新(No update with plant)。
  • A:有或没有的更新,根据后台配置(Update with or without plant, depending on backend configuration)。

后台配置与前台标识的映射关系

当在前台操作中将信息记录的更新标识设置为A时,其实际行为由上述后台配置决定:

  • 如果后台针对该“物料+供应商+采购组织+工厂”组合的配置为“+”,则系统视同前台标识为B(有工厂更新)。
  • 如果后台配置为“-”,则系统视同前台标识为C(无工厂更新)。

配置路径详情:后勤 → 物料管理 → 采购 → 主数据 → 条件 → Define Condition Control at Plant Level。

问题场景与解决方案

问题场景

假设为工厂 2100(中山)或 4000(上海)创建采购订单。系统期望信息记录能进行工厂层级的更新(即行为等同于标识 B),但后台配置可能被设置为“-”,或前台误操作选择了标识 C,导致系统在创建采购订单对象实例时,因无法应用带工厂条件的定价信息而报错。

解决方案

  1. 检查后台配置:进入SPRO上述路径,检查报错物料、供应商、采购组织及对应工厂(2100或4000)的后台配置是“+”还是“-”。
  2. 核对前台操作:回顾在 ME47(维护报价)或 ME49(维护采购订单)中,是否为该信息记录正确设置了更新标识。
    • 若需工厂级更新,应确保前台标识为B,或标识为A且后台配置为“+”。
    • 若无需工厂级更新,可设置前台标识为C,或标识为A且后台配置为“-”。
  3. 修正配置或操作:
    • 方案一(修改后台):在后台将对应条目的配置从“-”改为“+”。
    • 方案二:ME21N手动转采购单
  4. 重新执行转换:修正后,重新尝试将采购申请转为采购订单。

总结

“对象类型 PurchaseOrder 没有被创建的实例”错误常源于采购信息记录的更新逻辑不一致。关键在于理解前台更新标识(A/B/C)与后台工厂层条件控制(+/-)之间的映射关系,并确保两者协调,系统才能成功创建采购订单实例并应用正确的定价条件。

建议在首次为某物料-供应商组合创建信息记录时,就根据业务需求(是否需要工厂特定价格)明确设置标识并检查后台配置,以避免后续转换订单时出错。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询