BizTalk BRE-.Net类中的方法在业务流程调用规则形状中不起作用
我正在尝试使用一个外部类库方法调用AddValidationErrors来消除Business Rule Composer中的数据验证错误。我创建了一个FactCreator类,它也实现了IFactCreator接口。当我尝试在Business Rule Composer中测试我的策略时,这是有效的。但当我尝试编排时,它不会触发规则。有人能帮我吗。下面是我的验证错误代码BizTalk BRE-.Net类中的方法在业务流程调用规则形状中不起作用,biztalk,business-rules,biztalk-2013,Biztalk,Business Rules,Biztalk 2013,我正在尝试使用一个外部类库方法调用AddValidationErrors来消除Business Rule Composer中的数据验证错误。我创建了一个FactCreator类,它也实现了IFactCreator接口。当我尝试在Business Rule Composer中测试我的策略时,这是有效的。但当我尝试编排时,它不会触发规则。有人能帮我吗。下面是我的验证错误代码 public void AddValidationError(TypedXmlDocument activeDoc, stri
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静态支持 要启用对静态.Net方法的BRE支持这些方法,请将名为
StaticSupport
的REG\u DWORD
键(值为1
)添加到以下注册表路径:
32位窗口
HKEY_LOCAL_MACHINE\Software\Microsoft\BusinessRules\3.0\
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\BusinessRules\3.0\
64位窗口
HKEY_LOCAL_MACHINE\Software\Microsoft\BusinessRules\3.0\
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\BusinessRules\3.0\
这是一项一次性活动
以上信息来自博客
MSDN提取物添加:
另一个选项是将StaticSupport放在BTNTsvc[64].exe.config中
文件,因为此处的任何设置都会覆盖注册表中的内容。进一步的
人们还可以提出这样的论点,即该选项更可取,因为它
将默认行为中的更改仅隔离为BizTalk,而
注册表设置是操作系统的全局设置
MSDN声明也可以通过配置文件进行更新:。我将更新我的答案。这是一次性活动吗?我更新了我的答案以反映更改BTSNTSvc.exe.config或BTSNTSvc64.exe.config的可能性。我已完成第二个选项。但是仍然是相同的输出,如果不更新注册表,我从未有过这样的运气。更新后重新启动计算机。每台服务器应该是一次性的,并且可以在powershell或.reg文件中编写脚本。