共用方式為


XLANG-s 語言

XLANG/s 設計為可使用網際網路標準 (如 XML、XSD 和 Web 服務描述語言 (WSDL)),而且具有內嵌支援來處理 .NET 物件和訊息。 XLANG/s 可視為具有某些 C# 運算式功能的訊息語言。 但是,XLANG/s 與 C# 之間無法移植程式碼。

XLANG/s 鼓勵在處理與實作之間有清楚的分隔, 例如,在 XLANG/s 中指定商務程序或通訊協定,並在其他 .NET 程式語言 (如 C# 或 Visual Basic .NET) 中實作應用程式的本機層面 (如資料庫存取)。

XLANG/s 的指派和運算式語法是以 C# 當做模型,而且您應該參考 C# 規格,以瞭解精確的語法。 XLANG/s 定義了一組豐富的高層級構造,這組構造是用來定義商務程序。 雖然 XLANG/s 支援低階資料類型,例如字串和整數,但也會定義高階資料類型:訊息、埠、相互關聯和服務連結。 這些資料類型是用來嚴格定義與商務程式相關聯的語意,並且會由進程式控制制語句來補充,例如 whilescope

XLANG/s 語句通常屬於兩個類別的其中一個:可自行執行的簡單語句,例如 接收傳送,以及包含簡單語句或其他複雜語句的複雜語句,例如 範圍平行接聽。 以 XLANG/s 具體化的語意是用來反映「Web 服務商務程序執行語言」(BPEL4WS) 規格所定義的語意 (此規格是由 Microsoft、IBM 和 BEA 針對商務程序語意的定義所發佈)。

您可以選擇瞭解 XLANG/s 的主要構造,因為在 BizTalk 協調流程設計師中繪製協調流程圖時,會產生這些構造。 協調流程設計師是一個功能豐富的圖形工具,可以視覺方式來設計商務程序。 它會產生 XLANG/s 檔案,這些檔案具有 .odx 副檔名,而且其標頭中包含其他視覺資訊,本文中則包含自訂屬性資訊。

注意

XLANG/s 語言是專屬的,而且未完整記錄。 本章節會公開當您開發協調流程時,可能需要注意的某些語言部分。 不支援直接修改 .odx 檔案。

XLANG/s 程式

最簡單的 XLANG/s 程式需要定義訊息類型,這樣可為協調流程提供一些資料來開始使用。 協調流程會透過連接埠接收訊息,然後終止。 下列程式碼是一個範例:

module HelloWorldApp  
{  
     private porttype ptPOReceive  
     {  
      oneway opPOReceive  
      {  
       HelloWorldApp.PurchaseOrder  
      }  
     }  
     private porttype ptPOSend  
     {  
      oneway opPOSend  
      {  
       HelloWorldApp.PurchaseOrder  
      }  
     }  
     private service  HelloWorld  
     {  
      port implements HelloWorldApp.ptPOReceive poPOReceive;  
      port uses HelloWorldApp.ptPOSend poPOSend;  
      message HelloWorldApp.PurchaseOrder msgPO;  
      body ()  
      {  
       activate receive (poPOReceive.opPOReceive, msgPO);  
       send (poPOSend.opPOSend, msgPO);  
       }  
     }  
}  

在上述 XLANG/s 程式中, module 關鍵字會定義 XLANG/s 程式的編譯單位。 程式中使用的所有類型,例如 porttypecorrelationsettypeservicelinktypemessagetype,都會在此層級進行範圍。

埠是 XLANG/s 可以傳送或接收訊息的建構,且埠具有稱為 porttype的定義型別。 porttype建構會定義可在埠上使用的作業集合。 這些作業會定義透過此連接埠的單一有效訊息交換。 在定義 porttypemessagetypeservicelinktypecorrelationsettype 建構時,XLANG/s 程式的作者基本上是建立複雜的資料類型定義。 這些定義的優點與其他語言的複雜資料類型相同:它們會將資料類型內含的概念抽象化為較高層級,並可讓您輕鬆地重複使用資料類型。

上述 HelloWorldApp 模組中的 ptPOReceive 埠是以單向接收埠作業 opPOReceive定義。 HelloWorld 服務區塊會定義此程序的實際實作以及它可能使用的任何變數 (包括連接埠和訊息變數)。 此區塊中的前三行程式碼會分別定義埠變數 poPOReceivepoPOSend 和訊息 msgPO 。 本文包含的程式碼會描述此服務和執行行為的參數。 所有的變數 (除非以巢狀範圍區塊定義) 都是以這個層級為範圍。 接收語句是啟動接收,會從poPOReceive.opPOReceive埠接收msgPO訊息,並建立協調流程的新實例。 當收到訊息之後,傳送陳述式會將此訊息導向傳送埠。 在上述程式碼的兩個埠宣告中, poPOReceive 會使用實作修飾詞,而 poPOSend 則使用 修飾詞。 implements 修飾詞會告訴執行階段,它將要透過該連接埠來接收訊息。 uses 修飾詞會告訴執行階段,它將要透過該連接埠來傳送訊息。

本節內容

另請參閱

關於 BizTalk 協調流程引擎