Compartir por


Ejecutar lógica de negocios durante la sincronización de mezcla

Se aplica a: SQL Server

El marco de trabajo de controladores de lógica de negocios permite escribir un ensamblado de código administrado al que se llama durante el proceso de sincronización de mezcla. El ensamblado incluye lógica de negocios que puede responder a varias condiciones durante la sincronización: cambios de datos, conflictos y errores. El marco de trabajo de controladores de lógica de negocios proporciona un modelo de programación simple y los datos que el proceso de mezcla suministra al ensamblado tienen el formato de un conjunto de datos ADO.NET, lo que permite aprovechar el conocimiento de ADO.NET en lugar de aprender el uso de una interfaz privada. Para obtener más información acerca de los controladores de lógica de negocios de programación, vea:

Usos de los controladores de lógica de negocios

El proceso de sincronización de mezcla puede invocar controladores de lógica de negocios para que lleven a cabo las siguientes acciones:

  • Control personalizado de cambios

  • Resolución personalizada de conflictos

  • Resolución personalizada de errores

Nota:

El controlador de lógica de negocios especificado se ejecuta para cada fila que se sincroniza. La lógica compleja y las llamadas a otras aplicaciones o servicios de red pueden afectar al rendimiento.

Control personalizado de cambios

Se puede invocar el controlador de lógica de negocios durante el procesamiento de cambios de datos que no produzcan conflictos y realizar una de estas tres acciones:

  • Rechazar los datos

    Esto resulta útil para aplicaciones que no desean propagar los datos a un suscriptor o de un suscriptor determinado. Por ejemplo, un administrador puede filtrar las inserciones que no pertenezcan a la partición del suscriptor, o bien rechazar las eliminaciones realizadas en un suscriptor. O bien, una aplicación podría rechazar un pedido realizado en un suscriptor debido a que el inventario ya no está disponible.

  • Aceptar los datos

    Esto es útil para aplicaciones en las que es necesario revisar los cambios de datos realizados en el publicador o en el suscriptor antes de permitir que se propaguen. Por ejemplo, una aplicación de nivel intermedio podría examinar los pedidos de campo nuevos e integrarlos con un proceso de flujo de trabajo de compras en dicho nivel.

  • Aplicar datos personalizados

    Esto es útil para aplicaciones que deben suplantar operaciones o valores de datos específicos. Por ejemplo, una aplicación podría transformar la eliminación de una fila en una actualización especial que establezca la columna estado de la fila en el valor "eliminado" y después realice un seguimiento de la identidad del cliente que lleva a cabo la eliminación. Esto podría ser útil con fines de auditoría o flujo de trabajo.

Resolución personalizada de conflictos

La replicación de mezcla permite la detección y resolución de conflictos, y permite al usuario aceptar una estrategia de resolución predeterminada o elegir la resolución personalizada de los conflictos. Para más información, consulte Replicación de mezcla avanzada: detección y resolución de conflictos. Se puede invocar el controlador de lógica de negocios durante el procesamiento de cambios de datos que produzcan conflictos y realizar una de estas dos acciones:

  • Aceptar la resolución predeterminada

    Esto es útil para aplicaciones que pueden necesitar revisar el conflicto, realizar otras acciones y, posiblemente, registrar un mensaje de conflicto personalizado.

  • Realizar una resolución personalizada

    Esto es útil para aplicaciones que pueden necesitar seleccionar valores de datos específicos para su lógica de negocios y suministrar este conjunto de datos personalizado al proceso de sincronización. Por ejemplo, una aplicación podría proporcionar una nueva versión de la fila ganadora combinando valores de los conjuntos de datos del publicador y el suscriptor.

Resolución personalizada de errores

Se puede invocar la lógica personalizada durante la propagación de cambios que dan como resultado errores. La lógica puede realizar una de las dos acciones siguientes:

  • Aceptar la resolución predeterminada del error

    Esto es útil para aplicaciones que pueden necesitar revisar el error, realizar otras acciones y, posiblemente, registrar un mensaje de error personalizado.

  • Aceptar la resolución personalizada del error

    Esto es útil para aplicaciones que pueden necesitar seleccionar valores de datos específicos para su lógica de negocios y suministrar este conjunto de datos personalizado al proceso de sincronización. Por ejemplo, si el proceso de replicación detecta una infracción de clave duplicada, el controlador de lógica de negocios podría proporcionar una nueva versión del cambio de datos en la que la clave ya no entre en conflicto. Después, los cambios realizados en el publicador y el suscriptor pueden persistir en la base de datos y el proceso de replicación no tiene que compensar el error de inserción con una eliminación.

Escenarios de implementación de controladores de lógica de negocios

Los controladores de lógica de negocios se pueden implementar en:

  • El distribuidor. Utilice una suscripción de inserción para que la lógica de negocios se ejecute en el distribuidor.

  • El suscriptor. Utilice una suscripción de extracción para que la lógica de negocios se ejecute en el suscriptor.

  • Un servidor con Internet Information Services (IIS), si se utiliza la sincronización web. Utilice una suscripción de extracción sincronizada con la sincronización web y el controlador de lógica de negocios se ejecutará en el servidor IIS.