Salesforce Apex – Карта

Salesforce Apex Karta



Картата на Salesforce Apex е структура от данни, която се използва главно в сценарии за задействане и помага да се зареждат повече данни наведнъж в базата данни на Salesforce като списък. Но той съхранява и организира данните във формата на двойка {ключ:стойност}. Ще обсъдим колекцията от карти на езика за програмиране Apex и нейните методи. Тук ще използваме стандартния обект Account в Salesforce за всички примери. Нека бързо да се потопим в този урок.

Карта

Map приема данните за двойката {key:value} като вход и ги съхранява в стандартните или персонализирани обекти на Salesforce. Може да приеме sObject като ключ или стойност.







Създаване на карта

Картата може да бъде създадена чрез указване на типовете данни на ключа и стойността заедно с името на обекта. Тук се използва нова ключова дума за създаването му. Може да не е задължително да подадете елементите по време на създаване.



Синтаксис на празна карта:

Map map_obj = new Map():

Общ синтаксис:

Map map_obj = new Map{

Ключ => стойност,....};

sObject Синтаксис:

Map map_obj = new Map{

Ключ => стойност,....};

Тук sObject може да бъде стандартен или потребителски обект. В цялата тази статия ще се занимаваме само с карта с sObject „Акаунт“.



Нека да видим методите, които се поддържат от колекцията „карта“ на Apex един по един.





Настройка на средата

1. Бързо влезте в Salesforce и отворете „Конзолата за програмисти“, като щракнете върху иконата на зъбно колело.



2. След това отворете „Анонимен прозорец“, като щракнете върху „Debug“ и „Open Execute Anonymous Window“.

Общ пример:

Първо, ще видим създаването на обща карта чрез създаване на карта с два субекта: „subject_id“, който действа като ключ, и „стойност“ като име на субект.

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

system.debug(програмиране);

Изход:

  1. Кликнете върху „Изпълнение“.
  2. Поставете отметка на опцията „Само отстраняване на грешки“. Можете да видите изхода в „Дневник на изпълнението“.

Методи на картата

Първо създаваме карта от обекта „Акаунт“. Създаваме три акаунта с имена едно по едно. След това декларираме карта с ключ и стойност като въведете и предайте предишните три акаунта на картата, като предоставите някои стойности.

// Създайте 3 акаунта с име

Account account1 = нов акаунт();

Акаунт акаунт2 = нов акаунт(Име='Salesforce');

Акаунт акаунт3 = нов акаунт(Име='Python');

// Добавете горните акаунти като ключове към map_obj

Map map_obj = new Map{

акаунт1 => 1000, акаунт2 => 2000, акаунт3 => 3000};

System.debug(map_obj);

Изход:

Можете да видите, че „map_obj“ съхранява три акаунта.

1. Map.values()

За да върнем само стойностите от дадената карта, можем да използваме метода values(). Няма да приема никакви параметри. Той просто връща списъка със стойности, разделени със запетая.

Синтаксис:

map_object.values()

Пример:

Нека върнем всички стойности от предишната карта. Уверете се, че трябва да изпълните предишния примерен код (създайте карта с три акаунта). В противен случай ще получите грешка. Кодът също трябва да съществува в конзолата.

// Връща стойности за всички ключове с помощта на values()

System.debug(map_obj.values());

Изход:

Има само три двойки ключ:стойност в map_obj. Стойностите са: 1000, 2000 и 3000.

2. Map.keySet()

Върнете ключовете присъстват в обекта на картата. Подобно на values(), не е необходимо да се предава параметър на този метод.

Синтаксис:

map_object.keySet()

Пример:

Нека върнем всички ключове от предишната карта. Уверете се, че изпълнявате предишния примерен код (създайте карта с три акаунта). В противен случай ще получите грешка. Кодът също трябва да съществува в конзолата.

// Връщане на всички ключове чрез keySet()

System.debug(map_obj.keySet());

Изход:

