Ejecutar la lógica de negocios durante la sincronización de mezcla
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:
- Referencia de la interfaz de programación de aplicaciones (API): Microsoft.SqlServer.Replication.BusinessLogicSupport
- Instrucciones para implementar un controlador de lógica de negocios: How to: Implement a Business Logic Handler for a Merge Article (Replication Programming)
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 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 réplica 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 obtener más información, vea Detección y resolución de conflictos de réplica de mezcla avanzada. 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 el proceso de sincronización con este conjunto de datos personalizado. 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 réplica 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 réplica 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 Servicios de Internet Information Server (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.
Vea también
Conceptos
Características avanzadas de la réplica de mezcla
Información general sobre la réplica de mezcla
Suscribirse a publicaciones
Sincronizar datos
Sincronización Web para la réplica de mezcla