Salesforce Apex – Karte

Salesforce Apex Karte



Salesforce Apex Map ist eine Datenstruktur, die hauptsächlich in Auslöserszenarien verwendet wird und dabei hilft, mehr Daten wie eine Liste auf einmal in die Salesforce-Datenbank zu laden. Aber es speichert und organisiert die Daten im {Schlüssel:Wert}-Paarformat. Wir werden die Kartensammlung in der Programmiersprache Apex und ihre Methoden besprechen. Hier verwenden wir für alle Beispiele das Account-Standardobjekt in Salesforce. Lassen Sie uns schnell in dieses Tutorial eintauchen.

Karte

Map nimmt die {Schlüssel:Wert}-Paardaten als Eingabe und speichert sie in den standardmäßigen oder benutzerdefinierten Objekten von Salesforce. Es kann das sObject als Schlüssel oder Wert annehmen.







Kartenerstellung

Durch Angabe der Datentypen von Schlüssel und Wert zusammen mit dem Objektnamen kann die Zuordnung erstellt werden. Hier wird ein neues Schlüsselwort verwendet, um es zu erstellen. Es kann optional sein, die Elemente während der Erstellung zu übergeben.



Leere Map-Syntax:

Map map_obj = new Map():

Generische Syntax:

Map map_obj = new Map{

Schlüssel => Wert,....};

sObject-Syntax:

Map map_obj = new Map{

Schlüssel => Wert,....};

Dabei kann das sObject ein Standard- oder benutzerdefiniertes Objekt sein. In diesem gesamten Artikel werden wir uns nur mit der Karte mit dem sObject „Account“ befassen.



Sehen wir uns nacheinander die Methoden an, die von der Apex-„map“-Sammlung unterstützt werden.





Umgebung einrichten

1. Melden Sie sich schnell bei Salesforce an und öffnen Sie die „Entwicklerkonsole“, indem Sie auf das Zahnradsymbol klicken.



2. Öffnen Sie dann das „Anonymous Window“, indem Sie auf „Debug“ und „Open Execute Anonymous Window“ klicken.

Allgemeines Beispiel:

Zuerst sehen wir uns die generische Kartenerstellung an, indem wir eine Karte mit zwei Subjekten erstellen: der „subject_id“, die als Schlüssel fungiert, und „value“ als Subjektname.

Map Programmierung=neue Map {1=> 'Linux',2=> 'Python'};

system.debug (Programmierung);

Ausgang:

  1. Klicken Sie auf „Ausführen“.
  2. Aktivieren Sie die Option „Nur debuggen“. Sie können die Ausgabe im „Execution Log“ sehen.

Kartenmethoden

Zunächst erstellen wir aus dem Objekt „Konto“ eine Karte. Wir erstellen drei Konten mit Namen nacheinander. Dann deklarieren wir eine Map mit dem Schlüssel und dem Wert als Geben Sie die vorherigen drei Konten ein und übergeben Sie sie an die Karte, indem Sie einige Werte angeben.

// 3 Konten mit Name erstellen

Konto account1 = neues Konto();

Konto account2 = neues Konto();

Konto account3 = neues Konto();

// Fügen Sie die obigen Konten als Schlüssel zum map_obj hinzu

Map map_obj = new Map{

Konto1 => 1000, Konto2 => 2000, Konto3 => 3000};

System.debug (map_obj);

Ausgang:

Sie können sehen, dass „map_obj“ drei Konten speichert.

1. Map.values()

Um nur die Werte aus der angegebenen Karte zurückzugeben, können wir die Methode values() verwenden. Es werden keine Parameter benötigt. Es gibt einfach die Liste der durch Komma getrennten Werte zurück.

Syntax:

map_object.values()

Beispiel:

Lassen Sie uns alle Werte aus der vorherigen Karte zurückgeben. Stellen Sie sicher, dass Sie den vorherigen Beispielcode ausführen müssen (erstellen Sie eine Karte mit drei Konten). Andernfalls erhalten Sie einen Fehler. Der Code sollte auch in der Konsole vorhanden sein.

// Rückgabewerte für alle Schlüssel mit values()

System.debug (map_obj.values());

Ausgang:

Es gibt nur drei Schlüssel:Wert-Paare in map_obj. Die Werte sind: 1000, 2000 und 3000.

2. Map.keySet()

Geben Sie die Schlüssel zurück, die im Kartenobjekt vorhanden sind. Ähnlich wie bei values() müssen dieser Methode keine Parameter übergeben werden.

