16.2. 在 DRL 规则中添加 THEN 操作
规则的 然后
部分包含在满足规则条件部分时要执行的操作。例如,当 loan applicant 旧于 21 年时,"Underage"
规则的 then
操作会被 设置Approved (false),从而
取消了 loan,因为 applicant 处于年龄下。操作由一个或多个根据规则条件和软件包中可用数据对象执行结果的方法组成。规则操作的主要用途是在决策引擎工作内存中插入、删除或修改数据。
先决条件
-
软件包在
DRL 文件的顶部定义。创建该文件时,应该已为您完成此操作。 -
规则中使用的数据对象导入
列表在 DRL 文件的package
行下定义。数据对象可以来自此软件包,也可以来自 Business Central 中的其他软件包。 -
规则
名称采用软件包
、导入
以及其他应用到整个 DRL 文件的格式规则"name"
定义。同一软件包中不能多次使用相同的规则名称。定义规则行为的可选规则属性(如salience
或no-loop
)在when
部分之前位于规则名称下。
�程
-
在 DRL 设计程序中
,
在规则的when
部分输入,以开始添加操作语句。 根据规则的条件,输入要针对事实模式执行的一个或多个操作。
以下是定义 DRL 操作的一些关键字选项:
设置
:使用它来设置字段的值。$application.setApproved ( false ); $application.setExplanation( "has been bankrupt" );
$application.setApproved ( false ); $application.setExplanation( "has been bankrupt" );
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 修改
:使用此选项指定为事实修改的字段,并通知决策引擎的变化。这个方法提供了事实更新的结构化方法。它将更新操作
与 setter 调用相结合,以更改对象字段。modify( LoanApplication ) { setAmount( 100 ), setApproved ( true ) }
modify( LoanApplication ) { setAmount( 100 ), setApproved ( true ) }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新
:使用此选项指定要更新的字段和整个相关事实,并通知决策引擎更改。更改事实后,您必须调用更新
,然后才能更改可能受到更新的值影响的另一个事实。要避免此添加的步骤,请使用modify
方法。LoanApplication.setAmount( 100 ); update( LoanApplication );
LoanApplication.setAmount( 100 ); update( LoanApplication );
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 插入
:使用此将新事实插入到决策引擎中。insert( new Applicant() );
insert( new Applicant() );
Copy to Clipboard Copied! Toggle word wrap Toggle overflow insertLogical
:使用它来以逻辑方式将新的
事实插入到决策引擎中。决策引擎负责对事实的插入和重包进行逻辑决策。常规或声明的插入后,必须明确回收事实。逻辑插入后,插入的事实会在插入事实的规则中的条件不再满足满足时自动响应。insertLogical( new Applicant() );
insertLogical( new Applicant() );
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除
:使用它来从决策引擎中删除对象。DRL 还支持关键字retract
并执行相同的操作,但删除
通常在 DRL 代码中首选,以便与关键字插入
保持一致。delete( Applicant );
delete( Applicant );
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
注意有关 DRL 规则操作的详情,请参考 第 14.9 节 “DRL 中的规则操作(THEN)”。
- 在定义了规则的所有操作组件后,单击 DRL 设计器右上角的 Validate 以验证 DRL 文件。如果文件验证失败,请解决错误消息中描述的任何问题,检查 DRL 文件中的所有语法和组件,然后重试验证该文件直到文件通过为止。
- 在 DRL Designer 中点 Save 来保存您的工作。