Salesforce Apex – Kart

Salesforce Apex Kart



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:

Kart map_obj = nytt kart():

Generisk syntaks:

Kart map_obj = new Map{

Nøkkel => verdi,....};

sObject Syntaks:

Map map_obj = new Map{

Nø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.

Kart programmering=nytt Kart{1=> 'Linux',2=> 'Python'};

system.debug(programmering);

Produksjon:

  1. Klikk på 'Utfør'.
  2. 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 skriv inn og send de tre foregående kontoene til kartet ved å oppgi noen verdier.

// Opprett 3 kontoer med Navn

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 map_obj = new 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økkel

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

Kontokonto1 = ny konto(Navn='Linux-hint');

Map map_obj1 = new Map{

konto1 => 1000};

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

// Konto-2

Kontokonto2 = ny konto(Navn='Linux-hint');

Kart map_obj2 = new Map{

konto2 => 1000};

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

// Konto-3

Kontokonto3 = ny konto(Navn='Python');

Kart map_obj3 = new Map{

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

Kontokonto1 = ny konto(Navn='Linux-hint');

Map map_obj1 = new Map{

konto1 => 1000};



// Konto-2

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

Kontokonto1 = ny konto(Navn='Linux-hint');

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

konto1 => 1000, konto2=> 2000};

System.debug(map_obj1);

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