Salesforce Apex – kaart

Salesforce Apex Kaart



Salesforce Apexi kaart on andmestruktuur, mida kasutatakse peamiselt päästikstsenaariumide korral ja mis aitab laadida Salesforce'i andmebaasi loendina korraga rohkem andmeid. Kuid see salvestab ja korraldab andmed paarivormingus {key:value}. Arutleme Apex programmeerimiskeeles kaardikogu ja selle meetodite üle. Siin kasutame kõigi näidete jaoks Salesforce'i konto standardobjekti. Sukeldume kiiresti sellesse õpetusesse.

Kaart

Map võtab sisendiks {key:value} paariandmed ja salvestab need Salesforce'i standard- või kohandatud objektidesse. See võib võtta võtme või väärtusena objekti sObject.







Kaardi loomine

Määrates võtme ja väärtuse andmetüübid koos objekti nimega, saab luua kaardi. Siin kasutatakse selle loomiseks uut märksõna. Elementide edastamine loomise ajal võib olla valikuline.



Tühja kaardi süntaks:

Kaart map_obj = new Map():

Üldine süntaks:

Map map_obj = new Map{

Võti => väärtus,....};

sObjecti süntaks:

Kaart map_obj = new Map{

Võti => väärtus,....};

Siin võib sObject olla standardne või kohandatud objekt. Kogu selles artiklis käsitleme ainult kaarti, mille sObject on 'Konto'.



Vaatame ükshaaval meetodeid, mida Apexi kaardikogu toetab.





Keskkonna seadistamine

1. Logige kiiresti Salesforce'i sisse ja avage „Developer Console”, klõpsates hammasrattaikoonil.



2. Seejärel avage 'Anonüümne aken', klõpsates 'Silumine' ja 'Open Execute Anonymous Window'.

Üldine näide:

Esiteks näeme üldist kaardi loomist, luues kaardi, millel on kaks teemat: 'subject_id', mis toimib võtmena ja 'väärtus' kui teema nimi.

Kaart programming=uus Kaart{1=> 'Linux',2=> 'Python'};

system.debug(programmeerimine);

Väljund:

  1. Klõpsake nuppu 'Käivita'.
  2. Kontrollige valikut 'Ainult silumine'. Väljundit näete täitmislogis.

Kaardimeetodid

Esiteks loome objektist “Konto” kaardi. Loome ükshaaval kolm nimedega kontot. Seejärel deklareerime kaardi võtme ja väärtusega as tippige ja edastage kolm eelmist kontot kaardile, esitades mõned väärtused.

// Looge nimega 3 kontot

Konto konto1 = uus Konto(Nimi='Linux Hint');

Konto konto2 = new Account();

Konto konto3 = new Account();

// Lisage ülaltoodud kontod faili map_obj võtmetena

Kaart map_obj = uus Kaart{

konto1 => 1000,konto2 => 2000,konto3 => 3000};

System.debug(map_obj);

Väljund:

Näete, et 'map_obj' salvestab kolm kontot.

1. Map.values()

Ainult antud kaardi väärtuste tagastamiseks saame kasutada väärtuste() meetodit. See ei võta mingeid parameetreid. See lihtsalt tagastab komadega eraldatud väärtuste loendi.

Süntaks:

map_object.values()

Näide:

Tagastame kõik eelmise kaardi väärtused. Veenduge, et peate täitma eelmise näite koodi (looge kolme kontoga kaart). Vastasel juhul saate veateate. Kood peaks olema ka konsoolis.

// Tagastab kõigi võtmete väärtused, kasutades väärtusi()

System.debug(map_obj.values());

Väljund:

Kaardis map_obj on ainult kolm võtme:väärtus paari. Väärtused on: 1000, 2000 ja 3000.

2. Map.keySet()

Tagasta võtmed on kaardiobjektil. Sarnaselt väärtustele () pole sellele meetodile vaja ühtegi parameetrit edastada.

Süntaks:

map_object.keySet()

Näide:

Tagastame kõik eelmise kaardi võtmed. Veenduge, et käivitaksite eelmise näite koodi (looge kolme kontoga kaart). Vastasel juhul saate veateate. Kood peaks olema ka konsoolis.

