Salesforce Apex – Karta

Salesforce Apex Karta



Salesforce Apex mapa struktura je podataka koja se uglavnom koristi u scenarijima okidača i pomaže pri učitavanju više podataka odjednom u Salesforce bazu podataka poput popisa. Ali pohranjuje i organizira podatke u formatu para {ključ:vrijednost}. Razgovarat ćemo o kolekciji mapa u Apex programskom jeziku i njenim metodama. Ovdje ćemo koristiti standardni objekt računa u Salesforceu za sve primjere. Uronimo brzo u ovaj vodič.

Karta

Karta uzima podatke o paru {key:value} kao ulaz i pohranjuje ih u Salesforce standardne ili prilagođene objekte. Može uzeti sObject kao ključ ili vrijednost.







Izrada karte

Određivanjem tipova podataka ključa i vrijednosti zajedno s nazivom objekta, mapa se može stvoriti. Ovdje se za njegovu izradu koristi nova ključna riječ. Može biti opcionalno proslijediti elemente tijekom stvaranja.



Sintaksa prazne karte:

Map map_obj = new Map():

Generička sintaksa:

Map map_obj = new Map{

Ključ => vrijednost,....};

sObject sintaksa:

Map map_obj = new Map{

Ključ => vrijednost,....};

Ovdje sObject može biti standardni ili prilagođeni objekt. U cijelom ovom članku bavit ćemo se samo mapom s objektom “Account”.



Pogledajmo metode koje podržava Apexova kolekcija 'mapa' jednu po jednu.





Postavljanje okruženja

1. Brzo se prijavite na Salesforce i otvorite 'Developer Console' klikom na ikonu zupčanika.



2. Zatim otvorite “Anonimni prozor” klikom na “Debug” i “Open Execute Anonymous Window”.

Generički primjer:

Prvo ćemo vidjeti stvaranje generičke karte stvaranjem karte s dva subjekta: 'subject_id' koji djeluje kao ključ i 'value' kao naziv subjekta.

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

system.debug(programiranje);

Izlaz:

  1. Kliknite na 'Izvrši'.
  2. Označite opciju 'Samo otklanjanje pogrešaka'. Izlaz možete vidjeti u 'Dnevniku izvršenja'.

Metode karte

Prvo stvaramo kartu iz objekta 'Račun'. Kreiramo tri računa s imenima jedan po jedan. Zatim deklariramo mapu s ključem i vrijednošću kao upišite i proslijedite prethodna tri računa na kartu davanjem nekih vrijednosti.

// Kreirajte 3 računa s imenom

Account account1 = new Account();

Account account2 = new Account();

Account account3 = new Account();

// Dodajte gornje račune kao ključeve u map_obj

Map map_obj = new Map{

račun1 => 1000,račun2 => 2000,račun3 => 3000};

System.debug(map_obj);

Izlaz:

Možete vidjeti da 'map_obj' pohranjuje tri računa.

1. Map.values()

Da bismo vratili samo vrijednosti iz zadane karte, možemo koristiti metodu values(). Neće uzeti nikakve parametre. Jednostavno vraća popis vrijednosti odvojenih zarezom.

Sintaksa:

map_object.values()

Primjer:

Vratimo sve vrijednosti iz prethodne karte. Provjerite trebate li izvršiti prethodni primjer koda (izradite kartu s tri računa). U suprotnom ćete dobiti grešku. Kod bi također trebao postojati u konzoli.

// Vrati vrijednosti za sve ključeve koristeći values()

System.debug(map_obj.values());

Izlaz:

Postoje samo tri para ključ:vrijednost u map_obj. Vrijednosti su: 1000, 2000 i 3000.

2. Map.keySet()

Vrati da su ključevi prisutni u objektu karte. Slično kao i values(), nema potrebe za prosljeđivanjem parametara ovoj metodi.

Sintaksa:

map_object.keySet()

Primjer:

