2011-05-16 24 views
2

我想要做的是这样的:Biztalk的规则引擎:如何使用.NET类来验证传入的消息

我正在一个XML作为传入。这有“id”元素。现在在.net类库中,我想检查具有此ID的实体是否已经存在于我的数据库中。如果它已经存在,则该呼叫无效。

如何才能达到这个使用Biztalk规则引擎?

+0

你需要知道什么时候发生这个事件,或者你可能宁愿在你的db插入代码中处理这个(并且默默丢弃它)? – Filburt 2011-05-17 08:45:49

+0

...和db你的意思是MessageBox数据库或其他应用程序数据库? – Filburt 2011-05-17 08:47:46

+0

感谢filburt,但不,我不想在db中处理它,有几个重复,其中之一是想要返回一个特定的错误代码和错误描述符,并且这必须是可配置的 – 2011-05-19 05:25:08

回答

1

BizTalk规则引擎用于根据规则集评估消息。规则集存在于称为策略的静态结构中,并且无法通过调用.NET组件来“丰富”策略。也不应该有。

如果您需要基于某些内容通过数据库调用使消息无效,请在调用规则引擎之前(或之后)在编排中执行此操作。

规则引擎用于根据基于静态数据或基于消息中其他内容的数据来评估消息内容。

+1

嗨thicolour,你确定?因为词汇可以让你引用.net程序集。当我提到一个时,我被允许包含在条件中返回一个“bool”值的方法。但是,我无法进一步进行......刚才再试一次,会让你更新 – 2011-05-19 05:22:13

+2

当你定义一个词汇表时,.net程序集提到支持使用.net类作为BizTalk消息,而不是包括一种拨打.net的方式。但是,我原来的回答错了。在定义词汇表项时,通过选择“数据库表或列”可以从规则引擎进行数据库调用。这里详细说明:http://blogs.msdn.com/b/rgarg/archive/2009/04/23/using-biztalk-business-rules-engine-bre-with-database.aspx – 2011-05-20 15:17:05