Guión:
Sravan dirige una empresa y está utilizando Salesforce Org para rastrear los salarios de sus empleados. Solo hay 200 empleados. Almacenó todos sus datos en un objeto de "cuenta" en la base de datos de Salesforce y creó un campo personalizado que se "acredita" en un tipo de casilla de verificación y lo actualiza a verdadero cada vez que se les acredita el salario. Después de 2 años, su recuento de empleados aumentó a 2 lakh. No puede actualizar este campo en una transacción. Entonces le pidió al desarrollador de Salesforce que lo ayudara a salir de eso. Luego, el desarrollador sugirió que el Apex por lotes actualice 2 registros lakh a la vez (lote por lote).
Apex por lotes:
Como ya discutimos, Batch Apex es un proceso asincrónico en el que cada proceso se ejecuta en un hilo diferente. Procesa el lote de datos por lote y tiene 3 pasos mientras realiza esta operación. Por defecto, el tamaño del lote es 200, pero podemos extender hasta 2000. El tamaño mínimo es 1.
Fase I:
Esta es la fase de "inicio" donde los registros se recopilan de la fuerza de ventas para ser procesados. Podemos utilizar la consulta SOQL para devolver los registros en esta fase. Básicamente, la clase de "lote" implementa la "base de datos.Lotes ".
Podemos definir el método Start () utilizando el QueryLocator (se vuelve a la consulta) de la clase "Base de datos". Es muy importante pasar el parámetro BatchableContext de la clase "Base de datos". Dentro de este método, podemos especificar el SOQL en la base de datos.método getQueryLocator () y devuélvelo.
Consulte la siguiente estructura del método:
Fase II:
Esta es la fase de "ejecutar" donde el lote de registros se recopila de la fase de inicio que devuelve la consulta SOQL. Procesa estos registros y obtiene los registros nuevamente de la consulta hasta que se completen todos los registros.
Podemos definir el método Execute () devolviendo como vacío (vacío). Es muy importante pasar el BatchableContext como el primer parámetro de la clase "Base de datos" que es similar al método Start (). El segundo parámetro es el Sobject (Salesforce Standard/Custom Object) dentro de una "lista".
Consulte la siguiente estructura del método:
Fase III:
Esta es la fase de "finalizar" donde las operaciones postales como enviar correo electrónico, mostrar mensajes, etc., se toman en esta fase.
Podemos definir el método final () devolviendo como vacío (vacío). Es muy importante pasar el BatchableContext como el primer parámetro de la clase "Base de datos" que es similar al método Start ().
Consulte la siguiente estructura del método:
Estructura general:
Configuración del medio ambiente
1. Vaya a la "Consola de desarrollador" y vaya al archivo "Seleccionar nuevo". Luego, elija "Clase APEX" (la clase APEX se guarda con .Extensión APXC).
2. Puede dar el nombre de la clase después de hacer clic en "Clase APEX". Luego, haga clic en "Aceptar".
3. Después de escribir la clase, puede ejecutarla creando una instancia de ella. Podemos escribirlo en la "ventana anónima".
Aplicación 1: Actualización
Escribamos una "clase de lotes" en la campaña de objetos estándar de Salesforce para actualizar el "nombre de la campaña" a "Linuxhint Camp1" si el estado está "planeado".
Global Class BatchExample1 implementa la base de datos.LotesEjecute la clase creando una instancia.
BatchExample1 FirstExample_1 = new BatchExample1 ();Explicación:
Controlar:
Podemos verificar si el lote se procesa sin error en los "trabajos de Apex". Búscalo en "Findir rápido".
2. Para verificar su clase de "lote", podemos ver que los "lotes procesados" es 1 y las "fallas" son 0.
3. Vaya a la "pestaña de campaña" y verifique si el "nombre de la campaña" está actualizado o no.
Solo hay un registro con un estado "planificado". El "nombre de la campaña" se actualiza a "Linuxhint Camp1".
Aplicación 2: eliminación
Escribamos una "clase de lotes" en el objeto estándar de Salesforce que es "campaña" para eliminar un registro.
Global Class BatchExample2 Implementa la base de datos.lotesEjecute la clase creando una instancia.
BatchExample2 Ejemplo_2 = new BatchExample2 ();Explicación:
Controlar:
Podemos verificar los registros eliminados bajo el "contenedor de reciclaje". Vaya al "Lanzador de aplicaciones" y verifíquelo.
Puedes ver uno que el registro se elimina del objeto "campaña".
Aplicación 3: Inserción
Escribamos una "clase de lotes" en el objeto estándar de Salesforce que es "cuenta" para insertar un registro.
Global Class BatchExample3 Implementa la base de datos.LotesEjecute la clase creando una instancia.
BatchExample3 Ejemplo_3 = new BatchExample3 ();Explicación:
Controlar:
Ir a "cuenta" y buscar el registro. Puedes encontrarlo aquí.
Haga clic en "Nombre de cuenta" para abrir el registro con detalles.
Conclusión
Ahora aprendimos a hacer las operaciones de DML masiva como insertar, actualizar y eliminar con lotes Apex en Salesforce. Batch Apex es un proceso asincrónico en el que cada proceso se ejecuta en un hilo diferente. Procesa el lote de datos por lote y tiene 3 pasos mientras realiza esta operación. Por defecto, el tamaño de lote es 200, pero podemos extenderlo hasta 2000 en el que el tamaño mínimo es 1. Utilizamos los objetos estándar de "campaña" y "cuenta" para hacer las operaciones DML.