quinta-feira, 3 de outubro de 2024

Explorando o Potencial do Apex Batch no Salesforce


O Batch Apex é uma ferramenta poderosa no Salesforce que permite aos desenvolvedores processar grandes volumes de dados de forma eficiente e confiável. Ao utilizar o Batch Apex, é possível dividir tarefas complexas e demoradas em pequenos lotes, que são processados de forma assíncrona, garantindo que os limites de governança da plataforma não sejam excedidos.

Implementando a Interface Database.Batchable

Para começar a usar o Batch Apex, é necessário criar uma classe Apex que implemente a interface "Database.Batchable".
Essa interface contém três métodos essenciais: "start", "execute" e "finish".

- O método "start" é chamado no início do trabalho do Batch Apex e é responsável por coletar os registros ou objetos a serem processados. Ele pode retornar um objeto "Database.QueryLocator" ou um "Iterable" que contém os registros ou objetos que serão passados para o trabalho.
- O método "execute" é invocado para cada lote de registros e é onde a lógica de processamento real ocorre.
- Por fim, o método "finish" é chamado após todos os lotes serem processados e pode ser usado para enviar e-mails de confirmação ou executar operações de pós-processamento.

Exemplo de Código Batch Apex

Aqui está um exemplo simplificado de como uma classe Batch Apex pode ser estruturada:

public class MyBatchClass implements Database.Batchable<sObject> {
    public Database.QueryLocator start(Database.BatchableContext bc) {
        // Retorna um QueryLocator para os registros a serem processados
        return Database.getQueryLocator('SELECT Id FROM MyObject');
    }

    public void execute(Database.BatchableContext bc, List<sObject> records) {
        // Lógica de processamento para cada registro
        for (sObject record : records) {
            // Processamento do registro
        }
    }

    public void finish(Database.BatchableContext bc) {
        // Operações de pós-processamento
    }
}



Limites do Batch Apex

Ao trabalhar com o Batch Apex, é importante estar ciente dos limites impostos pela plataforma Salesforce:

  • Até 5 trabalhos de Batch Apex podem ser enfileirados ou ativos simultaneamente.
  • O tamanho máximo de lote padrão é de 200 registros, mas pode ser configurado para até 2.000.
  • O limite de heap é de 12 MB por transação síncrona e 6 MB por transação assíncrona.


Melhores Práticas

Para garantir o desempenho otimizado e a confiabilidade do Batch Apex, é recomendável seguir algumas melhores práticas:

  • Testar exaustivamente o código em um ambiente de sandbox antes de implantar em produção.
  • Monitorar os trabalhos de Batch Apex através da interface de usuário do Salesforce para identificar e resolver problemas rapidamente.
  • Utilizar o método "Database.Stateful" se for necessário manter o estado entre as chamadas do método "execute".


O Batch Apex é uma ferramenta indispensável para os desenvolvedores do Salesforce que buscam otimizar o processamento de dados em larga escala. Com uma compreensão clara de sua implementação e limites, é possível criar soluções robustas e escaláveis que impulsionam o sucesso das operações empresariais.

Para mais informações detalhadas e exemplos de código, consulte a documentação oficial do Salesforce e os recursos disponíveis no Trailhead.


Forte abraço e até o próximo post.