使用 BaseFunctoid
所有的自訂運算質都必須從 BaseFunctoid 類別衍生。 您必須先覆寫建構函式,然後進行一組呼叫,告知 BizTalk 對應工具有關自訂運算質的資訊。 然後您需要寫入運算質邏輯。
覆寫建構函式
您必須在類別建構函式覆寫方法中執行數個工作,以辨識您的運算質。 這些工作是外加於您方案所需的任何運算質特定程式碼。 下表描述主要的工作。
工作 | 使用這些方法或屬性 | 註解 |
---|---|---|
指派唯一識別碼至運算質 | ID | 使用大於 6000 且尚未使用的值。 小於 6000 的值將保留供內部運算質使用。 |
指示運算質是否有副作用 | HasSideEffects | 由對應工具使用,以最佳化產生的 XSLT 程式碼。 依預設值,此屬性為 True。 |
指向資源組件 | SetupResourceAssembly | 包含具有您專案的資源檔案。 如果使用 Visual Studio 建置,資源元件必須是 ProjectName.ResourceName。 |
讓自訂運算質出現在 BizTalk 對應工具工具板中 | SetName SetTooltip SetDescription SetBitmap |
使用指向名稱、提示和描述字串的資源識別碼;使用 16x16 像素點陣圖。 |
指派運算質至一或多個類別 | 類別 | 使用一或多個 Microsoft.BizTalk.BaseFunctoids.FunctoidCategory 值分類運算質。 |
指定接受的參數數目 | SetMinParams SetMaxParams HasVariableInputs |
使用 SetMinParams 方法設定所需的參數數目,使用 SetMaxParams 方法設定選用的參數數目。 使用下列指導方針設定這些值: - 如果您沒有選擇性參數,請設定 min = max。 - 如果您有一些選擇性參數,請設定 max = (選擇性參數數目 -) 的最小參數數目。 - 如果您想要允許無限制的選擇性參數,請勿設定 max。 - 如果您有可變數目的輸入,請勿設定 min 或 max,並設定HasVariableInputs = true 。 |
宣告可連接至您運算質的項目 | AddInputConnectionType | 對每個運算質支援的 Microsoft.BizTalk.BaseFunctoids.ConnectionType 呼叫一次 AddInputConnectionType 。 |
宣告您的運算質可連接至的項目 | OutputConnectionType | 使用 Microsoft.BizTalk.BaseFunctoids.ConnectionType 中的值,告知 BizTalk 對應工具可從您運算質擷取輸出的物件類型。 使用 OR 來指定多個連接類型。 |
告知 BizTalk Server 要為您的運算質叫用的方法 | SetExternalFunctionName SetExternalFunctionName2 SetExternalFunctionName3 |
對於累計運算質,請使用 SetExternalFunctionName 來設定初始設定函式、使用 SetExternalFunctionName2 來設定累計函式,以及使用 SetExternalFunctionName3 來指定傳回累計值的函式。 對於非累計運算質,請使用 SetExternalFunctionName 來設定運算質方法。 |
讓 BizTalk Server 使用內嵌程式碼叫用您的運算質 | AddScriptTypeSupport SetScriptBuffer | 搭配 Microsoft.BizTalk.BaseFunctoids.ScriptType 呼叫 AddScriptTypeSupport 以啟用內嵌程式碼。 叫用 SetScriptBuffer 以在運算質的程式碼中傳遞。 此程式碼將複製到對應中。 |
宣告內嵌運算質的全域變數 | SetScriptGlobalBuffer | 包含在對應中的其他內嵌程式碼都可以看到所進行的任何宣告。 |
指示您的內嵌運算質所需的協助程式函式 | RequiredGlobalHelperFunctions | 使用 InlineGlobalHelperFunction 列舉,來指定所需的協助程式函式。 使用 OR 來指定多個協助程式函式。 |
驗證傳遞至您運算質的參數 | IsDate IsNumeric |
這些函式會提供 true/false 回應,而不會擲回例外狀況。 |
實作運算質邏輯
若要使運算質變的有用,您必須視運算質類別實作一或多個方法。 如果運算質為累計,則您需要提供三個方法:一個供初始設定使用、一個用來執行累計、一個用來傳回累計值。 如果運算質為非累計,則您需要提供一個傳回值的方法。
您也必須決定運算質實作程式碼應該複製到對應中,或是保留在編譯的 .NET 組件中並透過參考使用。
在下列情況下,請考慮使用內嵌運算質:
其他人可讀取也可修改您的商務邏輯。
您的運算質僅依存於對應所支援的 .NET Framework 命名空間。 如需可用的命名空間,請參閱 使用內嵌 C#、JScript .NET 和 Visual Basic .NET 編寫腳本。
您不想要使用 BizTalk 方案來部署和維護另一個組件。
您正在寫入一系列共用變數的運算質。
在下列情況下,請考慮使用參考的運算質:
您不想要將商務邏輯複製到可能會被其他人看到或修改的對應中。
您的運算質依存於對應不支援的 .NET Framework 類別。
.NET Framework 所提供的新增功能讓您可以使用 BizTalk 方案來部署和維護另一個組件。
另請參閱
開發自訂參考運算質
開發自訂內嵌運算質
開發自訂累計運算質
Microsoft.BizTalk.BaseFunctoids.BaseFunctoid