一、规则功能介绍
IBM BAW内置有规则功能,同时可以与外部IBM Operational Decision Manager(ODM)集成,它们面向的用户群体、规则管理的方式以及如何与流程集成有着显著差异。
1、关键区别:
1.BAW 内置的规则功能:
-
主要面向 技术人员。
-
规则通常在 Process Designer 或 CASE Manager 中通过 文本规则 或 表单规则 的方式定义、配置和维护。
-
每次更改规则时,通常需要 重新部署流程应用,因为规则和流程是紧密集成的,规则的修改会影响到流程的执行路径和任务分配。
2.IBM ODM(Operational Decision Manager):
-
主要面向 业务人员,如业务分析师、决策人员等,他们可以在 ODM Studio 中直接定义、修改和新增业务规则。
-
业务人员通过 决策表(Decision Tables)、规则流(Rule Flows) 等界面来定义业务规则,而无需技术人员介入。
-
修改规则后,业务人员无需修改流程或重新部署应用,ODM 会自动将规则集成到 BAW 流程中,实时影响流程的决策逻辑。
2、为什么选择 ODM 作为业务规则引擎?
ODM 的目标是让 业务人员 能够完全掌控 业务规则的定义和维护,减少 IT 部门的介入,提高业务规则变更的灵活性和响应速度。这种方式特别适用于需要频繁变更业务规则的环境。
3、ODM 与 BAW 的集成
当 ODM 与 BAW 集成时,ODM 作为外部的业务规则引擎,可以独立于流程和任务的执行,由业务人员来管理规则。具体来说:
✅ 1. ODM 提供的业务规则管理
-
决策表:业务人员可以通过决策表直接定义基于条件的规则,例如:
-
订单金额 > 1000,折扣为 10%。
-
订单金额 <= 1000,折扣为 5%。
-
-
规则流:可以配置多个规则流,决定规则执行的顺序,并允许规则的嵌套和优先级配置。
-
规则更改无需修改流程:修改决策表中的规则后,新的规则会自动生效,无需重新部署流程应用。
✅ 2. 与 BAW 流程的无缝集成
-
通过 RESTful API 集成:BAW 可以调用 ODM 提供的 REST API 来获取最新的规则决策。这样一来,业务人员可以在 ODM 中修改规则,而这些规则可以实时影响 BAW 流程的决策。
-
决策服务:ODM 会作为一个外部服务,供 BAW 流程或任务调用。每当流程中的决策需要评估时,BAW 会向 ODM 发起请求,ODM 根据当前配置的业务规则给出决策。
-
灵活的规则更新:如果业务规则发生变化,业务人员只需在 ODM 中更新规则,BAW 流程会实时获取这些更新,无需技术人员修改流程。
4、BAW 内置规则与 ODM 集成的优势
1. 让业务人员主导规则的管理
-
ODM 让业务人员可以灵活地修改业务规则,并通过 图形化界面 进行管理,如:
-
决策表:轻松编辑和定义复杂的规则集。
-
规则流:管理规则的执行顺序和优先级。
-
决策模型:快速构建决策模型,将规则业务化并整合到流程中。
-
-
这与 BAW 内置规则(通常依赖于技术人员在流程设计器中修改流程规则)不同,因为 BAW 内置规则会与流程结构紧密耦合,修改规则时需要技术人员干预并重新部署。
2. 业务规则的独立性
-
通过 ODM,业务规则的定义、维护和修改 与流程逻辑完全分离。这使得业务人员能够更高效地更新和维护规则,减少对开发人员的依赖。
-
ODM 提供了一个独立的业务规则管理平台,业务规则不再受限于流程设计本身,避免了因规则变化频繁而导致的流程频繁修改和重新部署。
3. 实时性和灵活性
-
ODM 的规则一旦修改,无需重新部署应用或流程。业务规则的变化会自动影响到 BAW 流程中的决策点,提升了规则更新的实时性和灵活性。
4. 增强的规则管理功能
-
ODM 提供了更强大的规则引擎能力,如规则版本管理、规则测试和模拟、规则监控等功能,这些功能对于复杂的业务逻辑和高频规则变更场景尤为重要。
5、ODM 与 BAW 集成的应用场景
1. 财务审批流程
-
在财务审批流程中,业务规则 可能涉及到 审批金额的限制、批准人级别、审批条件等。业务人员可以通过 ODM 修改这些规则,无需技术人员介入,规则变更后,流程会根据最新规则进行判断。
2. 客户服务流程
-
在 客户服务流程 中,可能需要根据客户的 订单状态、投诉历史等信息,决定是否需要进一步处理。业务人员可以在 ODM 中修改规则,如:基于客户等级、投诉次数等,自动决定是否向高级经理报告。
3. 保险理赔流程
-
在 保险理赔流程 中,业务规则决定了理赔申请的审核标准。ODM 可以根据不同的理赔金额、客户历史、赔付标准等因素自动进行决策,而无需修改流程本身。
总结
特性 | BAW 内置规则 | IBM ODM |
---|---|---|
面向用户 | 技术人员 | 业务人员 |
规则管理 | 通过流程设计器修改 | 通过决策表、规则流等图形化界面 |
规则修改影响 | 需重新部署流程 | 规则修改实时生效,无需修改流程 |
灵活性 | 受限于流程结构 | 独立于流程,灵活易变 |
适用场景 | 简单的业务决策 | 复杂的决策逻辑和频繁变化的规则 |
通过将 ODM 与 BAW 集成,企业可以实现 业务规则的独立管理,增强 业务灵活性 和 快速响应能力,并减少对开发人员的依赖。
二、为BAW配置ODM业务规则引擎、服务监控与流程引擎调度、选择器与任务分配机制等
IBM Business Automation Workflow(BAW) 是一个集成的业务流程管理和决策自动化平台,允许用户创建、管理和优化业务流程。BAW 提供了一些特有的服务配置,用于提高业务流程的执行效率、决策自动化以及任务分配的灵活性。以下是有关 业务规则引擎、服务监控与流程引擎调度、选择器与任务分配机制 的详细讲解。
BAW 特有服务配置概览
-
业务规则运行设置(规则引擎)
-
服务监控与流程引擎调度
-
启用选择器与任务分配机制
1、业务规则运行设置(规则引擎)
业务规则引擎(Business Rules Engine, BRE) 是 BAW 的关键组成部分,用于自动化决策过程。通过业务规则,企业可以将业务逻辑与流程管理解耦,提高灵活性。
✅ 配置路径:
-
登录到 WebSphere 管理控制台。
-
导航到
服务器
➝ 选择服务器实例 ➝Business Automation Workflow
➝业务规则引擎(Business Rules Engine)
。
关键配置项:
1.启用业务规则引擎(BRE):
-
需要为 BAW 配置 IBM ODM(Operational Decision Manager) 引擎,确保规则引擎已启用。
-
配置 BRE 时,选择 规则引擎类型(例如:规则引擎从 IBM ODM 或从外部服务获取)。
2.配置规则库(RuleSets):
-
将 业务规则库(RuleSets) 与 BAW 流程集成。每个流程中的业务决策都可以调用这些规则库。
-
在 BAW 的 Process Designer 中,创建或导入规则并与流程绑定。
3.规则集调度设置:
-
配置规则引擎执行的 频率 和 触发机制。规则引擎可以根据特定条件触发决策,或在每次流程启动时触发。
4.规则引擎性能设置:
-
缓存管理:对于规则引擎的性能调优,配置 规则缓存 可以减少引擎每次执行时的计算时间。
推荐做法:
-
使用 实时决策:通过实时调用业务规则,自动化决策的流程,提升流程执行的效率。
-
为高频决策使用 规则缓存,避免重复计算同一规则。
2、服务监控与流程引擎调度
服务监控与流程引擎调度 在 BAW 中至关重要,它帮助企业实时了解流程和任务的运行状态,并在必要时进行调整和优化。
✅ 配置路径:
-
登录到 Business Automation Workflow 控制台。
-
导航到 监控 ➝ 服务监控 ➝ 流程引擎调度。
关键配置项:
1.服务监控设置:
-
实时监控:BAW 提供实时的服务监控功能,用户可以查看流程引擎的健康状态,任务的执行情况。
-
配置监控时,可以设置 阈值警报,例如,如果某个任务在超出预定时间内没有完成,系统会自动发出警告或通知相关人员。
-
配置 日志记录级别,允许对流程执行的各个阶段进行详细跟踪。
2.流程引擎调度:
-
任务调度:在流程执行过程中,调度服务根据 时间、依赖关系、优先级 等信息决定任务执行的顺序。
-
配置调度器时,可以设置调度任务的 优先级 和 任务顺序。
-
超时设置:为每个流程任务设置 超时限制,一旦超时,系统会执行相应的回退策略或警告通知。
3.自动调度与手动调度:
-
自动调度:根据流程状态自动安排任务。
-
手动调度:在必要时,手动干预流程,直接调度任务。
推荐做法:
-
配置合理的 任务超时机制 和 失败重试机制,确保流程任务能够及时完成。
-
对于 关键业务流程,启用 实时监控,以便发现潜在问题并快速响应。
3、启用选择器与任务分配机制
在 BAW 中,选择器(Selector) 和 任务分配机制 是任务分配和流程动态执行的关键配置。选择器决定了任务应该分配给哪一位用户或角色,而任务分配机制则决定了任务执行的顺序和优先级。
✅ 配置路径:
-
登录到 Business Automation Workflow 控制台。
-
导航到
Process Designer
。 -
选择相应的流程,配置 选择器 和 任务分配机制。
关键配置项:
1.任务选择器(Task Selector):
-
任务选择器用于定义哪些用户或角色应该接收到哪个任务。
-
选择器可以基于 业务规则 或 自定义逻辑(例如,基于用户的角色、能力、工作负载等)进行任务分配。
-
选择器设置在 任务活动 中,可以通过 表达式语言 定义条件逻辑。
2.动态任务分配:
-
通过设置 优先级 和 任务分配规则,在多用户环境中根据任务的重要性和紧急性动态分配任务。
-
例如,任务可以按 最少工作量(最少任务数分配给的用户)或按 最大能力(根据用户的历史性能)进行分配。
3.任务分配策略:
-
配置任务的 优先级,确保重要的任务优先执行。
-
设置任务的 时限,超时未完成的任务自动重新分配。
-
配置 任务池,允许多个候选人从中领取任务,任务池可以基于 角色 或 任务类型 来定义。
4.用户分配规则:
-
使用 用户组、角色 和 权限 来控制任务分配的权限。
-
可以使用 多层级角色分配,使得任务分配更加精细化。
推荐做法:
-
使用 业务规则 优化选择器的配置,根据用户的能力、负载、角色等动态分配任务。
-
对于 高优先级任务,确保启用 优先级任务分配机制。
-
使用 多候选人任务池 机制,确保任务能够及时被处理。
总结与最佳实践
配置项 | 说明 | 最佳实践 |
---|---|---|
规则引擎配置 | 配置 IBM ODM 业务规则,自动化决策 | 使用 实时决策,缓存高频决策 |
服务监控与调度 | 实时监控流程执行状态,配置调度任务优先级 | 配置 任务超时机制 和 失败重试 |
任务选择器与分配 | 使用选择器分配任务,基于角色、工作负载等分配任务 | 设置 任务池 和 优先级机制,动态调整任务分配 |
三、BAW内置规划功能的使用
IBM Business Automation Workflow(BAW) 中的 规则功能,特别是在 流程设计 和 CASE Manager 中,有一些内置的规则功能,并不一定需要额外安装 IBM ODM(Operational Decision Manager)产品。这些规则功能主要包括 文本规则(Text Rules) 和 表单规则(Form Rules),它们是 BAW 自身提供的,用于处理决策逻辑、业务规则和动态任务分配等场景。
1、BAW 自身的规则功能概述
BAW 的规则功能主要有以下几种形式:
-
文本规则(Text Rules)
-
表单规则(Form Rules)
-
决策逻辑与任务分配(基于规则的决策)
这些规则功能主要在以下两个环境中发挥作用:
-
流程设计(Process Designer)
-
CASE Manager(用于案例管理中的动态任务处理)
2、文本规则(Text Rules)
文本规则(Text Rules) 是 BAW 内置的轻量级规则功能,允许用户在流程设计器中直接编写简洁的业务规则逻辑。
✅ 配置路径:
-
登录到 Process Designer(流程设计器)。
-
创建或编辑流程应用。
-
在流程中的 业务规则活动(Business Rule Task)中,添加 文本规则。
关键配置项:
1.文本规则创建:
-
文本规则通常由 条件语句 和 决策 组成,基于 if-else 语句 来实现逻辑判断。
-
例如:如果某个字段值大于某个阈值,则执行某个操作,否则执行另一个操作。
if (orderAmount > 1000) {
discount = 10;
} else {
discount = 5;
}
2.规则条件:
-
使用 输入数据(例如:字段值、用户输入等)作为条件。
-
可以使用内置的 表达式语言 来实现灵活的决策逻辑。
3.规则应用:
-
你可以将这些规则应用到流程活动中,控制流程的跳转、任务分配或自动化操作。
-
文本规则常用于控制流程中的业务决策,例如:
-
条件跳转:基于决策结果跳转到不同的流程分支。
-
任务分配:根据业务逻辑自动将任务分配给不同的人员或团队。
-
4.集成到流程中:
-
在流程设计中,业务规则任务会将这些文本规则与任务流结合,自动执行决策,并影响流程的走向。
使用场景:
-
简单决策:如基于订单金额自动计算折扣。
-
流程条件控制:例如,订单金额大于特定值时进入审批流程,否则自动完成。
3、表单规则(Form Rules)
表单规则(Form Rules) 是 BAW 提供的另一种规则功能,它允许用户在表单(Forms)中定义动态行为、验证逻辑和数据处理规则。表单规则通常用于 用户界面(UI)交互 中,提供基于表单字段的验证和动态显示功能。
✅ 配置路径:
-
登录到 Process Designer 或 CASE Manager。
-
在 表单设计器(Form Designer) 中,编辑或创建表单。
-
在表单中,选择 表单规则 来为字段添加逻辑。
关键配置项:
1.表单规则类型:
-
字段验证:基于用户输入的字段,自动执行验证。
-
例如:验证邮箱格式、日期格式,检查必填字段等。
-
-
动态显示/隐藏字段:根据其他字段的值来控制某些字段的可见性或启用状态。
-
例如:如果用户选择了某个选项,显示相应的字段。
-
-
计算字段:基于其他字段的值计算并填充结果。
-
例如:根据数量和单价自动计算总金额。
-
2.规则编写:
-
使用表单设计器中的 表达式语言 来编写规则,例如:
-
if (totalAmount > 1000) { showField("discountCode"); }
-
if (userAge < 18) { disableField("parentConsent"); }
-
-
支持 条件逻辑 和 运算符(如比较、逻辑运算符)。
3.绑定表单与流程:
-
表单规则通常与流程中的 用户任务 或 服务任务 结合,控制用户界面行为和数据流动。
-
比如:在用户填写表单时,表单规则会实时检查输入数据的合法性,或基于输入条件动态调整界面。
使用场景:
-
动态用户交互:如动态显示/隐藏字段,自动填充计算结果。
-
表单验证:在提交表单之前,验证用户输入的数据是否符合规定。
4、规则与流程、任务分配结合
BAW 的规则功能还广泛应用于 任务分配 和 流程决策 的自动化。通过规则引擎,BAW 可以基于业务规则自动决策,并动态调整任务的分配。
关键配置项:
1.自动任务分配:
-
基于文本规则或表单规则,自动将任务分配给相应的用户或团队。例如:
-
基于用户角色:根据角色和权限自动分配任务。
-
基于任务条件:如,订单金额大于 1000 元时,分配给高级审批人员。
-
2.流程条件控制:
-
文本规则可以作为 条件判断,决定流程的走向。例如,检查某个字段值后,决定是走 审批流程 还是 自动完成流程。
3.业务规则应用于流程决策:
-
通过 业务规则任务(Business Rule Task),可以在流程中集成外部规则引擎(如 IBM ODM),也可以使用 BAW 自带的简单文本规则。
使用场景:
-
自动决策流程:如审批流程根据金额大小自动判断是否需要上级审批。
-
动态任务分配:根据用户输入的条件或任务类型动态分配任务给合适的人员。
总结与最佳实践
规则类型 | 描述 | 最佳实践 |
---|---|---|
文本规则 | 简单的 if-else 条件决策 | 用于快速决策和流程条件控制 |
表单规则 | 动态验证、显示/隐藏、计算 | 用于用户界面交互和数据验证 |
规则与任务分配 | 基于规则自动分配任务或决策流程 | 结合流程和用户输入自动化任务分配 |
推荐做法:
-
简化决策逻辑:对于复杂的决策,考虑使用外部规则引擎(如 IBM ODM),对于简单的决策,可以使用文本规则。
-
优化用户交互:通过表单规则增强用户体验,提供动态表单和实时验证。
-
任务分配与自动化:结合文本规则、表单规则和任务分配机制,确保任务能够灵活、自动地分配给合适的人员。