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:
MapaObecná syntaxe:
MapaKlíč => hodnota,....};
Syntaxe sObject:
MapaKlíč => 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.
Mapsystem.debug(programování);
Výstup:
- Klikněte na „Provést“.
- 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
Úč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
úč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íčeSystem.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
účet1 => 1000};
System.debug('Mapa - 1:' + mapa_obj1);
// Účet-2
Účet účet2 = nový účet(Název='Linuxová nápověda');
Mapa
účet2 => 1000};
System.debug('Mapa - 2:' + mapa_obj1);
// Účet-3
Účet účet3 = nový účet(Název='Python');
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
účet1 => 1000};
// Účet-2
Mapa
// 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
úč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
úč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
účet1 => 1000, účet2=> 2000};
System.debug(map_obj1);
Mapa
//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().