跳到主要内容
版本:Next

MaterialAssociationActivity - 物料码关联查询

概述

MaterialAssociationActivity 是一个 MES 专用的物料码关联查询节点,用于根据物料条码查询关联的产品序列号。该节点通过配置的物料关联规则,在追溯数据中查找物料条码对应的产品码,实现物料与产品的关联追溯。

基本信息

属性
显示名称物料码关联查询
类名MaterialAssociationActivity
命名空间CMS.Plugin.MesSuite.Activitys
基类ProcessBusinessActivity
分类工序步骤
排序13
发布

配置说明

该节点通过系统配置和流程上下文变量进行控制。

系统配置

配置项说明
MaterialAssociationConfig物料关联配置列表

物料关联配置(MaterialAssociationConfig)

字段说明
WorkSectionCode工序编号
WorkSectionId工序标识
MaterialName物料名称
MaterialKey物料参数键

输入变量

变量名常量类型说明
MaterialCodeFlowItemCollection.MaterialCodestring待查询的物料条码
OrderModelFlowItemCollection.OrderModelOrderModel工单模型(可选)
ProductModelFlowItemCollection.ProductModelAssociationProductModel产品型号(可选)

输出变量

变量名常量类型说明
SerialNumberFlowItemCollection.SerialNumberstring关联的产品序列号
MaterialCodeAssociationDescriptionValueFlowItemCollection.MaterialCodeAssociationDescriptionValuestring查询结果说明

业务逻辑

执行流程

┌─────────────────────────────────────────────────────────────┐
│ MaterialAssociationActivity │
├─────────────────────────────────────────────────────────────┤
│ EnterAsync - 初始化阶段 │
│ └─ 设置关联描述 = "未初始化" │
├─────────────────────────────────────────────────────────────┤
│ ProcessAsync - 处理阶段 │
│ ├─ 获取物料码 │
│ │ └─ 为空 → 返回"物料码获取失败" │
│ ├─ 获取物料关联配置 │
│ │ └─ 未配置 → 返回"物料产品关联工序未配置" │
│ ├─ 获取工艺路线 │
│ ├─ 遍历关联配置查询产品码 │
│ │ ├─ 检查工序是否在工艺路线中 │
│ │ └─ 调用追溯服务查询关联产品码 │
│ └─ 设置查询结果 │
│ ├─ 找到 → 设置 SerialNumber │
│ └─ 未找到 → 设置异常描述 │
└─────────────────────────────────────────────────────────────┘

查询逻辑

  1. 配置验证

    • 检查物料关联配置是否存在
    • 验证配置中的工序标识是否有效
  2. 工艺路线过滤

    • 获取当前产品的工艺路线
    • 只在工艺路线包含的工序中查询
  3. 关联查询

    • 遍历物料关联配置
    • 调用 IProductTraceChecker.GetSerialNumber 查询
    • 找到第一个匹配的产品码即返回

使用示例

基本流程配置

┌──────────────────┐     ┌──────────────────┐     ┌──────────────────┐
│ 扫描物料条码 │────▶│MaterialAssociation│────▶│InboundInitialize │
│ │ │ 物料码关联查询 │ │ 进站初始化 │
└──────────────────┘ └──────────────────┘ └──────────────────┘

设置物料码

{
"Activities": [
{
"Name": "读取物料码",
"Type": "VariableReadActivity",
"VariableName": "MaterialCode"
},
{
"Name": "物料码关联查询",
"Type": "MaterialAssociationActivity"
},
{
"Name": "检查查询结果",
"Type": "ConditionActivity",
"Condition": "SerialNumber != null && SerialNumber != ''"
}
]
}

典型应用场景

┌──────────────────┐
│ 扫描物料条码 │
│ 设置 MaterialCode │
└────────┬─────────┘


┌──────────────────┐
│MaterialAssociation│ ← 根据物料码查询产品码
│ 物料码关联查询 │
└────────┬─────────┘
│ 设置 SerialNumber

┌──────────────────┐
│InboundInitialize │ ← 使用查询到的产品码进站
│ 进站初始化 │
└────────┬─────────┘


┌──────────────────┐
│ 后续入站检测 │
└──────────────────┘

物料关联配置示例

{
"MaterialAssociationConfig": [
{
"WorkSectionCode": "WS001",
"WorkSectionId": "550e8400-e29b-41d4-a716-446655440001",
"MaterialName": "主板",
"MaterialKey": "MainBoard"
},
{
"WorkSectionCode": "WS002",
"WorkSectionId": "550e8400-e29b-41d4-a716-446655440002",
"MaterialName": "电池",
"MaterialKey": "Battery"
}
]
}

错误处理

错误场景描述值说明
物料码为空物料码获取失败输入的物料码为空
配置未设置物料产品关联工序未配置系统未配置物料关联规则
查询异常异常信息查询过程发生异常
未找到关联物料码未绑定产品码物料码在追溯数据中无关联产品

依赖服务

服务接口说明
ISettingManager配置管理服务,获取物料关联配置
IProductTraceChecker产品追溯检查服务,查询关联产品码
IProcessRouteProvider工艺路线服务,获取产品工艺路线
IAbnormalCauseProvider异常原因配置服务

注意事项

  1. 配置必需:需要在系统配置中设置物料关联规则
  2. 工艺路线过滤:只在产品工艺路线包含的工序中查询
  3. 首次匹配:找到第一个匹配的产品码即返回
  4. 追溯数据依赖:查询基于已有的追溯数据
  5. 异常处理:查询异常会被捕获并记录到描述变量
  6. 与入站配合:通常在入站初始化之前使用

相关节点


最后更新时间: 2025-11-28