Salesforce Apex-kart er en datastruktur som hovedsakelig brukes i trigger-scenarier og hjelper til med å laste inn flere data om gangen i Salesforce-databasen som en liste. Men den lagrer og organiserer dataene i parformatet {key:value}. Vi vil diskutere kartsamlingen i programmeringsspråket Apex og metodene. Her vil vi bruke kontostandardobjektet i Salesforce for alle eksempler. La oss raskt dykke inn i denne opplæringen.
Kart
Kart tar {key:value}-pardataene som input og lagrer dem i Salesforce-standarden eller egendefinerte objekter. Den kan ta sObject som nøkkel eller verdi.
Kartoppretting
Ved å spesifisere datatypene for nøkkelen og verdien sammen med objektnavnet, kan kartet opprettes. Her brukes et nytt nøkkelord for å lage det. Det kan være valgfritt å passere elementene under opprettelsen.
Tom kartsyntaks:
KartGenerisk syntaks:
KartNøkkel => verdi,....};
sObject Syntaks:
MapNøkkel => verdi,....};
Her kan sObject være et standard eller tilpasset objekt. I hele denne artikkelen vil vi bare ta for oss kart med 'Konto'-objektet.
La oss se metodene som støttes av Apex 'kart'-samlingen én etter én.
Miljøoppsett
1. Logg raskt på Salesforce og åpne «Utviklerkonsollen» ved å klikke på tannhjulikonet.
2. Åpne deretter 'Anonymt vindu' ved å klikke på 'Feilsøk' og 'Åpne Kjør anonymt vindu'.
Generisk eksempel:
Først vil vi se generisk kartoppretting ved å lage et kart med to emner: 'subject_id' som fungerer som en nøkkel og 'verdi' som emnenavn.
Kartsystem.debug(programmering);
Produksjon:
- Klikk på 'Utfør'.
- Sjekk alternativet 'Bare feilsøking'. Du kan se utdataene i 'Utførelsesloggen'.
Kartmetoder
Først lager vi et kart fra 'Konto' -objektet. Vi oppretter tre kontoer med navn én etter én. Deretter erklærer vi et kart med nøkkelen og verdien som
Kontokonto1 = ny konto(Navn='Linux-hint');
Kontokonto2 = ny konto(Navn='Salesforce');
Kontokonto3 = ny konto(Navn='Python');
// Legg til kontoene ovenfor som nøkler til map_obj
Map
konto1 => 1000,konto2 => 2000,konto3 => 3000};
System.debug(map_obj);
Produksjon:
Du kan se at 'map_obj' lagrer tre kontoer.
1. Map.values()
For å returnere bare verdiene fra det gitte kartet, kan vi bruke values()-metoden. Det vil ikke ta noen parametere. Den returnerer bare listen over verdier atskilt med komma.
Syntaks:
map_object.values()Eksempel:
La oss returnere alle verdiene fra forrige kart. Sørg for at du må utføre den forrige eksempelkoden (lag et kart med tre kontoer). Ellers får du en feilmelding. Koden bør også finnes i konsollen.
// Returner verdier for alle nøklene ved å bruke verdier()System.debug(map_obj.values());
Produksjon:
Det er bare tre nøkkel:verdi-par i map_obj. Verdiene er: 1000, 2000 og 3000.
2. Map.keySet()
Returner nøklene er tilstede i kartobjektet. I likhet med verdier(), er det ikke nødvendig å sende noen parameter til denne metoden.
Syntaks:
map_object.keySet()Eksempel:
La oss returnere alle nøklene fra forrige kart. Pass på at du kjører den forrige eksempelkoden (lag et kart med tre kontoer). Ellers får du en feilmelding. Koden bør også finnes i konsollen.
// Returner alle nøklene med keySet()System.debug(map_obj.keySet());
Produksjon:
Det er bare tre nøkkel:verdi-par i map_obj. Nøklene er: {Account:{Name=Linux Hint}, Account:{Name=Python} og Account:{Name=Salesforce}.
3. Map.size()
I noen scenarier må vi kjenne de totale vareparene (nøkkel:verdi) som finnes i Apex-kartet. Size() er metoden som returnerer de totale (nøkkel:verdi) parene som finnes i map_object. Parametre er ikke nødvendig for denne metoden.
Syntaks:
map_object.size()Eksempel:
Returner størrelsen på forrige kartobjekt.
// Returner totalt antall par med størrelse()System.debug(map_obj.size());
Produksjon:
Siden det bare er 3 par, er den returnerte størrelsen() 3.
4. Map.get()
Tilgang til verdiene fra kartet ved hjelp av nøkkelen gjøres ved å bruke get()-metoden. For å gjøre dette, må vi sende nøkkelen som en parameter til get()-metoden. Hvis en ukjent nøkkel sendes, returnerer den en feil.
Syntaks:
map_object.get(key)Eksempel:
Returner verdiene til nøkkel-2 og nøkkel-1 separat.
// få verdien av andre nøkkelSystem.debug(map_obj.get(konto2));
// få verdien av første nøkkel
System.debug(map_obj.get(konto1));
Produksjon:
Her er 2000 verdien av 'Salesforce'-nøkkelen og 1000 er verdien av 'Linux Hint'-nøkkelen.
5. Map.clear()
Alle parene i en Apex-kartsamling kan slettes om gangen ved å bruke clear()-metoden. Det vil ikke ta noen parametere.
Syntaks:
map_object.clear()Eksempel:
Fjern parene i forrige 'map_obj'.
//Før klar()System.debug(map_obj);
// Fjern alle par med clear()
map_obj.clear();
//Etter clear()
System.debug(map_obj);
Produksjon:
Tidligere var det 3 nøkkelverdi-par i 'map_obj'. Etter å ha brukt clear()-metoden, slettes alle 3.
6. Map.equals()
Vi kan sammenligne to kartobjekter ved å bruke equals()-metoden. Den boolske verdien av true returneres hvis alle nøkler og verdier er like i begge kartobjektene. Mens den boolske verdien av false returneres hvis minst én verdi er forskjellig.
Syntaks:
map_object1.equals(map_object2)Eksempel:
La oss lage tre kartobjekter med ett nøkkel:verdi-par, hver med hensyn til 'Konto'-objektet. Sammenlign disse objektene blant dem.
// Konto-1Kontokonto1 = ny konto(Navn='Linux-hint');
Map
konto1 => 1000};
System.debug('Kart - 1:' + map_obj1);
// Konto-2
Kontokonto2 = ny konto(Navn='Linux-hint');
Kart
konto2 => 1000};
System.debug('Kart - 2:' + map_obj1);
// Konto-3
Kontokonto3 = ny konto(Navn='Python');
Kart
konto3 => 2000};
System.debug('Kart - 3:' + map_obj3);
// er lik()
System.debug('Kart 1 og kart 2 er like: '+ map_obj1.equals(map_obj2));
System.debug('Kart 1 og kart 3 er like: '+ map_obj1.equals(map_obj3));
Produksjon:
Det første og andre kartobjektet er like siden både nøkler og verdier er de samme i begge objektene. Det første og tredje kartobjektet er ikke like siden nøklene og verdiene er forskjellige.
7. Map.isEmpty()
Vi kan sjekke om kartet er tomt eller ikke ved å bruke isEmpty()-metoden. True returneres hvis Apex-kartsamlingen er tom. Ellers returneres false. I likhet med size()-metoden vil den ikke ta noen parameter.
Syntaks:
map_object.isEmpty()Eksempel:
La oss lage to kartobjekter som er relatert til 'Konto' og sjekke om disse to er tomme eller ikke.
// Konto-1Kontokonto1 = ny konto(Navn='Linux-hint');
Map
konto1 => 1000};
// Konto-2
Map
// er tom()
System.debug('Map-1 er tom: '+map_obj1.isEmpty());
System.debug('Map-2 er tom: '+map_obj2.isEmpty());
Produksjon:
Det første kartet er ikke tomt siden det inneholder ett nøkkelverdi-par. Det andre kartet er tomt siden det ikke inneholder noen.
8. Map.remove()
Remove()-metoden i Apex-kartsamlingen brukes til å fjerne et bestemt nøkkelverdi-par basert på nøkkelen som er spesifisert i den som en parameter. Hvis nøkkelen ikke finnes, oppstår det en feil.
Syntaks:
map_object.remove(key)Eksempel:
La oss lage et kart med to elementer og fjerne det første elementet.
Kontokonto1 = ny konto(Navn='Linux-hint');Kontokonto2 = ny konto(Navn='Python');
Map
konto1 => 1000,konto2 => 4000};
System.debug('Eksisterende kart'+ map_obj);
//fjerne()
map_obj.remove(konto1);
System.debug('Etter å ha fjernet det første elementet:'+map_obj);
Produksjon:
Etter å ha fjernet det første elementet fra kartet, finnes det bare ett element – {Account:{Name=Python}=4000}.
9. Map.put()
Ved å bruke denne metoden kan vi direkte legge til ett element til kartobjektet om gangen. Den aksepterer to parametere: 'nøkkel' er den første parameteren mens 'verdi' er den andre parameteren.
Syntaks:
map_object.put(nøkkel,verdi)Eksempel:
La oss lage et kart med ett nøkkelverdi-par. Deretter bruker vi 'put'-metoden for å sette inn 'konto2'.
// Konto-1Kontokonto1 = ny konto(Navn='Linux-hint');
Map
konto1 => 1000};
System.debug('Faktisk kart: '+map_obj1);
// Konto-2
Kontokonto2 = ny konto(Navn='Python');
// sette()
map_obj1.put(konto2,2000);
System.debug('Endelig kart: '+map_obj1);
Produksjon:
Tidligere var det bare ett nøkkelverdi-par i kartet som er {Account:{Name=Linux Hint}=1000}. Etter å ha lagt til 'konto2', inneholder det endelige kartet to nøkkelverdi-par som er {Account:{Name=Linux Hint}=1000 og Account:{Name=Python}=2000}.
10. Map.putAll()
Ved å bruke denne metoden kan vi legge til et enkelt eller flere elementer til kartobjektet om gangen. Den tar et kartsamlingsobjekt som en parameter.
Syntaks:
map_object1.putAll(map_object2)Eksempel:
La oss lage et kart med to nøkkelverdi-par og lage et tomt kartobjekt igjen uten elementer. Bruk putAll()-metoden for å legge til elementene som er tilgjengelige i det første kartobjektet til det andre kartobjektet.
Kontokonto1 = ny konto(Navn='Linux-hint');Kontokonto2 = ny konto(Navn='Python');
Map
konto1 => 1000, konto2=> 2000};
System.debug(map_obj1);
Map
//putt alle()
map_obj2.putAll(map_obj1);
System.debug(map_obj2);
Produksjon:
Konklusjon
Kart er en datastruktur som hovedsakelig brukes i trigger-scenarier og hjelper til med å laste inn flere data om gangen i Salesforce-databasen som en liste. Vi har to alternativer for å legge til elementene i kartet: ved å bruke put() og putAll(). Remove()-metoden brukes til å fjerne et bestemt element fra Apex-kartsamlingen. Clear()-metoden brukes til å slette alle elementer. Vi lærte også hvordan du returnerer verdiene og nøklene ved å bruke metodene values() og keySet().