Mapa Salesforce Apex to struktura danych, która jest używana głównie w scenariuszach wyzwalających i pomaga ładować więcej danych jednocześnie do bazy danych Salesforce, jak lista. Ale przechowuje i porządkuje dane w formacie pary {klucz:wartość}. Omówimy zbiór map w języku programowania Apex i jego metody. Tutaj we wszystkich przykładach użyjemy standardowego obiektu konta w Salesforce. Przejdźmy szybko do tego samouczka.
Mapa
Map pobiera dane pary {klucz:wartość} jako dane wejściowe i zapisuje je w obiektach standardowych lub niestandardowych Salesforce. Może przyjąć obiekt sObject jako klucz lub wartość.
Tworzenie mapy
Określając typy danych klucza i wartości wraz z nazwą obiektu, można utworzyć mapę. Tutaj do jego utworzenia używane jest nowe słowo kluczowe. Przekazywanie elementów podczas tworzenia może być opcjonalne.
Składnia pustej mapy:
MapaOgólna składnia:
MapaKlucz => wartość,....};
s Składnia obiektu:
MapaKlucz => wartość,....};
Tutaj obiekt sObject może być obiektem standardowym lub niestandardowym. W całym artykule zajmiemy się tylko mapą z obiektem „Konto”.
Przyjrzyjmy się kolejno metodom obsługiwanym przez kolekcję „map” Apex.
Konfiguracja środowiska
1. Szybko zaloguj się do Salesforce i otwórz „Konsolę programisty”, klikając ikonę koła zębatego.
2. Następnie otwórz „Okno anonimowe”, klikając „Debuguj” i „Otwórz wykonaj anonimowe okno”.
Ogólny przykład:
Najpierw zobaczymy ogólne tworzenie mapy poprzez utworzenie mapy z dwoma podmiotami: „identyfikator_podmiotu”, który działa jako klucz, oraz „wartość” jako nazwa podmiotu.
Mapsystem.debug(programowanie);
Wyjście:
- Kliknij „Wykonaj”.
- Zaznacz opcję „Tylko debugowanie”. Możesz zobaczyć dane wyjściowe w „Dzienniku wykonania”.
Metody mapowania
Najpierw tworzymy mapę z obiektu „Konto”. Tworzymy trzy konta z nazwami jeden po drugim. Następnie deklarujemy mapę z kluczem i wartością jako
Konto konto1 = nowe konto(Nazwa='Linux Hint');
Konto konta2 = nowe konto(Nazwa='Salesforce');
Konto konto3 = nowe konto(Nazwa='Python');
// Dodaj powyższe konta jako klucze do map_obj
Map
konto 1 => 1000, konto 2 => 2000, konto 3 => 3000};
System.debug(map_obj);
Wyjście:
Możesz zobaczyć, że „map_obj” przechowuje trzy konta.
1. Mapuj.wartości()
Aby zwrócić tylko wartości z podanej mapy, możemy użyć metody values(). Nie przyjmie żadnych parametrów. Po prostu zwraca listę wartości oddzielonych przecinkiem.
Składnia:
map_object.values()Przykład:
Zwróćmy wszystkie wartości z poprzedniej mapy. Upewnij się, że musisz wykonać poprzedni przykładowy kod (utwórz mapę z trzema kontami). W przeciwnym razie pojawi się błąd. Kod powinien również znajdować się w konsoli.
// Zwróć wartości dla wszystkich kluczy za pomocą values()System.debug(map_obj.values());
Wyjście:
W obiekcie map_obj są tylko trzy pary klucz:wartość. Wartości to: 1000, 2000 i 3000.
2. Map.zestaw kluczy()
Zwróć klucze obecne w obiekcie mapy. Podobnie jak w przypadku values(), nie ma potrzeby przekazywania do tej metody żadnych parametrów.
Składnia:
map_object.keySet()Przykład:
Zwróćmy wszystkie klucze z poprzedniej mapy. Upewnij się, że wykonałeś poprzedni przykładowy kod (utwórz mapę z trzema kontami). W przeciwnym razie pojawi się błąd. Kod powinien również znajdować się w konsoli.
// Zwróć wszystkie klucze za pomocą keySet()System.debug(map_obj.keySet());
Wyjście:
W obiekcie map_obj są tylko trzy pary klucz:wartość. Klucze to: {Account:{Name=Linux Hint}, Account:{Name=Python} i Account:{Name=Salesforce}.
3. Rozmiar.mapy()
W niektórych scenariuszach musimy znać całkowitą liczbę par elementów (klucz:wartość), które są obecne na mapie Apex. Size() to metoda zwracająca całkowitą liczbę par (klucz:wartość) istniejących w obiekcie map_object. Ta metoda nie wymaga parametrów.
Składnia:
map_object.size()Przykład:
Zwróć rozmiar poprzedniego obiektu mapy.
// Zwróć całkowitą liczbę par za pomocą size()System.debug(map_obj.size());
Wyjście:
Ponieważ są tylko 3 pary, zwrócona funkcja size() to 3.
4. Map.get()
Dostęp do wartości z mapy za pomocą klucza odbywa się za pomocą metody get(). Aby to zrobić, musimy przekazać klucz jako parametr do metody get(). Jeśli zostanie przekazany nieznany klucz, zwracany jest błąd.
Składnia:
map_object.get(klucz)Przykład:
Zwróć osobno wartości klucza 2 i klucza 1.
// pobierz wartość drugiego kluczaSystem.debug(map_obj.get(konto2));
// pobierz wartość pierwszego klucza
System.debug(map_obj.get(konto1));
Wyjście:
Tutaj 2000 to wartość klucza „Salesforce”, a 1000 to wartość klucza „Linux Hint”.
5. Mapa. wyczyść()
Wszystkie pary w zbiorze map Apex można usunąć jednocześnie za pomocą metody clear(). Nie przyjmie żadnych parametrów.
Składnia:
obiekt_mapy. wyczyść()Przykład:
Usuń pary z poprzedniego „map_obj”.
//Przed wyczyszczeniem()System.debug(map_obj);
// Usuń wszystkie pary za pomocą clear()
map_obj.clear();
//Po wyczyszczeniu()
System.debug(map_obj);
Wyjście:
Poprzednio w „map_obj” były 3 pary klucz-wartość. Po zastosowaniu metody clear() wszystkie 3 są usuwane.
6. Mapa.równa się()
Możemy porównać dwa obiekty mapy za pomocą metody equals(). Wartość logiczna true jest zwracana, jeśli wszystkie klucze i wartości są takie same w obu obiektach mapy. Podczas gdy wartość logiczna false jest zwracana, jeśli co najmniej jedna wartość jest inna.
Składnia:
map_object1.equals(map_object2)Przykład:
Stwórzmy trzy obiekty mapy z jedną parą klucz:wartość, każdy w odniesieniu do obiektu „Konto”. Porównaj te obiekty między sobą.
// Konto-1Konto konto1 = nowe konto(Nazwa='Linux Hint');
Map
konto1 => 1000};
System.debug('Mapa - 1:' + map_obj1);
// Konto-2
Konto konto2 = nowe konto(Nazwa='Linux Hint');
Mapa
konto2 => 1000};
System.debug('Mapa - 2:' + map_obj1);
// Konto-3
Konto konto3 = nowe konto(Nazwa='Python');
Map
konto3 => 2000};
System.debug('Mapa - 3:' + map_obj3);
// równa się()
System.debug('Mapa 1 i mapa 2 są równe: '+ map_obj1.equals(map_obj2));
System.debug('Mapa 1 i mapa 3 są równe: '+ map_obj1.equals(map_obj3));
Wyjście:
Pierwszy i drugi obiekt mapy są równe, ponieważ oba klucze i wartości są takie same w obu obiektach. Pierwszy i trzeci obiekt mapy nie są równe, ponieważ klucze i wartości są różne.
7. Map.isEmpty()
Możemy sprawdzić, czy mapa jest pusta, czy nie, używając metody isEmpty(). True jest zwracana, jeśli kolekcja map Apex jest pusta. W przeciwnym razie zwracana jest wartość false. Podobnie jak metoda size(), nie przyjmuje żadnych parametrów.
Składnia:
map_object.isEmpty()Przykład:
Stwórzmy dwa obiekty mapy, które są powiązane z „Kontem” i sprawdźmy, czy te dwa są puste, czy nie.
// Konto-1Konto konto1 = nowe konto(Nazwa='Linux Hint');
Map
konto1 => 1000};
// Konto-2
Map
// jest pusty()
System.debug('Mapa-1 jest pusta: '+map_obj1.isEmpty());
System.debug('Mapa-2 jest pusta: '+map_obj2.isEmpty());
Wyjście:
Pierwsza mapa nie jest pusta, ponieważ zawiera jedną parę klucz-wartość. Druga mapa jest pusta, ponieważ jej nie ma.
8. mapa.usuń()
Metoda remove() w kolekcji map Apex służy do usuwania określonej pary klucz-wartość na podstawie klucza określonego w niej jako parametr. Jeśli klucz nie istnieje, zgłaszany jest błąd.
Składnia:
map_object.remove(klucz)Przykład:
Stwórzmy mapę z dwoma elementami i usuńmy pierwszy element.
Konto konto1 = nowe konto(Nazwa='Linux Hint');Konto konto2 = nowe konto(Nazwa='Python');
Map
konto1 => 1000, konto2 => 4000};
System.debug('Istniejąca mapa'+ map_obj);
//usunąć()
map_obj.remove(konto1);
System.debug('Po usunięciu pierwszego elementu:'+map_obj);
Wyjście:
Po usunięciu pierwszego elementu z mapy istnieje tylko jeden element – {Account:{Name=Python}=4000}.
9. Map.put()
Korzystając z tej metody, możemy bezpośrednio dodać jeden element do obiektu mapy na raz. Akceptuje dwa parametry: „klucz” to pierwszy parametr, a „wartość” to drugi parametr.
Składnia:
map_object.put(klucz,wartość)Przykład:
Stwórzmy mapę z jedną parą klucz-wartość. Następnie używamy metody „put”, aby wstawić „account2”.
// Konto-1Konto konto1 = nowe konto(Nazwa='Linux Hint');
Map
konto1 => 1000};
System.debug('Aktualna mapa: '+map_obj1);
// Konto-2
Konto konto2 = nowe konto(Nazwa='Python');
// umieścić()
map_obj1.put(konto2,2000);
System.debug('Ostateczna mapa: '+map_obj1);
Wyjście:
Wcześniej mapa zawierała tylko jedną parę klucz-wartość: {Account:{Name=Linux Hint}=1000}. Po dodaniu „account2” końcowa mapa zawiera dwie pary klucz-wartość, którymi są {Account:{Name=Linux Hint}=1000 i Account:{Name=Python}=2000}.
10. Map.putAll()
Korzystając z tej metody, możemy bezpośrednio dodać jeden lub wiele elementów do obiektu mapy na raz. Przyjmuje obiekt kolekcji map jako parametr.
Składnia:
map_object1.putAll(map_object2)Przykład:
Utwórzmy mapę z dwiema parami klucz-wartość i ponownie utwórzmy pusty obiekt mapy bez żadnych elementów. Użyj metody putAll() w celu dodania elementów dostępnych w pierwszym obiekcie mapy do drugiego obiektu mapy.
Konto konto1 = nowe konto(Nazwa='Linux Hint');Konto konto2 = nowe konto(Nazwa='Python');
Map
konto1 => 1000, konto2 => 2000};
System.debug(map_obj1);
Map
//połóż wszystko()
map_obj2.putAll(map_obj1);
System.debug(map_obj2);
Wyjście:
Wniosek
Mapa to struktura danych, która jest używana głównie w scenariuszach wyzwalających i pomaga ładować więcej danych jednocześnie do bazy danych Salesforce, jak lista. Mamy dwie możliwości dodania elementów do mapy: za pomocą metody put() i putAll(). Metoda remove() służy do usuwania określonego elementu z kolekcji map Apex. Metoda clear() służy do usuwania wszystkich elementów. Nauczyliśmy się również, jak zwracać wartości i klucze za pomocą metod values() i keySet().