**广联智通科技公司信息系统**

**开发功能说明书**

2026年6月

# **1 创建修改记录**

<table><tr><td><p><strong>作者</strong></p></td><td><p>李佩遥</p></td></tr><tr><td><p><strong>业务顾问</strong></p></td><td><p>李佩遥</p></td></tr><tr><td><p><strong>创建日期</strong></p></td><td><p>2026-06-09</p></td></tr><tr><td><p><strong>最近修改日期</strong></p></td><td></td></tr><tr><td><p><strong>开发</strong></p></td><td></td></tr><tr><td><p><strong>备注</strong></p></td><td></td></tr></table>

<table><tr><td><p><strong>版本号</strong></p></td><td><p><strong>修正日期</strong></p></td><td><p><strong>修改人</strong></p></td><td><p><strong>修正描述</strong></p></td><td><p><strong>备注</strong></p></td></tr><tr><td><p>V1.0</p></td><td><p>2026-06-09</p></td><td><p>李佩遥</p></td><td><p>初版编制</p></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table>

# **2 开发类型**

<table><tr><td><p><strong>信息系统</strong></p></td><td><p>MES / SAP</p></td></tr><tr><td><p><strong>功能名称</strong></p></td><td><p>生产订单状态修改接口</p></td></tr><tr><td><p><strong>开发类型</strong></p></td><td><p>接口</p></td></tr><tr><td><p><strong>开发记录号</strong></p></td><td></td></tr></table>

# **3 业务需求概述**

<table><tr><td><p><strong>需求概述：</strong></p></td><td colspan="3"><p>MES系统在生产执行全流程中，根据实际业务触发SAP生产订单状态相关操作。<br/>场景1（MES取消订单）：MES拉取的是SAP已REL（下达）的生产订单，当MES侧未开始生产需取消时，调用SAP接口将对应生产订单打TECO（技术完成）标记。<br/>场景2（MES开始执行）：MES开始执行生产后，调用SAP接口将生产订单的状态参数文件（屏幕字段JOSTD-STSMA）从空值修改为ZPP001，锁定订单不允许修改。<br/>场景3（MES关单）：MES完成生产关单后，调用SAP接口将对应生产订单打TECO（技术完成）标记。</p></td></tr><tr><td><p><strong>开发难度(高/中/低)：</strong></p></td><td><p>中</p></td><td><p>事务代码：</p></td><td></td></tr><tr><td><p><strong>运行类型(在线/批处理):</strong></p></td><td><p>在线</p></td><td></td><td></td></tr><tr><td><p><strong>交易量：</strong></p></td><td><p>中</p></td><td></td><td></td></tr><tr><td><p><strong>备注：</strong></p></td><td><p>ZPP001为系统后台配置的状态参数文件，设置为ZPP001后不允许修改订单数据</p></td><td></td><td></td></tr></table>

## **现有/样本报表**

<table><tr><td><p><strong>现有报表名称：</strong></p></td><td><p>N/A</p></td></tr><tr><td><p><strong>系统菜单/交易代码：</strong></p></td><td><p>N/A</p></td></tr></table>

# **4 功能规范**

## **4.1 程序开发优先级**

优先级别:	中

## **4.2 权限要求**

全员赋予流程入口权限

## **4.3 程序运行频率**

随时

## **4.4 屏幕设计及其布局**

无

## **4.5 参数和选择条件**

**生产订单状态修改接口提供以下三个业务场景的操作：**

场景1：MES取消订单 -> SAP生产订单打TECO标记（POST调用TechlyCmpltOrder）

场景2：MES开始执行 -> SAP生产订单状态参数文件设置为ZPP001（PATCH修改StatusProfile）

场景3：MES关单 -> SAP生产订单打TECO标记（POST调用TechlyCmpltOrder）

以下分别列出各场景的API调用方式。

## **4.6 字段的定义**

