DistributeFormulaActivity - 应用配方
概述
| 属性 | 值 |
|---|---|
| 节点名称 | 应用配方 |
| 节点描述 | 应用配方步骤 |
| 节点类型 | 业务节点 |
| 命名空间 | CMS.Plugin.MesSuite.Activitys |
| 程序集 | CMS.Plugin.MesSuite.Activitys |
| 分类 | 工序步骤 |
| 排序 | 7 |
| 发布 | 是 |
| 基类 | ProcessBusinessActivity |
功能说明
DistributeFormulaActivity 是应用配方节点,用于将产品配方应用到当前工序。该节点会检查工单状态、匹配配方版本,并执行配方应用操作。
配置属性
| 属性名 | 显示名称 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
| IgnoreWorkOrderDetection | 忽略工单检测 | bool | 否 | false | 是 否忽略工单检测 |
| ReadRetryCount | 读取重试次数 | int | 否 | 3 | 读取变量的重试次数 |
| ReadRetryDelay | 读取重试延时 | int | 否 | 500 | 读取重试延时(毫秒) |
业务逻辑
执行流程
开始
│
▼
检查配方下发功能是否启用
│
├─► 未启用 → 设置结果=3,返回
│
▼
检查产品型号和配方是否存在
│
├─► 不存在 → 记录日志,返回
│
▼
检查工单(可选)
│
├─► 无工单 → 设置结果=2,返回
│
▼
匹配配方版本(可选)
│
├─► 匹配失败 → 设置结果=3,返回
│
├─► 切换配方版本
│
▼
应用配方
│
├─► 成功 → 设置 结果=1
│
└─► 失败 → 设置结果=3
│
▼
结束
结果值说明
| 结果值 | 说明 |
|---|---|
| 1 | 应用配方成功 |
| 2 | 无该产品生产工单 |
| 3 | 功能未启用/配方版本匹配失败/应用配方失败 |
流程数据项
输入数据项
| 数据项 | 类型 | 说明 |
|---|---|---|
| ApplicationData | ProcessModel | 工艺模型 |
| FormulaDistributionProductKey | string | 配方下发产品识别码 |
| FormulaDistributionProductModelKey | ProductModel | 需要下发的产品型号 |
| FormulaDistributionFormulaModelKey | FormulaModel | 需要下发的产品配方 |
输出数据项
| 数据项 | 类型 | 说明 |
|---|---|---|
| FormulaDistributionResultKey | int | 配方下发结果(1=成功,2=无工单,3=失败) |
| FormulaDistributionDescriptionKey | string | 配方下发补充说明 |
依赖服务
| 服务接口 | 说明 |
|---|---|
| ISettingProvider | 系统设置提供者 |
| ISettingManager | 设置管理器 |
| IOrderManager | 工单管理器 |
| IFormulaProvider | 配方提供者 |
| IFlowVariableService | 流程变量服务 |
使用示例
基本配置
<DistributeFormulaActivity Name="应用配方">
<IgnoreWorkOrderDetection>false</IgnoreWorkOrderDetection>
<ReadRetryCount>3</ReadRetryCount>
<ReadRetryDelay>500</ReadRetryDelay>
</DistributeFormulaActivity>
忽略工单检测
<DistributeFormulaActivity Name="应用配方">
<IgnoreWorkOrderDetection>true</IgnoreWorkOrderDetection>
</DistributeFormulaActivity>
典型流程配置
匹配配方 → 应用配方 → 条件分支(成功/失败)
<MatchingFormulaActivity Name="匹配配方" />
<DistributeFormulaActivity Name="应用配方">
<IgnoreWorkOrderDetection>false</IgnoreWorkOrderDetection>
</DistributeFormulaActivity>
<ConditionActivity Name="配方下发判断">
<Condition>Flow.DataItems["FormulaDistributionResultKey"] == 1</Condition>
<TrueBranch>继续生产</TrueBranch>
<FalseBranch>异常处理</FalseBranch>
</ConditionActivity>
相关节点
- MatchingFormulaActivity - 匹配配方
- DistributeProductInfoActivity - 下发产品信息
- ProcessBusinessActivity - 工序业务活动基类
注意事项
- 需要先执行
MatchingFormulaActivity匹配配方 - 工艺模型中需要启用配方下发功能
- 配方版本匹配需要配置配方版本变量
- 工单检测依赖工单管理模块的启用状态