BusinessActivity
分类: 通用步骤
命名空间: CMS.Plugin.FlowManagement.Abstractions.FlowBusiness.Activitys
基类: Activity (SYC.Flow.Kernel)
模块: FlowManagement.Abstractions
概述
BusinessActivity 是 LMES 流程系统中所有业务流程节点的基类。它继承自 SYC.Flow.Kernel.Activity,提供了流程节点的基础功能和生命周期管理,包括节点进入、执行、退出的完整流程控制,以及流程上下文数据管理、异常处理、日志记录等核心功能。
所有自定义流程节点都应该继承自 BusinessActivity 或其子类(如 ActionActivity、ProcessBusinessActivity),以获得完整的流程管理能力。
业务场景
适用场景
- 作为基类使用: 所有自定义流程节点的基类
- 流程控制: 提供节点生命周期管理(进入、执行、退出)
- 数据管理: 管理流程上下文数据的读写
- 异常处理: 统一的异常处理和错误恢复机制
- 日志记录: 标准化的日志记录功能
在系统中的作用
BusinessActivity 是整个流程系统的核心基础类,它:
- 定义了流程节点的标准生命周期
- 提供了流程上下文(Flow.DataItems)的访问接口
- 实现了统一的异常处理机制
- 支持流程事件的发布和订阅
- 提供了扩展属性机制,支持动态配置
与其他节点的协作
- ActionActivity: 继承自 BusinessActivity,增加了执行时机控制
- ProcessBusinessActivity: 继承自 BusinessActivity,专门用于 MES 工序业务
- 所有业务节点: 都直接或间接继承自 BusinessActivity
配置说明
基本配置
| 属性名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| TaskDelay | int | 否 | 0 | Execute延时执行时间(单位:毫秒) |
| IsDisabled | bool | 否 | false | 屏蔽步骤中的业务代码 ProcessAsync(),将跳过业务继续处理 |
| PublishFlowEvent | bool | 否 | false | 是否发布流程事件 |
| PublishDeliveryEvent | bool | 否 | false | 是否发布输送事件 |
| IsPrintConsumption | bool | 否 | true | 是否打印执行耗时 |
| StopwatchType | StopwatchType | 否 | Common | 计时类型(Common/Start/Stop/Reset/Restart) |
| ExtendedProperty | BusinessPropertyCollection | 否 | 空集合 | 步骤扩展属性 |
| FlowExceptionMaxCount | int | 否 | 10 | 流程异常上限数量 |
| SaveFlowInstance | bool | 否 | false | 保存实例到数据库 |
配置项详解
TaskDelay
说明: 设置节点执行前的延时时间,单位为毫秒。在 ExecuteAsync 方法开始时会先等待指定的时间。
取值范围: 大于等于 0 的整数
注意事项:
- 延时期间会响应流程取消请求
- 过长的延时可能影响流程响应性能
- 通常用于调试或特殊的时序控制场景
IsDisabled
说明: 当设置为 true 时,节点的 ProcessAsync 方法将被跳过,但节点的生命周期方法(EnterAsync、ExitAsync)仍会执行。
取值范围: true 或 false
注意事项:
- 可用于临时禁用某个节点的业务逻辑
- 流程上下文数据仍会正常传递
- 可通过流程上下文动态控制:
{节点名}_IsActivityDisabled(节点名为节点的 Name 属性值)
PublishFlowEvent
说明: 是否在节点执行后发布流程事件(ProcessFlowEto),其他模块可以订阅此事件。
取值范围: true 或 false
注意事项:
- 事件包含当前流程上下文的所有数据
- 可通过 EventSynchronous 属性控制同步或异步发布
- 频繁发布事件可能影响性能
ExtendedProperty
说明: 扩展属性集合,允许在节点上添加自定义属性,这些属性可以写入流程上下文。
取值范围: BusinessPropertyCollection 对象
注意事项:
- 每个扩展属性可以设置是否写入流程上下文(WriteIntoDataItems)
- 扩展属性的值会自动添加 "_Value" 后缀作为流程上下文键
- 支持在运行时动态配置
FlowExceptionMaxCount
说明: 流程异常次数上限,当流程异常次数超过此值时,节点将拒绝进入。
取值范围: 大于等于 -1 的整数,-1 表示不限制
注意事项:
- 用于防止流程陷入无限异常循环
- 异常计数是按流程名称(ProcName)统计的
- 达到上限后需要重启流程或清除异常计数
流程上下文
输入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| {节点名}_IsActivityDisabled | bool | 动态控制节点是否禁用 |
| ApplicationData | object | 应用程序数据(如 ProcessModel) |
| 自定义参数 | any | 由上游节点写入的业务数据 |
输出参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| 扩展属性值 | any | ExtendedProperty 中配置的属性值 |
| 自定义参数 | any | 在 ProcessAsync 中写入的业务数据 |