Suscribirse a un canal de eventos
Objetivos de aprendizaje
Después de completar esta unidad, podrá:
- Activar objetos para notificaciones de eventos de cambio en la página Captura de datos de cambio.
- Utilice EMP Connector para suscribirse a un canal de eventos de cambio.
- Genere notificaciones de eventos de cambio realizando actualizaciones en Salesforce.
Ahora que aprendió los fundamentos de Captura de datos de cambio, realicemos un ejercicio práctico generando algunos cambios en Salesforce y recibiendo eventos de cambio. Para esta sección vamos a crear y modificar un registro de empleado.
Crear el objeto personalizado Empleado
Antes de que podamos iniciar ese ejercicio tenemos que definir el objeto personalizado Empleado. El primer paso es crear el objeto personalizado. Puede seguir en su Trailhead Playground u organización de Developer Edition. Para acceder a su Trailhead Playground, haga clic en su imagen de perfil en la esquina superior derecha, haga clic en Organizaciones de prácticas y, a continuación, haga clic en el nombre de usuario de la organización que desea lanzar.
- En Configuración, haga clic en la ficha Gestor de objetos y, a continuación, seleccione Crear > Objeto personalizado.
- Ingrese los siguientes valores.
Etiqueta: Empleado
Etiqueta en plural: Empleados
(Si está disponible, seleccione Starts with vowel sound.)
Nombre de objeto: Empleado
Nombre de registro: Nombre de empleado
3. Seleccione Iniciar el asistente de nueva ficha personalizadadespués de guardar este objeto personalizado.
4. Haga clic en Guardar.
5. En la página Nueva ficha de objeto personalizado, seleccione la ficha Construcción como estilo de ficha.
6. Haga clic en Siguiente | Siguiente | Guardar.
7. Haga clic en Campos y relaciones y, a continuación, haga clic en Nuevo.
8. Siga el asistente de campos para crear estos tres campos:
Tipo de datos: Texto, Etiqueta de campo: Apellidos
, Nombre de campo: Last_Name
, Longitud: 50
, Obligatorio: Sí
Tipo de datos: Texto, Etiqueta de campo: Nombre
, Nombre de campo: First_Name
, Longitud: 50
Tipo de datos: Número, Etiqueta de campo: Tenencia
, Longitud: 18
, Número de decimales: 0
, Nombre de campo: Tenure
Activar el objeto empleando para notificaciones de cambio
Antes de que pueda recibir notificaciones de cambio, tiene que seleccionar los objetos en los que está interesado. En caso contrario, incluso si se suscribe al canal correcto, no recibirá notificaciones. En esta sección seleccionamos el objeto personalizado Empleado para que escuche los cambios en el registro Empleado.
- Desde Configuración, ingrese
Captura de datos de cambio
en el cuadro Búsqueda rápida y haga clic en Captura de datos de cambio. - En Entidades disponibles, seleccione Empleado (Employee__c) y haga clic en la flecha >.
- Haga clic en Guardar.
Suscribirse empleando EMP Connector
A continuación, le mostramos cómo generar y suscribirse a eventos de cambio para registros de Empleado utilizando Conector EMP. En esta sección, proporcionamos los pasos para generar y recibir eventos de cambio de modo que puede ver ejemplos de eventos de cambio. No necesita seguir los pasos para completar esta insignia. Puede consultar los pasos cuando utilice Conector EMP para suscribirse a eventos de cambio más adelante.
Requisitos previos
- Git: Consulte Descargas de Git.
- Apache Maven: Este ejemplo utiliza Apache Maven para construir el proyecto de EMP Connector. Descárguelo e instálelo desde https://maven.apache.org/index.html.
- Kit de desarrollo de Java 8 o versiones posteriores: Consulte Descargas de Java.
- Una organización de Developer Edition o su organización de Trailhead Playground. Para obtener más información sobre cómo obtener el nombre y usuario para su organización de Trailhead Playground, consulte la unidad Obtener su nombre de usuario y contraseña de Trailhead Playground en el módulo Gestión de Trailhead Playground.
- Si no configuró un intervalo de direcciones IP de confianza para su organización, necesitará un token de seguridad para anexar a su contraseña. Para obtener más información, consulte Restablecer su token de seguridad y Establecer intervalos de direcciones IP seguros para su organización.
Pasos
- Para obtener una copia local del repositorio de GitHub de EMP-Connector:
-
$ git clone
https://github.com/forcedotcom/EMP-Connector.git
-
- Para compilar la herramienta EMP-Connector:
$ cd EMP-Connector
$ mvn clean package
- El comando
mvn
genera archivos JAR en la carpetatarget
en el directorio del proyecto EMP-Connector. El archivo JAR generado,target/emp-connector-0.0.1-SNAPSHOT-phat.jar
, incluye el conector y la funciónLoginExample
. El JAR contiene todas las dependencias para el conector, de modo que no tiene que descargarlas de forma separada.
- Para ejecutar EMP Connector en su organización de Developer Edition o Trailhead Playground, escriba este comando y proporcione sus credenciales de la organización de Trailhead Playground o de Salesforce y el canal al que suscribirse. En este ejemplo, el canal es
/data/Employee__ChangeEvent
.$ java -jar target/emp-connector-0.0.1-SNAPSHOT-phat.jar <nombreusuario><contraseña> /data/Employee__ChangeEvent
Una vez suscriba la herramienta EMP-Connector al canal para Employee__c, cualquier cambio en los registros Empleado o la creación de nuevos registros genera notificaciones que la herramienta imprime en la consola.
Crear un registro de empleado
Realicemos algunos cambios en registros para que recibamos algunas notificaciones de eventos de cambio. En primer lugar, cree un registro de empleado.
- Desde el Iniciador de aplicación (), encuentre y seleccione Empleados.
- Haga clic en Nuevo.
- Rellene los siguientes campos.
- Nombre de empleado:
e-100
- Apellidos:
Smith
- Nombre:
Patricia
- Nombre de empleado:
- Haga clic en Guardar.
Cuando guarde el registro de empleado, aparece una notificación de cambio en la consola de la manera siguiente.
{ "schema": "-pszPCNGMHqUPU1ftkjxEA", "payload": { "LastModifiedDate": "2019-09-25T20:36:12.000Z", "OwnerId": "005RM000001vI4mYAE", "CreatedById": "005RM000001vI4mYAE", "ChangeEventHeader": { "commitNumber": 65840604581, "commitUser": "005RM000001vI4mYAE", "sequenceNumber": 1, "entityName": "Employee__c", "changeType": "CREATE", "changedFields": [], "changeOrigin": "com/salesforce/api/soap/47.0;client=SfdcInternalAPI/", "transactionKey": "00051d2e-a65a-3e97-03fc-cdf4e16d5d3c", "commitTimestamp": 1569443772000, "recordIds": [ "a00RM0000004ICTYA2" ] }, "CreatedDate": "2019-09-25T20:36:12.000Z", "First_Name__c": "Patricia", "LastModifiedById": "005RM000001vI4mYAE", "Name": "e-100", "Last_Name__c": "Smith" }, "event": { "replayId": 15053 } }
Actualizar un registro de empleado
A continuación, actualicemos el registro que acabamos de crear agregando un valor al campo Tenencia y luego modificando el nombre.
- En la página de detalles del registro de empleado, haga clic en Modificar.
- Cambie el campo Nombre a
Trish
. - Para Tenencia, ingrese
3
. - Haga clic en Guardar.
Al actualizar el registro de empleado se genera el siguiente mensaje de evento de cambio. Observe que el evento de cambio contiene únicamente campos nuevos y modificados, además de los campos de encabezado.
{ "schema": "-pszPCNGMHqUPU1ftkjxEA", "payload": { "LastModifiedDate": "2019-09-25T20:38:11.000Z", "ChangeEventHeader": { "commitNumber": 65840825286, "commitUser": "005RM000001vI4mYAE", "sequenceNumber": 1, "entityName": "Employee__c", "changeType": "UPDATE", "changedFields": [ "LastModifiedDate", "First_Name__c", "Tenure__c" ], "changeOrigin": "com/salesforce/api/soap/47.0;client=SfdcInternalAPI/", "transactionKey": "00051d4a-7640-5b8c-c6d1-b8db4ce4cf2f", "commitTimestamp": 1569443892000, "recordIds": [ "a00RM0000004ICTYA2" ] }, "First_Name__c": "Trish", "Tenure__c": 3.0 }, "event": { "replayId": 15054 } }
Eliminar un registro de empleado
Ahora veamos qué sucede cuando eliminamos el registro de empleado.
- En la página de detalle de Trish, seleccione Eliminar desde el menú desplegable.
- Haga clic en Eliminar en el mensaje emergente de confirmación.
La eliminación da como resultado el siguiente mensaje de evento. Los eventos de cambio para las eliminaciones no contienen registros ni campos del sistema.
{ "schema": "-pszPCNGMHqUPU1ftkjxEA", "payload": { "ChangeEventHeader": { "commitNumber": 65841052769, "commitUser": "005RM000001vI4mYAE", "sequenceNumber": 1, "entityName": "Employee__c", "changeType": "DELETE", "changedFields": [], "changeOrigin": "com/salesforce/api/soap/47.0;client=SfdcInternalAPI/", "transactionKey": "00051d67-b628-09dc-15a0-05101183b4d1", "commitTimestamp": 1569444019000, "recordIds": [ "a00RM0000004ICTYA2" ] } }, "event": { "replayId": 15055 } }
Recuperar un registro de empleado
Cuando elimina un registro, su “eliminación es recuperable” y puede restaurarse dentro de un límite de tiempo específico. Restauremos el registro a través de Apex.
- Haga clic en el menú de acceso rápido ( ) y seleccione Developer Console.
- En Developer Console, haga clic en Debug (Depuración) y seleccione Open Execute Anonymous Window (Abrir ventana de ejecución anónima).
- En la nueva ventana, ingrese lo siguiente y sustituya el marcador de posición de Id. por el valor de Id. devuelto en el campo de encabezado recordIds. Podrá encontrar el campo
recordIds
en el mensaje de evento de cambio que recibió después de eliminar el registro en el paso anterior.
Employee__c record = [SELECT Id,Name FROM Employee__c WHERE Id='ID_Placeholder' ALL ROWS]; undelete record;
- Haga clic en Execute (Ejecutar).
La recuperación da como resultado el siguiente mensaje de evento. El evento de cambio de un registro recuperado contiene campos del registro original eliminado.
{ "schema": "-pszPCNGMHqUPU1ftkjxEA", "payload": { "LastModifiedDate": "2019-09-25T20:43:31.000Z", "OwnerId": "005RM000001vI4mYAE", "CreatedById": "005RM000001vI4mYAE", "ChangeEventHeader": { "commitNumber": 65841428802, "commitUser": "005RM000001vI4mYAE", "sequenceNumber": 1, "entityName": "Employee__c", "changeType": "UNDELETE", "changedFields": [], "changeOrigin": "com/salesforce/api/soap/47.0;client=devconsole", "transactionKey": "00051d9a-2fd0-e4de-a8e6-09f68b7ca54c", "commitTimestamp": 1569444212000, "recordIds": [ "a00RM0000004ICTYA2" ] }, "CreatedDate": "2019-09-25T20:36:12.000Z", "First_Name__c": "Trish", "LastModifiedById": "005RM000001vI4mYAE", "Tenure__c": 3.0, "Name": "e-100", "Last_Name__c": "Smith" }, "event": { "replayId": 15056 } }
Recursos