Salesforce Apex — karte

Salesforce Apex Karte



Salesforce Apex karte ir datu struktūra, kas galvenokārt tiek izmantota trigeru scenārijos un palīdz vienlaikus ielādēt vairāk datu Salesforce datu bāzē kā sarakstu. Taču tas saglabā un kārto datus {key:value} pāra formātā. Mēs apspriedīsim karšu kolekciju Apex programmēšanas valodā un tās metodes. Šeit visiem piemēriem mēs izmantosim Salesforce standarta objektu Konta. Ātri iedziļināsimies šajā apmācībā.

Karte

Map izmanto {key:value} pāra datus kā ievadi un saglabā tos Salesforce standarta vai pielāgotajos objektos. Tas var izmantot sObject kā atslēgu vai vērtību.







Kartes izveide

Norādot atslēgas datu tipus un vērtību kopā ar objekta nosaukumu, var izveidot karti. Šeit tā izveidošanai tiek izmantots jauns atslēgvārds. Elementu nodošana izveides laikā var nebūt obligāta.



Tukšas kartes sintakse:

Karte map_obj = new Map():

Vispārējā sintakse:

Karte map_obj = new Map{

Atslēga => vērtība,....};

sObject sintakse:

Karte map_obj = jauna karte{

Atslēga => vērtība,....};

Šeit sObject var būt standarta vai pielāgots objekts. Šajā rakstā mēs apskatīsim tikai karti ar sObject “Konts”.



Pa vienam apskatīsim metodes, kuras atbalsta Apex “kartes” kolekcija.





Vides iestatīšana

1. Ātri piesakieties pakalpojumā Salesforce un atveriet izstrādātāja konsoli, noklikšķinot uz zobrata ikonas.



2. Pēc tam atveriet “Anonymous Window”, noklikšķinot uz “Atkļūdošana” un “Atvērt anonīmo izpildes logu”.

Vispārīgs piemērs:

Pirmkārt, mēs redzēsim vispārīgu kartes izveidi, izveidojot karti ar diviem priekšmetiem: “subject_id”, kas darbojas kā atslēga, un “vērtība” kā tēmas nosaukums.

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

system.debug(programmēšana);

Izvade:

  1. Noklikšķiniet uz 'Izpildīt'.
  2. Atzīmējiet opciju “Tikai atkļūdošana”. Izvadi var redzēt “Izpildes žurnālā”.

Kartes metodes

Vispirms no objekta “Konts” izveidojam karti. Mēs izveidojam trīs kontus ar nosaukumiem pa vienam. Pēc tam mēs deklarējam karti ar atslēgu un vērtību kā ierakstiet un nododiet kartei iepriekšējos trīs kontus, norādot dažas vērtības.

// Izveidojiet 3 kontus ar nosaukumu

Konts konts1 = jauns konts (Nosaukums='Linux Hint');

Konts konts2 = jauns konts (Nosaukums='Salesforce');

Konts konts3 = jauns konts(Nosaukums='Python');

// Pievienojiet iepriekš minētos kontus kā atslēgas map_obj

Karte map_obj = jauna karte{

konts1 => 1000,konts2 => 2000,konts3 => 3000};

System.debug(kartes_obj);

Izvade:

Varat redzēt, ka “map_obj” saglabā trīs kontus.

1. Map.values()

Lai atgrieztu tikai vērtības no dotās kartes, mēs varam izmantot vērtības() metodi. Tas neprasīs nekādus parametrus. Tas vienkārši atgriež vērtību sarakstu, kas atdalīts ar komatu.

Sintakse:

map_object.values()

Piemērs:

Atgriezīsim visas vērtības no iepriekšējās kartes. Pārliecinieties, ka jums ir jāizpilda iepriekšējais parauga kods (izveidojiet karti ar trim kontiem). Pretējā gadījumā jūs saņemsit kļūdu. Kodam ir jābūt arī konsolē.

// Atgriež vērtības visām atslēgām, izmantojot vērtības ()

System.debug(kartes_obj.vērtības());

Izvade:

Objektā map_obj ir tikai trīs atslēgas:vērtības pāri. Vērtības ir: 1000, 2000 un 3000.

2. Map.keySet()

Atgriezties atslēgas atrodas kartes objektā. Līdzīgi kā vērtības (), šai metodei nav jānodod nekādi parametri.

Sintakse:

map_object.keySet()

Piemērs:

