Biztalk 如何判断BRE策略中的哪些规则失败?

Biztalk 如何判断BRE策略中的哪些规则失败?,biztalk,business-rules,biztalk-rule-engine,Biztalk,Business Rules,Biztalk Rule Engine,下面是一个示例程序,其中给出了一些使用BizTalk BRE测试某些规则的示例。我很好地完成了这个示例,并且正在创建一个WCF服务,允许用户从远程服务器测试一个对象。问题是,我想知道一个项目失败的原因以及失败的规则 在引用的示例中,有一个申请人对象。规则规定,如果申请人年龄在18至36岁之间,且贷款金额小于或等于20000,则批准申请。还有其他规则给出了风险状态 我想知道申请人为什么不遵守规定。比如说申请者39岁。有没有办法告诉我哪个谓词失败了 我需要实现某种自定义跟踪拦截器吗 如果BizTal

下面是一个示例程序,其中给出了一些使用BizTalk BRE测试某些规则的示例。我很好地完成了这个示例,并且正在创建一个WCF服务,允许用户从远程服务器测试一个对象。问题是,我想知道一个项目失败的原因以及失败的规则

在引用的示例中,有一个申请人对象。规则规定,如果申请人年龄在18至36岁之间,且贷款金额小于或等于20000,则批准申请。还有其他规则给出了风险状态

我想知道申请人为什么不遵守规定。比如说申请者39岁。有没有办法告诉我哪个谓词失败了

我需要实现某种自定义跟踪拦截器吗


如果BizTalk 2013有什么不同的话,我会使用它,尽管我没有看到不同版本的BRE有多大差异。

首先,您是正确的,在BizTalk Server 2013中,BRE基本上是不变的

对于您正在寻找的,是的,您需要实现一个跟踪拦截器,它将记录策略执行步骤,包括规则评估

但是,您只能创建自己的跟踪拦截器,以便在自定义代码中执行策略。BizTalk Server在执行具有调用规则形状的策略时已经提供了跟踪侦听器。BizTalk Administrator中业务流程实例的消息流中提供了这些策略的日志


您必须首先在应用程序的“策略”节点中启用策略跟踪。

我就是这么想的。这些规则将在一个WCF服务中实现,该服务接受业务对象,将它们放入规则中,并返回一个具有“isValid”bool集的对象。我添加了一个跟踪拦截器,用于检查TrackConditionEvaluation并查找结果是真是假。如果为false,则将表达式写入字符串列表。但我真正想知道的是正在测试的规则名称。