**SAP生产订单状态修改涉及的字段表**

说明：状态参数文件字段（屏幕字段JOSTD-STSMA，后台字段STSMA）是生产订单上的配置字段，

在OData API（API\_PRODUCTION\_ORDER\_2\_SRV）中对应属性为StatusProfile。

默认为空，设置为ZPP001后，订单将遵循ZPP001定义的规则，禁止修改订单数据。

<table><tr><td><p><strong>字段名</strong></p></td><td><p><strong>字段标识</strong></p></td><td><p><strong>字段类型</strong></p></td><td><p><strong>参考数据</strong></p></td></tr><tr><td colspan="4"><p><strong>生产订单抬头（Header）</strong></p></td></tr><tr><td><p>生产订单号</p></td><td><p>ManufacturingOrder</p></td><td><p>Edm.String - MaxLength 12</p></td><td><p>1000001</p></td></tr><tr><td><p>工厂</p></td><td><p>Plant</p></td><td><p>Edm.String - MaxLength 4</p></td><td><p>1011</p></td></tr><tr><td><p>状态参数文件（屏幕JOSTD-STSMA）</p></td><td><p>StatusProfile</p></td><td><p>Edm.String - MaxLength 8</p></td><td><p>ZPP001</p></td></tr><tr><td colspan="4"><p><strong>TECO标记 - TechlyCmpltOrder函数</strong></p></td></tr><tr><td><p>生产订单号（参数）</p></td><td><p>ProductionOrder</p></td><td><p>Edm.String - MaxLength 12</p></td><td><p>1000001</p></td></tr><tr><td><p>x-csrf-token</p></td><td><p>x-csrf-token</p></td><td><p>Edm.String</p></td><td><p>需先调用GET获取</p></td></tr><tr><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td></tr></table>

# **5 程序输出格式**

## **5.1 业务大概逻辑**

**通用前置步骤 -- 获取x-csrf-token：**

GET请求获取x-csrf-token

用于后续PATCH/POST操作的CSRF保护

**场景1：MES取消订单 -> TECO**

1) MES侧产线未开始生产，操作员在MES取消订单

2) MES调用API\_PRODUCTION\_ORDER\_2\_SRV的TechlyCmpltOrder函数

POST /sap/opu/odata/sap/API\_PRODUCTION\_ORDER\_2\_SRV/TechlyCmpltOrder

URL参数: ProductionOrder='{OrderID}'

Header: x-csrf-token = {token}

3) SAP将生产订单设为TECO（技术完成），返回成功消息

**场景2：MES开始执行 -> 设置状态参数文件=ZPP001**

1) MES侧开始执行生产

2) MES调用PATCH接口修改生产订单的StatusProfile字段

PATCH /sap/opu/odata/sap/API\_PRODUCTION\_ORDER\_2\_SRV/A\_ProductionOrder\_2('{OrderID}')

Body: { "StatusProfile": "ZPP001" }

3) SAP更新成功（HTTP 204），ZPP001自动锁定订单不可修改

**场景3：MES关单 -> TECO**

1) MES侧生产完成，操作员关单

2) MES调用TechlyCmpltOrder函数（同场景1）

POST /sap/opu/odata/sap/API\_PRODUCTION\_ORDER\_2\_SRV/TechlyCmpltOrder

URL参数: ProductionOrder='{OrderID}'

3) SAP将生产订单设为TECO

## **5.2 前台业务截图**

[请在此处附上前台业务的截图，并将所要取出的字段标记出来]

建议截图：SAP生产订单的状态概览界面，展示状态参数文件（JOSTD-STSMA）字段位置。

## **5.3 SAP方需要传入传出的参数**

**A. 获取x-csrf-token（所有场景通用前置步骤）：**

