Salesforce Apex – mapa

Salesforce Apex Mapa



Salesforce Apex mapa je datová struktura, která se používá hlavně ve spouštěcích scénářích a pomáhá načíst více dat najednou do databáze Salesforce jako seznam. Ale ukládá a organizuje data ve formátu páru {klíč:hodnota}. Probereme mapovou kolekci v programovacím jazyce Apex a její metody. Zde pro všechny příklady použijeme standardní objekt Account v Salesforce. Pojďme se rychle ponořit do tohoto tutoriálu.

Mapa

Map bere data páru {key:value} jako vstup a ukládá je do standardních nebo vlastních objektů Salesforce. Může mít sObject jako klíč nebo hodnotu.







Tvorba map

Zadáním datových typů klíče a hodnoty spolu s názvem objektu lze vytvořit mapu. Zde se k jeho vytvoření použije nové klíčové slovo. Předávání prvků během vytváření může být volitelné.



Syntaxe prázdné mapy:

Mapa map_obj = nová mapa():

Obecná syntaxe:

Mapa map_obj = nová mapa{

Klíč => hodnota,....};

Syntaxe sObject:

Mapa map_obj = nová mapa{

Klíč => hodnota,....};

Zde může být sObject standardním nebo uživatelským objektem. V celém tomto článku se budeme zabývat pouze mapou s objektem „Účet“.



Podívejme se jednu po druhé na metody, které sbírka „map“ Apex podporuje.





Nastavení prostředí

1. Rychle se přihlaste do Salesforce a kliknutím na ikonu ozubeného kola otevřete „Developer Console“.



2. Poté otevřete „Anonymní okno“ kliknutím na „Ladit“ a „Otevřít spustit anonymní okno“.

Obecný příklad:

Nejprve uvidíme vytvoření obecné mapy vytvořením mapy se dvěma subjekty: „id_předmětu“, které funguje jako klíč a „hodnota“ jako název subjektu.

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

system.debug(programování);

Výstup:

  1. Klikněte na „Provést“.
  2. Zaškrtněte možnost „Pouze ladění“. Výstup můžete vidět v „Protokolu provádění“.

Mapové metody

Nejprve vytvoříme mapu z objektu „Účet“. Vytvoříme tři účty s názvy jeden po druhém. Poté deklarujeme mapu s klíčem a hodnotou jako zadejte a předejte předchozí tři účty do mapy zadáním některých hodnot.

// Vytvořte 3 účty s názvem

Účet účet1 = nový účet(Název='Linuxová nápověda');

Account account2 = new Account();

Účet účet3 = nový účet(Název='Python');

// Přidejte výše uvedené účty jako klíče do souboru map_obj

Mapa map_obj = nová mapa{

účet1 => 1000,účet2 => 2000,účet3 => 3000};

System.debug(map_obj);

Výstup:

Můžete vidět, že „map_obj“ ukládá tři účty.

1. Map.values()

Abychom vrátili pouze hodnoty z dané mapy, můžeme použít metodu values(). Nepotřebuje žádné parametry. Jednoduše vrátí seznam hodnot oddělených čárkou.

Syntax:

map_object.values()

Příklad:

Vraťme všechny hodnoty z předchozí mapy. Ujistěte se, že musíte provést předchozí příklad kódu (vytvořit mapu se třemi účty). V opačném případě se zobrazí chyba. Kód by měl také existovat v konzole.

// Vrátí hodnoty pro všechny klíče pomocí value()

System.debug(map_obj.values());

Výstup:

V map_obj jsou pouze tři páry klíč:hodnota. Hodnoty jsou: 1000, 2000 a 3000.

2. Map.keySet()

Vraťte klíče, které se nacházejí v objektu mapy. Podobně jako u values() není třeba této metodě předávat žádný parametr.

Syntax:

map_object.keySet()

Příklad:

Vraťme všechny klíče z předchozí mapy. Ujistěte se, že jste provedli předchozí ukázkový kód (vytvořte mapu se třemi účty). V opačném případě se zobrazí chyba. Kód by měl také existovat v konzole.

