Salesforce Apex – Mapa

Salesforce Apex Mapa



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:

Mapa obiekt_mapy = nowa Mapa():

Ogólna składnia:

Mapa obiekt_mapy = nowa mapa{

Klucz => wartość,....};

s Składnia obiektu:

Mapa obiekt_mapy = nowa Mapa{

Klucz => 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.

Map programowanie=new Map {1=> 'Linux',2=> 'Python'};

system.debug(programowanie);

Wyjście:

  1. Kliknij „Wykonaj”.
  2. 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 wpisz i przekaż poprzednie trzy konta do mapy, podając pewne wartości.

// Utwórz 3 konta z nazwą

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 map_obj = new 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 klucza

System.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-1

Konto konto1 = nowe konto(Nazwa='Linux Hint');

Map map_obj1 = new Map{

konto1 => 1000};

System.debug('Mapa - 1:' + map_obj1);

// Konto-2

Konto konto2 = nowe konto(Nazwa='Linux Hint');

Mapa map_obj2 = nowa Mapa{

konto2 => 1000};

System.debug('Mapa - 2:' + map_obj1);

// Konto-3

Konto konto3 = nowe konto(Nazwa='Python');

Map map_obj3 = new 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-1

Konto konto1 = nowe konto(Nazwa='Linux Hint');

Map map_obj1 = new Map{

konto1 => 1000};



// Konto-2

Map map_obj2 = new 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 map_obj = new 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-1

Konto konto1 = nowe konto(Nazwa='Linux Hint');

Map map_obj1 = new 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 map_obj1 = new Map{

konto1 => 1000, konto2 => 2000};

System.debug(map_obj1);

Map map_obj2 = new 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().