Esecuzione di logiche di business durante la sincronizzazione di tipo mergeExecute Business Logic During Merge Synchronization

Il framework di gestione della logica di business consente di scrivere un assembly di codice gestito che viene chiamato durante il processo di sincronizzazione di tipo merge.The business logic handler framework allows you to write a managed code assembly that is called during the merge synchronization process. L'assembly include la logica di business che consente di rispondere a diverse situazioni durante la sincronizzazione, ad esempio modifiche ai dati, conflitti ed errori.The assembly includes business logic that can respond to a number of conditions during synchronization: data changes, conflicts, and errors. Il framework di gestione della logica di business offre un semplice modello di programmazione e i dati forniti all'assembly dal processo di merge sono sotto forma di set di dati ADO.NET. In questo modo, è possibile approfondire la propria conoscenza di ADO.NET anziché apprendere un'interfaccia specifica.The business logic handler framework provides a simple programming model, and the data that the merge process provides to your assembly is in the form of an ADO.NET data set, so you can leverage knowledge of ADO.NET rather than learning a proprietary interface. Per ulteriori informazioni sulla programmazione dei gestori della logica di business, vedere:For more information on programming business logic handlers, see:

Utilizzi dei gestori della logica di businessUses for Business Logic Handlers

Il processo di sincronizzazione di tipo merge consente di richiamare i gestori della logica di business per eseguire le operazioni seguenti:The merge synchronization process can invoke business logic handlers to perform:

  • Gestione personalizzata delle modificheCustom change handling

  • Risoluzione personalizzata dei conflittiCustom conflict resolution

  • Risoluzione personalizzata degli erroriCustom error resolution

Nota

Il gestore della logica di business specificato viene eseguito per ogni riga sincronizzata.The business logic handler you specify is executed for every row that is synchronized. La complessità della logica e le chiamate ad altre applicazioni o servizi di rete possono ridurre le prestazioni.Complex logic and calls to other applications or network services can impact performance.

Gestione personalizzata delle modificheCustom Change Handling

Il gestore della logica di business può essere richiamato durante l'elaborazione di modifiche ai dati non in conflitto e consente di eseguire una delle tre azioni seguenti:The business logic handler can be invoked during the processing of non-conflicting data changes and can perform one of three actions:

  • Rifiutare i datiReject the data

    Operazione utile per le applicazioni di cui non si desidera propagare le modifiche a o da un Sottoscrittore specifico.This is useful for applications that do not want changes propagated to or from a given Subscriber. Un amministratore, ad esempio, potrebbe escludere tramite un filtro gli inserimenti che non appartengono alla partizione del Sottoscrittore oppure eventualmente rifiutare le eliminazioni eseguite in un Sottoscrittore.For example, an administrator could filter out inserts that do not belong in the Subscriber’s partition, or possibly reject deletes performed at a Subscriber. Un'applicazione potrebbe inoltre rifiutare un ordine immesso in un Sottoscrittore perché le scorte non sono più disponibili.As another example, an application could reject an order entered at a Subscriber because the inventory is no longer available.

  • Accettare i datiAccept the data

    Operazione utile per le applicazioni in cui è necessario esaminare le modifiche ai dati apportate nel server di pubblicazione o nel Sottoscrittore prima di consentirne la propagazione.This is useful for applications in which it is necessary to review data changes made at either the Publisher or Subscriber before allowing them to be propagated. Un'applicazione di livello intermedio, ad esempio, consentirebbe di esaminare i nuovi ordini provenienti dal campo e di integrarli con un processo del flusso di lavoro relativo all'approvvigionamento nel livello intermedio.For example, a mid-tier application could examine new orders coming in from the field and integrate with a procurement workflow process in the mid-tier.

  • Applicare dati personalizzatiApply custom data

    Operazione utile per le applicazioni in cui è necessario sostituire operazioni o valori di dati specifici.This is useful for applications that need to override specific data values or operations. In un'applicazione, ad esempio, un'eliminazione di riga potrebbe essere trasformata in un aggiornamento speciale che imposta una colonna status della riga sul valore "deleted" e quindi rileva l'identità del client che ha eseguito l'eliminazione.For example, an application could transform a row delete into a special update that sets a status column in the row to a value of "deleted" and then tracks the identity of the client performing the delete. Questa operazione potrebbe risultare utile per effettuare controlli e monitorare il flusso di lavoro.This might be useful for auditing or workflow purposes.

Risoluzione personalizzata dei conflittiCustom Conflict Resolution