Syntax:

map_object.keySet()

Beispiel:

Lassen Sie uns alle Schlüssel aus der vorherigen Karte zurückgeben. Stellen Sie sicher, dass Sie den vorherigen Beispielcode ausführen (Erstellen einer Karte mit drei Konten). Andernfalls erhalten Sie einen Fehler. Der Code sollte auch in der Konsole vorhanden sein.

// Alle Schlüssel mit keySet() zurückgeben

System.debug (map_obj.keySet());

Ausgang:

Es gibt nur drei Schlüssel:Wert-Paare in map_obj. Die Schlüssel sind: {Konto:{Name=Linux-Hinweis}, Konto:{Name=Python} und Konto:{Name=Salesforce}.

3. Map.size()

In einigen Szenarien müssen wir die Gesamtzahl der Elementpaare (Schlüssel:Wert) kennen, die in der Apex-Karte vorhanden sind. Size() ist die Methode, die die gesamten (Schlüssel:Wert)-Paare zurückgibt, die im map_object vorhanden sind. Parameter werden für diese Methode nicht benötigt.

Syntax:

map_object.size()

Beispiel:

Gibt die Größe des vorherigen Kartenobjekts zurück.

// Gesamtzahl der Paare mit size() zurückgeben

System.debug (map_obj.size());

Ausgang:

Da es nur 3 Paare gibt, ist die zurückgegebene size() 3.

4. Map.get()

Der Zugriff auf die Werte aus der Karte mit dem Schlüssel erfolgt über die Methode get(). Dazu müssen wir den Schlüssel als Parameter an die Methode get() übergeben. Wenn ein unbekannter Schlüssel übergeben wird, wird ein Fehler zurückgegeben.

Syntax:

map_object.get(Schlüssel)

Beispiel:

Geben Sie die Werte von key-2 und key-1 separat zurück.

// den Wert des zweiten Schlüssels erhalten

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

// den Wert des ersten Schlüssels erhalten

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

Ausgang:

Hier ist 2000 der Wert des „Salesforce“-Schlüssels und 1000 der Wert des „Linux Hint“-Schlüssels.

5. Map.clear()

Alle Paare in einer Apex-Kartensammlung können mit der Methode clear() gleichzeitig gelöscht werden. Es werden keine Parameter benötigt.

Syntax:

map_object.clear()

Beispiel:

Entfernen Sie die Paare im vorherigen „map_obj“.

// Vor dem Löschen ()

System.debug (map_obj);

// Alle Paare mit clear() entfernen

map_obj.clear();

//Nach dem Löschen()

System.debug (map_obj);

Ausgang:

Bisher gibt es im „map_obj“ 3 Schlüssel-Wert-Paare. Nach Anwendung der Methode clear() werden alle 3 gelöscht.

6. Map.equals()

Wir können zwei Kartenobjekte mit der Methode equals() vergleichen. Der boolesche Wert true wird zurückgegeben, wenn alle Schlüssel und Werte in beiden Kartenobjekten gleich sind. Während der boolesche Wert false zurückgegeben wird, wenn mindestens ein Wert unterschiedlich ist.

Syntax:

map_object1.equals(map_object2)

Beispiel:

Lassen Sie uns drei Map-Objekte mit einem Schlüssel:Wert-Paar erstellen, jedes in Bezug auf das „Account“-Objekt. Vergleichen Sie diese Objekte untereinander.

// Konto-1

Konto account1 = neues Konto();

Map map_obj1 = new Map{

Konto1 => 1000};

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

// Konto-2

Konto account2 = neues Konto();

Map map_obj2 = new Map{

Konto2 => 1000};

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

// Konto-3

Konto account3 = neues Konto();

Map map_obj3 = new Map{

Konto3 => 2000};

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

// ist gleich ()

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

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

Ausgang:

Das erste und das zweite Kartenobjekt sind gleich, da sowohl Schlüssel als auch Werte in beiden Objekten gleich sind. Das erste und dritte Kartenobjekt sind nicht gleich, da die Schlüssel und Werte unterschiedlich sind.

7. Map.isEmpty()

Mit der Methode isEmpty() können wir überprüfen, ob die Karte leer ist oder nicht. True wird zurückgegeben, wenn die Apex-Kartensammlung leer ist. Andernfalls wird false zurückgegeben. Ähnlich wie bei der Methode size() werden keine Parameter verwendet.

Syntax:

map_object.isEmpty()

Beispiel:

Lassen Sie uns zwei Kartenobjekte erstellen, die sich auf „Konto“ beziehen, und prüfen, ob diese beiden leer sind oder nicht.

// Konto-1

Konto account1 = neues Konto();

Map map_obj1 = new Map{

Konto1 => 1000};



// Konto-2

Map map_obj2 = new Map();

// ist leer()

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

System.debug('Map-2 ist leer: '+map_obj2.isEmpty());

Ausgang:

Die erste Zuordnung ist nicht leer, da sie ein Schlüssel-Wert-Paar enthält. Die zweite Karte ist leer, da sie keine enthält.

8. Map.remove()

Die Methode remove() in der Apex-Kartensammlung wird verwendet, um ein bestimmtes Schlüssel-Wert-Paar basierend auf dem darin als Parameter angegebenen Schlüssel zu entfernen. Wenn der Schlüssel nicht existiert, wird ein Fehler ausgelöst.

Syntax:

map_object.remove(Schlüssel)

Beispiel:

Lassen Sie uns eine Karte mit zwei Elementen erstellen und das erste Element entfernen.

Konto account1 = neues Konto();

Konto account2 = neues Konto();

Map map_obj = new Map{

Konto1 => 1000, Konto2 => 4000};

System.debug ('Vorhandene Karte' + map_obj);

//entfernen()

map_obj.remove (Konto1);

System.debug('Nach dem Entfernen des ersten Elements:'+map_obj);

Ausgang:

Nach dem Entfernen des ersten Elements von der Karte existiert nur noch ein Element – ​​{Account:{Name=Python}=4000}.

9. Map.put()

Mit dieser Methode können wir dem Kartenobjekt direkt jeweils ein Element hinzufügen. Es akzeptiert zwei Parameter: „Schlüssel“ ist der erste Parameter, während „Wert“ der zweite Parameter ist.

Syntax:

map_object.put(Schlüssel,Wert)

Beispiel:

Lassen Sie uns eine Karte mit einem Schlüssel-Wert-Paar erstellen. Dann verwenden wir die „put“-Methode, um „account2“ einzufügen.

// Konto-1

Konto account1 = neues Konto();

Map map_obj1 = new Map{

Konto1 => 1000};

System.debug ('Aktuelle Karte: '+map_obj1);

// Konto-2

Konto account2 = neues Konto();

// setzen()

map_obj1.put (Konto2,2000);

System.debug('Endgültige Karte: '+map_obj1);

Ausgang:

Bisher gibt es nur ein Schlüssel-Wert-Paar in der Zuordnung, nämlich {Account:{Name=Linux Hint}=1000}. Nach dem Hinzufügen von „account2“ enthält die endgültige Zuordnung zwei Schlüsselwertpaare, nämlich {Account:{Name=Linux Hint}=1000 und Account:{Name=Python}=2000}.

10. Map.putAll()

Mit dieser Methode können wir dem Kartenobjekt direkt ein oder mehrere Elemente gleichzeitig hinzufügen. Als Parameter wird ein Kartensammlungsobjekt verwendet.

Syntax:

map_object1.putAll(map_object2)

Beispiel:

Lassen Sie uns eine Karte mit zwei Schlüssel-Wert-Paaren erstellen und erneut ein leeres Kartenobjekt ohne Elemente erstellen. Verwenden Sie die Methode putAll(), um die Elemente, die im ersten Kartenobjekt verfügbar sind, zum zweiten Kartenobjekt hinzuzufügen.

Konto account1 = neues Konto();

Konto account2 = neues Konto();

Map map_obj1 = new Map{

Konto1 => 1000, Konto2 => 2000};

System.debug (map_obj1);

Map map_obj2 = new Map();

//putAll()

map_obj2.putAll(map_obj1);

System.debug (map_obj2);

Ausgang:

Abschluss

Map ist eine Datenstruktur, die hauptsächlich in Auslöserszenarien verwendet wird und dabei hilft, mehr Daten wie eine Liste auf einmal in die Salesforce-Datenbank zu laden. Wir haben zwei Möglichkeiten, die Elemente zur Karte hinzuzufügen: mit put() und putAll(). Die Methode remove() wird verwendet, um ein bestimmtes Element aus der Apex-Kartensammlung zu entfernen. Die Methode clear() wird verwendet, um alle Elemente zu löschen. Außerdem haben wir gelernt, wie man die Werte und Schlüssel mit den Methoden values() und keySet() zurückgibt.