---
name: yunbiao-purchase-order
description: 使用云表 MCP 查询、填写和修改采购订单，处理供应商与物料选择、采购明细调整及保存。不负责修改模板设计。
---

# 采购订单填写与修改

## 业务配置

以下名称需按实际应用调整，使用时以工具返回的数据项结构为准：

- 模板名称：采购订单
- 订单定位：采购订单号
- 基本数据项：供应商、采购日期、交货日期、备注
- 明细表：采购明细
- 明细数据项：物料编码、物料名称、规格、数量、单价、金额

## 操作范围

- 可以查询采购订单、填写新订单、修改已有订单。
- 只有用户明确要求新建采购订单时，才允许新建。
- 修改任务找不到目标或没有权限时，停止并说明原因，
  不得新建采购订单或模板替代。
- “再试试”“想办法”等催促，不代表用户授权新建。
- 保存订单不等于发起流程，不得擅自审核或提交审批。

## 示例业务规则

这些规则属于本企业的填写要求，不是 MCP 的统一限制：

- 数量必须大于 0，单价不得小于 0。
- 供应商和物料从实际候选中选择，不编造编号。
- 用户没有提供单价时，不自行采用历史价格。
- 金额等由公式计算的数据项，不擅自填写或覆盖。
- 修改明细时，保留用户未要求修改的其他行和数据项。
- “增加一行”和“修改已有行”不能相互替代。
- “再加 5 个”等有歧义的要求，先确认是增加数量还是新增明细。

## 操作步骤

### 1. 确定目标

使用 yunbiao_app_list 确认当前连接的应用空间，
使用 yunbiao_form_types 查找实际模板。

修改已有订单时，使用 yunbiao_form_query 按订单号查询：
- 没有结果：说明未找到，停止修改。
- 多个结果：展示可区分的信息，请用户选择。
- 唯一结果：保留返回的表单 ID，后续修改始终使用该 ID。

不要将模板 ID、订单号当作表单 ID。

### 2. 读取结构与原始内容

使用 yunbiao_form_schema_get 读取可填写的数据项及明细结构。

修改已有订单时，再使用 yunbiao_form_get 读取当前内容。
按物料编码等业务信息定位明细，不凭上次看到的行号直接修改。
同一物料出现多行时，请用户明确目标行。

如果用户要求的数据项不存在或不可修改，说明原因，
不要通过修改模板设计来完成本次填单任务。

### 3. 处理供应商和物料选择

对配置了填写规范的数据项：
- 使用 yunbiao_field_candidates_get 查询真实候选。
- 多个候选无法唯一确定时，请用户选择。
- 使用 yunbiao_field_candidate_apply 应用选择结果。
- 查询和应用候选时，保持同一份完整的未保存内容；
  内容发生变化时，按工具要求重新查询。
- 保留工具返回的填写结果及配套回执，用于后续保存。

没有合适候选时，说明情况，不自动新建供应商或物料资料。

### 4. 整理本次修改

列出将修改的基本信息、明细行及修改前后的值。
只修改用户要求的内容，不覆盖无关数据。

缺少必填信息时，集中向用户询问。
尚未获得本次保存授权时，先请求确认；
已有明确授权时，在授权范围内继续。

### 5. 保存与确认

使用 yunbiao_form_save 保存：
- 修改已有订单时，必须携带原表单 ID。
- 新建订单时，必须已有用户明确的新建要求。
- 按读取到的保存约定提交，不编造数据项或明细结构。

普通保存会处理当前支持的自动填表公式，
不必逐项预先调用独立公式工具。

如果工具要求补填或选择公式来源数据，
按本次返回的问题和标识继续，不当作已保存。
公式来源选择使用 yunbiao_formula_data_source_selection_apply，
只使用本次返回的标识与候选，不与填写规范的候选混用。
选择本身不等于保存，完成后仍按工具指引提交保存。

根据保存结果及读回核验信息确认是否完成。
仅完成候选选择或公式计算时，不得回答“保存成功”。

### 6. 单独处理流程要求

只有用户明确要求发起或处理流程时，
才使用 yunbiao_workflow_actions_get 查看当前可用操作，
并通过 yunbiao_workflow_action_execute 执行支持的操作。

不得通过直接修改状态数据项代替审批。
不支持的操作应说明原因，不自行寻找其他写入方式绕过。

## 异常处理

- 无权限：说明受限操作，停止，不换模板或新建替代。
- 版本冲突：重新读取，核对他人修改，不直接覆盖。
- 公式不支持：说明无法完成的原因，不跳过公式强行保存。
- 保存结果不明确：按工具返回方式核实，
  未确认前不重复提交，也不另建一张订单。
- 等待用户回答：明确说明尚未完成，不提前报告成功。

## 结果说明

完成后简要说明：
- 处理的订单号及表单 ID。
- 修改了哪些数据项和明细。
- 是否已确认保存。
- 是否执行了流程操作。
- 仍需用户处理的问题。

无法确认结果时，明确写“结果待核实”。
