Salesforce Apex – Mapa

Salesforce Apex Mapa



El mapa Apex de Salesforce és una estructura de dades que s'utilitza principalment en escenaris d'activació i ajuda a carregar més dades alhora a la base de dades de Salesforce com una llista. Però emmagatzema i organitza les dades en el format de parell {clau:valor}. Parlarem de la col·lecció de mapes en llenguatge de programació Apex i els seus mètodes. Aquí, utilitzarem l'objecte estàndard Compte a Salesforce per a tots els exemples. Endinsem-nos ràpidament en aquest tutorial.

Mapa

Map pren les dades del parell {clau:valor} com a entrada i les emmagatzema als objectes estàndard o personalitzats de Salesforce. Pot prendre el sObject com a clau o valor.







Creació de mapes

Si especifiqueu els tipus de dades de la clau i el valor juntament amb el nom de l'objecte, es pot crear el mapa. Aquí, s'utilitza una paraula clau nova per crear-la. Pot ser opcional passar els elements durant la creació.



Sintaxi del mapa buit:

Map map_obj = new Map():

Sintaxi genèrica:

Map map_obj = mapa nou{

Clau => valor,....};

Sintaxi sObject:

Map map_obj = map{

Clau => valor,....};

Aquí, el sObject pot ser un objecte estàndard o personalitzat. En tot aquest article, només tractarem el mapa amb l'objecte 'Compte'.



Vegem un per un els mètodes compatibles amb la col·lecció de 'mapes' d'Apex.





Configuració de l'entorn

1. Inicieu sessió ràpidament a Salesforce i obriu la 'Consola per a desenvolupadors' fent clic a la icona d'engranatge.



2. A continuació, obriu la 'Finestra anònima' fent clic a 'Depurar' i 'Obre la finestra d'execució anònima'.

Exemple genèric:

En primer lloc, veurem la creació del mapa genèric mitjançant la creació d'un mapa amb dos subjectes: el 'subject_id' que actua com a clau i 'value' com a nom del subjecte.

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

system.debug(programació);

Sortida:

  1. Feu clic a 'Executar'.
  2. Marqueu l'opció 'Només depuració'. Podeu veure la sortida al 'Registre d'execució'.

Mètodes de mapes

Primer, creem un mapa a partir de l'objecte 'Compte'. Creem tres comptes amb noms un per un. A continuació, declarem un mapa amb la clau i el valor com escriviu i passeu els tres comptes anteriors al mapa proporcionant alguns valors.

// Crea 3 comptes amb Nom

Compte compte1 = compte nou (Nom = 'Linux Hint');

Compte compte2 = compte nou (Nom='Salesforce');

Compte compte3 = compte nou (Nom='Python');

// Afegiu els comptes anteriors com a claus al map_obj

Map map_obj = new Map{

compte1 => 1000,compte2 => 2000,compte3 => 3000};

System.debug(map_obj);

Sortida:

Podeu veure que 'map_obj' emmagatzema tres comptes.

1. Map.values()

Per retornar només els valors del mapa donat, podem utilitzar el mètode values(). No necessitarà cap paràmetre. Simplement retorna la llista de valors separats per comes.

Sintaxi:

map_object.values()

Exemple:

Retornem tots els valors del mapa anterior. Assegureu-vos que heu d'executar el codi d'exemple anterior (creeu un mapa amb tres comptes). En cas contrari, obtindreu un error. El codi també hauria d'existir a la consola.

// Retorna valors per a totes les claus utilitzant values()

System.debug(map_obj.values());

Sortida:

Només hi ha tres parells clau:valor a map_obj. Els valors són: 1000, 2000 i 3000.

2. Map.keySet()

Torna les claus estan presents a l'objecte del mapa. De manera similar a values(), no cal passar cap paràmetre a aquest mètode.

Sintaxi:

map_object.keySet()

Exemple:

Retornem totes les claus del mapa anterior. Assegureu-vos d'executar el codi d'exemple anterior (creeu un mapa amb tres comptes). En cas contrari, obtindreu un error. El codi també hauria d'existir a la consola.

// Retorna totes les claus utilitzant keySet()

System.debug(map_obj.keySet());

Sortida:

Només hi ha tres parells clau:valor a map_obj. Les claus són: {Compte:{Nom=Linux Hint}, Compte:{Nom=Python} i Compte:{Nom=Salesforce}.

3. Mida.mapa()

En alguns escenaris, hem de conèixer els parells d'elements totals (clau:valor) que hi ha al mapa Apex. Size() és el mètode que retorna els parells totals (clau:valor) que existeixen a map_object. No calen paràmetres per a aquest mètode.

Sintaxi:

mida_objecte.mapa()

Exemple:

Retorna la mida de l'objecte del mapa anterior.

// Retorna el nombre total de parells utilitzant size()

System.debug(map_obj.size());

Sortida:

Com que només hi ha 3 parells, la mida () retornada és 3.

4. Map.get()

L'accés als valors del mapa mitjançant la clau es fa mitjançant el mètode get(). Per fer-ho, hem de passar la clau com a paràmetre al mètode get(). Si es passa una clau desconeguda, retorna un error.

Sintaxi:

map_object.get(clau)

Exemple:

Retorna els valors de clau-2 i clau-1 per separat.

// obteniu el valor de la segona clau

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

// obteniu el valor de la primera clau

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

Sortida:

Aquí, 2000 és el valor de la clau 'Salesforce' i 1000 és el valor de la clau 'Linux Hint'.

5. Map.clear()

Tots els parells d'una col·lecció de mapes Apex es poden suprimir alhora mitjançant el mètode clear(). No necessitarà cap paràmetre.

Sintaxi:

map_object.clear()

Exemple:

Elimina els parells de l'anterior 'map_obj'.

//Abans de netejar()

System.debug(map_obj);

// Elimina tots els parells amb clear()

map_obj.clear();

//Després de netejar ()

System.debug(map_obj);

Sortida:

Anteriorment, hi havia 3 parells clau-valor al 'map_obj'. Després d'aplicar el mètode clear(), se suprimeixen els 3.

6. Map.equals()

Podem comparar dos objectes de mapa utilitzant el mètode equals(). El valor booleà de true es retorna si totes les claus i els valors són iguals als dos objectes del mapa. Mentre que el valor booleà de false es retorna si almenys un valor és diferent.

Sintaxi:

map_object1.equals(map_object2)

Exemple:

Creem tres objectes de mapa amb un parell clau:valor, cadascun respecte a l'objecte 'Compte'. Compara aquests objectes entre ells.

// Compte-1

Compte compte1 = compte nou (Nom = 'Linux Hint');

Map map_obj1 = nou Map{

compte1 => 1000};

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

// Compte-2

Compte compte2 = compte nou (Nom='Suggeriment de Linux');

Map map_obj2 = new Map{

compte2 => 1000};

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

// Compte-3

Compte compte3 = compte nou (Nom='Python');

Map map_obj3 = new Map{

compte3 => 2000};

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

// és igual()

System.debug('El mapa 1 i el mapa 2 són iguals: '+ map_obj1.equals(map_obj2));

System.debug('El mapa 1 i el mapa 3 són iguals: '+ map_obj1.equals(map_obj3));

Sortida:

El primer i el segon objecte del mapa són iguals, ja que les claus i els valors són iguals als dos objectes. El primer i el tercer objecte del mapa no són iguals, ja que les claus i els valors són diferents.

7. Map.isEmpty()

Podem comprovar si el mapa està buit o no mitjançant el mètode isEmpty(). Es retorna True si la col·lecció de mapes Apex està buida. En cas contrari, es retorna false. De manera similar al mètode size(), no necessitarà cap paràmetre.

Sintaxi:

map_object.isEmpty()

Exemple:

Creem dos objectes de mapa relacionats amb 'Compte' i comprovem si aquests dos estan buits o no.

// Compte-1

Compte compte1 = compte nou (Nom = 'Linux Hint');

Map map_obj1 = nou Map{

compte1 => 1000};



// Compte-2

Map map_obj2 = new Map();

// està buit()

System.debug('Map-1 està buit: '+map_obj1.isEmpty());

System.debug('Map-2 està buit: '+map_obj2.isEmpty());

Sortida:

El primer mapa no està buit perquè conté un parell clau-valor. El segon mapa està buit perquè no en conté cap.

8. Map.remove()

El mètode remove() de la col·lecció de mapes Apex s'utilitza per eliminar un parell clau-valor particular en funció de la clau que s'especifica com a paràmetre. Si la clau no existeix, es genera un error.

Sintaxi:

map_object.remove(clau)

Exemple:

Creem un mapa amb dos elements i eliminem el primer.

Compte compte1 = compte nou (Nom = 'Linux Hint');

Compte compte2 = compte nou (Nom='Python');

Map map_obj = new Map{

compte1 => 1000,compte2 => 4000};

System.debug('Mapa existent'+ map_obj);

//eliminar()

map_obj.remove(compte1);

System.debug('Després d'eliminar el primer element:'+map_obj);

Sortida:

Després d'eliminar el primer element del mapa, només n'hi ha un: {Compte:{Nom=Python}=4000}.

9. Map.put()

Mitjançant aquest mètode, podem afegir directament un element a l'objecte del mapa alhora. Accepta dos paràmetres: 'clau' és el primer paràmetre mentre que 'valor' és el segon paràmetre.

Sintaxi:

map_object.put(clau,valor)

Exemple:

Creem un mapa amb un parell clau-valor. A continuació, utilitzem el mètode 'posar' per inserir 'compte2'.

// Compte-1

Compte compte1 = compte nou (Nom = 'Linux Hint');

Map map_obj1 = new Map{

compte1 => 1000};

System.debug('Mapa real: '+map_obj1);

// Compte-2

Compte compte2 = compte nou (Nom='Python');

// posa ()

map_obj1.put(compte2,2000);

System.debug('Mapa final: '+map_obj1);

Sortida:

Anteriorment, només hi havia una parella clau-valor al mapa que és {Compte:{Name=Linux Hint}=1000}. Després d'afegir 'account2', el mapa final conté dos parells clau-valor que són {Compte:{Name=Linux Hint}=1000 i Account:{Name=Python}=2000}.

10. Map.putAll()

Mitjançant aquest mètode, podem afegir directament un o diversos elements a l'objecte del mapa alhora. Pren un objecte de col·lecció de mapes com a paràmetre.

Sintaxi:

map_object1.putAll(map_object2)

Exemple:

Creem un mapa amb dos parells clau-valor i tornem a crear un objecte de mapa buit sense elements. Utilitzeu el mètode putAll() per afegir els elements que estan disponibles al primer objecte de mapa al segon objecte de mapa.

Compte compte1 = compte nou (Nom = 'Linux Hint');

Compte compte2 = compte nou (Nom='Python');

Map map_obj1 = nou Map{

compte1 => 1000, compte2 => 2000};

System.debug(map_obj1);

Map map_obj2 = new Map();

//putAll()

map_obj2.putAll(map_obj1);

System.debug(map_obj2);

Sortida:

Conclusió

El mapa és una estructura de dades que s'utilitza principalment en escenaris d'activació i ajuda a carregar més dades alhora a la base de dades de Salesforce com una llista. Tenim dues opcions per afegir els elements al mapa: utilitzant put() i putAll(). El mètode remove() s'utilitza per eliminar un element concret de la col·lecció de mapes Apex. El mètode clear() s'utilitza per eliminar tots els elements. A més, vam aprendre a retornar els valors i les claus mitjançant els mètodes values() i keySet().