<table><tr><td><p><strong>方法</strong></p></td><td><p><strong>URL</strong></p></td><td><p><strong>认证方式</strong></p></td></tr><tr><td><p>GET</p></td><td><p>https://my201453-api.s4hana.sapcloud.cn/sap/opu/odata/sap/API_PRODUCTION_ORDER_2_SRV/A_ProductionOrder_2('{OrderID}')</p></td><td><p>Basic Auth</p></td></tr></table>

**请求Header参数：**

<table><tr><td><p><strong>参数名</strong></p></td><td><p><strong>示例值</strong></p></td><td><p><strong>参数类型</strong></p></td><td><p><strong>是否必填</strong></p></td><td><p><strong>参数描述</strong></p></td></tr><tr><td><p>Accept</p></td><td><p>application/json</p></td><td><p>string</p></td><td><p>是</p></td><td><p>-</p></td></tr><tr><td><p>x-csrf-token</p></td><td><p>fetch</p></td><td><p>string</p></td><td><p>是</p></td><td><p>填写fetch获取的值</p></td></tr></table>

**B. 场景1/场景3：生产订单打TECO标记（POST调用TechlyCmpltOrder函数）：**

说明：SAP标准API通过函数导入（Function Import）设置TECO状态。

<table><tr><td><p><strong>方法</strong></p></td><td><p><strong>URL</strong></p></td><td><p><strong>认证方式</strong></p></td></tr><tr><td><p>POST</p></td><td><p>https://my201453-api.s4hana.sapcloud.cn/sap/opu/odata/sap/API_PRODUCTION_ORDER_2_SRV/TechlyCmpltOrder?ProductionOrder='{OrderID}'</p></td><td><p>Basic Auth</p></td></tr></table>

**请求Header参数：**

<table><tr><td><p><strong>参数名</strong></p></td><td><p><strong>示例值</strong></p></td><td><p><strong>参数类型</strong></p></td><td><p><strong>是否必填</strong></p></td><td><p><strong>参数描述</strong></p></td></tr><tr><td><p>Content-Type</p></td><td><p>application/json</p></td><td><p>string</p></td><td><p>是</p></td><td><p>-</p></td></tr><tr><td><p>x-csrf-token</p></td><td><p>Gy2TljN1_tq20FQYySzKzA==</p></td><td><p>string</p></td><td><p>是</p></td><td><p>填写步骤A获取的token</p></td></tr></table>

**请求参数（URL参数方式，非Body）：**

<table><tr><td><p><strong>参数名</strong></p></td><td><p><strong>示例值</strong></p></td><td><p><strong>参数类型</strong></p></td><td><p><strong>是否必填</strong></p></td><td><p><strong>参数描述</strong></p></td></tr><tr><td><p>ProductionOrder</p></td><td><p>'1000001'</p></td><td><p>string</p></td><td><p>是</p></td><td><p>生产订单号，需用单引号括起</p></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table>

说明：该函数无请求Body，参数直接作为URL Query传递。

函数返回消息包含处理结果（成功/失败）。

**C. 场景2：设置状态参数文件为ZPP001（PATCH）：**

<table><tr><td><p><strong>方法</strong></p></td><td><p><strong>URL</strong></p></td><td><p><strong>认证方式</strong></p></td></tr><tr><td><p>PATCH</p></td><td><p>https://my201453-api.s4hana.sapcloud.cn/sap/opu/odata/sap/API_PRODUCTION_ORDER_2_SRV/A_ProductionOrder_2('{OrderID}')</p></td><td><p>Basic Auth</p></td></tr></table>

**请求Header参数：**

<table><tr><td><p><strong>参数名</strong></p></td><td><p><strong>示例值</strong></p></td><td><p><strong>参数类型</strong></p></td><td><p><strong>是否必填</strong></p></td><td><p><strong>参数描述</strong></p></td></tr><tr><td><p>Content-Type</p></td><td><p>application/json</p></td><td><p>string</p></td><td><p>是</p></td><td><p>-</p></td></tr><tr><td><p>x-csrf-token</p></td><td><p>Gy2TljN1_tq20FQYySzKzA==</p></td><td><p>string</p></td><td><p>是</p></td><td><p>填写步骤A获取的token</p></td></tr></table>

