Salesforce pozwala nam przetwarzać lub wykonywać określoną liczbę oświadczeń/rekordów. Istnieją pewne limity dla instrukcji DML, klas wierzchołków itp., Aby wykonać lub przetwarzać. Te granice są znane jako granice gubernatora. W tym samouczku zobaczymy, jakie są granice gubernatora i jak można je rozwiązać. Ponadto Salesforce APEX zapewnia klasę „limitu”, aby poznać limity związane z obojętnością, klasami Apex, komponentami Błyskawicy, instrukcjami SOSL i SOQL.
Gubernator limity
Rozważ scenariusz, w którym Alish i Subash to dwie osoby korzystające z Org Salesforce. Alice chce przetworzyć lub wykonać 1000 instrukcji DML w jednej transakcji. Równolegle, Subash chce załadować 5000 rekordów jednocześnie. Jeśli zrobią to równolegle, Salesforce nie zaakceptuje i staje się gorączkowy. Stąd granice gubernatora pojawiają się w obrazie. W takim przypadku Alish może przetwarzać 100 DML na raz, a subash może przetwarzać 500 rekordów jednocześnie. Mogą używać wierzchołka asynchronicznego do wykonywania każdej transakcji w osobnym wątku bez zakłócania każdego z nich i wykonania zadania.
Zasadniczo gubernator limitów Salesforce ograniczają przetwarzanie i wykonywanie w wielu transakcjach. Liczba „wierzchołków wierzchołków na transakcję” dla każdej transakcji, a „limit wierzchołka szczytu specyficznego dla wielkości” dotyczy rozmiaru kodu. Salesforce obsługuje dwa procesy: procesy synchroniczne i asynchroniczne. W procesie synchronicznym skrypt wierzchołkowy jest wykonywany w jednym Go, podczas gdy w procesie asynchronicznym skrypt wierzchołkowy jest wykonywany przez podział na wiele zadań.
Dozwolone limity
Omów liczbę limitów dla różnych scenariuszy:
Ogranicz przykład klasy:
Apex może określić limity gubernatora w klasie „limitu”. Ta klasa zawiera niektóre metody, które wskazują gubernatorowi limity. Spójrzmy na poniższy przykład, który wykazuje limity gubernatora:
System.Debugowanie („Liczba zagregowanych zapytań można przetwarzać:”+ limity.getlimitagregregatequeries ());Wyjście:
Możliwe jest również sprawdzenie, ile instrukcji/wierszy DML można zwrócić za pomocą metod „kopuły”, które są obecne w klasie „Limit”.
Przykład użycia:
Napiszmy zapytanie SOQL, które zwraca dwie rekordy z obiektu „Workorder”. Następnie usuń te dwa rekordy za pomocą „Usuń” DML.
System.debugowanie („Oświadczenia DML:”+limity.getDMlStatements ());Wyjście:
W danym przykładzie nie ma instrukcji DML i 0 wierszy. Istniejący czas procesora wynosi 1 milisekundy. Po zwróceniu 2 wierszy z zapytania SOQL i usunięciu tych dwóch wierszy, całkowita liczba instrukcji DML, które są zwracane przez limity.getDMlStatements () to 1, całkowite rzędy zwrócone przez limity.getdmlrows () wynosi 2, a czas procesora, który jest potrzebny do wykonania tej transakcji, wynosi 51 milisekund.
Przykład najlepszej praktyki: „Nigdy nie używaj DML wewnątrz pętli”
Zobaczmy, jak możemy uruchomić kod bez uzyskania limitu gubernatora. Najpierw tworzymy rekord na obiekcie „Produkt” (API - Product2) z obiektu „Workorder”, przypisując „Workorder” pod warunkiem „nazwy produktu” w samej pętli „for” samej. Zobaczmy następujący kod:
Product2 Prod_Obj;Możemy to zrobić w lepszy sposób, deklarując listę (PROD_S), a następnie przechowywanie Prod_Obj na liście. Możemy wstawić tę listę do produktu poza pętlą.
Lista produkt_s = nowa lista ();Wniosek
Teraz dowiedzieliśmy się, jakie limity wierzchołkowe są w Salesforce ze szczegółowym wyjaśnieniem. Lepiej jest iść z asynchronicznym procesem wierzchołkowym, aby uzyskać lepsze granice gubernatora w porównaniu z synchronicznym wierzchołkiem. Dowiedzieliśmy się również o granicach gubernatora dla różnych scenariuszy i przedstawiliśmy przykładową demonstrację dotyczącą liczby limitów z klasy „limitu”. Weryfikowaliśmy również liczbę instrukcji DML, wierszy i czasu procesora, uruchamiając jedno instrukcja DML. Zakończyliśmy ten przewodnik, omawiając jeden przykład najlepszych praktyk.