// Tagastab kõik võtmed kasutades keySet()

System.debug(map_obj.keySet());

Väljund:

Kaardis map_obj on ainult kolm võtme:väärtus paari. Võtmed on järgmised: {Account:{Name=Linux Hint}, Account:{Name=Python} ja Account:{Name=Salesforce}.

3. Map.size()

Mõne stsenaariumi korral peame teadma Apexi kaardil olevate üksuste (võti:väärtus) paare. Suurus() on meetod, mis tagastab objektis map_object olemasolevad paarid (võti:väärtus). Selle meetodi jaoks pole parameetreid vaja.

Süntaks:

map_object.size()

Näide:

Tagastab eelmise kaardiobjekti suuruse.

// Tagastab paaride koguarvu, kasutades suurust()

System.debug(map_obj.size());

Väljund:

Kuna neid on ainult 3 paari, on tagastatav suurus() 3.

4. Map.get()

Väärtuste juurde pääsemine kaardilt võtme abil toimub meetodi get() abil. Selleks peame andma võtme parameetrina get() meetodile. Tundmatu võtme edastamisel tagastab see veateate.

Süntaks:

map_object.get(key)

Näide:

Tagastada võtme-2 ja võtme-1 väärtused eraldi.

// hankige teise võtme väärtus

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

// hankige esimese võtme väärtus

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

Väljund:

Siin on 2000 võtme 'Salesforce' väärtus ja 1000 võtme 'Linux Hint' väärtus.

5. Map.clear()

Kõik Apexi kaardikogu paarid saab kustutada korraga, kasutades meetodit clear(). See ei võta mingeid parameetreid.

Süntaks:

map_object.clear()

Näide:

Eemaldage paarid eelmisest 'map_obj'.

//Enne selget()

System.debug(map_obj);

// Eemaldage kõik paarid, kasutades Clear()

map_obj.clear();

//Pärast selget()

System.debug(map_obj);

Väljund:

Varem oli objektis 'map_obj' 3 võtme-väärtuse paari. Pärast meetodi clear() rakendamist kustutatakse kõik 3.

6. Map.equals()

Kahte kaardiobjekti saame võrrelda meetodi equals() abil. Tõene tõeväärtus tagastatakse, kui kõik võtmed ja väärtused on mõlemas kaardiobjektis samad. Kuigi tõeväärtus false tagastatakse, kui vähemalt üks väärtus on erinev.

Süntaks:

map_object1.equals(map_object2)

Näide:

Loome kolm kaardiobjekti ühe võtme:väärtus paariga, millest igaüks on seotud objektiga 'Konto'. Võrrelge neid objekte nende vahel.

// Konto-1

Konto konto1 = uus Konto(Nimi='Linux Hint');

Kaart map_obj1 = uus kaart{

konto1 => 1000};

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

// Konto-2

Konto konto2 = new Account();

Kaart map_obj2 = uus Kaart{

konto2 => 1000};

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

// Konto-3

Konto konto3 = new Account();

Kaart map_obj3 = uus kaart{

konto3 => 2000};

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

// võrdub ()

System.debug('Kaart 1 ja kaart 2 on võrdsed: '+ map_obj1.equals(map_obj2));

System.debug('Kaart 1 ja kaart 3 on võrdsed: '+ map_obj1.equals(map_obj3));

Väljund:

Esimene ja teine ​​kaardiobjekt on võrdsed, kuna nii võtmed kui ka väärtused on mõlemas objektis samad. Esimene ja kolmas kaardiobjekt ei ole võrdsed, kuna võtmed ja väärtused on erinevad.

7. Map.isEmpty()

Saame kontrollida, kas kaart on tühi või mitte, kasutades isEmpty() meetodit. Tõene tagastatakse, kui Apexi kaardikogu on tühi. Vastasel juhul tagastatakse vale. Sarnaselt meetodile size() ei kasutata ühtegi parameetrit.

Süntaks:

map_object.isEmpty()

Näide:

Loome kaks kaardiobjekti, mis on seotud “Kontoga” ja kontrollime, kas need kaks on tühjad või mitte.

// Konto-1

Konto konto1 = uus Konto(Nimi='Linux Hint');

Kaart map_obj1 = uus kaart{

konto1 => 1000};



// Konto-2

Kaart map_obj2 = uus Kaart();

// on tühi()

System.debug('Kaart-1 on tühi: '+map_obj1.isEmpty());

System.debug('Kaart-2 on tühi: '+map_obj2.isEmpty());

Väljund:

Esimene kaart ei ole tühi, kuna see sisaldab ühte võtme-väärtuste paari. Teine kaart on tühi, kuna sellel pole ühtegi.

8. Map.remove()

Apexi kaardikogus meetodit remove() kasutatakse konkreetse võtme-väärtuse paari eemaldamiseks võtme ja selle parameetrina määratud võtme alusel. Kui võtit pole, kuvatakse tõrge.

Süntaks:

map_object.remove(võti)

Näide:

Loome kahe elemendiga kaardi ja eemaldame esimese üksuse.

Konto konto1 = uus Konto(Nimi='Linux Hint');

Konto konto2 = new Konto(Nimi='Python');

Kaart map_obj = uus Kaart{

konto1 => 1000,konto2 => 4000};

System.debug('Olemasolev kaart'+ map_obj);

//eemalda()

map_obj.remove(konto1);

System.debug('Pärast esimese üksuse eemaldamist:'+map_obj);

Väljund:

Pärast esimese üksuse eemaldamist kaardilt on ainult üks üksus – {Account:{Name=Python}=4000}.

9. Map.put()

Seda meetodit kasutades saame korraga lisada kaardiobjektile otse ühe üksuse. See aktsepteerib kahte parameetrit: 'võti' on esimene parameeter, samas kui 'väärtus' on teine ​​parameeter.

Süntaks:

map_object.put(võti,väärtus)

Näide:

Loome ühe võtme-väärtuse paariga kaardi. Seejärel kasutame konto2 sisestamiseks meetodit 'pane'.

// Konto-1

Konto konto1 = uus Konto(Nimi='Linux Hint');

Kaart map_obj1 = uus kaart{

konto1 => 1000};

System.debug('Tegelik kaart: '+map_obj1);

// Konto-2

Konto konto2 = new Konto(Nimi='Python');

// pane()

map_obj1.put(konto2,2000);

System.debug('Lõplik kaart: '+map_obj1);

Väljund:

Varem oli kaardil ainult üks võtme-väärtuste paar, milleks on {Account:{Name=Linux Hint}=1000}. Pärast „account2” lisamist sisaldab lõplik kaart kahte võtme-väärtuste paari, mis on {Account:{Name=Linux Hint}=1000 ja Account:{Name=Python}=2000}.

10. Map.putAll()

Seda meetodit kasutades saame ühe või mitu üksust otse kaardiobjektile korraga lisada. See võtab parameetrina kaardikogu objekti.

Süntaks:

map_object1.putAll(map_object2)

Näide:

Loome kahe võtme-väärtuse paariga kaardi ja loome uuesti tühja kaardiobjekti ilma üksusteta. Kasutage meetodit putAll(), et lisada esimeses kaardiobjektis saadaolevad üksused teisele kaardiobjektile.

Konto konto1 = uus Konto(Nimi='Linux Hint');

Konto konto2 = new Konto(Nimi='Python');

Kaart map_obj1 = uus kaart{

konto1 => 1000, konto2 => 2000};

System.debug(map_obj1);

Kaart map_obj2 = uus Kaart();

//panna kõik()

kaart_obj2.pane kõik(kaart_obj1);

System.debug(map_obj2);

Väljund:

Järeldus

Kaart on andmestruktuur, mida kasutatakse peamiselt päästikstsenaariumide korral ja mis aitab Salesforce'i andmebaasi laadida korraga rohkem andmeid loendina. Meil on kaks võimalust üksuste kaardile lisamiseks: kasutades put() ja putAll(). Meetodit remove() kasutatakse konkreetse üksuse eemaldamiseks Apexi kaardikogust. Clear() meetodit kasutatakse kõigi üksuste kustutamiseks. Samuti õppisime, kuidas väärtusi ja võtmeid väärtuste () ja keySet() abil tagastada.