Skip to content
赞助合作

本站右侧赞助位长期招租

联系我投放

Workflow 工作流

Workflow Map 是 Aras Innovator 中实现业务流程自动化的核心机制。它以图形化的方式定义审批、校验、通知等流程节点,并通过 Assignment(任务分配)将工作推送给具体的 Identity 执行。


Workflow vs Lifecycle

两者容易混淆,但职责完全不同:

对比维度LifecycleWorkflow
核心职责数据状态管理(Draft → Released)业务流程编排(审批、评审、通知)
粒度每个 Item 一个状态每个 Item 可启动一个 Workflow 实例
权限影响可以通过 State Permission 控制通过 Activity Assignment 控制执行权
交互方式用户主动 Promote用户在 Inbox 中接收并处理 Task
关联关系绑定在 ItemType 上可绑定在 Lifecycle State 上(状态激活时自动启动)

典型做法是:Lifecycle 管"东西在哪个阶段",Workflow 管"这个阶段要经过哪些人审批"。


Workflow 的核心概念

元素说明
Activity(活动)工作流中的一个步骤节点,用户需要在此节点执行操作(审批、填写、上传附件等)
Path(路径)连接两个 Activity 的有向边,定义流转方向和条件
Assignment(任务分配)每个 Activity 上配置的执行者(Identity),决定谁会收到这个任务
Task(任务)Activity 分配给用户后的具体工作项,出现在用户的 Inbox 中
Workflow Variables在 Workflow 执行过程中传递的变量,可用于条件判断和表单数据交换

创建 Workflow Map

  1. 导航到 Administration → Workflow Maps
  2. 创建新 Map,填写 Name
  3. 画布中自动包含 Start 和 End 节点
  4. 右键画布添加 Activity 节点
  5. 从一个 Activity 拖拽连线到另一个 Activity 创建 Path
  6. 配置每个 Activity 的 Assignment 和 Path 的条件

Activity 配置

配置项说明
Name活动名称
Label显示标签
Assignment关系标签页,配置该 Activity 的执行 Identity
Form该 Activity 下展示的表单(可与默认表单不同)
Task Description任务描述,显示在用户 Inbox 中
Get Signature是否要求电子签名
Server Events活动开始和结束时可触发的 Server Method

Path 配置

配置项说明
Name路径名称(如 Pass、Reject、Revise)
Label路径按钮的显示文本
Get Comment是否要求用户填写流转备注
Condition路径的条件表达式(基于 Workflow Variable)
Server Events路径触发前后可执行的 Server Method

绑定 Workflow 到 Lifecycle State

最常见的集成方式是将 Workflow 绑定到 Lifecycle Map 的某个 State:

  1. 打开 Lifecycle Map 编辑
  2. 选中目标 State → Workflow 字段,选择对应的 Workflow Map
  3. 当 Item 被 Promote 到该状态时,Workflow 自动启动

也可以通过 Server Method 在代码中动态启动 Workflow:

csharp
Innovator inn = this.getInnovator();

// 启动一个 Workflow
Item workflowMap = inn.getItemByKey("Workflow Map", "MAP_ID");
Item activity = inn.getItemByKey("Activity", "ACTIVITY_ID");

Item workflow = inn.newItem("Workflow", "add");
workflow.setProperty("source_id", this.getID());
workflow.setProperty("workflow_map_id", workflowMap.getID());
workflow.setProperty("starting_activity_id", activity.getID());

Item result = workflow.apply();
if (result.isError())
{
    return inn.newError("工作流启动失败:" + result.getErrorDetail());
}

Inbox 与任务处理

当 Workflow 的某个 Activity 被激活,且当前用户属于该 Activity 的 Assignment Identity 时,任务会出现在用户的 Inbox(收件箱)中。

用户在 Inbox 中可以:

  • 查看任务详情和关联的 Item
  • 选择 Path 按钮(如 Approve / Reject)推进流程
  • 填写 Comment(如果 Path 配置了 Get Comment)
  • 添加附件或签名

Workflow Variables

Workflow 变量用于在流程的不同 Activity 之间传递数据:

变量类型说明
List从预定义列表中选择值,用于条件分支判断
Item引用数据库中的具体 Item
String文本值

变量可以在 Path Condition 中使用,实现条件流转:

Path "Approve":  variable "ApprovalStatus" = "Approved"
Path "Reject":   variable "ApprovalStatus" = "Rejected"

Workflow 事件扩展

每个 Activity 和 Path 都支持在执行前后触发 Server Method:

事件触发时机典型用途
OnActivate ActivityActivity 被激活时发送通知邮件、初始化表单字段
OnClose ActivityActivity 被完成时数据校验、计算汇总
On Before PathPath 触发前拦截不满足条件的流转
On After PathPath 触发后更新关联记录、同步外部系统

常见工作流模式

简单审批流

Start → Draft → [Engineering 审批] → Approved / Rejected → End

多级会签

Start → 初审 → [部门经理] → [技术总监] → [质量经理] → Approved → End

条件分支

Start → 评估 → [金额 > 10万?] 
                 ├── Yes → [总经理审批] → End
                 └── No  → [部门经理审批] → End

退回循环

Start → 提交 → [评审] 
                 ├── Pass → 批准 → End
                 └── Fail → 退回修改 → 提交 → [评审]

本站内容仅供学习与参考

本站总访问量