Salesforce Apex – Karta

Salesforce Apex Karta



Salesforce Apex-karta är en datastruktur som främst används i triggerscenarier och hjälper till att ladda mer data åt gången till Salesforce-databasen som en lista. Men den lagrar och organiserar data i parformatet {nyckel:värde}. Vi kommer att diskutera kartsamlingen i Apex programmeringsspråk och dess metoder. Här kommer vi att använda kontostandardobjektet i Salesforce för alla exempel. Låt oss snabbt dyka in i den här handledningen.

Karta

Map tar {key:value}-pardata som indata och lagrar den i Salesforce-standardobjekten eller anpassade objekt. Det kan ta sObject som nyckel eller värde.







Kartskapande

Genom att specificera datatyperna för nyckeln och värdet tillsammans med objektnamnet kan kartan skapas. Här används ett nytt nyckelord för att skapa det. Det kan vara valfritt att passera elementen under skapandet.



Tom kartsyntax:

Map map_obj = new Map():

Generisk syntax:

Map map_obj = new Map{

Nyckel => värde,....};

sObject Syntax:

Map map_obj = new Map{

Nyckel => värde,....};

Här kan sObject vara ett standard- eller anpassat objekt. I hela den här artikeln kommer vi bara att ta itu med kartan med 'Konto' sObject.



Låt oss se metoderna som stöds av Apex 'map'-samlingen en efter en.





Miljöinställningar

1. Logga in snabbt på Salesforce och öppna 'Utvecklarkonsolen' genom att klicka på kugghjulsikonen.



2. Öppna sedan 'Anonymous Window' genom att klicka på 'Debug' och 'Öppna Execute Anonymous Window'.

Generiskt exempel:

Först kommer vi att se den generiska kartskapandet genom att skapa en karta med två ämnen: 'subject_id' som fungerar som en nyckel och 'värde' som ämnesnamn.

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

system.debug(programmering);

Produktion:

  1. Klicka på 'Execute'.
  2. Markera alternativet 'Endast felsökning'. Du kan se resultatet i 'Execution Log'.

Kartmetoder

Först skapar vi en karta från objektet 'Konto'. Vi skapar tre konton med namn ett efter ett. Sedan deklarerar vi en karta med nyckeln och värdet som skriv och skicka de tre föregående kontona till kartan genom att ange några värden.

// Skapa 3 konton med Namn

Konto konto1 = nytt konto(Namn='Linux-tips');

Konto konto2 = nytt konto(Namn='Salesforce');

Konto konto3 = nytt konto(Namn='Python');

// Lägg till ovanstående konton som nycklar till map_obj