Atgriezīsim visas atslēgas no iepriekšējās kartes. Noteikti izpildiet iepriekšējo parauga kodu (izveidojiet karti ar trim kontiem). Pretējā gadījumā jūs saņemsit kļūdu. Kodam ir jābūt arī konsolē.

// Atgriezt visas atslēgas, izmantojot keySet()

System.debug(map_obj.keySet());

Izvade:

Objektā map_obj ir tikai trīs atslēgas:vērtības pāri. Atslēgas ir: {Account:{Name=Linux Hint}, Account:{Name=Python} un Account:{Name=Salesforce}.

3. Map.size()

Dažos gadījumos mums ir jāzina kopējie vienumu (atslēga:vērtība) pāri, kas atrodas Apex kartē. Izmērs() ir metode, kas atgriež kopējos (atslēga:vērtība) pārus, kas pastāv mapes_object. Šai metodei parametri nav nepieciešami.

Sintakse:

map_object.size()

Piemērs:

Atgriezt iepriekšējā kartes objekta izmēru.

// Atgriezt kopējo pāru skaitu, izmantojot izmēru()

System.debug(kartes_obj.izmērs());

Izvade:

Tā kā ir tikai 3 pāri, atgrieztais izmērs() ir 3.

4. Map.get()

Piekļuve vērtībām no kartes, izmantojot taustiņu, tiek veikta, izmantojot metodi get(). Lai to izdarītu, atslēga ir jānodod kā parametrs metodei get(). Ja tiek nodota nezināma atslēga, tā atgriež kļūdu.

Sintakse:

map_object.get(key)

Piemērs:

Atgrieziet atslēgas 2 un atslēgas 1 vērtības atsevišķi.

// iegūstiet otrās atslēgas vērtību

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

// iegūstiet pirmās atslēgas vērtību

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

Izvade:

Šeit 2000 ir atslēgas “Salesforce” vērtība un 1000 ir atslēgas “Linux Hint” vērtība.

5. Map.clear()

Visus Apex karšu kolekcijas pārus var dzēst vienlaikus, izmantojot Clear() metodi. Tas neprasīs nekādus parametrus.

Sintakse:

map_object.clear()

Piemērs:

Noņemiet pārus iepriekšējā “map_obj”.

//Pirms notīrīt()

System.debug(kartes_obj);

// Noņemiet visus pārus, izmantojot clear()

map_obj.clear();

//Pēc notīrīšanas()

System.debug(kartes_obj);

Izvade:

Iepriekš objektā “map_obj” bija 3 atslēgu-vērtību pāri. Pēc Clear() metodes izmantošanas visas 3 tiek dzēstas.

6. Map.equals()

Mēs varam salīdzināt divus kartes objektus, izmantojot vienāds() metodi. Būla vērtība true tiek atgriezta, ja visas atslēgas un vērtības ir vienādas abos kartes objektos. Kamēr Būla vērtība false tiek atgriezta, ja vismaz viena vērtība atšķiras.

Sintakse:

map_object1.equals(kartes_objekts2)

Piemērs:

Izveidosim trīs kartes objektus ar vienu atslēgas:vērtības pāri, katrs attiecībā pret objektu “Konts”. Salīdziniet šos objektus savā starpā.

// Konts-1

Konts konts1 = jauns konts (Nosaukums='Linux Hint');

Karte map_obj1 = jauna karte{

konts1 => 1000};

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

// Konts-2

Konts konts2 = jauns konts ();

Karte map_obj2 = jauna karte{

konts2 => 1000};

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

// Konts-3

Konts konts3 = jauns konts(Nosaukums='Python');

Karte map_obj3 = jauna karte{

konts3 => 2000};

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

// vienāds ()

System.debug('1. karte un 2. karte ir vienādi: '+ map_obj1.equals(map_obj2));

System.debug('Karte 1 un karte 3 ir vienādi: '+ map_obj1.equals(map_obj3));

Izvade:

Pirmais un otrais kartes objekts ir vienādi, jo abos objektos atslēgas un vērtības ir vienādas. Pirmais un trešais kartes objekts nav vienādi, jo atslēgas un vērtības ir atšķirīgas.

7. Map.isEmpty()

Mēs varam pārbaudīt, vai karte ir tukša, izmantojot metodi isEmpty(). Patiess tiek atgriezts, ja Apex karšu kolekcija ir tukša. Pretējā gadījumā tiek atgriezta viltus. Līdzīgi kā size() metodei, tai nav nepieciešami nekādi parametri.

Sintakse:

map_object.isEmpty()

Piemērs:

Izveidosim divus kartes objektus, kas ir saistīti ar “Konts”, un pārbaudīsim, vai tie ir tukši.

// Konts-1

Konts konts1 = jauns konts (Nosaukums='Linux Hint');

Karte map_obj1 = jauna karte{

konts1 => 1000};



// Konts-2

Karte map_obj2 = jauna karte();

// ir tukšs()

System.debug('Karte-1 ir tukša: '+map_obj1.isEmpty());

System.debug('Karte-2 ir tukša: '+map_obj2.isEmpty());

Izvade:

Pirmā karte nav tukša, jo tajā ir viens atslēgu un vērtību pāris. Otrā karte ir tukša, jo tajā nav nevienas.

8. Map.remove()

Metode remove() Apex karšu kolekcijā tiek izmantota, lai noņemtu noteiktu atslēgu-vērtību pāri, pamatojoties uz atslēgu, kas tajā norādīta kā parametrs. Ja atslēga neeksistē, tiek parādīta kļūda.

Sintakse:

map_object.remove(key)

Piemērs:

Izveidosim karti ar diviem vienumiem un noņemsim pirmo vienumu.

Konts konts1 = jauns konts (Nosaukums='Linux Hint');

Konts konts2 = jauns konts(Nosaukums='Python');

Karte map_obj = jauna karte{

konts1 => 1000,konts2 => 4000};

System.debug('Esošā karte'+ map_obj);

//noņemt()

map_obj.remove(account1);

System.debug('Pēc pirmā vienuma noņemšanas:'+map_obj);

Izvade:

Pēc pirmā vienuma noņemšanas no kartes eksistē tikai viens vienums — {Account:{Name=Python}=4000}.

9. Map.put()

Izmantojot šo metodi, mēs varam tieši pievienot vienu vienumu kartes objektam vienlaikus. Tas pieņem divus parametrus: “atslēga” ir pirmais parametrs, bet “vērtība” ir otrais parametrs.

Sintakse:

map_object.put(atslēga,vērtība)

Piemērs:

Izveidosim karti ar vienu atslēgu un vērtību pāri. Pēc tam mēs izmantojam “put” metodi, lai ievietotu “account2”.

// Konts-1

Konts konts1 = jauns konts (Nosaukums='Linux Hint');

Karte map_obj1 = jauna karte{

konts1 => 1000};

System.debug('Faktiskā karte: '+map_obj1);

// Konts-2

Konts konts2 = jauns konts(Nosaukums='Python');

// ielieciet ()

map_obj1.put(account2,2000);

System.debug('Galīgā karte: '+map_obj1);

Izvade:

Iepriekš kartē bija tikai viens atslēgas vērtību pāris, kas ir {Account:{Name=Linux Hint}=1000}. Pēc “account2” pievienošanas galīgajā kartē ir divi atslēgu vērtību pāri, kas ir {Account:{Name=Linux Hint}=1000 un Account:{Name=Python}=2000}.

10. Map.putAll()

Izmantojot šo metodi, mēs varam tieši pievienot vienu vai vairākus vienumus kartes objektam vienlaikus. Kā parametrs tiek ņemts karšu kolekcijas objekts.

Sintakse:

map_object1.putAll(kartes_objekts2)

Piemērs:

Izveidosim karti ar diviem atslēgu-vērtību pāriem un atkal izveidosim tukšu kartes objektu bez vienumiem. Izmantojiet metodi putAll(), lai pievienotu pirmajā kartes objektā pieejamos vienumus otrajam kartes objektam.

Konts konts1 = jauns konts (Nosaukums='Linux Hint');

Konts konts2 = jauns konts(Nosaukums='Python');

Karte map_obj1 = jauna karte{

konts1 => 1000, konts2=> 2000};

System.debug(karte_obj1);

Karte map_obj2 = jauna karte();

//putVisu()

map_obj2.putAll(karte_obj1);

System.debug(karte_obj2);

Izvade:

Secinājums

Karte ir datu struktūra, ko galvenokārt izmanto trigeru scenārijos un kas palīdz vienlaikus ielādēt vairāk datu Salesforce datu bāzē kā sarakstu. Mums ir divas iespējas pievienot vienumus kartei: izmantojot put() un putAll(). Metode remove() tiek izmantota, lai noņemtu noteiktu vienumu no Apex karšu kolekcijas. Clear() metode tiek izmantota, lai izdzēstu visus vienumus. Mēs arī uzzinājām, kā atgriezt vērtības un atslēgas, izmantojot vērtības() un keySet() metodes.