【问题标题】:Case expression in BizTalk Expression ShapeBizTalk 表达式形状中的大小写表达式
【发布时间】:2014-04-08 15:59:52
【问题描述】:

如何在 BizTalk Orchestration 中编写表达式形式的 CASE 语句?

我尝试过使用下面的代码,但是它说“未命名的标识符大小写不存在您是否缺少程序集引用?”

switch case <value>
{
   case "1":
       construct message1
       {
             message1=message2;
        }
       break;
   case default:
       break;
}

【问题讨论】:

    标签: expression biztalk biztalk-2010 biztalk-2009 biztalk-orchestrations


    【解决方案1】:

    BizTalk 编排表达式编辑器有一个variety of limitations,最值得注意的是,您通常会在其他地方编写的大量 C# 代码不被接受:switch 语句就是一个例子。

    只要您使用普通表达式形状(即,不是消息赋值形状),您就可以使用 IF-ELSE 语句(在 if 谓词中减去赋值)。微软只允许 C# 子集的声明原因是“to keep code for the business process separate from its implementation code.”

    所以如果你想做复杂的消息赋值,你不应该把它打包成一个单一的表达式形状(微软试图阻止你)。您可以改为使用 Decide shape 与您的情况等效,每个分支都将您带到适当的消息分配/表达式。

    如果您需要的不仅仅是几个可能的分支,那么您可以考虑编写一个包含所有消息分配逻辑的 C# 辅助程序集,以避免过于复杂的编排。

    【讨论】:

      【解决方案2】:

      switch 不支持表达式形状。

      更多:http://msdn.microsoft.com/en-us/library/aa559103.aspx

      Orchestration 等价物通常是 Decide Shape。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-23
        • 2011-02-01
        • 2020-04-30
        • 2014-02-17
        • 1970-01-01
        • 2023-04-09
        相关资源
        最近更新 更多