Map map_obj = new Map{

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

System.debug(map_obj);

Produktion:

Du kan se att 'map_obj' lagrar tre konton.

1. Map.values()

För att endast returnera värdena från den givna kartan kan vi använda metoden values(). Det tar inga parametrar. Det returnerar helt enkelt listan med värden separerade med kommatecken.

Syntax:

map_object.values()

Exempel:

Låt oss returnera alla värden från föregående karta. Se till att du behöver köra föregående exempelkod (skapa en karta med tre konton). Annars får du ett felmeddelande. Koden bör också finnas i konsolen.

// Returnera värden för alla nycklar med värden()

System.debug(map_obj.values());

Produktion:

Det finns bara tre nyckel:värdepar i map_obj. Värdena är: 1000, 2000 och 3000.

2. Map.keySet()

Återgå nycklarna finns i kartobjektet. I likhet med värden(), finns det inget behov av att skicka någon parameter till den här metoden.

Syntax:

map_object.keySet()

Exempel:

Låt oss returnera alla nycklar från föregående karta. Se till att du kör föregående exempelkod (skapa en karta med tre konton). Annars får du ett felmeddelande. Koden bör också finnas i konsolen.

// Returnera alla nycklar med keySet()

System.debug(map_obj.keySet());

Produktion:

Det finns bara tre nyckel:värdepar i map_obj. Nycklarna är: {Account:{Name=Linux Hint}, Account:{Name=Python} och Account:{Name=Salesforce}.

3. Map.size()

I vissa scenarier behöver vi känna till de totala objektparen (nyckel:värde) som finns i Apex-kartan. Size() är metoden som returnerar de totala (nyckel:värde) par som finns i map_object. Parametrar behövs inte för denna metod.

Syntax:

map_object.size()

Exempel:

Returnera storleken på föregående kartobjekt.

// Returnera totalt antal par med storlek()

System.debug(map_obj.size());

Produktion:

Eftersom det bara finns 3 par är den returnerade storleken() 3.

4. Map.get()

Att komma åt värdena från kartan med nyckeln görs med metoden get(). För att göra detta måste vi skicka nyckeln som en parameter till metoden get(). Om en okänd nyckel skickas, returnerar den ett fel.

Syntax:

map_object.get(nyckel)

Exempel:

Returnera värdena för nyckel-2 och nyckel-1 separat.

// få värdet av den andra nyckeln

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

// få värdet av den första nyckeln

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

Produktion:

Här är 2000 värdet på 'Salesforce'-nyckeln och 1000 är värdet på 'Linux Hint'-nyckeln.

5. Map.clear()

Alla par i en Apex-kartasamling kan raderas samtidigt med metoden clear(). Det tar inga parametrar.

Syntax:

map_object.clear()

Exempel:

Ta bort paren i föregående 'map_obj'.

//Innan clear()

System.debug(map_obj);

// Ta bort alla par med clear()

map_obj.clear();

//Efter clear()

System.debug(map_obj);

Produktion:

Tidigare fanns det 3 nyckel-värdepar i 'map_obj'. Efter att ha tillämpat metoden clear() raderas alla 3.

6. Map.equals()

Vi kan jämföra två kartobjekt med metoden equals(). Det booleska värdet true returneras om alla nycklar och värden är desamma i båda kartobjekten. Medan det booleska värdet på false returneras om minst ett värde är annorlunda.

Syntax:

map_object1.equals(map_object2)

Exempel:

Låt oss skapa tre kartobjekt med ett nyckel:värde-par, vart och ett med avseende på 'Konto'-objektet. Jämför dessa objekt bland dem.

// Konto-1

Konto konto1 = nytt konto(Namn='Linux-tips');

Map map_obj1 = new Map{

konto1 => 1000};

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

// Konto-2

Kontokonto2 = nytt konto(Namn='Linux-tips');

Map map_obj2 = new Map{

konto2 => 1000};

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

// Konto-3

Konto konto3 = nytt konto(Namn='Python');

Map map_obj3 = new Map{

konto3 => 2000};

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

// är lika med()

System.debug('Karta 1 & Karta 2 är lika: '+ map_obj1.equals(map_obj2));

System.debug('Karta 1 & Karta 3 är lika: '+ map_obj1.equals(map_obj3));

Produktion:

Det första och andra kartobjektet är lika eftersom både nycklar och värden är samma i båda objekten. De första och tredje kartobjekten är inte lika eftersom nycklarna och värdena är olika.

7. Map.isEmpty()

Vi kan kontrollera om kartan är tom eller inte med metoden isEmpty(). True returneras om Apex-kartsamlingen är tom. Annars returneras false. I likhet med metoden size() tar den inte någon parameter.

Syntax:

map_object.isEmpty()

Exempel:

Låt oss skapa två kartobjekt som är relaterade till 'Konto' och kontrollera om dessa två är tomma eller inte.

// Konto-1

Konto konto1 = nytt konto(Namn='Linux-tips');

Map map_obj1 = new Map{

konto1 => 1000};



// Konto-2

Map map_obj2 = new Map();

// är tom()

System.debug('Map-1 är tom: '+map_obj1.isEmpty());

System.debug('Map-2 är tom: '+map_obj2.isEmpty());

Produktion:

Den första kartan är inte tom eftersom den innehåller ett nyckel-värdepar. Den andra kartan är tom eftersom den inte innehåller någon.

8. Map.remove()

Metoden remove() i Apex-mappsamlingen används för att ta bort ett speciellt nyckel-värdepar baserat på nyckeln som anges i det som en parameter. Om nyckeln inte finns visas ett felmeddelande.

Syntax:

map_object.remove(key)

Exempel:

Låt oss skapa en karta med två objekt och ta bort det första objektet.

Konto konto1 = nytt konto(Namn='Linux-tips');

Konto konto2 = nytt konto(Namn='Python');

Map map_obj = new Map{

konto1 => 1000,konto2 => 4000};

System.debug('Befintlig karta'+ map_obj);

//avlägsna()

map_obj.remove(konto1);

System.debug('Efter att ha tagit bort det första objektet:'+map_obj);

Produktion:

Efter att ha tagit bort det första objektet från kartan finns bara ett objekt – {Account:{Name=Python}=4000}.

9. Map.put()

Med den här metoden kan vi direkt lägga till ett objekt åt gången i kartobjektet. Den accepterar två parametrar: 'nyckel' är den första parametern medan 'värde' är den andra parametern.

Syntax:

map_object.put(nyckel,värde)

Exempel:

Låt oss skapa en karta med ett nyckel-värdepar. Sedan använder vi 'put'-metoden för att infoga 'konto2'.

// Konto-1

Konto konto1 = nytt konto(Namn='Linux-tips');

Map map_obj1 = new Map{

konto1 => 1000};

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

// Konto-2

Konto konto2 = nytt konto(Namn='Python');

// put()

map_obj1.put(konto2,2000);

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

Produktion:

Tidigare fanns det bara ett nyckel-värdepar i kartan som är {Account:{Name=Linux Hint}=1000}. Efter att ha lagt till 'konto2' innehåller den slutliga kartan två nyckel-värdepar som är {Account:{Name=Linux Hint}=1000 och Account:{Name=Python}=2000}.

10. Map.putAll()

Med den här metoden kan vi direkt lägga till en enstaka eller flera objekt till kartobjektet åt gången. Den tar ett kartsamlingsobjekt som parameter.

Syntax:

map_object1.putAll(map_object2)

Exempel:

Låt oss skapa en karta med två nyckel-värdepar och skapa ett tomt kartobjekt igen utan objekt. Använd putAll()-metoden för att lägga till objekten som är tillgängliga i det första kartobjektet till det andra kartobjektet.

Konto konto1 = nytt konto(Namn='Linux-tips');

Konto konto2 = nytt konto(Namn='Python');

Map map_obj1 = new Map{

konto1 => 1000, konto2=> 2000};

System.debug(map_obj1);

Map map_obj2 = new Map();

//sätt alla()

map_obj2.putAll(map_obj1);

System.debug(map_obj2);

Produktion:

Slutsats

Karta är en datastruktur som huvudsakligen används i triggerscenarier och hjälper till att ladda mer data åt gången till Salesforce-databasen som en lista. Vi har två alternativ för att lägga till objekten i kartan: med put() och putAll(). Metoden remove() används för att ta bort ett visst objekt från Apex-kartsamlingen. Metoden clear() används för att ta bort alla objekt. Vi lärde oss också hur man returnerar värdena och nycklarna med metoderna values() och keySet().