Salesforce Apex – Mapa

Salesforce Apex Mapa



El mapa de Salesforce Apex es una estructura de datos que se usa principalmente en escenarios de activación y ayuda a cargar más datos a la vez en la base de datos de Salesforce como una lista. Pero almacena y organiza los datos en el formato de par {clave:valor}. Discutiremos la colección de mapas en el lenguaje de programación Apex y sus métodos. Aquí, utilizaremos el objeto estándar Cuenta en Salesforce para todos los ejemplos. Vamos a sumergirnos rápidamente en este tutorial.

Mapa

El mapa toma los datos del par {clave:valor} como entrada y los almacena en los objetos estándar o personalizados de Salesforce. Puede tomar el sObject como clave o valor.







Creación de mapas

Al especificar los tipos de datos de la clave y el valor junto con el nombre del objeto, se puede crear el mapa. Aquí, se utiliza una nueva palabra clave para crearlo. Puede ser opcional pasar los elementos durante la creación.



Sintaxis del mapa vacío:

Map map_obj = new Map():

Sintaxis genérica:

Mapa map_obj = new Mapa{

Clave => valor,....};

Sintaxis de sObject:

Map map_obj = new Map{

Clave => valor,....};

Aquí, el sObject puede ser un objeto estándar o personalizado. En todo este artículo, solo trataremos el mapa con el sObject 'Cuenta'.



Veamos los métodos que son compatibles con la colección de 'mapas' de Apex uno por uno.





Configuración del entorno

1. Inicie sesión rápidamente en Salesforce y abra la 'Consola de desarrollador' haciendo clic en el ícono de ajustes.



2. Luego, abra la 'Ventana anónima' haciendo clic en 'Depurar' y 'Abrir Ejecutar ventana anónima'.

Ejemplo genérico:

Primero, veremos la creación del mapa genérico creando un mapa con dos sujetos: el 'subject_id' que actúa como clave y 'value' como el nombre del sujeto.

Mapa programación=nuevo Mapa{1=> 'Linux',2=> 'Python'};

system.debug(programación);

Producción:

  1. Haga clic en 'Ejecutar'.
  2. Marque la opción 'Solo depuración'. Puede ver la salida en el 'Registro de ejecución'.

Métodos de mapa

Primero, creamos un mapa desde el objeto 'Cuenta'. Creamos tres cuentas con nombres uno por uno. Luego, declaramos un mapa con la clave y el valor como escriba y pase las tres cuentas anteriores al mapa proporcionando algunos valores.

// Crear 3 cuentas con Nombre

Cuenta cuenta1 = nueva cuenta (Nombre = 'Sugerencia de Linux');

Cuenta cuenta2 = nueva Cuenta(Nombre='Salesforce');

Cuenta cuenta3 = nueva Cuenta(Nombre='Python');

// Agregue las cuentas anteriores como claves para map_obj

Map map_obj = new Map{

cuenta1 => 1000,cuenta2 => 2000,cuenta3 => 3000};

Sistema.depuración(mapa_obj);

Producción:

Puede ver que 'map_obj' almacena tres cuentas.

1. Mapa.valores()

Para devolver solo los valores del mapa dado, podemos usar el método de valores(). No tomará ningún parámetro. Simplemente devuelve la lista de valores separados por comas.

Sintaxis:

mapa_objeto.valores()

Ejemplo:

Devolvamos todos los valores del mapa anterior. Asegúrese de que necesita ejecutar el código de ejemplo anterior (cree un mapa con tres cuentas). De lo contrario, obtendrá un error. El código también debe existir en la consola.

// Devolver valores para todas las claves usando valores()

System.debug(mapa_obj.valores());

Producción:

Solo hay tres pares clave:valor en map_obj. Los valores son: 1000, 2000 y 3000.

2. Mapa.keySet()

Devuelve las claves que están presentes en el objeto del mapa. Al igual que los valores (), no hay necesidad de pasar ningún parámetro a este método.

Sintaxis:

mapa_objeto.keySet()

Ejemplo:

Devolvamos todas las claves del mapa anterior. Asegúrese de ejecutar el código de ejemplo anterior (cree un mapa con tres cuentas). De lo contrario, obtendrá un error. El código también debe existir en la consola.

// Devuelve todas las claves usando keySet()

Sistema.depuración(mapa_obj.keySet());

Producción:

Solo hay tres pares clave:valor en map_obj. Las claves son: {Cuenta:{Nombre=Sugerencia de Linux}, Cuenta:{Nombre=Python} y Cuenta:{Nombre=Salesforce}.

3. Mapa.tamaño()

En algunos escenarios, necesitamos conocer el total de pares de elementos (clave:valor) que están presentes en el mapa de Apex. Size() es el método que devuelve los pares totales (clave:valor) que existen en map_object. No se necesitan parámetros para este método.

Sintaxis:

mapa_objeto.tamaño()

Ejemplo:

Devuelve el tamaño del objeto de mapa anterior.

// Devuelve el número total de pares usando size()

System.debug(mapa_obj.tamaño());

Producción:

Como solo hay 3 pares, el tamaño devuelto () es 3.

4. Mapa.get()

El acceso a los valores del mapa mediante la clave se realiza mediante el método get(). Para hacer esto, necesitamos pasar la clave como parámetro al método get(). Si se pasa una clave desconocida, devuelve un error.

Sintaxis:

mapa_objeto.get(clave)

Ejemplo:

Devuelve los valores de clave-2 y clave-1 por separado.

// obtener el valor de la segunda clave

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

// obtener el valor de la primera clave

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

Producción:

Aquí, 2000 es el valor de la clave 'Salesforce' y 1000 es el valor de la clave 'Linux Hint'.

5. Mapa.claro()

Todos los pares en una colección de mapas de Apex se pueden eliminar a la vez mediante el método clear(). No tomará ningún parámetro.

Sintaxis:

mapa_objeto.clear()

Ejemplo:

Elimina los pares en el “map_obj” anterior.

//Antes de borrar()

Sistema.depuración(mapa_obj);

// Elimina todos los pares usando clear()

mapa_obj.claro();

//Después de borrar()

Sistema.depuración(mapa_obj);

Producción:

Previamente, hay 3 pares clave-valor en el “map_obj”. Después de aplicar el método clear(), los 3 se eliminan.

6. Mapa.equals()

Podemos comparar dos objetos de mapa usando el método equals(). Se devuelve el valor booleano de verdadero si todas las claves y valores son iguales en ambos objetos de mapa. Mientras que el valor booleano de falso se devuelve si al menos un valor es diferente.

Sintaxis:

mapa_objeto1.equals(mapa_objeto2)

Ejemplo:

Vamos a crear tres objetos de mapa con un par clave:valor, cada uno con respecto al objeto 'Cuenta'. Compara estos objetos entre ellos.

// Cuenta-1

Cuenta cuenta1 = nueva cuenta (Nombre = 'Sugerencia de Linux');

Map map_obj1 = new Map{

cuenta1 => 1000};

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

// Cuenta-2

Cuenta cuenta2 = nueva cuenta (Nombre = 'Sugerencia de Linux');

Map map_obj2 = new Map{

cuenta2 => 1000};

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

// Cuenta-3

Cuenta cuenta3 = nueva Cuenta(Nombre='Python');

Map map_obj3 = new Map{

cuenta3 => 2000};

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

// es igual a()

System.debug('Mapa 1 y Mapa 2 son iguales: '+ map_obj1.equals(map_obj2));

System.debug('Mapa 1 y Mapa 3 son iguales: '+ map_obj1.equals(map_obj3));

Producción:

Los objetos del primer y segundo mapa son iguales ya que tanto las claves como los valores son los mismos en ambos objetos. Los objetos del primer y tercer mapa no son iguales ya que las claves y los valores son diferentes.

7. Mapa.estáVacío()

Podemos verificar si el mapa está vacío o no usando el método isEmpty(). Se devuelve verdadero si la colección de mapas de Apex está vacía. De lo contrario, se devuelve falso. Similar al método size(), no tomará ningún parámetro.

Sintaxis:

mapa_objeto.estáVacío()

Ejemplo:

Vamos a crear dos objetos de mapa que estén relacionados con 'Cuenta' y verifiquemos si estos dos están vacíos o no.

// Cuenta-1

Cuenta cuenta1 = nueva cuenta (Nombre = 'Sugerencia de Linux');

Map map_obj1 = new Map{

cuenta1 => 1000};

 

// Cuenta-2

Map map_obj2 = new Map();

// esta vacio()

System.debug('Map-1 está vacío: '+map_obj1.isEmpty());

System.debug('Map-2 está vacío: '+map_obj2.isEmpty());

Producción:

El primer mapa no está vacío ya que contiene un par clave-valor. El segundo mapa está vacío ya que no contiene ninguno.

8. Mapa.remove()

El método remove() en la colección de mapas de Apex se usa para eliminar un par clave-valor en particular en función de la clave que se especifica en él como parámetro. Si la clave no existe, se genera un error.

Sintaxis:

map_object.remove(clave)

Ejemplo:

Creemos un mapa con dos elementos y eliminemos el primero.

Cuenta cuenta1 = nueva cuenta (Nombre = 'Sugerencia de Linux');

Cuenta cuenta2 = nueva Cuenta(Nombre='Python');

Map map_obj = new Map{

cuenta1 => 1000,cuenta2 => 4000};

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

//eliminar()

map_obj.remove(cuenta1);

System.debug('Después de eliminar el primer elemento:'+map_obj);

Producción:

Después de eliminar el primer elemento del mapa, solo existe un elemento: {Cuenta:{Nombre=Python}=4000}.

9. Mapa.put()

Usando este método, podemos agregar directamente un elemento al objeto del mapa a la vez. Acepta dos parámetros: 'clave' es el primer parámetro mientras que 'valor' es el segundo parámetro.

Sintaxis:

map_object.put(clave,valor)

Ejemplo:

Vamos a crear un mapa con un par clave-valor. Luego, usamos el método 'put' para insertar 'account2'.

// Cuenta-1

Cuenta cuenta1 = nueva cuenta (Nombre = 'Sugerencia de Linux');

Map map_obj1 = new Map{

cuenta1 => 1000};

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

// Cuenta-2

Cuenta cuenta2 = nueva Cuenta(Nombre='Python');

// poner()

map_obj1.put(cuenta2,2000);

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

Producción:

Anteriormente, solo había un par clave-valor en el mapa que es {Account:{Name=Linux Hint}=1000}. Después de agregar 'cuenta2', el mapa final contiene dos pares clave-valor que son {Cuenta:{Nombre=Sugerencia de Linux}=1000 y Cuenta:{Nombre=Python}=2000}.

10. Mapa.putAll()

Con este método, podemos agregar directamente uno o varios elementos al objeto del mapa a la vez. Toma un objeto de colección de mapas como parámetro.

Sintaxis:

mapa_objeto1.putAll(mapa_objeto2)

Ejemplo:

Creemos un mapa con dos pares clave-valor y volvamos a crear un objeto de mapa vacío sin elementos. Utilice el método putAll() para agregar los elementos que están disponibles en el primer objeto de mapa al segundo objeto de mapa.

Cuenta cuenta1 = nueva cuenta (Nombre = 'Sugerencia de Linux');

Cuenta cuenta2 = nueva Cuenta(Nombre='Python');

Map map_obj1 = new Map{

cuenta1 => 1000, cuenta2=> 2000};

Sistema.depuración(mapa_obj1);

Map map_obj2 = new Map();

//poner todo()

mapa_obj2.putAll(mapa_obj1);

Sistema.depuración(mapa_obj2);

Producción:

Conclusión

El mapa es una estructura de datos que se usa principalmente en escenarios desencadenantes y ayuda a cargar más datos a la vez en la base de datos de Salesforce como una lista. Tenemos dos opciones para agregar los elementos al mapa: usando put() y putAll(). El método remove() se utiliza para eliminar un elemento en particular de la colección de mapas de Apex. El método clear() se utiliza para eliminar todos los elementos. Además, aprendimos cómo devolver los valores y claves usando los métodos values() y keySet().