Salesforce Apex – Kaart

Salesforce Apex Kaart



Salesforce Apex-kaart is een gegevensstructuur die voornamelijk wordt gebruikt in triggerscenario's en helpt om meer gegevens tegelijk in de Salesforce-database te laden, zoals een lijst. Maar het slaat de gegevens op en organiseert ze in het {key:value}-paarformaat. We bespreken de kaartenverzameling in Apex-programmeertaal en de methoden ervan. Hier gebruiken we voor alle voorbeelden het standaardobject Account in Salesforce. Laten we snel in deze tutorial duiken.

Kaart

Map neemt de gegevens van het {key:value}-paar als invoer en slaat deze op in de standaard- of aangepaste objecten van Salesforce. Het kan het sObject als sleutel of waarde aannemen.







Kaart maken

Door de gegevenstypen van de sleutel en waarde samen met de objectnaam op te geven, kan de kaart worden gemaakt. Hier wordt een nieuw trefwoord gebruikt om het te maken. Het kan optioneel zijn om de elementen door te geven tijdens het maken.



Lege kaartsyntaxis:

Map map_obj = new Map():

Generieke syntaxis:

Map map_obj = new Map{

Sleutel => waarde,....};

sObject-syntaxis:

Map map_obj = nieuwe Map{

Sleutel => waarde,....};

Hier kan het sObject een standaard of aangepast object zijn. In dit hele artikel behandelen we alleen de kaart met het sObject 'Account'.



Laten we een voor een kijken naar de methoden die worden ondersteund door de Apex 'map' -verzameling.





Omgeving instellen

1. Log snel in bij Salesforce en open de 'Developer Console' door op het tandwielpictogram te klikken.



2. Open vervolgens het 'Anoniem venster' door te klikken op 'Debug' en 'Open Execute Anonymous Window'.

Generiek voorbeeld:

Eerst zullen we de generieke kaartcreatie zien door een kaart te maken met twee onderwerpen: de 'subject_id' die fungeert als een sleutel en 'waarde' als de onderwerpnaam.

Map programmering=nieuwe Map {1=> 'Linux',2=> 'Python'};

systeem.debug(programmeren);

Uitgang:

  1. Klik op 'Uitvoeren'.
  2. Vink de optie 'Alleen debuggen' aan. U kunt de uitvoer zien in het 'Uitvoeringslogboek'.

Methoden in kaart brengen

Eerst maken we een kaart van het object 'Account'. We maken drie accounts met namen één voor één aan. Vervolgens declareren we een kaart met de sleutel en waarde als typ en geef de vorige drie accounts door aan de kaart door enkele waarden op te geven.

// Maak 3 accounts aan met Naam

Account account1 = nieuw Account();

Account account2 = nieuw account();

Account account3 = nieuw Account();

// Voeg de bovenstaande accounts als sleutels toe aan map_obj

Map map_obj = nieuwe Map{

rekening1 => 1000,rekening2 => 2000,rekening3 => 3000};

Systeem.debug(map_obj);

Uitgang:

U kunt zien dat 'map_obj' drie accounts opslaat.

1. Kaartwaarden()

Om alleen de waarden van de gegeven kaart te retourneren, kunnen we de methode values() gebruiken. Er zijn geen parameters voor nodig. Het retourneert eenvoudig de lijst met waarden, gescheiden door komma's.

Syntaxis:

map_object.values()

Voorbeeld:

Laten we alle waarden van de vorige kaart retourneren. Zorg ervoor dat u de vorige voorbeeldcode moet uitvoeren (maak een kaart met drie accounts). Anders krijg je een foutmelding. De code moet ook in de console aanwezig zijn.

// Retourneer waarden voor alle sleutels met behulp van waarden()

Systeem.debug(map_obj.waarden());

Uitgang:

Er zijn slechts drie sleutel:waardeparen in map_obj. De waarden zijn: 1000, 2000 en 3000.

2. Map.keySet()

Retourneer de sleutels zijn aanwezig in het kaartobject. Net als bij waarden(), is het niet nodig om een ​​parameter door te geven aan deze methode.

Syntaxis:

map_object.keySet()

Voorbeeld:

Laten we alle sleutels van de vorige kaart teruggeven. Zorg ervoor dat u de vorige voorbeeldcode uitvoert (maak een kaart met drie accounts). Anders krijg je een foutmelding. De code moet ook in de console aanwezig zijn.

// Retourneer alle sleutels met behulp van keySet()

Systeem.debug(map_obj.keySet());

Uitgang:

Er zijn slechts drie sleutel:waardeparen in map_obj. De sleutels zijn: {Account:{Name=Linux Hint}, Account:{Name=Python} en Account:{Name=Salesforce}.

3. Kaartgrootte()

In sommige scenario's moeten we het totale aantal items (sleutel:waarde)-paren kennen dat aanwezig is in de Apex-kaart. Size() is de methode die het totale aantal (sleutel:waarde) paren retourneert dat bestaat in het map_object. Voor deze methode zijn geen parameters nodig.

Syntaxis:

map_object.size()

Voorbeeld:

Retourneert de grootte van het vorige kaartobject.

// Geef het totale aantal paren terug met behulp van size()

Systeem.debug(map_obj.size());

Uitgang:

Aangezien er slechts 3 paren zijn, is de geretourneerde size() 3.

4. Kaart.get()

Toegang tot de waarden van de kaart met behulp van de sleutel wordt gedaan met behulp van de get() methode. Om dit te doen, moeten we de sleutel als parameter doorgeven aan de get() methode. Als een onbekende sleutel wordt doorgegeven, wordt er een fout geretourneerd.

Syntaxis:

map_object.get(sleutel)

Voorbeeld:

Retourneert de waarden van sleutel-2 en sleutel-1 afzonderlijk.

// haal de waarde van de tweede sleutel op

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

// haal de waarde van de eerste sleutel op

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

Uitgang:

Hier is 2000 de waarde van de 'Salesforce'-sleutel en 1000 is de waarde van de 'Linux Hint'-sleutel.

5. Kaart.clear()

Alle paren in een Apex-kaartverzameling kunnen tegelijk worden verwijderd met behulp van de methode clear(). Er zijn geen parameters voor nodig.

Syntaxis:

map_object.clear()

Voorbeeld:

Verwijder de paren in de vorige 'map_obj'.

// Voor duidelijk ()

Systeem.debug(map_obj);

// Verwijder alle paren met clear()

map_obj.clear();

//Na wissen()

Systeem.debug(map_obj);

Uitgang:

Voorheen waren er 3 sleutel-waardeparen in de 'map_obj'. Na het toepassen van de methode clear() worden ze alle 3 verwijderd.

6. Kaart.is gelijk aan()

We kunnen twee kaartobjecten vergelijken met behulp van de methode equals(). De Booleaanse waarde true wordt geretourneerd als alle sleutels en waarden hetzelfde zijn in beide kaartobjecten. Terwijl de Booleaanse waarde false wordt geretourneerd als ten minste één waarde anders is.

Syntaxis:

map_object1.equals(map_object2)

Voorbeeld:

Laten we drie kaartobjecten maken met één sleutel:waarde-paar, elk met betrekking tot het object 'Account'. Vergelijk deze objecten onderling.

// Rekening-1

Account account1 = nieuw Account();

Map map_obj1 = nieuwe Map{

rekening1 => 1000};

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

// Rekening-2

Account account2 = nieuw Account();

Map map_obj2 = nieuwe Map{

rekening2 => 1000};

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

// Rekening-3

Account account3 = nieuw Account();

Map map_obj3 = nieuwe Map{

rekening3 => 2000};

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

// is gelijk aan()

System.debug('Map 1 & Map 2 zijn gelijk: '+ map_obj1.equals(map_obj2));

System.debug('Map 1 & Map 3 zijn gelijk: '+ map_obj1.equals(map_obj3));

Uitgang:

Het eerste en tweede kaartobject zijn gelijk, aangezien beide sleutels en waarden in beide objecten hetzelfde zijn. Het eerste en derde kaartobject zijn niet gelijk omdat de sleutels en waarden verschillend zijn.

7. Kaart.isEmpty()

We kunnen controleren of de kaart leeg is of niet met behulp van de methode isEmpty(). True wordt geretourneerd als de Apex-kaartverzameling leeg is. Anders wordt false geretourneerd. Net als bij de methode size() zijn er geen parameters nodig.

Syntaxis:

map_object.isEmpty()

Voorbeeld:

Laten we twee kaartobjecten maken die gerelateerd zijn aan 'Account' en controleren of deze twee leeg zijn of niet.

// Rekening-1

Account account1 = nieuw Account();

Map map_obj1 = nieuwe Map{

rekening1 => 1000};



// Rekening-2

Map map_obj2 = nieuwe Map();

// is leeg()

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

System.debug('Map-2 is leeg: '+map_obj2.isEmpty());

Uitgang:

De eerste kaart is niet leeg omdat deze één sleutel-waardepaar bevat. De tweede kaart is leeg omdat er geen is.

8. Kaart.verwijderen()

De methode remove() in de Apex-toewijzingsverzameling wordt gebruikt om een ​​bepaald sleutel/waarde-paar te verwijderen op basis van de sleutel die daarin als parameter is opgegeven. Als de sleutel niet bestaat, wordt er een fout gegenereerd.

Syntaxis:

map_object.verwijderen(sleutel)

Voorbeeld:

Laten we een kaart maken met twee items en het eerste item verwijderen.

Account account1 = nieuw Account();

Account account2 = nieuw Account();

Map map_obj = nieuwe Map{

rekening1 => 1000, rekening2 => 4000};

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

//verwijderen()

map_obj.verwijderen(account1);

System.debug('Na het verwijderen van het eerste item:'+map_obj);

Uitgang:

Nadat het eerste item van de kaart is verwijderd, bestaat er slechts één item: {Account:{Name=Python}=4000}.

9. Kaart.put()

Met deze methode kunnen we direct één item tegelijk aan het kaartobject toevoegen. Het accepteert twee parameters: 'sleutel' is de eerste parameter en 'waarde' is de tweede parameter.

Syntaxis:

map_object.put(sleutel,waarde)

Voorbeeld:

Laten we een kaart maken met één sleutel-waardepaar. Vervolgens gebruiken we de 'put' -methode om 'account2' in te voegen.

// Rekening-1

Account account1 = nieuw Account();

Map map_obj1 = nieuwe Map{

rekening1 => 1000};

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

// Rekening-2

Account account2 = nieuw Account();

// neerzetten()

map_obj1.put(account2,2000);

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

Uitgang:

Voorheen was er slechts één sleutel-waardepaar in de kaart, namelijk {Account:{Name=Linux Hint}=1000}. Na het toevoegen van 'account2', bevat de definitieve kaart twee sleutel-waardeparen die {Account:{Name=Linux Hint}=1000 en Account:{Name=Python}=2000} zijn.

10. Map.putAll()

Met deze methode kunnen we direct één of meerdere items tegelijk aan het kaartobject toevoegen. Er is een kaartverzamelingsobject nodig als parameter.

Syntaxis:

map_object1.putAll(map_object2)

Voorbeeld:

Laten we een kaart maken met twee sleutel-waardeparen en opnieuw een leeg kaartobject maken zonder items. Gebruik de methode putAll() om de items die beschikbaar zijn in het eerste kaartobject toe te voegen aan het tweede kaartobject.

Account account1 = nieuw Account();

Account account2 = nieuw Account();

Map map_obj1 = nieuwe Map{

rekening1 => 1000, rekening2=> 2000};

Systeem.debug(map_obj1);

Map map_obj2 = nieuwe Map();

//zet alle()

map_obj2.putAll(map_obj1);

Systeem.debug(map_obj2);

Uitgang:

Conclusie

Kaart is een gegevensstructuur die voornamelijk wordt gebruikt in triggerscenario's en helpt om meer gegevens tegelijk in de Salesforce-database te laden, zoals een lijst. We hebben twee opties om de items aan de kaart toe te voegen: put() en putAll(). De methode remove() wordt gebruikt om een ​​bepaald item uit de Apex-kaartverzameling te verwijderen. De methode clear() wordt gebruikt om alle items te verwijderen. We hebben ook geleerd hoe we de waarden en sleutels kunnen retourneren met behulp van de methoden values() en keySet().