0

如何在BizTalk Orchestration中的表達式形式中編寫CASE語句?BizTalk表達式形式中的表達式

我已經嘗試使用下面的代碼,但它是說「標識符案例不存在未命名是否你缺少一個程序集引用?」

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

回答

3

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#幫助程序集,以避免過度複雜的編排。