PrintInitializeActivity - 打印初始化
概述
| 属性 | 值 |
|---|---|
| 节点名称 | 打印初始化 |
| 节点描述 | 打印数据初始化 |
| 节点类型 | 业务节点 |
| 命名空间 | CMS.Plugin.MesSuite.Activitys |
| 程序集 | CMS.Plugin.MesSuite.Activitys |
| 分类 | 工序步骤 |
| 排序 | 8 |
| 发布 | 否 |
| 基类 | BusinessActivity |
功能说明
PrintInitializeActivity 是打印初始化节点,用于准备标签打印所需的数据。该节点会根据产品型号和工位配置,查询标签模板、初始化打印数据源,并支持从变量、流程数据项、条码生成等多种方式获取打印数据。
配置属性
| 属性名 | 显示名称 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
| WriteRetryCount | 下发重试次数 | int | 否 | 3 | 下发变量的重试次数 |
| WriteRetryDelay | 下发重试延时 | int | 否 | 500 | 下发重试延时(毫秒) |
业务逻辑
执行流程
开始
│
▼
初始化打印结果数据项
│
▼
检查工艺模型
│
├─► 为空 → 设置结果=2,返回
│
▼
检查工位打印机配置
│
├─► 为空 → 设置结果=2,返回
│
▼
获取产品型号
│
├─► 从追溯数据获取
│
└─► 从产品识别码获取
│
├─► 为空 → 设置结果=2,返回
│
▼
遍历打印机配置
│
├─► 查询打印代理配置
│
├─► 查询标签打印模板
│
└─► 初始化打印数据映射
│
├─► 变量类型 → 读取变量值
├─► 流程数据项类型 → 获取流程数据
└─► 生成条码类型 → 调用条码生成
│
▼
构建打印数据模型列表
│
▼
结束
数据映射类型
| 类型 | 说明 |
|---|---|
| Variable | 从变量读取值 |
| FlowItems | 从流程数据项获取值 |
| GenerateBarcode | 调用条码生成服务生成条码 |
流程数据项
输入数据项
| 数据项 | 类型 | 说明 |
|---|---|---|
| ApplicationData | ProcessModel | 工艺模型 |
| LabelPrinter | string | 打印机名称(多个用逗号分隔) |
| LabelPrintSerialNumberValue | string | 产品条码 |
| LabelPrintProductValue | string | 产品型号识别码 |
| LabelPrintDataSource | Dictionary<string, string> | 扩展打印数据源 |
输出数据项
| 数据项 | 类型 | 说明 |
|---|---|---|
| PrintDataModel | List<PrintDataModel> | 打 印数据模型列表 |
| LabelPrintResultValue | int | 打印初始化结果 |
| LabelPrintDescriptionValue | string | 打印初始化说明 |
| ProductModel | ProductModel | 产品型号模型 |
| TraceModel | TraceModel | 追溯数据模型 |
依赖服务
| 服务接口 | 说明 |
|---|---|
| IProductProvider | 产品提供者 |
| ITraceProvider | 追溯提供者 |
| ILabelProvider | 标签提供者 |
| ISettingManager | 设置管理器 |
| IBarcodeProvider | 条码提供者 |
| IFlowVariableService | 流程变量服务 |
| IJsonSerializer | JSON 序列化器 |
使用示例
基本配置
<PrintInitializeActivity Name="打印初始化">
<WriteRetryCount>3</WriteRetryCount>
<WriteRetryDelay>500</WriteRetryDelay>
</PrintInitializeActivity>
设置打印参数
<VariableWriteActivity Name="设置打印机">
<Variable>LabelPrinter</Variable>
<Value>Printer1,Printer2</Value>
</VariableWriteActivity>
<VariableWriteActivity Name="设置产品码">
<Variable>LabelPrintSerialNumberValue</Variable>
<Value>{产品码}</Value>
</VariableWriteActivity>
<PrintInitializeActivity Name="打印初始化" />
典型流程配置
设置打印参数 → 打印初始化 → 标签打印
<!-- 设置打印机和产品码 -->
<VariableWriteActivity Name="设置打印参数">
<Variable>LabelPrinter</Variable>
<Value>DefaultPrinter</Value>
</VariableWriteActivity>
<PrintInitializeActivity Name="打印初始化">
<WriteRetryCount>3</WriteRetryCount>
</PrintInitializeActivity>
<ConditionActivity Name="初始化结果判断">
<Condition>Flow.DataItems["LabelPrintResultValue"] != 2</Condition>
<TrueBranch>
<PrintLabelActivity Name="标签打印" />
</TrueBranch>
<FalseBranch>
<LogActivity Name="记录初始化失败" />
</FalseBranch>
</ConditionActivity>
系统配置要求
打印代理配置
需要在系统设置中配置打印代理:
{
"PrintAgentConfig": [
{
"DisplayName": "Printer1",
"PrintAgentIP": "192.168.1.100:9100",
"PrinterName": "ZebraPrinter",
"PrintTemplate": "D:\\Templates"
}
]
}
相关节点
- PrintLabelActivity - 标签打印
- GenerateCodeActivity - 生成码
- BusinessActivity - 业务活动基类
注意事项
- 此节点当前未发布(Visible = false)
- 工位打印机配置必须存在
- 产品型号必须能够查询到
- 标签模板必须在系统中配置
- 条码生成需要配置有效的条码规则