// Vraťte všechny klíče pomocí keySet()

System.debug(map_obj.keySet());

Výstup:

V map_obj jsou pouze tři páry klíč:hodnota. Klíče jsou: {Account:{Name=Linux Hint}, Account:{Name=Python} a Account:{Name=Salesforce}.

3. Map.size()

V některých scénářích potřebujeme znát celkový počet párů položek (klíč:hodnota), které jsou přítomné v mapě Apex. Size() je metoda, která vrací celkový počet párů (klíč:hodnota), které existují v objektu map_object. Pro tuto metodu nejsou potřebné parametry.

Syntax:

map_object.size()

Příklad:

Vrátí velikost předchozího objektu mapy.

// Vrátí celkový počet párů pomocí size()

System.debug(map_obj.size());

Výstup:

Protože existují pouze 3 páry, vrácená size() je 3.

4. Map.get()

Přístup k hodnotám z mapy pomocí klíče se provádí pomocí metody get(). K tomu musíme předat klíč jako parametr metodě get(). Pokud je předán neznámý klíč, vrátí chybu.

Syntax:

map_object.get(klíč)

Příklad:

Vraťte hodnoty  klíč-2 a klíč-1 samostatně.

// získání hodnoty druhého klíče

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

// získání hodnoty prvního klíče

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

Výstup:

Zde je 2000 hodnota klíče „Salesforce“ a 1000 je hodnota klíče „Linux Hint“.

5. Map.clear()

Všechny páry v kolekci map Apex lze odstranit najednou pomocí metody clear(). Nepotřebuje žádné parametry.

Syntax:

map_object.clear()

Příklad:

Odstraňte páry v předchozím „map_obj“.

//Before clear()

System.debug(map_obj);

// Odstraňte všechny páry pomocí clear()

map_obj.clear();

//Po vymazání()

System.debug(map_obj);

Výstup:

Dříve byly v „map_obj“ 3 páry klíč–hodnota. Po použití metody clear() jsou všechny 3 odstraněny.

6. Map.equals()

Pomocí metody equals() můžeme porovnat dva mapové objekty. Booleovská hodnota true je vrácena, pokud jsou všechny klíče a hodnoty v obou objektech mapy stejné. Zatímco booleovská hodnota false je vrácena, pokud se alespoň jedna hodnota liší.

Syntax:

map_object1.equals(map_object2)

Příklad:

Vytvořme tři mapové objekty s jedním párem klíč:hodnota, každý s ohledem na objekt „Účet“. Porovnejte mezi nimi tyto objekty.

// Účet-1

Účet účet1 = nový účet(Název='Linuxová nápověda');

Mapa map_obj1 = nová mapa{

účet1 => 1000};

System.debug('Mapa - 1:' + mapa_obj1);

// Účet-2

Účet účet2 = nový účet(Název='Linuxová nápověda');

Mapa map_obj2 = nová mapa{

účet2 => 1000};

System.debug('Mapa - 2:' + mapa_obj1);

// Účet-3

Účet účet3 = nový účet(Název='Python');

Mapa map_obj3 = nová mapa{

účet3 => 2000};

System.debug('Mapa - 3:' + mapa_obj3);

// rovná se()

System.debug('Mapa 1 & Mapa 2 se rovnají: '+ map_obj1.equals(map_obj2));

System.debug('Mapa 1 & Mapa 3 se rovnají: '+ map_obj1.equals(map_obj3));

Výstup:

První a druhý objekt mapy jsou stejné, protože klíče i hodnoty jsou v obou objektech stejné. První a třetí objekt mapy nejsou stejné, protože klíče a hodnoty se liší.

7. Map.isEmpty()

Zda je mapa prázdná nebo ne, můžeme zkontrolovat pomocí metody isEmpty(). Pokud je kolekce map Apex prázdná, vrátí hodnotu True. V opačném případě je vrácena hodnota false. Podobně jako metoda size() nezabere žádný parametr.

Syntax:

map_object.isEmpty()

Příklad:

Vytvořme dva mapové objekty, které souvisejí s „Účtem“ a zkontrolujeme, zda jsou prázdné nebo ne.

// Účet-1

Účet účet1 = nový účet(Název='Linuxová nápověda');

Mapa map_obj1 = nová mapa{

účet1 => 1000};



// Účet-2

Mapa map_obj2 = new Map();

// je prázdný()

System.debug('Mapa-1 je prázdná: '+map_obj1.isEmpty());

System.debug('Mapa-2 je prázdná: '+map_obj2.isEmpty());

Výstup:

První mapa není prázdná, protože obsahuje jeden pár klíč–hodnota. Druhá mapa je prázdná, protože žádnou neobsahuje.

8. Map.remove()

Metoda remove() v kolekci map Apex se používá k odstranění konkrétního páru klíč–hodnota na základě klíče, který je v něm uveden jako parametr. Pokud klíč neexistuje, dojde k chybě.

Syntax:

map_object.remove(key)

Příklad:

Vytvoříme mapu se dvěma položkami a odstraníme první položku.

Účet účet1 = nový účet(Název='Linuxová nápověda');

Účet účet2 = nový účet(Název='Python');

Mapa map_obj = nová mapa{

účet1 => 1000,účet2 => 4000};

System.debug('Stávající mapa'+ map_obj);

//odstranit()

map_obj.remove(účet1);

System.debug('Po odstranění první položky:'+map_obj);

Výstup:

Po odstranění první položky z mapy existuje pouze jedna položka – {Account:{Name=Python}=4000}.

9. Map.put()

Pomocí této metody můžeme přímo přidat jednu položku do objektu mapy najednou. Přijímá dva parametry: „klíč“ je první parametr, zatímco „hodnota“ je druhý parametr.

Syntax:

map_object.put(klíč,hodnota)

Příklad:

Vytvořme mapu s jedním párem klíč–hodnota. Poté pomocí metody „put“ vložíme „account2“.

// Účet-1

Účet účet1 = nový účet(Název='Linuxová nápověda');

Mapa map_obj1 = nová mapa{

účet1 => 1000};

System.debug('Aktuální mapa: '+map_obj1);

// Účet-2

Účet účet2 = nový účet(Název='Python');

// dát()

mapa_obj1.put(účet2,2000);

System.debug('Konečná mapa: '+map_obj1);

Výstup:

Dříve byl na mapě pouze jeden pár klíč–hodnota, a to {Account:{Name=Linux Hint}=1000}. Po přidání „account2“ bude konečná mapa obsahovat dva páry klíč–hodnota, které jsou {Account:{Name=Linux Hint}=1000 a Account:{Name=Python}=2000}.

10. Map.putAll()

Pomocí této metody můžeme přímo přidat jednu nebo více položek do objektu mapy najednou. Jako parametr bere objekt kolekce map.

Syntax:

map_object1.putAll(map_object2)

Příklad:

Vytvořme mapu se dvěma páry klíč–hodnota a znovu vytvořte prázdný objekt mapy bez položek. Pomocí metody putAll() přidejte položky, které jsou dostupné v prvním objektu mapy, do druhého objektu mapy.

Účet účet1 = nový účet(Název='Linuxová nápověda');

Účet účet2 = nový účet(Název='Python');

Mapa map_obj1 = nová mapa{

účet1 => 1000, účet2=> 2000};

System.debug(map_obj1);

Mapa map_obj2 = new Map();

//putAll()

mapa_obj2.putAll(map_obj1);

System.debug(map_obj2);

Výstup:

Závěr

Mapa je datová struktura, která se používá hlavně ve spouštěcích scénářích a pomáhá načíst více dat najednou do databáze Salesforce jako seznam. Máme dvě možnosti, jak přidat položky do mapy: pomocí put() a putAll(). Metoda remove() se používá k odstranění konkrétní položky z kolekce map Apex. Metoda clear() se používá k odstranění všech položek. Také jsme se naučili, jak vrátit hodnoty a klíče pomocí metod values() a keySet().