Comprender Captura de datos de cambio
Objetivos de aprendizaje
Después de completar esta unidad, podrá:
- Describir lo que los los eventos de cambio.
- Explicar los beneficios de la tecnología de transmisión.
- Explicar cuándo utilizar eventos de cambio.
Antes de empezar este módulo
¡Sabemos que está ansioso por empezar! Pero antes de ponerse manos a la obra en este módulo, debe estar familiarizado con algunos conceptos para completar este módulo.
Como una de las formas de suscribirse a Captura de datos de cambio es con desencadenadores de Apex, debe tener algunas nociones básicas de las clases y los desencadenadores de Apex y pruebas de Apex.
- Si no utilizó Apex antes y es nuevo en la programación orientada a objetos, consulte la ruta Construir habilidades de programación de Apex. Esta ruta crea una serie de módulos que le ayudan a crear su conocimiento de Apex paso a paso desde cero.
- Si está familiarizado con un lenguaje de programación orientado a objetos y desea obtener información acerca de Apex, consulte estos módulos: Fundamentos de Apex y base de datos, Pruebas de Apex y Desencadenadores de Apex.
Además, una familiarización con eventos de plataforma le ayuda a comprender Captura de datos de cambio, que es un tipo especial de eventos de plataforma. Aunque no es obligatorio para completar este módulo, le recomendamos realizar el módulo Fundamentos de eventos de plataforma también.
¿Qué es Captura de datos de cambio?
Captura de datos de cambio es un producto de transmisión de la Plataforma Lightning que le permite integrar de forma eficiente sus datos de Salesforce con sistemas externos. Con Captura de datos de cambio puede recibir cambios en registros de Salesforce en tiempo real y sincronizar los registros correspondientes en un almacén de datos externo. Captura de datos de cambio publica eventos de cambios en registros de Salesforce correspondientes a operaciones de creación, actualización, eliminación y recuperación.
Utilice Captura de datos de cambio para actualizar datos en un sistema externo en vez de realizar exportaciones periódicas o sondeos de API. La captura de datos con notificaciones de eventos de Captura de datos de cambio garantiza que sus datos externos pueden actualizarse en tiempo real y mantenerse actualizados.
Puede pensar en Captura de datos de cambio como parte del proceso de replicación de datos en tiempo real para la nube. La replicación de los datos incluye las siguientes fases.
- El inicio (día 0) se copia el conjunto de datos externo al sistema externo
- Sincronización continua de los datos nuevos y actualizados en el sistema externo
- Reconciliación de datos duplicados entre los dos sistemas
Captura de datos de cambio es la parte de sincronización continua de la replicación (paso 2). En otras palabras, publica las deltas de los datos de Salesforce, independientemente de que sean nuevos registros o registros cambiados. Captura de datos de cambio requiere una aplicación de integración para la recepción de eventos y la realización de actualizaciones en el sistema externo.
¿Qué son los eventos de transmisión y por qué utilizarlos?
Los eventos de transmisión son mensajes de notificación instantáneos que un sistema (el publicador) envía a otro (el suscriptor). Mediante el modelo de publicador/suscriptor, Captura de datos de cambio envía notificaciones a los suscriptores siempre que se produce un cambio en los datos de Salesforce. Los mensajes de notificación se envían al bus de eventos al que los clientes pueden suscribirse usando el modelo de publicación y suscripción de la API o un desencadenador de Apex. Los sistemas dirigidos por eventos simplifican la comunicación entre sistemas empresariales distribuidos, aumentan la capacidad de ampliación y entregan datos en tiempo real. Usar una arquitectura basada en eventos para conectar los sistemas es más eficiente que sondear datos mediante una API como la API de SOAP o la API de REST. Al usar una API para sondear el servidor en busca de actualizaciones de datos, que se obtengan datos recientes dependerá de la frecuencia con que se haga el sondeo. Además, los clientes pueden realizar llamadas excesivas y causar enlentecimiento del servidor.
Cuándo utilizar Captura de datos de cambio
Digamos que tiene un sistema de planificación de recursos de negocio (ERP) que almacena su información de negocio, y algunos de sus datos de Salesforce están duplicados allí. Para garantizar que sus datos de ERP están actualizados, puede utilizar eventos de cambio para sincronizar los cambios en los registros de Salesforce en su sistema de ERP. Por ejemplo, si la información de pedidos se encuentra tanto en su sistema de ERP como en Salesforce, puede transmitir eventos de cambio de pedidos desde Salesforce a una aplicación de integración. La aplicación luego sincroniza los cambios en el sistema de ERP.
Utilice los eventos de cambio para:
- Recibir notificaciones de cambios de registros de Salesforce, incluyendo operaciones de creación, actualización, eliminación y recuperación.
- Capturar los cambios en la mayoría de los campos de todos los registros.
- Obtener información sobre el cambio en el encabezado del evento, como el origen del cambio, de modo que pueda ignorar cambios que genere su cliente.
- Realizar actualizaciones en los datos empleando límites de transacciones cuando más de una operación forme parte de la misma transacción.
- Utilizar un esquema de eventos con versiones.
- Suscribirse a cambios masivos de una manera ampliable.
- Obtener acceso a eventos retenidos hasta un máximo de 3 días.
Trataremos los detalles de mensajes de evento de cambio, incluyendo los campos de encabezado, en la siguiente unidad.
Una aplicación de integración de ejemplo
Robert Bullard es un desarrollador de software de Get Cloudy Consulting, una consultoría de tecnología avanzada especializada en implementaciones de sistemas CRM. Robert está desarrollando una aplicación de sincronización de recursos humanos para un cliente. La aplicación sincroniza los cambios en los datos de los registros de Salesforce con un sistema de RRHH que es externo a Salesforce. El cliente de consultoría de Robert crea y modifica algunos de sus datos de recursos humanos en Salesforce como registros de objetos personalizados de Employee__c. El cliente desea que los datos de empleados del sistema de RRHH estén sincronizados con Salesforce.
La aplicación de integración de Robert tiene los siguientes requisitos.
- Replicar todos los registros de objetos personalizados de empleados (Employee__c) nuevos o cambiados en el almacén de datos de RRHH.
- Replicar todos los registros de empleados junto con todos sus campos.
- Utilizar replicación basada en transacciones. Si hay múltiples actualizaciones en una única transacción, la aplicación de integración envía estas actualizaciones como parte de una transacción.
- Reanuda la replicación de las notificaciones de eventos que están almacenados un máximo de 3 días si falla el proceso de replicación de datos.
Sincronización de datos con Captura de datos de cambio
Después de revisar las diversas opciones de transmisión de eventos en Salesforce, Robert decide que Captura de datos de cambio es la respuesta. Cuando suscribe su aplicación al canal para el objeto personalizado Empleado, la aplicación recibe notificaciones de cada cambio con todos los campos modificados. La aplicación inspecciona los campos de encabezado del mensaje de notificación para determinar si el cambio puede realizarse directamente, o bien si el cambio debería combinarse con otros cambios. Ya que Salesforce almacena eventos de cambio durante un máximo de 3 días, la aplicación puede recuperar notificaciones que se perdieron.
Recursos
-
Salesforce Developers: Change Data Capture Developer Guide
-
Salesforce Developers: Guía del desarrollador del modelo de publicación y suscripción de la API
-
Trailhead: Fundamentos de los eventos de plataforma