规则模板开发概述
规则模板允许业务规则开发人员创建规则模板,以定义业务规则作者将要使用的条件和操作。开发人员创建业务作者可见的简明语句,并将它们映射到规则引擎将要执行的规则语言语句。对于每个规则条件和操作,开发人员决定规则作者将提供的数据类型。示例包括输入应为整数值、非整型数值、字符串、预定义列表中的选择,还是动态列表中的选择。规则作者使用规则模板在 Genesys 解决方案业务结构的全局、部门和流程级别构建用于任务分类和优先级划分的规则。
模板内容
规则模板由几个元素组成:
- 操作
- 条件
- 枚举
- 事实模型
- 事件
- 函数
- 参数
操作和条件
操作和条件定义了“当/则”场景,例如,“当”客户是金牌客户,“则”指向 GoldAgentGroup。“当”语句是条件,而“则”语句是操作。一条规则可能具有零个或多个条件,以及一个或多个操作。此示例还包括以下参数:客户的状态(金牌)和座席组的名称 (GoldAgentGroup)。
只要条件包含以 eval(...) 开头的规则语言映射,就必须将整个表达式括在括号中,如下所示:
( eval(.... ) )
这将确保与 NOT 运算符一起使用时能正确编译。
枚举
枚举用于定义业务规则作者基于规则模板创建规则时向其显示的可能选择列表。在某些情况下,可能选择列表将从 Genesys Configuration Server 对象或外部数据源中动态选择。对于 WFM 活动和多站点活动,可以从 Genesys WFM Server 中动态检索可能选择列表。因此,枚举将用于定义离散的选择列表期间,这些选择不会动态变化。
请参阅枚举编辑器
事实模型
所有规则模板都包含具有一个或多个事实的事实模型。事实模型从业务角度构建有关业务运营的基本知识。事实模型侧重于业务核心概念之间的逻辑联系(称为事实)。它指示您需要了解哪些业务操作才能支持(或实际执行)这些操作。
良好的事实模型可以告诉您如何基于标准词汇表来构造有关业务流程的基本思想(或知识)。通过使用针对业务的标准词汇,模型可以确保业务分析师等关键利益相关方充分理解业务规则本身。 例如,在您的业务中,您可能有一个代表客户的事实,另一个代表订单的事实。
客户可以具有诸如姓名、年龄、位置、信用等级和首选语言之类的字段。 订单可能包含诸如订单金额和订单日期之类的字段。 这些值可以用来构造规则,例如:
当客户至少 21 岁,且其订单是 > 100.00 时,则邀请客户参加调查。
请参阅事实模型编辑器
事件
为了支持复杂事件处理,模板开发人员需能够将某些事实指定为事件,并且规则作者需要更改将事实指定为事件时生成 DRL 的方式。
如此,事实模型包括事件,事实模型对话框现在包括“创建事件”按钮。事件具有以下字段:
- 名称
- 说明
- 属性的可选列表。
- 用户定义的事件过期元数据
在 GRAT 中,@role 元数据标签确定我们处理的是事实还是事件。@role 元数据标签可以接受两个可能值:
- 事实—分配事实角色表明该类型将作为常规事实处理。事实是默认角色。
- 事件—分配事件角色表明该类型将作为事件处理。
函数
函数可用来定义“条件”和“操作”以外的元素,例如,当需要解析时间戳时可用。使用函数编辑器,您可以编写用于不同目的的特定 Java 函数,以便在规则模板中使用。然后,可以在规则语言映射中使用指定的函数(请参阅规则语言映射)。
创建规则模板后,规则开发人员会将其发布到规则存储库,在 GRAT 中供业务用户创建规则。
操作和条件可以包含参数。支持各种类型的参数。
某些引用外部数据源的动态参数类型需要选择一个配置文件。配置文件的定义是数据收集类型的脚本对象,提供连接信息,使 GRAT 能够从外部数据源检索此动态数据。下一部分将介绍如何配置数据库、Web 服务和 Workforce Management 参数的配置文件。
请参阅函数编辑器。
参数
操作和条件中会使用数据库、Web 服务和 Workforce Management 参数。
数据库参数
属性 |
强制性/可选 |
说明 |
---|---|---|
驱动程序 | 强制性 | 将要使用的 jdbc 驱动程序名称。例如,com.mysql.jdbc.Driver |
url | 强制性 | 数据库的 URL,采用适用于要使用的 jdbc 驱动程序的正确格式。 |
用户名 | 强制性 | 连接到数据库的有效用户名。 |
密码 | 强制性 | 用户连接到数据库所需的密码。 |
初始尺寸 | 可选 | 连接池的初始尺寸。默认值为 5。 |
最大尺寸 | 可选 | 连接池的最大尺寸。默认值为 30。 |
等待时间 | 可选 | 等待获得连接的最长时间(以毫秒为单位)。默认值为 5000。 |
通常,不需要设置或更改可选值。
您只能使用 SQL SELECT 语句配置数据库参数。配置后,任何其他类型的语句都将失败。
Web 服务参数
在 Configuration Server 中,Web 服务脚本必须有一个名为 webservice 的部分。下表列出了可以为 Web 服务参数指定的属性。
属性 |
强制性/可选 |
说明 |
---|---|---|
主机 | 强制性 | 服务的主机。 |
基本路径 | 强制性 | 访问服务的基本路径。 |
协议 | 可选 | 默认值为 http。 |
端口 | 可选 | 默认值为 80。 |
标头 | 可选 | 服务所需的任何自定义 HTTP 标头。 |
参数 | 可选 | 调整连接所需的任何自定义 HTTP 设置。 |
通常,不需要设置或更改参数值。标头和参数按照以下格式列出:
key:value[,key:value]
警告: | 您不能指定值中包含","的标题或参数。
警告:如果您要向服务发送消息,则应该在标头中指定 Content-Type,因为它定义了与服务器的整体消息交互。可以包括一个可选的字符集。例如,Content-Type:applicaton/json;charset=UTF-8。 |
您必须完全定义要发送的消息,并且消息必须恒定不变。没有变量替换。XPath 查询用于将值从服务器的响应中拉出。响应必须采用 XML 或 JSON 格式,否则将无法正常工作。必须为响应指定有效的 XPath 查询。这完全取决于您与之交互的服务。
注意: | 该消息在每个会话中仅发送到服务器一次。这样做是出于性能原因,而且响应中的值预计是相对恒定的。 |
参数的路径已添加到脚本中的 base_path 中。
例如:
如果脚本包含:
host = api.wunderground.com base_path = /auto/wui/geo/ForecastXML/
且模板开发指定:
query type = List XPath Query = //high/fahrenheit/text() HTTP Method = GET path = index.xml?query=66062 message (not set)
则发送的消息是:
GET /auto/wui/geo/ForecastXML/index.xml?query=66062 HTTP/1.1
这将返回本周华氏高点:
81 77 81 81 83 85
Workforce Management 参数
在 Configuration Server 中,Workforce Management 脚本必须有一个名为 wfm 的部分。表 4 列出了可以为 Workforce Management 参数指定的属性。
属性 |
强制性/可选 |
说明 |
---|---|---|
wfmCfgServerApplName | 强制性 | WFM 服务器的 Configuration Server 应用程序名称。 |
wfmCfgServerUserName | 强制性 | Configuration Server 用户名。 |
wfmCfgServerPassword | 强制性 | Configuration Server 密码。 |
wfmServerUrl | 强制性 | WFM Server 的 URL。 |
配置“Workforce Management”类型的新参数时,只需命名该参数,然后从下拉列表中选择 WFM 配置文件(刚创建的脚本对象)。当作者使用此参数时,GRAT 将从 WFM Server 获取 WFM 活动的当前列表,并将向规则作者显示。
支持用户定义的模板类型
GRAT 自动显示向其发布的模板类型列表,模板设计者可以根据自己的需要选择这些用户定义的模板类型或定义新的模板类型。
模板版本
每次发布规则模板时,都会在存储库中创建一个新版本。创建规则包时,规则作者能够从“模板选择”对话框中选择任何版本的模板。此对话框显示模板的最后 N 个版本,其中 N 是使用 Genesys Administrator 中的配置选项 display-n-template-versions 配置的值。
当发布规则模板的较新版本时,请注意某些更改可能会影响已经使用较早版本模板创建的规则。注意不要进行可能会使现有规则无效的更改,除非已将这些更改告知规则作者。
例如,如果规则模板版本 1 包含将在版本 2 中删除的条件,而且已经使用该条件构建了规则,则当规则作者升级到规则模板版本 2 时,将不再编译该规则。
例如,如果配置设置为显示模板的最后 3 个版本,当前选择的模板为 GRS 模板版本 2,并且存储库中有 5 个版本,则将显示 GRS 模板版本 5、4 和 3,以及 GRS 模板版本 2。用户可以选择版本 3、4 或 5。
版本备注
为了提供有关模板版本之间差异的详细信息,规则模板开发人员可以发布版本备注,描述对各个模板版本进行的特定更改。此版本备注显示在“模板选择”表的 GRAT 中,并且可由 GRAT 中的规则作者进行编辑。