miércoles, 1 de octubre de 2025

Auditoría de Errores en Salesforce: Implementando RaisesPlatformEvents en Apex

Hace unos meses me encontraba haciendo una superbadge sobre integraciones en Salesforce cuando me encontré con esta interfaz que nunca había usado.

La interfaz RaisesPlatformEvents permite crear automáticamente un objeto del tipo BatchApexErrorEvent cada vez que se registra un error en un batch job, este objeto representa un evento de plataforma asociado a la clase Batch.

Respecto a los eventos de plataforma aquí va la definición que da la ayuda de Salesforce: "Utilizando eventos de plataforma, los publicadores pueden enviar datos de eventos personalizados a través de Apex, un proceso, un flujo, una API Pub/Sub u otras API. Los suscriptores pueden recibir mensajes de eventos personalizados desde Salesforce o un sistema externo utilizando clientes de Apex, Pub/Sub API, procesos o flujos."

Aquí va un ejemplo de como se podría usar la interfaz en un batch para generar eventos de plataforma cuando ocurre algún error y como podemos capturar el evento creado usando un Flow. 


global class RaisesPlatformEventsBatch implements Database.Batchable<sObject>,
Database.RaisesPlatformEvents {

    global Database.QueryLocator start(Database.BatchableContext bc) {
        return Database.getQueryLocator('SELECT Id FROM Account LIMIT 50000');
    }

    global void execute(Database.BatchableContext bc, List<Account> scope) {
        System.assert(false);
    }

    global void finish(Database.BatchableContext bc) {
    }

}


En este caso usamos un Flow pero perfectamente podemos hacer un trigger sobre el objeto BatchApexErrorEvent. Para el ejemplo elegí enviar un correo con los campos que me parecían mas pertinentes pero perfectamente se podría efectuar alguna lógica sobre el registro, incluso se me ocurre que algún agente de IA pueda usar un Flow como este pero eso todavía tengo que investigarlo.





Recursos

Firing Platform Events from Batch Apex | Apex Developer Guide | Salesforce Developers

Auditoría de Errores en Salesforce: Implementando RaisesPlatformEvents en Apex

Hace unos meses me encontraba haciendo una superbadge sobre integraciones en Salesforce cuando me encontré con esta interfaz que nunca había...