基于核心组件的自适应Form规则编辑器中的操作符类型和事件
在AEM Forms as a Cloud中,规则编辑器包括各种运算符类型和事件,使您能够轻松定义和执行复杂的条件和操作。
自适应表单的规则编辑器中提供的运算符类型为构建精确条件提供了一个强大的框架。 它们允许您以逻辑和一致的方式处理数据、执行计算并组合多个条件。 无论您是比较值、执行算术运算还是处理字符串,这些运算符都可以确保您的规则既灵活又强大。
规则编辑器中的事件用作激活规则的触发器。 它们定义在满足某些条件时发生的具体操作。 利用不同类型的事件,您可以自动响应范围广泛的场景,例如用户交互、计划时间、数据更改和系统状态。 通过指定这些触发器,您可以创建符合您特定要求的动态响应规则。
通过了解并使用可用的运算符类型和事件,您可以释放规则编辑器的全部潜力,从而创建高效、有效的规则来满足独特需求并改进整体系统功能。
规则编辑器中的可用运算符类型和事件 available-operator-types-and-events-in-rule-editor
规则编辑器提供了以下逻辑运算符和事件,您可以使用这些运算符和事件创建规则。
- 等于 — 检查表单对象是否与指定的值匹配。
- 不等于 — 检查表单对象是否与指定的值不匹配。
- 开头为 – 检查表单对象是否以指定的字符串开头。
- 结尾为 – 检查表单对象是否以指定的字符串结尾。
- 包含 – 检查表单对象是否包含指定的子字符串。
- 不包含 – 检查表单对象是否不包含指定的子字符串。
- 为空 – 检查表单对象是否为空或未提供。
- 不为空 – 检查表单对象是否存在且不为空。
- 已选择 — 当用户选择特定的复选框、下拉列表或单选按钮选项时,返回true。
- 已初始化(事件) — 在浏览器中呈现表单对象时返回true。
- Is Changed (event) — 当用户修改表单对象的值或选择时,返回true。
- Is Clicked (event) — 当用户单击表单对象(例如,按钮)时,返回true。 用户可以向按钮添加多个条件,然后单击。
- 有效 — 检查表单对象是否符合验证条件。
- 无效 — 检查表单对象是否未通过验证条件。
规则编辑器中的可用规则类型 available-rule-types-in-rule-editor
规则编辑器提供了一组可用于编写规则的预定义规则类型。 让我们详细了解一下每种规则类型。 有关在规则编辑器中编写规则的更多信息,请参阅编写规则。
时间 whenruletype
When 规则类型遵循 condition-action-alternate action 规则结构,有时只遵循 condition-action 结构。 在此规则类型中,首先指定评估条件,然后指定满足该条件时要触发的操作(True
)。 在使用When规则类型时,您可以使用多个AND和OR运算符来创建嵌套表达式。
使用When规则类型,您可以评估表单对象的条件,并对一个或多个对象执行操作。
简单地说,典型的When规则的结构如下所示:
When on Object A:
(Condition 1 AND Condition 2 OR Condition 3) is TRUE;
Then, do the following:
Action 2 on Object B;
AND
'对对象C执行操作3;
Else, do the following:
Action 2 on Object C;
_
当具有多值组件(如单选按钮或列表)时,在为该组件创建规则时,会自动检索选项并使这些选项可用于规则创建者。 您无需再次键入选项值。
例如,列表包含四个选项:红色、蓝色、绿色和黄色。 创建规则时,将自动检索选项(单选按钮)并使规则创建者可以使用此选项,如下所示:
编写When规则时,可以触发Clear Value Of操作。 清除值操作清除指定对象的值。 通过在When语句中将Clear Value设置为选项,可以创建具有多个字段的复杂条件。 您可以添加Else语句以添加更多条件
允许在“何时”中使用 多个字段 allowed-multiple-fields
在 When 条件中,您可以选择添加应用规则的字段之外的其他字段。
例如,使用When规则类型,您可以评估不同表单对象上的条件并执行操作:
时间:
(对象A条件1)
和/或
(对象B条件2)
然后,执行以下操作:
对对象A执行操作1
_
在When条件功能 中使用允许多个字段时的注意事项
- 确保将核心组件设置为版本3.0.14或更高版本以在规则编辑器中使用此功能。
- 如果将规则应用于When条件中的不同字段,则即使仅更改了这些字段之一,也会触发规则。
- 您只能在 AND 规则的 When 条件中添加多个字段。 OR 规则无法执行此操作。
When button is clicked AND text input equals '5'
有效,而不支持When text input equals '5' AND button is clicked
。如果When条件功能中允许的多个字段遇到任何问题,请按照以下疑难解答步骤操作:
- 在编辑模式下打开该表单。
- 打开内容浏览器,然后选择自适应表单的 指南容器 组件。
- 单击指南容器属性
- 单击完成,然后再次保存对话框。
隐藏 隐藏指定的对象。
显示 显示指定的对象。
启用 启用指定的对象。
禁用 禁用指定的对象。
调用服务 调用表单数据模型(FDM)中配置的服务。 选择“调用服务”操作时,会出现一个字段。 点按该字段时,会显示在Experience Manager实例上的所有表单数据模型(FDM)中配置的所有服务。 在选择表单数据模型服务时,会出现更多字段,您可以在其中使用指定服务的输入参数映射表单对象。 您可以通过指定服务的事件有效负载选项映射输出参数。 您还可以使用规则编辑器创建用于处理调用服务操作的成功和失败响应的规则。
请参阅调用表单数据模型 (FDM) 服务的示例规则。
除了表单数据模型服务之外,您还可以指定直接 WSDL URL 来调用 Web 服务。 但是,表单数据模型服务具有许多好处,并且是调用服务的推荐方法。
有关在表单数据模型 (FDM) 中配置服务的详细信息,请参阅 Experience Manager Forms 数据集成。
设置“计算”的值 ,并设置指定对象的值。 您可以将对象值设置为字符串、另一个对象的值、使用数学表达式或函数的计算值、对象的属性值或来自已配置表单数据模型服务的输出值。 当您选择Web服务选项时,它将显示在Experience Manager实例上的所有表单数据模型(FDM)中配置的所有服务。 在选择表单数据模型服务时,会出现更多字段,您可以在其中映射具有指定服务的输入和输出参数的表单对象。
有关在表单数据模型(FDM)中配置服务的详细信息,请参阅Experience Manager Forms 数据集成。
Set Property 规则类型允许您根据条件操作设置指定对象的属性值。 您可以将属性设置为以下项之一:
- 可见(布尔值)
- label.value(字符串)
- label.visible(布尔值)
- description(字符串)
- 已启用(布尔值)
- readOnly(布尔值)
- 必需(布尔值)
- screenReaderText(字符串)
- 有效(布尔值)
- errorMessage(字符串)
- 默认(数字、字符串、日期)
- enumNames (字符串[])
- chartType(字符串)
例如,您可以定义规则以在单击按钮时显示文本框。 您可以使用自定义函数、表单对象、对象属性或服务输出来定义规则。
要基于自定义函数定义规则,请从下拉列表中选择 函数输出,然后从 函数 选项卡中拖放自定义函数。 如果满足条件操作,则文本输入框将可见。
要基于表单对象定义规则,请从下拉列表中选择 表单对象,然后从 表单对象 选项卡中拖放表单对象。 如果满足条件操作,则文本输入框在自适应表单中可见。
通过基于对象属性的“设置属性”规则,您可以根据自适应表单中包含的其他对象属性在自适应表单中显示文本输入框。
下图展示了一个基于隐藏或显示自适应表单中的文本框动态启用该复选框的示例:
清除值 清除指定对象的值。
设置焦点 设置指定对象的焦点。
提交表单 提交表单。
重置 重置表单或指定的对象。
验证 验证表单或指定的对象。
添加实例 添加指定可重复面板或表行的实例。
删除实例 删除指定的可重复面板或表行的实例。
函数输出 根据预定义的函数或自定义函数定义规则。
导航到 导航到其他自适应Forms、图像或文档片段等其他资源或外部URL。
调度事件 根据预定义的条件或事件触发特定操作或行为。
设置值 set-value-of
规则类型的 设置值允许您根据是否满足指定的条件来设置表单对象的值。 该值可以设置为另一个对象的值、文本字符串、从数学表达式或函数派生的值、另一个对象的属性值或表单数据模型服务的输出。 同样,您可以检查组件、字符串、属性或从函数或数学表达式派生的值的条件。
Set Value Of 规则类型不适用于所有表单对象,例如面板和工具栏按钮。 标准的“设置值”规则具有以下结构:
将对象A的值设置为:
(字符串ABC)或
(对象C的对象属性X)或
(函数中的值)或
(数学表达式中的值)或
(数据模型服务的输出值);
时间(可选):
(条件 1 和条件 2 和条件 3)为 TRUE;
以下示例选择Question2
的值作为True
,并将Result
的值设置为correct
。
使用表单数据模型服务的设置值规则的示例。
节目 show
使用 Show 规则类型,您可以编写规则以根据条件是否满足来显示或隐藏表单对象。 Show规则类型还会触发Hide操作,以防条件不满足或返回False
。
典型的显示规则的结构如下所示:
Show Object A;
When:
(Condition 1 OR Condition 2 OR Condition 3) is TRUE;
Else:
Hide Object A;
隐藏 hide
与“显示”规则类型类似,您可以使用 隐藏 规则类型,根据是否满足条件来显示或隐藏表单对象。 如果条件不满足或返回False
,隐藏规则类型还会触发“显示”操作。
典型的“隐藏”规则的结构如下所示:
Hide Object A;
When:
(Condition 1 AND Condition 2 AND Condition 3) is TRUE;
Else:
Show Object A;
启用 enable
启用 规则类型允许您根据是否满足条件来启用或禁用表单对象。如果条件不满足或返回 False
,“启用”规则类型还会触发“禁用”作。
典型的启用规则结构如下:
Enable Object A;
When:
(Condition 1 AND Condition 2 AND Condition 3) is TRUE;
Else:
Disable Object A;
禁用 disable
与“启用”规则类型类似, “禁用 ”规则类型允许您根据是否满足条件来启用或禁用表单对象。 “禁用”规则类型还会在条件不满足或返回 False
时触发“启用”作。
典型的禁用规则的结构如下所示:
Disable Object A;
When:
(Condition 1 OR Condition 2 OR Condition 3) is TRUE;
Else:
Enable Object A;
验证 validate
Validate 规则类型使用表达式验证字段中的值。 例如,您可以编写表达式来检查用于指定名称的文本框是否不包含特殊字符或数字。
典型的验证规则的结构如下所示:
Validate Object A;
Using:
(Expression 1 AND Expression 2 AND Expression 3) is TRUE;
在面板之间导航
在面板之间导航 规则类型允许您在表单的不同面板之间转移焦点。 例如,您可以创建表达式以将焦点移动到下一个面板。
在面板之间导航 用于将焦点移动到下一个面板的常规 规则的结构如下所示:
Navigate among the panels
Shift focus to the next item Object A;
When:
(Condition 1 OR Condition 2 OR Condition 3) is TRUE;
同样,您可以编写 在面板之间导航 规则以将焦点转移到上一个面板:
Navigate among the panels
Shift focus to the previous item Object A;
When:
(Condition 1 OR Condition 2 OR Condition 3) is TRUE;
有关如何创建规则以在面板中导航的更多详细信息,单击此处。
异步函数调用
这是一项预发行功能,可通过我们的预发行渠道访问。
异步函数调用 规则类型允许您执行异步函数。它使您能够启动独立于主执行线程运行的函数调用,从而允许其他进程继续运行,而无需等待异步函数完成。
用于执行异步函数的典型异步函数调用规则的结构如下:
When:
(Condition 1 OR Condition 2 OR Condition 3) is TRUE;
Async Function call
[Callback Function];
有关如何在可视规则编辑器中使用异步函数调用的更多信息,请参阅在规则编辑器中使用异步函数调用一文。
后续步骤
现在,让我们了解基于核心组件🔗的自适应表单的规则编辑器的各种示例。