Vratimo sve ključeve s prethodne karte. Provjerite jeste li izvršili prethodni primjer koda (izradite kartu s tri računa). U suprotnom ćete dobiti grešku. Kod bi također trebao postojati u konzoli.

// Vrati sve ključeve koristeći keySet()

System.debug(map_obj.keySet());

Izlaz:

Postoje samo tri para ključ:vrijednost u map_obj. Ključevi su: {Account:{Name=Linux Hint}, Account:{Name=Python} i Account:{Name=Salesforce}.

3. Map.size()

U nekim scenarijima moramo znati ukupne parove stavki (ključ:vrijednost) koji su prisutni na Apex mapi. Size() je metoda koja vraća ukupni broj (ključ:vrijednost) parova koji postoje u map_object. Za ovu metodu nisu potrebni parametri.

Sintaksa:

map_object.size()

Primjer:

Vrati veličinu prethodnog objekta karte.

// Vrati ukupan broj parova pomoću size()

System.debug(map_obj.size());

Izlaz:

Budući da postoje samo 3 para, vraćena veličina() je 3.

4. Map.get()

Pristup vrijednostima iz mape pomoću ključa vrši se metodom get(). Da bismo to učinili, moramo proslijediti ključ kao parametar metodi get(). Ako se proslijedi nepoznati ključ, vraća se pogreška.

Sintaksa:

map_object.get(ključ)

Primjer:

Odvojeno vrati vrijednosti  ključa-2 i ključa-1.

// dobivanje vrijednosti drugog ključa

System.debug(map_obj.get(account2));

// dobivanje vrijednosti prvog ključa

System.debug(map_obj.get(account1));

Izlaz:

Ovdje je 2000 vrijednost ključa 'Salesforce', a 1000 vrijednost ključa 'Linux Hint'.

5. Map.clear()

Svi parovi u Apex zbirci karata mogu se odjednom izbrisati pomoću metode clear(). Neće uzeti nikakve parametre.

Sintaksa:

map_object.clear()

Primjer:

Uklonite parove u prethodnom “map_obj”.

//Prije clear()

System.debug(map_obj);

// Ukloni sve parove koristeći clear()

map_obj.clear();

//Nakon clear()

System.debug(map_obj);

Izlaz:

Prethodno su postojala 3 para ključ-vrijednost u 'map_obj'. Nakon primjene metode clear(), sva 3 se brišu.

6. Map.equals()

Dva objekta karte možemo usporediti pomoću metode equals(). Booleova vrijednost true vraća se ako su svi ključevi i vrijednosti isti u oba objekta karte. Dok se Booleova vrijednost false vraća ako je barem jedna vrijednost drugačija.

Sintaksa:

map_object1.equals(map_object2)

Primjer:

Kreirajmo tri objekta karte s jednim parom ključ:vrijednost, svaki s obzirom na objekt 'Račun'. Usporedite ove predmete među njima.

// Račun-1

Account account1 = new Account();

Map map_obj1 = new Map{

račun1 => 1000};

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

// Račun-2

Account account2 = new Account();

Map map_obj2 = new Map{

račun2 => 1000};

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

// Račun-3

Account account3 = new Account();

Map map_obj3 = new Map{

račun3 => 2000};

System.debug('Karta - 3:' + map_obj3);

// jednako()

System.debug('Karta 1 & Karta 2 su jednake: '+ map_obj1.equals(map_obj2));

System.debug('Mapa 1 & Karta 3 su jednake: '+ map_obj1.equals(map_obj3));

Izlaz:

Prvi i drugi objekt karte jednaki su budući da su ključevi i vrijednosti isti u oba objekta. Prvi i treći objekt karte nisu jednaki jer su ključevi i vrijednosti različiti.

7. Map.isEmpty()

Možemo provjeriti je li mapa prazna ili nije pomoću metode isEmpty(). True se vraća ako je kolekcija mapa Apex prazna. Inače se vraća false. Slično metodi size(), neće uzeti nikakve parametre.

Sintaksa:

map_object.isEmpty()

Primjer:

Kreirajmo dva objekta karte koji se odnose na 'Račun' i provjerimo jesu li ta dva prazna ili ne.

// Račun-1

Account account1 = new Account();

Map map_obj1 = new Map{

račun1 => 1000};



// Račun-2

Map map_obj2 = new Map();

// prazno je()

System.debug('Map-1 je prazan: '+map_obj1.isEmpty());

System.debug('Map-2 je prazan: '+map_obj2.isEmpty());

Izlaz:

Prva karta nije prazna jer sadrži jedan par ključ-vrijednost. Druga karta je prazna jer ne sadrži ništa.

8. Map.remove()

Metoda remove() u zbirci mapa Apex koristi se za uklanjanje određenog para ključ-vrijednost na temelju ključa koji je u njemu naveden kao parametar. Ako ključ ne postoji, prikazuje se pogreška.

Sintaksa:

map_object.remove(ključ)

Primjer:

Kreirajmo kartu s dvije stavke i uklonimo prvu stavku.

Account account1 = new Account();

Account account2 = new Account();

Map map_obj = new Map{

račun1 => 1000,račun2 => 4000};

System.debug('Postojeća karta'+ map_obj);

//ukloniti()

map_obj.ukloni(račun1);

System.debug('Nakon uklanjanja prve stavke:'+map_obj);

Izlaz:

Nakon uklanjanja prve stavke s karte, postoji samo jedna stavka – {Account:{Name=Python}=4000}.

9. Map.put()

Koristeći ovu metodu, možemo izravno dodavati jednu po jednu stavku na objekt karte. Prihvaća dva parametra: 'ključ' je prvi parametar dok je 'vrijednost' drugi parametar.

Sintaksa:

map_object.put(ključ,vrijednost)

Primjer:

Kreirajmo kartu s jednim parom ključ-vrijednost. Zatim koristimo metodu 'put' za umetanje 'account2'.

// Račun-1

Account account1 = new Account();

Map map_obj1 = new Map{

račun1 => 1000};

System.debug('Stvarna karta: '+map_obj1);

// Račun-2

Account account2 = new Account();

// stavi()

map_obj1.put(račun2,2000);

System.debug('Konačna karta: '+map_obj1);

Izlaz:

Prethodno je postojao samo jedan par ključ-vrijednost na mapi koji je bio {Account:{Name=Linux Hint}=1000}. Nakon dodavanja “account2”, konačna mapa sadrži dva para ključ-vrijednost koji su {Account:{Name=Linux Hint}=1000 i Account:{Name=Python}=2000}.

10. Map.putAll()

Koristeći ovu metodu, možemo izravno dodati jednu ili više stavki objektu karte odjednom. Kao parametar uzima objekt zbirke karata.

Sintaksa:

map_object1.putAll(map_object2)

Primjer:

Kreirajmo mapu s dva para ključ-vrijednost i ponovo stvorimo prazan objekt karte bez stavki. Upotrijebite metodu putAll() za dodavanje stavki koje su dostupne u prvom objektu karte drugom objektu karte.

Account account1 = new Account();

Account account2 = new Account();

Map map_obj1 = new Map{

račun1 => 1000, račun2=> 2000};

System.debug(map_obj1);

Map map_obj2 = new Map();

//staviSve()

map_obj2.putAll(map_obj1);

System.debug(map_obj2);

Izlaz:

Zaključak

Karta je struktura podataka koja se uglavnom koristi u scenarijima okidača i pomaže pri učitavanju više podataka odjednom u Salesforce bazu podataka poput popisa. Imamo dvije opcije za dodavanje stavki na mapu: pomoću put() i putAll(). Metoda remove() koristi se za uklanjanje određene stavke iz Apexove zbirke karata. Metoda clear() koristi se za brisanje svih stavki. Također, naučili smo kako vratiti vrijednosti i ključeve pomoću metoda values() i keySet().