Skip to main content

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.

  1. En Configuración, haga clic en la ficha Gestor de objetos y, a continuación, seleccione Crear > Objeto personalizado.
  2. 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:

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.

  1. 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.
  2. En Entidades disponibles, seleccione Empleado (Employee__c) y haga clic en la flecha >.
  3. Haga clic en Guardar.

La página Captura de datos de cambio

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.

Nota

EMP Connector es una herramienta gratuita, de código abierto mantenida por la comunidad. Salesforce proporciona esta herramienta como ejemplo de cómo suscribirse a eventos empleando CometD. Para contribuir al proyecto EMP Connector con sus propias mejoras, envíe solicitudes de incorporación de cambios al repositorio en https://github.com/forcedotcom/EMP-Connector.

Requisitos previos

Pasos

  1. Para obtener una copia local del repositorio de GitHub de EMP-Connector:
  2. Para compilar la herramienta EMP-Connector:
    • $ cd EMP-Connector
    • $ mvn clean package
    • El comando mvn genera archivos JAR en la carpeta target 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ón LoginExample. El JAR contiene todas las dependencias para el conector, de modo que no tiene que descargarlas de forma separada.
  3. 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
Nota
  • Debe anexar su token de seguridad a su contraseña si no configuró un rango de direcciones IP de confianza para su organización. Para obtener más información, consulte la sección Requisitos previos.
  • La línea de comandos interpreta que algunos caracteres tengan una función especial. Si su contraseña incluye caracteres especiales, enciérrelos entre comillas simples de modo que se pasen como una cadena literal. Por ejemplo, en sistemas basados en macOS y Unix, algunos de los caracteres especiales que tienen que incluirse dentro de comillas son !, \ y $.

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. 

  1. Desde el Iniciador de aplicación (Iniciador de aplicación), encuentre y seleccione Empleados.
  2. Haga clic en Nuevo.
  3. Rellene los siguientes campos.
    • Nombre de empleado: e-100
    • Apellidos: Smith
    • Nombre: Patricia
  4. 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. 

  1. En la página de detalles del registro de empleado, haga clic en Modificar.
  2. Cambie el campo Nombre a Trish.
  3. Para Tenencia, ingrese 3.
  4. 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. 

  1. En la página de detalle de Trish, seleccione Eliminar desde el menú desplegable.
  2. 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.

  1. Haga clic en el menú de acceso rápido ( Icono de engranaje) y seleccione Developer Console.
  2. En Developer Console, haga clic en Debug (Depuración) y seleccione Open Execute Anonymous Window (Abrir ventana de ejecución anónima).
  3. 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;
  1. 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

¡Siga aprendiendo gratis!
Regístrese para obtener una cuenta y continuar.
¿Qué hay para usted?
  • Consiga recomendaciones personalizadas para sus objetivos profesionales
  • Practique sus aptitudes con retos prácticos y pruebas
  • Siga y comparta su progreso con empleadores
  • Póngase en contacto para recibir asesoramiento y oportunidades laborales