如何在编排中实施来自 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