Cenário:
Sravan está administrando uma empresa e ele está usando o Salesforce Org para rastrear os salários de seus funcionários. Existem apenas 200 funcionários. Ele armazenou todos os dados em um objeto "Conta" no banco de dados do Salesforce e criou um campo personalizado que é "creditado" em um tipo de caixa de seleção e atualizá -lo para true sempre que o salário for creditado para eles. Após 2 anos, sua contagem de funcionários aumentou para 2 lakh. Não é capaz de atualizar este campo em uma transação. Então ele pediu ao desenvolvedor do Salesforce para ajudá -lo a sair disso. Em seguida, o desenvolvedor sugeriu o ápice do lote para atualizar 2 lakh registros por vez (lote por lote).
Apex em lote:
Como já discutimos, o Batch Apex é um processo assíncrono no qual cada processo é executado em um tópico diferente. Ele processa o lote de dados por lote e tem 3 etapas ao fazer esta operação. Por padrão, o tamanho do lote é 200, mas podemos estender até 2000. O tamanho mínimo é 1.
Fase I:
Esta é a fase de "início" em que os registros são coletados do Salesforce a serem processados. Podemos utilizar a consulta SOQL para retornar os registros nesta fase. Basicamente, a classe "lote" implementa o "banco de dados.Lotável ”.
Podemos definir o método START () usando o querylocator (ele retorna à consulta) da classe "banco de dados". É muito importante passar no parâmetro BatchableContext da classe "banco de dados". Dentro deste método, podemos especificar o SOQL no banco de dados.Método getQueryLocator () e retorne -o.
Veja a seguinte estrutura de método:
Fase II:
Esta é a fase de "execução" em que o lote de registros é coletado da fase inicial que são retornados pela SOQL Consulta. Ele processa esses registros e recebe os registros novamente da consulta até que todos os registros sejam concluídos.
Podemos definir o método execute () retornando como vazio (vazio). É muito importante passar na BatchableContext como o primeiro parâmetro da classe "banco de dados", que é semelhante ao método START (). O segundo parâmetro é o Sobject (Salesforce Standard/Custom Object) dentro de uma "lista".
Veja a seguinte estrutura de método:
Fase III:
Esta é a fase de "acabamento", onde as operações pós como enviar e -mail, exibir mensagens, etc., são levados nesta fase.
Podemos definir o método FINAL () retornando como vazio (vazio). É muito importante passar na BatchableContext como o primeiro parâmetro da classe "banco de dados", que é semelhante ao método START ().
Veja a seguinte estrutura de método:
Estrutura geral:
Configuração do ambiente
1. Vá para o "Console do desenvolvedor" e vá para o arquivo "Selecionar novo". Em seguida, escolha "APEX CLASS" (a classe Apex é salva com .extensão apxc).
2. Você pode dar o nome da classe depois de clicar em "APEX CLASS". Em seguida, clique em "OK".
3. Depois de escrever a aula, você pode executá -la criando uma instância dela. Podemos escrever na "janela anônima".
Aplicativo 1: Atualização
Vamos escrever uma "classe em lote" na campanha Salesforce Standard Object para atualizar o "nome da campanha" para "Linuxhint Camp1" se o status for "planejado".
Classe global BatchExample1 implementa o banco de dados.LotávelExecute a classe criando uma instância.
BatchExample1 FirstExample_1 = new BatchExample1 ();Explicação:
Verificar:
Podemos verificar se o lote é processado sem erro nos “empregos de ápice”. Procure isso em "Quick Localize".
2. Para verificar sua classe "lote", podemos ver que os "lotes processados" são 1 e "falhas" são 0.
3. Vá para a "guia da campanha" e verifique se o "nome da campanha" é atualizado ou não.
Existe apenas um registro com um status "planejado". O "nome da campanha" é atualizado para "Linuxhint Camp1".
Aplicação 2: exclusão
Vamos escrever uma "classe em lote" no objeto padrão do Salesforce, que é "campanha" para excluir um registro.
Classe global BatchExample2 implementa o banco de dados.lotávelExecute a classe criando uma instância.
BatchExample2 exemplo_2 = new BatchExample2 ();Explicação:
Verificar:
Podemos verificar os registros excluídos na “lixeira”. Vá para o "lançador de aplicativos" e verifique se há.
Você pode ver um que o registro é excluído do objeto "campanha".
Aplicação 3: Inserção
Vamos escrever uma "classe em lote" no objeto padrão do Salesforce, que é "conta" para inserir um registro.
Classe global BatchExample3 implementa o banco de dados.LotávelExecute a classe criando uma instância.
BatchExample3 exemplo_3 = new BatchExample3 ();Explicação:
Verificar:
Vá para "Conta" e procure o registro. Você pode encontrar lá.
Clique em "Nome da conta" para abrir o registro com detalhes.
Conclusão
Agora aprendemos a fazer as operações de DML em massa, como Inserir, Atualizar e Excluir com o Apex em lote no Salesforce. O ápice do lote é um processo assíncrono no qual cada processo é executado em um tópico diferente. Ele processa o lote de dados por lote e tem 3 etapas ao fazer esta operação. Por padrão, o tamanho do lote é 200, mas podemos estendê -lo até 2000 em que o tamanho mínimo é 1. Utilizamos os objetos padrão da "campanha" e "conta" para fazer as operações DML.