La replica di tipo merge consente di rilevare e risolvere i conflitti, permettendo di accettare una strategia di risoluzione predefinita o di scegliere la risoluzione personalizzata per i conflitti.Merge replication provides conflict detection and resolution, allowing you to accept a default resolution strategy or choose custom resolution for conflicts. Per altre informazioni, vedere Advanced Merge Replication Conflict Detection and Resolution.For more information, see Advanced Merge Replication Conflict Detection and Resolution. Il gestore della logica di business può essere richiamato durante l'elaborazione di modifiche ai dati in conflitto e consente di eseguire una delle due azioni seguenti:The business logic handler can be invoked during the processing of conflicting data changes and can perform one of two actions:

  • Accettare la risoluzione predefinitaAccept default resolution

    Operazione utile per le applicazioni per cui può essere necessario esaminare il conflitto, eseguire altre azioni ed eventualmente registrare un messaggio personalizzato del log dei conflitti.This is useful for applications that might need to review the conflict, perform additional actions, and possibly log a custom conflict log message.

  • Eseguire la risoluzione personalizzataPerform custom resolution

    Operazione utile per le applicazioni per cui può essere necessario selezionare valori di dati specifici della logica di business e fornire al processo di sincronizzazione questo set di dati personalizzato.This is useful for applications that might need to select data values that are specific to their business logic and supply the synchronization process with this custom dataset. Un'applicazione, ad esempio, potrebbe rendere disponibile una nuova versione della riga confermata combinando i valori dei set di dati del server di pubblicazione e del Sottoscrittore.For example, an application could provide a new version of the winning row by combining values from the Publisher and Subscriber data sets.

Risoluzione personalizzata degli erroriCustom Error Resolution

È possibile richiamare la logica personalizzata durante la propagazione delle modifiche che restituiscono errori.Custom logic can be invoked during the propagation of changes that result in errors. La logica consente di eseguire una delle due azioni seguenti:The logic can perform one of two actions:

  • Accettare la risoluzione predefinita degli erroriAccept default error resolution

    Operazione utile per le applicazioni per cui può essere necessario esaminare l'errore ed eseguire l'altra azione ed eventualmente registrare un messaggio personalizzato del log degli errori.This is useful for applications that might need to review the error and perform additional action and possibly log a custom error log message.

  • Accettare la risoluzione personalizzata degli erroriAccept custom error resolution

    Operazione utile per le applicazioni per cui può essere necessario selezionare valori di dati specifici della logica di business e fornire al processo di sincronizzazione questo set di dati personalizzato.This is useful for applications that might need to select data values that are specific to their business logic and supply the synchronization process with this custom dataset. Se, ad esempio, durante il processo di replica viene rilevata una violazione di chiave duplicata, il gestore della logica di business potrebbe specificare una nuova versione della modifica ai dati in cui la chiave non risulta più in conflitto.For example, if the replication process encounters a duplicate key violation, the business logic handler could provide a new version of the data change in which the key will no longer conflict. Le modifiche apportate nel server di pubblicazione e nel Sottoscrittore possono essere mantenute nel database e il processo di replica non deve compensare l'inserimento non riuscito con un'eliminazione.Changes made at the Publisher and Subscriber can then persist in the database, and the replication process doesn't have to compensate for the failed insert with a delete.

Scenari di distribuzione per gestori della logica di businessDeployment Scenarios for Business Logic Handlers

È possibile distribuire gestori della logica di business nei sistemi seguenti:Business logic handlers can be deployed at:

  • Server di distribuzione.The Distributor. Utilizzare una sottoscrizione push per eseguire la logica di business nel server di distribuzione.Use a push subscription so that business logic is executed at the Distributor.

  • Sottoscrittore.The Subscriber. Utilizzare una sottoscrizione pull per eseguire la logica di business nel Sottoscrittore.Use a pull subscription so that business logic is executed at the Subscriber.

  • Server IIS (Internet Information Services), se si utilizza la sincronizzazione tramite il Web.An Internet Information Services (IIS) server if Web synchronization is used. Utilizzare una sottoscrizione pull sincronizzata tramite il Web per eseguire il gestore della logica di business nel server IIS.Use a pull subscription synchronized with Web synchronization, and the business logic handler will execute at the IIS Server.

Vedere ancheSee Also

Replica di tipo merge Merge Replication
Subscribe to Publications Subscribe to Publications
Sincronizzare i dati Synchronize Data
Web Synchronization for Merge ReplicationWeb Synchronization for Merge Replication