Има само три двойки ключ:стойност в map_obj. Ключовете са: {Account:{Name=Linux Hint}, Account:{Name=Python} и Account:{Name=Salesforce}.

3. Map.size()

В някои сценарии трябва да знаем общите двойки елементи (ключ:стойност), които присъстват в картата на Apex. Size() е методът, който връща общите двойки (ключ:стойност), които съществуват в map_object. За този метод не са необходими параметри.

Синтаксис:

map_object.size()

Пример:

Връща размера на предишния обект на картата.

// Връща общия брой двойки с помощта на size()

System.debug(map_obj.size());

Изход:

Тъй като има само 3 двойки, върнатият size() е 3.

4. Map.get()

Достъпът до стойностите от картата чрез ключа се извършва чрез метода get(). За да направим това, трябва да предадем ключа като параметър на метода get(). Ако бъде подаден неизвестен ключ, той връща грешка.

Синтаксис:

map_object.get(ключ)

Пример:

Върнете стойностите на  key-2 и key-1 отделно.

// получаваме стойността на втория ключ

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

// получаваме стойността на първия ключ

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

Изход:

Тук 2000 е стойността на ключа „Salesforce“, а 1000 е стойността на ключа „Linux Hint“.

5. Map.clear()

Всички двойки в колекция от карти на Apex могат да бъдат изтрити наведнъж с помощта на метода clear(). Няма да приема никакви параметри.

Синтаксис:

map_object.clear()

Пример:

Премахнете двойките в предишния „map_obj“.

//Преди clear()

System.debug(map_obj);

// Премахване на всички двойки чрез clear()

map_obj.clear();

//След изчистване()

System.debug(map_obj);

Изход:

Преди това в „map_obj“ имаше 3 двойки ключ-стойност. След прилагане на метода clear() всичките 3 се изтриват.

6. Map.equals()

Можем да сравним два обекта на карта с помощта на метода equals(). Булевата стойност на true се връща, ако всички ключове и стойности са еднакви и в двата обекта на карта. Докато булевата стойност на false се връща, ако поне една стойност е различна.

Синтаксис:

map_object1.equals(map_object2)

Пример:

Нека създадем три обекта на карта с една двойка ключ:стойност, всеки по отношение на обекта „Акаунт“. Сравнете тези обекти между тях.

// Акаунт-1

Account account1 = нов акаунт();

Map map_obj1 = new Map{

сметка1 => 1000};

System.debug('Карта - 1:' + map_obj1);

// Акаунт-2

Account account2 = нов акаунт();

Map map_obj2 = new Map{

сметка2 => 1000};

System.debug('Карта - 2:' + map_obj1);

// Акаунт-3

Акаунт акаунт3 = нов акаунт(Име='Python');

Map map_obj3 = new Map{

сметка3 => 2000};

System.debug('Карта - 3:' + map_obj3);

// равно на()

System.debug('Карта 1 и Карта 2 са равни: '+ map_obj1.equals(map_obj2));

System.debug('Карта 1 и Карта 3 са равни: '+ map_obj1.equals(map_obj3));

Изход:

Първият и вторият обект на карта са равни, тъй като и ключовете, и стойностите са еднакви и в двата обекта. Първият и третият обект на картата не са равни, тъй като ключовете и стойностите са различни.

7. Map.isEmpty()

Можем да проверим дали картата е празна или не с помощта на метода isEmpty(). True се връща, ако колекцията от карти Apex е празна. В противен случай се връща false. Подобно на метода size(), той няма да приема никакъв параметър.

Синтаксис:

map_object.isEmpty()

Пример:

Нека създадем два обекта на картата, които са свързани с „Акаунт“ и проверим дали тези два са празни или не.

// Акаунт-1

Account account1 = нов акаунт();

Map map_obj1 = new Map{

сметка1 => 1000};



// Акаунт-2

Map map_obj2 = new Map();

// празно е()

System.debug('Map-1 е празен: '+map_obj1.isEmpty());

System.debug('Map-2 е празна: '+map_obj2.isEmpty());

Изход:

Първата карта не е празна, тъй като съдържа една двойка ключ-стойност. Втората карта е празна, тъй като не съдържа никакви.

8. Map.remove()

Методът remove() в колекцията от карти Apex се използва за премахване на конкретна двойка ключ-стойност въз основа на ключа, който е посочен в нея като параметър. Ако ключът не съществува, възниква грешка.

Синтаксис:

map_object.remove(ключ)

Пример:

Нека създадем карта с два елемента и да премахнем първия елемент.

Account account1 = нов акаунт();

Акаунт акаунт2 = нов акаунт(Име='Python');

Map map_obj = new Map{

акаунт1 => 1000, акаунт2 => 4000};

System.debug('Съществуваща карта'+ map_obj);

//Премахване()

map_obj.remove(акаунт1);

System.debug('След премахване на първия елемент:'+map_obj);

Изход:

След премахване на първия елемент от картата, съществува само един елемент – {Account:{Name=Python}=4000}.

9. Map.put()

Използвайки този метод, можем директно да добавяме по един елемент към обекта на картата. Той приема два параметъра: „ключ“ е първият параметър, докато „стойност“ е вторият параметър.

Синтаксис:

map_object.put(ключ,стойност)

Пример:

Нека създадем карта с една двойка ключ-стойност. След това използваме метода „put“, за да вмъкнем „account2“.

// Акаунт-1

Account account1 = нов акаунт();

Map map_obj1 = new Map{

сметка1 => 1000};

System.debug('Действителна карта: '+map_obj1);

// Акаунт-2

Акаунт акаунт2 = нов акаунт(Име='Python');

// слагам()

map_obj1.put(акаунт2,2000);

System.debug('Окончателна карта: '+map_obj1);

Изход:

Преди това в картата имаше само една двойка ключ-стойност, която беше {Account:{Name=Linux Hint}=1000}. След добавяне на „account2“, крайната карта съдържа две двойки ключ-стойност, които са {Account:{Name=Linux Hint}=1000 и Account:{Name=Python}=2000}.

10. Map.putAll()

Използвайки този метод, можем директно да добавим един или няколко елемента към обекта на картата наведнъж. Той приема обект за колекция от карти като параметър.

Синтаксис:

map_object1.putAll(map_object2)

Пример:

Нека създадем карта с две двойки ключ-стойност и отново празен обект на карта без елементи. Използвайте метода putAll(), за да добавите елементите, които са налични в първия обект на карта към втория обект на карта.

Account account1 = нов акаунт();

Акаунт акаунт2 = нов акаунт(Име='Python');

Map map_obj1 = new Map{

акаунт1 => 1000, акаунт2=> 2000};

System.debug(map_obj1);

Map map_obj2 = new Map();

//putAll()

map_obj2.putAll(map_obj1);

System.debug(map_obj2);

Изход:

Заключение

Картата е структура от данни, която се използва главно в сценарии за задействане и помага да се зареждат повече данни наведнъж в базата данни на Salesforce като списък. Имаме две опции за добавяне на елементите в картата: използване на put() и putAll(). Методът remove() се използва за премахване на определен елемент от колекцията от карти Apex. Методът clear() се използва за изтриване на всички елементи. Освен това научихме как да връщаме стойностите и ключовете с помощта на методите values() и keySet().