Configurar el tamaño de lote para el activador de eventos de plataforma

Última actualización el 30 de abril de 2023 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo configurar el usuario y el tamaño del lote para Platform Event Trigger?

Objetivos:

Después de leer este blog, podrá:

  • Comprender el tamaño del lote para el activador de eventos de la plataforma
  • Anular el usuario de ejecución predeterminado para el desencadenador de eventos de la plataforma
  • Cree PlatformEventSubscriberConfig a través de la API REST
  • y mucho más

Jestilla Zetkin trabaja como arquitecta de Salesforce en Gurukul On Cloud (GoC) . Recientemente, enfrentó desafíos mientras trabajaba con eventos de plataforma, principalmente límites de gobernadores. Quiere aprender a configurar el tamaño del lote para el activador de eventos de la plataforma. En este ejercicio, configuraremos el tamaño del lote para lo siguiente:

  1. Activador de vértice
    1. LeadGenerationEventTrigger en Lead_Generation__e
    2. Tamaño del lote: 50
    3. Usuario ejecutor: Usuario de integración

¿Qué es Plataforma de Eventos?

Las arquitecturas basadas en eventos se han vuelto muy populares en los últimos años, y por una buena razón. Se basa en el patrón de fuego y olvido . Activar un evento y dejar que cada sistema maneje la lógica empresarial le permite mantener los sistemas no relacionados desacoplados y puede ayudar a simplificar la arquitectura.

Los eventos de la plataforma le permiten entregar notificaciones de eventos seguras, escalables y personalizables dentro de Salesforce o desde fuentes externas. Las aplicaciones pueden publicar y suscribirse a eventos de plataforma en la plataforma de Salesforce mediante Apex, Flow o en un sistema externo mediante CometD. Si desea obtener más información sobre el evento de plataforma, consulte el módulo de Trailhead .

¿Cuál es el tamaño de lote predeterminado para el desencadenador de eventos de plataforma?

De forma predeterminada, el disparador de eventos de la plataforma se ejecuta como el usuario del sistema de procesos automatizados con un tamaño de lote de 2000 mensajes de eventos. A veces es necesario cambiar el usuario y el tamaño del lote para eludir los límites del gobernador u otros desafíos.

Salesforce le permite anular el usuario de ejecución predeterminado y el tamaño de lote de un desencadenador de Apex de evento de plataforma con PlatformEventSubscriberConfig en la API de herramientas o la API de metadatos para configurar el desencadenador.

Puede especificar cualquier usuario activo en la organización de Salesforce. El activador se ejecuta en un contexto de sistema con privilegios para acceder a todos los registros independientemente de los permisos de nivel de campo y de objeto del usuario. Puede especificar un tamaño de lote personalizado de 1 a 2000. El tamaño del lote es el número máximo de mensajes de eventos que se pueden enviar a un disparador en una ejecución.

Comprender el objeto PlatformEventSubscriberConfig

Hagamos una pausa aquí, familiarícese con el objeto de la API de herramientas PlatformEventUsageMetric en Salesforce. Representa los ajustes de configuración para un disparador de Apex de evento de plataforma, incluido el tamaño del lote y el usuario que ejecuta el disparador.

Nombre del campo
Detalles
Tamaño del lote Un tamaño de lote personalizado, de 1 a 2000, para el desencadenador Apex del evento de plataforma. El tamaño del lote corresponde al número máximo de mensajes de eventos que se pueden enviar a un disparador en una ejecución. El tamaño de lote predeterminado es 2000 para activadores de eventos de plataforma.
Nombre del desarrollador El nombre exclusivo del objeto PlatformEventSubscriberConfig.
etiqueta maestra Etiqueta para PlatformEventSubscriberConfig. En la interfaz de usuario, este campo es Configuración de suscriptor de eventos de plataforma.
PlatformEventConsumerId El ID del desencadenador de Apex del evento de plataforma que se va a configurar.
ID de usuario El ID del usuario con el que se ejecuta el desencadenador de Apex del evento de plataforma. De forma predeterminada, el disparador de eventos de la plataforma se ejecuta como la entidad de proceso automatizado. Establecer el usuario que ejecuta a un usuario específico tiene estos beneficios:

  • Los registros se crean o modifican como este usuario.
  • Los registros con campos OwnerId tienen sus campos OwnerId completados para este usuario cuando se crean o modifican.
  • Este usuario crea los registros de depuración para la ejecución del disparador.
  • Puede enviar un correo electrónico desde el activador, que no es compatible con el usuario de Proceso automatizado predeterminado.

Los componentes PlatformEventSubscriberConfig tienen el sufijo .platformEventSubscriberConfig y se almacenan en la carpeta PlatformEventSubscriberConfigs .

Este componente PlatformEventSubscriberConfig tiene la etiqueta LeadGenerationEventTriggerConfig . Contiene la configuración de un disparador de eventos de plataforma, LeadGenerationTrigger , y especifica el tamaño del lote y el usuario.


<?versión xml="1.0" codificación="UTF-8"?>
<PlatformEventSubscriberConfig xmlns="http://soap.sforce.com/2006/04/metadatos"> <platformEventConsumer>LeadGenerationTrigger</platformEventConsumer> <tamaño del lote>50</tamaño del lote> <masterLabel>LeadGenerationEventTriggerConfig</masterLabel> <usuario>desarrollador@automationchampion.com</usuario> <isProtected>falso</isProtected>
</PlatformEventSubscriberConfig>

Práctica guiada (nosotros hacemos):

Para agregar una configuración, realice una solicitud POST como se menciona a continuación:

  1. Abra Workbench e inicie sesión con su nombre de usuario y contraseña de Trailhead Playground .
  2. Asegúrese de haber seleccionado la opción Producción para el medio ambiente .
  3. Navegue a la pestaña Utilidades y seleccione la opción REST Explorer .
  4. Selecciona las siguientes opciones:
    1. Elija un método HTTP para realizar en el URI del servicio REST API a continuación : POST
    2. URL : /services/data/v58.0/tooling/sobjects/PlatformEventSubscriberConfig
    3. Cuerpo : proporcione los valores en el cuerpo de la solicitud. Esta solicitud de ejemplo configura un activador existente con un tamaño de lote de 50 y especifica el ID de un usuario en ejecución.
      1. {
        "Tamaño del lote": "50",
        “Nombre del desarrollador”:”LeadGenerationEventTriggerConfig”,
        “MasterLabel”:”LeadGenerationEventTriggerConfig”,
        “PlatformEventConsumerId”: “01qB0000000Zcug”,
        “ID de usuario”: “005B00000015gt8”
        }
      2. Dónde:
        1. 01qB0000000Zcug, disparador de Apex en Lead_Generation__e
        2. 005B00000015gt8, es el ID de usuario del usuario de integración
    4. Haga clic en Ejecutar .
  5. Puede consultar y recuperar las configuraciones en su organización con SOQL. Si consulta desde Developer Console Query Editor, asegúrese de seleccionar Use Tooling API . Esta consulta de ejemplo recupera todas las configuraciones establecidas en su organización de Salesforce.

Evaluación formativa:

¡Quiero saber de ti!

¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2023/04/30/configure-the-batch-size-for-platform-event-trigger-2/

Entradas recomendadas