Salesforce Apex – Mappa

Salesforce Apex Mappa



La mappa Apex di Salesforce è una struttura di dati utilizzata principalmente negli scenari trigger e consente di caricare più dati alla volta nel database di Salesforce come un elenco. Ma memorizza e organizza i dati nel formato di coppia {key:value}. Discuteremo la collezione di mappe nel linguaggio di programmazione Apex e i suoi metodi. Qui utilizzeremo l'oggetto standard Account in Salesforce per tutti gli esempi. Immergiamoci rapidamente in questo tutorial.

Carta geografica

Map accetta i dati della coppia {key:value} come input e li memorizza negli oggetti standard o personalizzati di Salesforce. Può prendere sObject come chiave o valore.







Creazione della mappa

Specificando i tipi di dati della chiave e del valore insieme al nome dell'oggetto, è possibile creare la mappa. Qui viene utilizzata una nuova parola chiave per crearlo. Può essere facoltativo passare gli elementi durante la creazione.



Sintassi mappa vuota:

Map map_obj = new Map():

Sintassi generica:

Map map_obj = new Map{

Chiave => valore,....};

sOggetto Sintassi:

Mappa map_obj = new Mappa{

Chiave => valore,....};

Qui, sObject può essere un oggetto standard o personalizzato. In questo intero articolo ci occuperemo solo della mappa con l'oggetto “Account”.



Vediamo uno per uno i metodi supportati dalla raccolta “map” di Apex.





Configurazione dell'ambiente

1. Accedi rapidamente a Salesforce e apri la 'Console per sviluppatori' facendo clic sull'icona a forma di ingranaggio.



2. Quindi, apri la 'Finestra Anonima' facendo clic su 'Debug' e 'Apri finestra Esegui Anonimo'.

Esempio generico:

Per prima cosa vedremo la creazione della mappa generica creando una mappa con due soggetti: il “subject_id” che funge da chiave e “value” come nome del soggetto.

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

system.debug(programmazione);

Produzione:

  1. Fare clic su 'Esegui'.
  2. Seleziona l'opzione 'Solo debug'. Puoi vedere l'output nel 'Log di esecuzione'.

Metodi mappa

Innanzitutto, creiamo una mappa dall'oggetto 'Account'. Creiamo tre account con nomi uno per uno. Quindi, dichiariamo una mappa con la chiave e il valore as digitare e passare i tre account precedenti alla mappa fornendo alcuni valori.

// Crea 3 account con Nome

Account account1 = new Account();

Account account2 = nuovo account(Nome='Salesforce');

Account account3 = nuovo Account();

// Aggiungi gli account di cui sopra come chiavi a map_obj

Map map_obj = new Map{

account1 => 1000,account2 => 2000,account3 => 3000};

System.debug(map_obj);

Produzione:

Puoi vedere che 'map_obj' memorizza tre account.

1. Mappa.valori()

Per restituire solo i valori dalla mappa data, possiamo usare il metodo values(). Non richiederà alcun parametro. Restituisce semplicemente l'elenco dei valori separati da virgola.

Sintassi:

oggetto_mappa.valori()

Esempio:

Restituiamo tutti i valori della mappa precedente. Assicurati di dover eseguire il codice di esempio precedente (crea una mappa con tre account). In caso contrario, riceverai un errore. Il codice dovrebbe esistere anche nella console.

// Restituisce i valori per tutte le chiavi utilizzando values()

System.debug(map_obj.values());

Produzione:

Ci sono solo tre coppie chiave:valore nel file map_obj. I valori sono: 1000, 2000 e 3000.

2. Map.keySet()

Restituisce le chiavi presenti nell'oggetto mappa. Analogamente a values(), non è necessario passare alcun parametro a questo metodo.

Sintassi:

map_object.keySet()

Esempio:

