如何在编排中实施来自 BRE 的策略以检查 xml 是否满足条件?
How to implement policy from BRE in orchestration to check if xml meet condition?
我正在从事 Biztalk 项目,在该项目中我有 Orchestration with decide shape。
在决定形状中,我检查 xml 的一个节点是否为 "XXX"。
> if(Code == "xxx" )
>{
> Enable = true;
>}
>else
>{
>Enable = false;
>
}
在决定形状之前,表达式中的形状是指定代码。
其中 "Code" 和 "Enable" 是可变的。 "Code" 是模式中特定值的 xpath。
如何创建策略并替换该表达式形状?
我应该在政策中指定什么?在“行动”?
谢谢你的回答
您必须将文档和 .NET 对象传递给规则。您可能有这样的 .NET 对象:
[Serializable]
public class BreResult
{
bool _enable;
public bool Enable
{
get
{
return _enable;
}
set
{
_enable = value;
}
}
}
编译它并将其添加到 GAC。在您的 BRE 策略中,将源文档和 .NET class 添加为对象。在规则的 Actions
部分,将 BreResult.set_Enable
拖到上方,然后根据规则的结果将其设置为 True 或 False。然后添加一个更新并拖到 BreResult
.
在您的业务流程中,为您的 .NET class (varBreResult
) 创建一个变量。在调用 BRE 之前的表达式中,您可以执行类似
varBreResult = new Namespace.Helper.BreResult()
调用BRE后,您可以根据自己的喜好选择
varBreResult.Enable == true
从我最初链接的 Orchestration 调用形状传递 .NET 对象时,我运气不佳,但如果您从代码中调用它,它会起作用。这是一个如何做到这一点的例子:https://msdn.microsoft.com/en-us/library/aa995566.aspx
我正在从事 Biztalk 项目,在该项目中我有 Orchestration with decide shape。 在决定形状中,我检查 xml 的一个节点是否为 "XXX"。
> if(Code == "xxx" )
>{
> Enable = true;
>}
>else
>{
>Enable = false;
>
}
在决定形状之前,表达式中的形状是指定代码。 其中 "Code" 和 "Enable" 是可变的。 "Code" 是模式中特定值的 xpath。 如何创建策略并替换该表达式形状?
我应该在政策中指定什么?在“行动”? 谢谢你的回答
您必须将文档和 .NET 对象传递给规则。您可能有这样的 .NET 对象:
[Serializable]
public class BreResult
{
bool _enable;
public bool Enable
{
get
{
return _enable;
}
set
{
_enable = value;
}
}
}
编译它并将其添加到 GAC。在您的 BRE 策略中,将源文档和 .NET class 添加为对象。在规则的 Actions
部分,将 BreResult.set_Enable
拖到上方,然后根据规则的结果将其设置为 True 或 False。然后添加一个更新并拖到 BreResult
.
在您的业务流程中,为您的 .NET class (varBreResult
) 创建一个变量。在调用 BRE 之前的表达式中,您可以执行类似
varBreResult = new Namespace.Helper.BreResult()
调用BRE后,您可以根据自己的喜好选择
varBreResult.Enable == true
从我最初链接的 Orchestration 调用形状传递 .NET 对象时,我运气不佳,但如果您从代码中调用它,它会起作用。这是一个如何做到这一点的例子:https://msdn.microsoft.com/en-us/library/aa995566.aspx