**请求Body参数（JSON格式）：**

{

"StatusProfile": "ZPP001"

}

说明：该字段默认为空，PATCH时发送 "ZPP001" 即可覆盖。

**请求Body参数明细表：**

<table><tr><td><p><strong>参数名</strong></p></td><td><p><strong>示例值</strong></p></td><td><p><strong>参数类型</strong></p></td><td><p><strong>是否必填</strong></p></td><td><p><strong>参数描述</strong></p></td></tr><tr><td><p>StatusProfile</p></td><td><p>ZPP001</p></td><td><p>string</p></td><td><p>是</p></td><td><p>状态参数文件编码，屏幕字段JOSTD-STSMA</p></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr></table>

**D. 响应结果：**

<table><tr><td><p><strong>场景</strong></p></td><td><p><strong>HTTP状态码</strong></p></td><td><p><strong>说明</strong></p></td></tr><tr><td><p>场景2（PATCH）</p></td><td><p>204 No Content</p></td><td><p>成功（PATCH修改StatusProfile）</p></td></tr><tr><td><p>场景2（PATCH）</p></td><td><p>4xx</p></td><td><p>请求参数错误</p></td></tr><tr><td><p>场景1/3（TECO）</p></td><td><p>200 OK</p></td><td><p>成功（TechlyCmpltOrder函数返回）</p></td></tr><tr><td><p>场景1/3（TECO）</p></td><td><p>4xx/5xx</p></td><td><p>失败，函数返回错误消息</p></td></tr></table>

## **5.4 数据转换**

**MES业务场景 -> SAP操作映射关系：**

<table><tr><td><p><strong>MES业务场景</strong></p></td><td><p><strong>HTTP方法</strong></p></td><td><p><strong>SAP操作</strong></p></td><td><p><strong>说明</strong></p></td></tr><tr><td><p>场景1：取消订单</p></td><td><p>POST</p></td><td><p>TechlyCmpltOrder</p></td><td><p>生产订单 -&gt; TECO（技术完成）</p></td></tr><tr><td><p>场景2：开始执行</p></td><td><p>PATCH</p></td><td><p>StatusProfile -&gt; ZPP001</p></td><td><p>JOSTD-STSMA设置为ZPP001，锁定订单</p></td></tr><tr><td><p>场景3：关单</p></td><td><p>POST</p></td><td><p>TechlyCmpltOrder</p></td><td><p>生产订单 -&gt; TECO（技术完成）</p></td></tr></table>

# **6 测试数据**

测试用生产订单：

订单号：1000001

工厂：1011

物料：141-001-01001

初始状态：REL（已下达）

状态参数文件：初始为空

# **7 附件或样本**

无

# **8 测试记录**

<table><tr><td><p><strong>序号</strong></p></td><td><p><strong>CLIENT</strong></p></td><td><p><strong>测试人</strong></p></td><td><p><strong>测试日期</strong></p></td><td><p><strong>测试条件</strong></p></td><td><p><strong>预期测试结果</strong></p></td><td><p><strong>实际测试结果</strong></p></td></tr><tr><td><p>1</p></td><td></td><td></td><td></td><td><p>场景1：取消订单 -&gt; TechlyCmpltOrder</p></td><td><p>200 OK，订单TECO</p></td><td></td></tr><tr><td><p>2</p></td><td></td><td></td><td></td><td><p>场景2：设置状态参数文件ZPP001</p></td><td><p>204，StatusProfile=ZPP001</p></td><td></td></tr><tr><td><p>3</p></td><td></td><td></td><td></td><td><p>场景3：关单 -&gt; TechlyCmpltOrder</p></td><td><p>200 OK，订单TECO</p></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>