Restituiamo tutte le chiavi della mappa precedente. Assicurati di eseguire il codice di esempio precedente (crea una mappa con tre account). In caso contrario, riceverai un errore. Il codice dovrebbe esistere anche nella console.

// Restituisce tutte le chiavi usando keySet()

System.debug(map_obj.keySet());

Produzione:

Ci sono solo tre coppie chiave:valore nel file map_obj. Le chiavi sono: {Account:{Name=Linux Hint}, Account:{Name=Python} e Account:{Name=Salesforce}.

3. Dimensione mappa()

In alcuni scenari, è necessario conoscere le coppie totali di elementi (chiave:valore) presenti nella mappa Apex. Size() è il metodo che restituisce le coppie totali (chiave:valore) esistenti in map_object. I parametri non sono necessari per questo metodo.

Sintassi:

mappa_oggetto.size()

Esempio:

Restituisce la dimensione dell'oggetto mappa precedente.

// Restituisce il numero totale di coppie utilizzando size()

System.debug(map_obj.size());

Produzione:

Poiché ci sono solo 3 coppie, la size() restituita è 3.

4. Mappa.get()

L'accesso ai valori dalla mappa utilizzando la chiave viene eseguito utilizzando il metodo get(). Per fare ciò, dobbiamo passare la chiave come parametro al metodo get(). Se viene passata una chiave sconosciuta, restituisce un errore.

Sintassi:

map_object.get(chiave)

Esempio:

Restituisci i valori di chiave-2 e chiave-1 separatamente.

// ottiene il valore della seconda chiave

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

// ottiene il valore della prima chiave

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

Produzione:

Qui, 2000 è il valore della chiave 'Salesforce' e 1000 è il valore della chiave 'Linux Hint'.

5. Mappa.clear()

Tutte le coppie in una raccolta di mappe Apex possono essere eliminate contemporaneamente utilizzando il metodo clear(). Non richiederà alcun parametro.

Sintassi:

oggetto_mappa.clear()

Esempio:

Rimuovi le coppie nel precedente 'map_obj'.

//Prima di cancellare()

System.debug(map_obj);

// Rimuovi tutte le coppie usando clear()

map_obj.clear();

//Dopo aver cancellato()

System.debug(map_obj);

Produzione:

In precedenza, ci sono 3 coppie chiave-valore in 'map_obj'. Dopo aver applicato il metodo clear(), tutti e 3 vengono cancellati.

6. Mappa.equals()

Possiamo confrontare due oggetti mappa usando il metodo equals(). Il valore booleano true viene restituito se tutte le chiavi ei valori sono gli stessi in entrambi gli oggetti mappa. Mentre il valore booleano di false viene restituito se almeno un valore è diverso.

Sintassi:

map_object1.equals(map_object2)

Esempio:

Creiamo tre oggetti mappa con una coppia chiave:valore, ciascuno rispetto all'oggetto 'Account'. Confronta questi oggetti tra loro.

// Conto-1

Account account1 = new Account();

Map map_obj1 = new Map{

conto1 => 1000};

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

// Conto-2

Account account2 = new Account();

Map map_obj2 = new Map{

conto2 => 1000};

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

// Conto-3

Account account3 = nuovo Account();

Map map_obj3 = new Map{

conto3 => 2000};

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

// equivale()

System.debug('Mappa 1 e Mappa 2 sono uguali: '+ map_obj1.equals(map_obj2));

System.debug('Mappa 1 e Mappa 3 sono uguali: '+ map_obj1.equals(map_obj3));

Produzione:

Il primo e il secondo oggetto mappa sono uguali poiché sia ​​le chiavi che i valori sono gli stessi in entrambi gli oggetti. Il primo e il terzo oggetto mappa non sono uguali poiché le chiavi ei valori sono diversi.

7. Map.isEmpty()

Possiamo controllare se la mappa è vuota o meno usando il metodo isEmpty(). True viene restituito se la raccolta di mappe Apex è vuota. In caso contrario, viene restituito false. Simile al metodo size(), non prenderà alcun parametro.

Sintassi:

map_object.isEmpty()

Esempio:

Creiamo due oggetti mappa che sono correlati a 'Account' e controlliamo se questi due sono vuoti o meno.

// Conto-1

Account account1 = new Account();

Map map_obj1 = new Map{

conto1 => 1000};



// Conto-2

Map map_obj2 = new Map();

// è vuoto()

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

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

Produzione:

La prima mappa non è vuota poiché contiene una coppia chiave-valore. La seconda mappa è vuota poiché non ne contiene.

8. Mappa.rimuovi()

Il metodo remove() nella raccolta di mappe Apex viene utilizzato per rimuovere una particolare coppia chiave-valore in base alla chiave specificata in essa come parametro. Se la chiave non esiste, viene generato un errore.

Sintassi:

map_object.remove(chiave)

Esempio:

Creiamo una mappa con due elementi e rimuoviamo il primo elemento.

Account account1 = new Account();

Account account2 = new Account();

Map map_obj = new Map{

account1 => 1000,account2 => 4000};

System.debug('Mappa esistente'+ map_obj);

//rimuovere()

map_obj.remove(account1);

System.debug('Dopo aver rimosso il primo elemento:'+map_obj);

Produzione:

Dopo aver rimosso il primo elemento dalla mappa, esiste solo un elemento: {Account:{Name=Python}=4000}.

9. Mappa.put()

Utilizzando questo metodo, possiamo aggiungere direttamente un elemento alla volta all'oggetto della mappa. Accetta due parametri: “key” è il primo parametro mentre “value” è il secondo parametro.

Sintassi:

map_object.put(chiave,valore)

Esempio:

Creiamo una mappa con una coppia chiave-valore. Quindi, utilizziamo il metodo 'put' per inserire 'account2'.

// Conto-1

Account account1 = new Account();

Map map_obj1 = new Map{

conto1 => 1000};

System.debug('Mappa attuale: '+map_obj1);

// Conto-2

Account account2 = new Account();

// Mettere()

map_obj1.put(account2,2000);

System.debug('Mappa finale: '+map_obj1);

Produzione:

In precedenza, esisteva solo una coppia chiave-valore nella mappa che è {Account:{Name=Linux Hint}=1000}. Dopo aver aggiunto 'account2', la mappa finale contiene due coppie chiave-valore che sono {Account:{Name=Linux Hint}=1000 e Account:{Name=Python}=2000}.

10. Mappa.putAll()

Utilizzando questo metodo, possiamo aggiungere direttamente uno o più elementi alla volta all'oggetto mappa. Prende un oggetto di raccolta di mappe come parametro.

Sintassi:

map_object1.putAll(map_object2)

Esempio:

Creiamo una mappa con due coppie chiave-valore e creiamo di nuovo un oggetto mappa vuoto senza elementi. Utilizzare il metodo putAll() per aggiungere gli elementi disponibili nel primo oggetto mappa al secondo oggetto mappa.

Account account1 = new Account();

Account account2 = new Account();

Map map_obj1 = new Map{

conto1 => 1000, conto2=> 2000};

System.debug(map_obj1);

Map map_obj2 = new Map();

//metti tutto()

map_obj2.putAll(map_obj1);

System.debug(map_obj2);

Produzione:

Conclusione

La mappa è una struttura di dati utilizzata principalmente negli scenari di attivazione e aiuta a caricare più dati alla volta nel database di Salesforce come un elenco. Abbiamo due opzioni per aggiungere gli elementi nella mappa: usando put() e putAll(). Il metodo remove() viene utilizzato per rimuovere un particolare elemento dalla raccolta di mappe Apex. Il metodo clear() viene utilizzato per eliminare tutti gli elementi. Inoltre, abbiamo imparato a restituire i valori e le chiavi utilizzando i metodi values() e keySet().