SAP S/4HANA MM 模块培训 29:采购订单分类审批配置与排错

SAP S/4HANA MM 模块培训 29:采购订单分类审批配置与排错
本集继续配置“带分类的采购订单审批”。课程完成了审批组、审批代码、审批标识和审批策略,但两张测试采购订单都没有匹配到审批策略。关键原因不是采购订单没保存,也不是审批检查工具没报错,而是策略 BP/BP 的分类条件没有维护任何特征值。
视频信息
- 原视频:29. SAP MM S4/HANA | Class-29 | July Batch
- 视频时长:57 分 35 秒
- 视频地址:https://www.youtube.com/watch?v=UK2LXXbThxQ
- 本文范围:仅记录视频中已经配置和验证的内容;未成功的审批结果不会写成已完成
- 截图规则:SAP 系统画面保留原始界面;非 SAP 画面不直接使用,相关内容已改写为中文说明
一、先理解完整的匹配链路
带分类的采购订单审批不是只建一个“审批人组”就能工作。系统按下面的关系判断采购订单是否需要审批:
特征 → 032 类 → 审批组 → 审批策略 → 分类条件值 → 采购订单实际值
其中有两个容易混淆的概念:
- **审批组(Release Group)不是一组人员。**它是一个两位配置键,用来连接类和审批策略。
- **自定义特征和自定义类是受支持的。**课程环境中创建自定义类时遇到问题,不代表 SAP S/4HANA 不允许自定义;复用现有类也必须先确认其中的特征符合当前业务条件。
二、进入采购订单审批配置
课程从 IMG 的采购订单审批配置入口继续操作,菜单中包括编辑特征、编辑类、定义采购订单审批过程和检查审批策略。

三、配置审批组和审批代码
课程使用审批组 BP,并将其关联到现有的 032 类 SPO_CLASS。随后在审批组下维护两个审批代码:
| 审批代码 | 说明 | 顺序中的角色 |
|---|---|---|
10 | Manager | 第一级审批 |
20 | Sr Manager | 第二级审批 |

审批代码只是审批步骤的标识。真正由谁执行审批,还需要结合权限或工作流代理分配,不能只根据代码说明判断实际审批人。
四、配置审批标识
课程中可见 X 和 Y 两个主要审批标识:
| 审批标识 | 状态 | 课程中的设置 |
|---|---|---|
Y | Blocked | 采购订单仍被阻止 |
X | Released | 最终审批完成;可更改性为 4,价值变化容差为 10% |

“可更改性 4”和“10%”控制审批后采购订单发生变化时的处理方式。它们并不负责决定采购订单能否匹配审批策略。
五、建立两级顺序审批策略
课程在审批组 BP 下建立同名策略 BP,说明为 PO Release。审批顺序是先由代码 10 审批,再由代码 20 审批。

状态矩阵显示:未完成全部审批时保持阻止状态,两个审批代码都完成后才进入 X - Released。

策略保存后,主画面显示审批组 BP、策略 BP 以及审批代码 10、20。

六、问题根源:策略没有分类条件值
打开策略 BP/BP 的分类画面,可以看到类类型为 032、类为 SPO_CLASS,其中包含订单净值、采购订单类型、采购组织、工厂等特征。但所有“值”都为空,画面底部还显示 Inconsistent。

这是本集测试失败的核心原因。SAP 在确定审批策略时,需要采购订单对策略中使用的每个特征都满足一个允许值。当前策略没有维护任何条件,因此系统无法把测试采购订单分配给 BP/BP。
一个可执行的修正过程应当是:
- 明确本策略要覆盖的采购订单类型、采购组织、工厂和净值范围。
- 在
BP/BP的“分类”中为相关特征维护允许值或区间。 - 保存后使用“模拟审批”输入与测试采购订单相同的业务值。
- 模拟能命中
BP/BP后,再新建采购订单做实际审批测试。
七、工作流代理分配也没有完成
课程尝试维护工作流代理时,系统提示 Role assignment US inconsistent (Please check)。这一步没有形成可用的代理分配。

这个错误会影响工作流找到实际处理人,但它不是本集“采购订单完全没有匹配到审批策略”的首要原因。即使先做手工审批测试,也必须先让采购订单命中策略。
八、“检查无报错”不等于采购订单能匹配
课程执行“检查审批策略”后,日志画面没有列出错误。

该检查主要验证配置结构,不能代替实际条件匹配。是否能命中策略,仍要看分类特征值与采购订单业务值是否一致。因此,“检查没有错误”不能作为审批流程已经可用的证明。
九、第一张测试采购订单没有进入审批
第一张采购订单使用供应商 408026 - Food Corporation of India,物料为 WHEAT-9501 - Wheat Grain,数量 100 KG,净价 20 INR/KG,工厂为 9502。

系统成功保存采购订单 4500000629。

重新查看该采购订单时,抬头页签中没有出现可用的审批策略页签,说明它没有进入预期的审批流程。

随后在集中审批事务中使用审批组 BP、审批代码 10 查询,系统返回 No suitable purchasing documents found,即没有找到适合审批的采购订单。

十、第二张测试采购订单仍然失败
第二次测试改用另一组业务数据:供应商 800000007 - Test Vendor 4、物料 0001800100 - Lights、数量 2 EA。系统成功保存采购订单 4500000630。

打开采购订单后,状态栏明确提示 Purchasing document 4500000630 cannot be released。这再次证明保存采购订单与命中审批策略是两件不同的事。

十一、失败原因复盘
| 检查项 | 本集实际状态 | 判断 |
|---|---|---|
| 特征和 032 类 | 复用了现有 SPO_CLASS | 可以复用,但必须验证特征是否符合业务需求 |
| 审批组、代码、标识和顺序 | 已保存 BP/BP、10 → 20 | 结构已经建立 |
| 策略分类条件值 | 所有值为空,画面显示不一致 | 采购订单无法命中策略的核心原因 |
| 工作流代理分配 | 系统提示角色分配不一致 | 尚未完成,后续需要修复 |
| “检查审批策略”日志 | 没有列出错误 | 只说明未发现结构错误,不代表运行时一定匹配 |
采购订单 4500000629 | 已保存,集中审批查不到 | 未进入目标审批策略 |
采购订单 4500000630 | 已保存,提示无法审批 | 未进入目标审批策略 |
如果外部采购单据没有匹配任何审批策略,系统不会把它作为待审批单据列出。排错时应优先检查策略分类值,而不是反复新建采购订单。
十二、本集完成状态
| 内容 | 状态 |
|---|---|
审批组 BP 与类 SPO_CLASS 的关联 | 已配置 |
审批代码 10、20 | 已配置 |
| 审批标识和两级顺序 | 已配置 |
策略 BP/BP | 已保存 |
| 策略分类条件值 | 未维护,配置不完整 |
| 工作流代理分配 | 未完成 |
| 两张采购订单 | 均已保存 |
| 实际审批验证 | 失败,未完成任何审批 |
本集真正得到的结果是一个清晰的排错结论:审批结构虽然保存成功,但分类条件为空,采购订单就无法命中审批策略。下一步应先补全分类条件并通过模拟测试,再继续验证手工审批和工作流代理。
