ValidationAdapter
ValidationAdapter 範例會示範如何對回應者公開程序的訊息執行特殊驗證規則。 Microsoft® BizTalk Accelerator for RosettaNet (BTARN) 原生地在傳送或接收管線和協調流程中執行驗證。 如果您想要執行其他驗證,可以建立驗證配接器。 其他驗證可能包含跨欄位或特定業務的驗證規則,而您無法使用 XSD 實作這些規則。
您可以將 C# 程式碼新增至 ValidationAdapter 範例、發佈介面,然後將配接器輸入合約屬性,以建立驗證配接器。 BTARN 會在訊息處理期間呼叫驗證配接器。
由於 ValidationAdapter 是由公開程序協調流程使用的,因此,ValidationAdapter 會在與裝載該協調流程之 BizTalk 主控件服務相同的認證下執行。
ValidationAdapter 範例位於 <drive> :\Program Files\Microsoft BizTalk < Version > Accelerator for RosettaNet\SDK\ValidationAdapter 中。
示範
ValidationAdapter 範例示範服務內容中電子郵件地址的驗證。 此範例會實作 IValidateRNIFMessageParts
介面。 如果電子郵件地址的格式不正確,則會傳回 RNIFException
。 XML 檔 preambleToValidate、 serviceHeaderToValidate、 deliveryHeaderToValidate和 serviceContentToValidate 會定義驗證。
ValidationAdapter 會使用 RNIFerror.IsOkToSendException 屬性,決定在錯誤事件下要傳送的訊息。 如果驗證不成功,ValidationAdapter 便會將 RNIFerror.ErrorCode 設定為非零值。 如果 RNIFerror.IsOkToSendException 屬性為 true,則程序會傳送負值通知。 在 RNIF 2.0 中,這屬於例外狀況訊息。 在 RNIF 1.1 中,則屬於接收通知的例外狀況訊息。 如果 RNIFerror.IsOkToSendException 屬性為 false,並且已設定 0A1,則程序將會傳送 0A1 訊息。 一旦進程傳送例外狀況訊息、接收通知例外狀況訊息或 0A1 訊息,它就會終止。
如果 RNIFerror.IsOkToSendException 屬性為 false,並且未設定 0A1,則程序將不會傳送例外狀況訊息或 0A1 訊息。 程序會記錄錯誤,然後終止。
如果驗證成功,ValidationAdapter 便會將 RNIFerror.ErrorCode 設定為 0,並且 BTARN 會將訊息路由傳送至私用程序。 BTARN 只有在驗證成功的情況下,才會將訊息路由傳送至私用程序。
實作這個範例
若要實作 ValidationAdapter 範例,您必須在協議中加入驗證配接器。
在協議中加入驗證配接器
按一下[開始],指向[所有程式],指向 [Microsoft BizTalk Accelerator for RosettaNet],然後按一下[BizTalk Accelerator for RosettaNet管理主控台]。
在 [BizTalk Accelerator for RosettaNet管理主控台] 中,展開[BizTalk Accelerator for RosettaNet],然後按一下 [合約]。
按兩下您要加入至驗證配接器的協議。
在 [ 驗證配接器 ] 對話方塊中,按一下 [省略號] 按鈕 (...) 按鈕到 [元件名稱] 右邊,移至包含驗證配接器元件的位置,選取適當的 .dll 檔案,然後按一下 [ 開啟]。
按一下 [類別名稱] 的向下箭號,選取驗證配接器類別,然後按一下 [ 確定]。