Scenariusz:
Sravan prowadzi firmę i wykorzystuje Salesforce Org do śledzenia pensji swoich pracowników. Jest tylko 200 pracowników. Zapisał wszystkie ich dane w obiekcie „konta” w bazie danych Salesforce i utworzył pole niestandardowe, które jest „przypisane” w typu wyboru i aktualizuje je do true za każdym razem, gdy wynagrodzenie jest im przypisane. Po 2 latach jego liczba pracowników wzrosła do 2 lakh. Nie jest w stanie zaktualizować tego pola w jednej transakcji. Poprosił więc dewelopera Salesforce, aby mu z tego pomógł. Następnie deweloper zasugerował wierzchołek partii do aktualizacji 2 lakh rekordów jednocześnie (partia przez partię).
Wierzchołek partii:
Jak już dyskutowaliśmy, wierzchołek wsadowy jest procesem asynchronicznym, w którym każdy proces jest uruchamiany w innym wątku. Przetwarza partię danych według partii i ma 3 kroki podczas wykonywania tej operacji. Domyślnie rozmiar partii wynosi 200, ale możemy wydłużyć do 2000. Minimalny rozmiar to 1.
Faza I:
Jest to faza „start”, w której rekordy są gromadzone ze sprzedaży, które mają być przetwarzane. Możemy wykorzystać zapytanie SOQL do zwrócenia rekordów w tej fazie. Zasadniczo klasa „wsadowa” implementuje „bazę danych.Batchable ”.
Możemy zdefiniować metodę start () za pomocą QueryLocator (powraca do zapytania) z klasy „baza danych”. Bardzo ważne jest przekazanie parametru BatchableContext z klasy „Baza danych”. W ramach tej metody możemy określić SOQL w bazie danych.metoda getQueryLocator () i zwróć ją.
Zobacz następującą strukturę metody:
Etap II:
Jest to faza „Wykonaj”, w której partia rekordów jest zbierana z fazy początkowej, które są zwracane przez zapytanie SOQL. Przetwarza te rekordy i ponownie otrzymuje rekordy z zapytania, dopóki wszystkie rekordy nie zostaną zakończone.
Możemy zdefiniować metodę execute (), zwracając jako pustka (pusta). Bardzo ważne jest przekazanie BatchableContext jako pierwszego parametru z klasy „Baza danych”, która jest podobna do metody start (). Drugim parametrem jest Sobject (obiekt Salesforce Standard/Custom) wewnątrz „listy”.
Zobacz następującą strukturę metody:
Faza III:
Jest to faza „zakończ”, w której operacje pocztowe, takie jak wysyłanie wiadomości e -mail, wyświetlanie wiadomości itp., są zajęte w tej fazie.
Możemy zdefiniować metodę finisz (), powracając jako pustka (pusta). Bardzo ważne jest przekazanie BatchableContext jako pierwszego parametru z klasy „Baza danych”, która jest podobna do metody start ().
Zobacz następującą strukturę metody:
Ogólna struktura:
Konfiguracja środowiska
1. Przejdź do „konsoli programisty” i przejdź do pliku „Wybierz nowy”. Następnie wybierz „klasę apex” (klasa apex jest zapisana z .rozszerzenie APXC).
2. Możesz podać nazwę klasy po kliknięciu „klasy wierzchołkowej”. Następnie kliknij „OK”.
3. Po napisaniu klasy możesz ją wykonać, tworząc jego instancję. Możemy to napisać w „Anonimowym oknie”.
Aplikacja 1: Aktualizacja
Napiszmy „klasę wsadową” w kampanii obiektowej Salesforce Standard, aby zaktualizować „nazwę kampanii” do „Linuxhint Camp1”, jeśli status jest „planowany”.
Global Class Batchexample1 implementuje bazę danych.BatchableUruchom klasę, tworząc instancję.
Batchexample1 Firstexample_1 = new Batchexample1 ();Wyjaśnienie:
Sprawdzać:
Możemy sprawdzić, czy partia jest przetwarzana bez błędu w ramach „Zadania Apex”. Wyszukaj w „Szybkie znalezienie”.
2. Aby sprawdzić klasę „wsadową”, widzimy, że „przetworzone partie” to 1, a „awarie” to 0.
3. Przejdź do „Zakładki kampanii” i sprawdź, czy „nazwa kampanii” jest aktualizowana, czy nie.
Jest tylko jeden rekord ze statusem „planowanego”. „Nazwa kampanii” jest aktualizowana do „Linuxhint Camp1”.
Aplikacja 2: Usunięcie
Napiszmy „klasę wsadową” na standardowym obiekcie Salesforce, którym jest „kampania”, aby usunąć jeden rekord.
Global Class Batchexample2 implementuje bazę danych.BatchableUruchom klasę, tworząc instancję.
Batchexample2 przykład_2 = new Batchexample2 ();Wyjaśnienie:
Sprawdzać:
Możemy sprawdzić usunięte rekordy w ramach „Bin recycle”. Przejdź do „uruchamiającego aplikacji” i sprawdź to.
Możesz zobaczyć taki, który rekord jest usuwany z obiektu „kampanii”.
Aplikacja 3: Wstawienie
Napiszmy „klasę wsadową” na standardowym obiekcie Salesforce, który jest „konto”, aby wstawić jeden rekord.
Global Class Batchexample3 implementuje bazę danych.BatchableUruchom klasę, tworząc instancję.
Batchexample3 przykład_3 = new Batchexample3 ();Wyjaśnienie:
Sprawdzać:
Przejdź do „Konta” i wyszukaj rekord. Możesz to tam znaleźć.
Kliknij „Nazwa konta”, aby otworzyć rekord ze szczegółami.
Wniosek
Nauczyliśmy się teraz, jak wykonywać masowe operacje DML, takie jak wstawienie, aktualizacja i usuwanie z wierzchołkiem wsadowym w Salesforce. Wierzchołek wsadowy jest procesem asynchronicznym, w którym każdy proces jest uruchamiany w innym wątku. Przetwarza partię danych według partii i ma 3 kroki podczas wykonywania tej operacji. Domyślnie rozmiar partii wynosi 200, ale możemy ją przedłużyć do 2000 roku, w którym minimalny rozmiar wynosi 1. Wykorzystaliśmy standardowe obiekty „kampanii” i „konta” do wykonywania operacji DML.