通过 DMN 中的业务知识模型返回时处理 null
Handling null when returning through Business Knowledge model in DMN
我正在尝试在 kie 服务器上使用 DMN 制定一些业务规则。
我有结构数据对象及其列表,这是我的输入。我正在使用规则来验证我的结构列表,并且只获取那些通过我的条件的人。
我正在使用 BusinessKnowledgeModel,它具有每个对象的实际情况,并且我有决策逻辑,它遍历我的列表并调用 BusinessKnowledgeModel 函数。
决策迭代器感觉语言代码:
对于 InputList 中的 inputParam return BusinessKnowledgeModel(inputParam)
在 BusinessKnowledgeMode 中,我有我的函数,它包含通过 Feels 表达式检查我的条件的决策 table。
我不想从函数中获取 null 作为 otput,而是想跳过它。
我的努力:
我确实尝试探索各种方法;比如查找是否可以在 for 循环中使用 continue 关键字。甚至尝试在数据对象上添加约束,但无法在结构上添加空约束。
没有等价于 continue;
的运算符,这在过程语言中很典型,因为 FEEL 是一种表达式语言。如果您熟悉Java,您可以得出的关闭类比是您需要与JDK 流可以做的事情等价的东西,例如:在这种情况下过滤听起来很合适。
很可能您可以通过过滤表达式来实现您的需求:
(for inputParam in InputList return BusinessKnowledgeModel(inputParam))[item!=null]
示范[=36=]
在此示例 DMN 模型中,我将 inputList
作为数字列表,bkm()
是一个返回相同数字的函数,如果它可以被 2 整除,否则 null
:
if (modulo(p1, 2) = 0) then p1 else null
Decision-1
节点:
是从for
的返回列表中过滤出来的,只有数字元素,可以看到输入列表大小是10个元素,Decision-1
列表大小只有5个元素,过滤掉了null
s
完整示例:
请注意输出列显示带索引的列表元素,
元素索引 0 是值 2
,
元素索引 1 是值 4
,
等等
我正在尝试在 kie 服务器上使用 DMN 制定一些业务规则。
我有结构数据对象及其列表,这是我的输入。我正在使用规则来验证我的结构列表,并且只获取那些通过我的条件的人。
我正在使用 BusinessKnowledgeModel,它具有每个对象的实际情况,并且我有决策逻辑,它遍历我的列表并调用 BusinessKnowledgeModel 函数。
决策迭代器感觉语言代码:
对于 InputList 中的 inputParam return BusinessKnowledgeModel(inputParam)
在 BusinessKnowledgeMode 中,我有我的函数,它包含通过 Feels 表达式检查我的条件的决策 table。
我不想从函数中获取 null 作为 otput,而是想跳过它。
我的努力:
我确实尝试探索各种方法;比如查找是否可以在 for 循环中使用 continue 关键字。甚至尝试在数据对象上添加约束,但无法在结构上添加空约束。
没有等价于 continue;
的运算符,这在过程语言中很典型,因为 FEEL 是一种表达式语言。如果您熟悉Java,您可以得出的关闭类比是您需要与JDK 流可以做的事情等价的东西,例如:在这种情况下过滤听起来很合适。
很可能您可以通过过滤表达式来实现您的需求:
(for inputParam in InputList return BusinessKnowledgeModel(inputParam))[item!=null]
示范[=36=]
在此示例 DMN 模型中,我将 inputList
作为数字列表,bkm()
是一个返回相同数字的函数,如果它可以被 2 整除,否则 null
:
if (modulo(p1, 2) = 0) then p1 else null
Decision-1
节点:
for
的返回列表中过滤出来的,只有数字元素,可以看到输入列表大小是10个元素,Decision-1
列表大小只有5个元素,过滤掉了null
s
完整示例:
请注意输出列显示带索引的列表元素,
元素索引 0 是值 2
,
元素索引 1 是值 4
,
等等