【问题标题】:BizTalk rules engine not firing actions despite conditions being met尽管满足条件,BizTalk 规则引擎仍不触发操作
【发布时间】:2011-11-24 16:35:18
【问题描述】:
我在 BizTalk 中有一个业务流程,其中有一个 CallRules 形状。编排没有按预期运行,我将问题缩小到业务规则引擎 (BRE)。
我在 Business Rules Composer 中使用了 Test Policy 功能并为其提供了一个消息实例。 BRE 评估了这些规则,并且在检查输出时,似乎已经完全满足了其中一个规则。该规则中的每个条件都已评估为真,但这些操作尚未应用于我的消息。
我不明白为什么会这样 - 如果满足条件,为什么不应用这些操作?!
【问题讨论】:
标签:
biztalk
rule-engine
biztalk-2010
biztalk-2009
biztalk-rule-engine
【解决方案1】:
事实证明,这需要一个新的注册表项来允许调用 BRE 中的静态 .NET 类成员。
请参阅this MSDN article,其中描述了每种方案的注册表项应该是什么。默认情况下它不存在,因此默认为零,这需要首先声明一个类实例。
对于 64 位安装,可以在 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\BusinessRules\3.0 中找到密钥,而不是在 MSDN 上指定的路径。
我不确定为什么 BRE 没有警告某些操作无法应用 - 这将非常有用。
当您在 Test Policy 输出中看到名为 RULE FIRED 的条目时,您可以确定您的规则已得到满足并应用了操作。