在合併同步處理期間執行商務邏輯

適用於:SQL Server

商業邏輯處理常式架構可讓您撰寫在合併同步處理期間會被呼叫的受控程式碼組件。 該組件包含可在同步期間對多種情況做出回應的業務邏輯:資料變更、衝突和錯誤。 商業邏輯處理器框架提供簡單的程式設計模型,合併過程提供給組合語言的資料是以 ADO.NET 資料集的形式呈現,因此你可以使用對 ADO.NET 的知識,而不必學習專有介面。 如需程式設計商務邏輯處理常式的詳細資訊,請參閱:

商業邏輯處理常式的用途

合併同步處理可以叫用商務邏輯處理常式以執行下列作業:

  • 自訂變更處理

  • 自訂衝突解決方案

  • 自訂錯誤解決方案

注意

指定的商務邏輯處理常式會針對要同步處理的每一個資料列執行。 複雜的邏輯以及呼叫其他應用程式或網路服務會影響效能。

自訂變更處理

商務邏輯處理常式可以在處理相互不衝突的資料變更期間叫用,並可執行下列三個動作之一:

  • 拒絕資料

    這對於不希望變更傳播到特定訂閱者,或從特定訂閱者傳播出來的應用程式很有用。 例如,系統管理員可以篩除不屬於訂閱者分割區的插入作業,或拒絕在訂閱者端執行的刪除作業。 另一個範例是,當庫存無法再使用時,應用程式可以拒絕在「訂閱者」端輸入的訂單。

  • 接受資料

    這對於這類應用程式特別有用:在允許「發行者」或「訂閱者」端所做的資料變更傳播出去之前,必須先檢閱這些變更。 例如,中層應用程式可以檢查來自現場的新訂單,並與中層採購工作流程處理整合在一起。

  • 套用自訂資料

    這對於需要覆寫特定資料值或作業的應用程式非常有用。 例如,應用程式可以將資料列刪除作業轉換為一種特殊更新,將該資料列中的 status 資料行設為「已刪除」,然後追蹤執行刪除之用戶端的身分。 可用於稽核或工作流程。

自訂衝突解決方案

合併式複寫提供了衝突偵測和解決,可讓您接受預設解決策略或選取自訂的衝突解決方案。 如需詳細資訊,請參閱 進階合併式複寫衝突偵測與解決。 商務邏輯處理常式可以在處理衝突的資料變更期間叫用,並可執行下列兩個動作之一:

  • 接受預設解決方案

    這對於可能需要檢閱衝突、執行其他動作以及記錄自訂衝突記錄檔訊息的應用程式非常有用。

  • 執行自訂解決方案

    這適用於可能需要針對商務邏輯選取特定資料值,而且會在自訂資料集內提供同步處理流程的應用程式。 例如,應用程式可以結合來自「發行者」和「訂閱者」資料集的值,提供勝出資料列的新版本。

自訂錯誤解決方案

在傳播產生錯誤的變更時可以叫用自訂邏輯。 此邏輯可以執行下列兩個動作之一:

  • 接受預設錯誤解決方案

    這對於可能需要檢閱錯誤、執行其他動作以及記錄自訂錯誤記錄檔訊息的應用程式非常有用。

  • 接受自訂錯誤解決方案

    這適用於可能需要針對商務邏輯選取特定資料值,而且會在自訂資料集內提供同步處理流程的應用程式。 例如,當複寫處理遇到重複索引鍵違規時,商務邏輯處理常式可以提供新版的資料變更,其中的索引鍵將不再發生衝突。 隨後在「發行者」與「訂閱者」端所作的變更仍將保存在資料庫中,且複寫處理不必以刪除來補償失敗的插入。

業務邏輯處理常式的部署情境

業務邏輯處理程式可以部署於:

  • 經銷商。 使用推送訂閱,以便在散發端執行商業邏輯。

  • 訂閱者。 使用提取訂閱,以便在「訂閱者」端執行商務邏輯。

  • 若使用 Web 同步,則需有 Internet Information Services (IIS) 伺服器。 使用與 Web 同步處理同步的提取式訂閱,而商業邏輯處理常式將在 IIS 伺服器上執行。