BizTalk BRE-.Net类中的方法在业务流程调用规则形状中不起作用



我正试图使用一个名为AddValidationErrors的外部类库方法来消除业务规则生成器中的数据验证错误。我创建了一个FactCreator类,它也实现了IFactCreator接口。当我尝试在业务规则生成器中测试我的策略时,这是有效的。但当我尝试编排时,它的规则不会被触发。有人能帮我吗。以下是我的验证错误代码

public void AddValidationError(TypedXmlDocument activeDoc, string err)
{
   XmlDocument doc = activeDoc.Document.OwnerDocument;
   XmlNode errorRoot = doc.SelectSingleNode("//ValidationErrors");
   XmlElement newError = doc.CreateElement("Error");
   newError.InnerText = err;
   errorRoot.AppendChild(newError);
}

FactCreator类:

    private object[] objs;
    public FactCreator()
    {
    }
    public object[] CreateFacts(RuleSetInfo ruleSetInfo)
    {
        objs = new object[1];
        objs[0] = new ValidationErrors.ValidationErrors();
        return (objs);
    }
    public Type[] GetFactTypes(RuleSetInfo ruleSetInfo)
    {
        return null;
    }

您是否启用了对.NET的BRE静态支持?

要启用BRE对静态.Net方法的支持,请在以下注册表路径中添加一个名为StaticSupport、值为1REG_DWORD项:

32位Windows

HKEY_LOCAL_MACHINESoftwareMicrosoftBusinessRules3.0

64位Windows

HKEY_LOCAL_MACHINESoftwareWow6432NodeMicrosoftBusinessRules3.0

这是一次性活动。

以上信息来自本博客。

MSDN摘录添加:

另一个选项是将StaticSupport放在BTNTsvc[64].exe.config中文件,因为这里的任何设置都会覆盖注册表中的内容。进一步的人们也可以提出这样的论点,即这个选项是首选的,因为它仅将默认行为的更改隔离到BizTalk,而注册表设置是操作系统的全局设置。

最新更新