Salesforce Apex – Bản đồ

Salesforce Apex Ban Do



Bản đồ Salesforce Apex là một cấu trúc dữ liệu được sử dụng chủ yếu trong các tình huống kích hoạt và giúp tải nhiều dữ liệu hơn cùng một lúc vào cơ sở dữ liệu Salesforce giống như một danh sách. Nhưng nó lưu trữ và sắp xếp dữ liệu theo định dạng cặp {key:value}. Chúng ta sẽ thảo luận về bộ sưu tập bản đồ bằng ngôn ngữ lập trình Apex và các phương pháp của nó. Ở đây, chúng tôi sẽ sử dụng đối tượng tiêu chuẩn Tài khoản trong Salesforce cho tất cả các ví dụ. Hãy nhanh chóng đi sâu vào hướng dẫn này.

Bản đồ

Bản đồ lấy dữ liệu cặp {key:value} làm đầu vào và lưu trữ dữ liệu đó vào các đối tượng tùy chỉnh hoặc tiêu chuẩn của Salesforce. Nó có thể lấy sObject làm khóa hoặc giá trị.







Tạo bản đồ

Bằng cách chỉ định các loại dữ liệu của khóa và giá trị cùng với tên đối tượng, bản đồ có thể được tạo. Ở đây, một từ khóa mới được sử dụng để tạo ra nó. Nó có thể là tùy chọn để chuyển các phần tử trong quá trình tạo.



Bản đồ trống Cú pháp:

Map map_obj = new Map():

Cú pháp chung:

Map map_obj = new Map{

Khóa => giá trị,....};

sObject Cú pháp:

Bản đồ map_obj = Bản đồ mới{

Khóa => giá trị,....};

Ở đây, sObject có thể là một đối tượng tiêu chuẩn hoặc tùy chỉnh. Trong toàn bộ bài viết này, chúng tôi sẽ chỉ xử lý bản đồ với sObject “Account”.



Hãy xem từng phương pháp được bộ sưu tập “bản đồ” Apex hỗ trợ.





Cài đặt môi trường

1. Nhanh chóng đăng nhập vào Salesforce và mở “Bảng điều khiển dành cho nhà phát triển” bằng cách nhấp vào biểu tượng bánh răng.



2. Sau đó, mở “Cửa sổ ẩn danh” bằng cách nhấp vào “Gỡ lỗi” và “Mở cửa sổ ẩn danh thực thi”.

Ví dụ chung:

Đầu tiên, chúng ta sẽ xem cách tạo bản đồ chung bằng cách tạo bản đồ có hai chủ thể: “subject_id” đóng vai trò là khóa và “value” làm tên chủ đề.

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

system.debug(lập trình);

Đầu ra:

  1. Nhấp vào “Thực thi”.
  2. Kiểm tra tùy chọn 'Chỉ gỡ lỗi'. Bạn có thể xem đầu ra trong “Nhật ký thực thi”.

Phương pháp bản đồ

Đầu tiên, chúng tôi tạo một bản đồ từ đối tượng “Tài khoản”. Chúng tôi tạo ba tài khoản với tên từng người một. Sau đó, chúng tôi khai báo một bản đồ với khóa và giá trị là nhập và chuyển ba tài khoản trước đó vào bản đồ bằng cách cung cấp một số giá trị.

// Tạo 3 tài khoản với Name

Tài khoản tài khoản1 = Tài khoản mới(Tên='Gợi ý Linux');

Tài khoản account2 = Tài khoản mới();

Tài khoản account3 = Tài khoản mới();

// Thêm các tài khoản trên làm khóa cho map_obj

Bản đồ map_obj = Bản đồ mới{

tài khoản1 => 1000,tài khoản2 => 2000,tài khoản3 => 3000};

System.debug(map_obj);

Đầu ra:

Bạn có thể thấy rằng “map_obj” lưu trữ ba tài khoản.

1. Map.values()

Để chỉ trả về các giá trị từ bản đồ đã cho, chúng ta có thể sử dụng phương thức values(). Nó sẽ không nhận bất kỳ tham số nào. Nó chỉ trả về danh sách các giá trị được phân tách bằng dấu phẩy.

Cú pháp:

map_object.values()

Ví dụ:

Hãy trả về tất cả các giá trị từ bản đồ trước. Đảm bảo rằng bạn cần thực thi mã ví dụ trước đó (tạo bản đồ với ba tài khoản). Nếu không, bạn sẽ nhận được một lỗi. Mã này cũng phải tồn tại trong bảng điều khiển.

// Trả về giá trị cho tất cả các khóa bằng cách sử dụng giá trị()

System.debug(map_obj.values());

Đầu ra:

Chỉ có ba cặp key:value trong map_obj. Các giá trị là: 1000, 2000 và 3000.

2. Bản đồ.keySet()

Trả về các phím có trong đối tượng bản đồ. Tương tự như các giá trị (), không cần truyền bất kỳ tham số nào cho phương thức này.

Cú pháp:

map_object.keySet()

Ví dụ:

Hãy trả lại tất cả các phím từ bản đồ trước. Đảm bảo rằng bạn thực thi mã mẫu trước đó (tạo bản đồ với ba tài khoản). Nếu không, bạn sẽ nhận được một lỗi. Mã này cũng phải tồn tại trong bảng điều khiển.

// Trả về tất cả các Key sử dụng keySet()

System.debug(map_obj.keySet());

Đầu ra:

Chỉ có ba cặp key:value trong map_obj. Các khóa là: {Tài khoản:{Name=Linux Hint}, Tài khoản:{Name=Python} và Tài khoản:{Name=Salesforce}.

3. Bản đồ.size()

Trong một số trường hợp, chúng ta cần biết tổng số cặp mục (khóa: giá trị) có trong bản đồ Apex. Size() là phương thức trả về tổng số cặp (key:value) tồn tại trong map_object. Các tham số không cần thiết cho phương pháp này.

Cú pháp:

map_object.size()

Ví dụ:

Trả về kích thước của đối tượng bản đồ trước đó.

// Trả về tổng số cặp sử dụng size()

System.debug(map_obj.size());

Đầu ra:

Vì chỉ có 3 đôi nên size() trả về là 3.

4. Bản đồ.get()

Việc truy cập các giá trị từ bản đồ bằng khóa được thực hiện bằng phương thức get(). Để làm điều này, chúng ta cần truyền khóa dưới dạng tham số cho phương thức get(). Nếu một khóa không xác định được thông qua, nó sẽ trả về lỗi.

Cú pháp:

map_object.get(key)

Ví dụ:

Trả về các giá trị của  key-2 và key-1 một cách riêng biệt.

// lấy giá trị của khóa thứ hai

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

// lấy giá trị của khóa đầu tiên

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

Đầu ra:

Ở đây, 2000 là giá trị của khóa “Salesforce” và 1000 là giá trị của khóa “Linux Hint”.

5. Bản đồ. rõ ràng ()

Tất cả các cặp trong bộ sưu tập bản đồ Apex có thể bị xóa cùng một lúc bằng phương thức clear(). Nó sẽ không nhận bất kỳ tham số nào.

Cú pháp:

map_object.clear()

Ví dụ:

Xóa các cặp trong “map_obj” trước đó.

// Trước khi xóa()

System.debug(map_obj);

// Loại bỏ tất cả các cặp sử dụng clear()

map_obj.clear();

//Sau khi xóa()

System.debug(map_obj);

Đầu ra:

Trước đây, có 3 cặp khóa-giá trị trong “map_obj”. Sau khi áp dụng phương thức clear(), cả 3 đều bị xóa.

6. Map.equals()

Chúng ta có thể so sánh hai đối tượng bản đồ bằng phương thức equals(). Giá trị Boolean của true được trả về nếu tất cả các khóa và giá trị đều giống nhau trong cả hai đối tượng bản đồ. Trong khi giá trị Boolean của false được trả về nếu có ít nhất một giá trị khác.

Cú pháp:

map_object1.equals(map_object2)

Ví dụ:

Hãy tạo ba đối tượng bản đồ với một cặp khóa: giá trị, mỗi đối tượng liên quan đến đối tượng “Tài khoản”. So sánh các đối tượng này trong số chúng.

// Tài khoản-1

Tài khoản tài khoản1 = Tài khoản mới(Tên='Gợi ý Linux');

Bản đồ map_obj1 = Bản đồ mới{

tài khoản1 => 1000};

System.debug('Bản đồ - 1:' + map_obj1);

// Tài khoản-2

Tài khoản account2 = Tài khoản mới(Tên='Gợi ý Linux');

Bản đồ map_obj2 = Bản đồ mới{

tài khoản2 => 1000};

System.debug('Bản đồ - 2:' + map_obj1);

// Tài khoản-3

Tài khoản account3 = Tài khoản mới();

Bản đồ map_obj3 = Bản đồ mới{

tài khoản3 => 2000};

System.debug('Bản đồ - 3:' + map_obj3);

// bằng()

System.debug('Bản đồ 1 & Bản đồ 2 bằng nhau: '+ map_obj1.equals(map_obj2));

System.debug('Bản đồ 1 & Bản đồ 3 bằng nhau: '+ map_obj1.equals(map_obj3));

Đầu ra:

Các đối tượng bản đồ thứ nhất và thứ hai bằng nhau vì cả khóa và giá trị đều giống nhau trong cả hai đối tượng. Các đối tượng bản đồ thứ nhất và thứ ba không bằng nhau do các khóa và giá trị khác nhau.

7. Map.isEmpty()

Chúng ta có thể kiểm tra xem bản đồ có trống hay không bằng cách sử dụng phương thức isEmpty(). True được trả về nếu bộ sưu tập bản đồ Apex trống. Nếu không, sai được trả lại. Tương tự như phương thức size(), nó sẽ không nhận bất kỳ tham số nào.

Cú pháp:

map_object.isEmpty()

Ví dụ:

Hãy tạo hai đối tượng bản đồ có liên quan đến “Tài khoản” và kiểm tra xem hai đối tượng này có trống hay không.

// Tài khoản-1

Tài khoản tài khoản1 = Tài khoản mới(Tên='Gợi ý Linux');

Bản đồ map_obj1 = Bản đồ mới{

tài khoản1 => 1000};



// Tài khoản-2

Bản đồ map_obj2 = Bản đồ mới();

// isEmpty()

System.debug('Bản đồ-1 trống: '+map_obj1.isEmpty());

System.debug('Bản đồ-2 trống: '+map_obj2.isEmpty());

Đầu ra:

Bản đồ đầu tiên không trống vì nó chứa một cặp khóa-giá trị. Bản đồ thứ hai trống vì nó không chứa gì.

8. Bản đồ.remove()

Phương thức remove() trong bộ sưu tập bản đồ Apex được sử dụng để xóa một cặp khóa-giá trị cụ thể dựa trên khóa được chỉ định trong đó dưới dạng tham số. Nếu khóa không tồn tại, sẽ xảy ra lỗi.

Cú pháp:

map_object.remove(key)

Ví dụ:

Hãy tạo một bản đồ có hai mục và xóa mục đầu tiên.

Tài khoản tài khoản1 = Tài khoản mới(Tên='Gợi ý Linux');

Tài khoản account2 = Tài khoản mới();

Bản đồ map_obj = Bản đồ mới{

tài khoản1 => 1000,tài khoản2 => 4000};

System.debug('Bản đồ hiện tại'+ map_obj);

//di dời()

map_obj.remove(account1);

System.debug('Sau khi xóa mục đầu tiên:'+map_obj);

Đầu ra:

Sau khi xóa mục đầu tiên khỏi bản đồ, chỉ còn một mục tồn tại – {Tài khoản:{Name=Python}=4000}.

9. Bản đồ.put()

Sử dụng phương pháp này, chúng ta có thể thêm trực tiếp một mục vào đối tượng bản đồ tại một thời điểm. Nó chấp nhận hai tham số: “key” là tham số đầu tiên trong khi “value” là tham số thứ hai.

Cú pháp:

map_object.put(key,value)

Ví dụ:

Hãy tạo một bản đồ với một cặp khóa-giá trị. Sau đó, chúng tôi sử dụng phương thức “đặt” để chèn “tài khoản2”.

// Tài khoản-1

Tài khoản tài khoản1 = Tài khoản mới(Tên='Gợi ý Linux');

Bản đồ map_obj1 = Bản đồ mới{

tài khoản1 => 1000};

System.debug('Bản đồ thực: '+map_obj1);

// Tài khoản-2

Tài khoản account2 = Tài khoản mới();

// đặt()

map_obj1.put(account2,2000);

System.debug('Bản đồ cuối cùng: '+map_obj1);

Đầu ra:

Trước đây, chỉ có một cặp khóa-giá trị trong bản đồ là {Tài khoản:{Name=Linux Hint}=1000}. Sau khi thêm “account2”, bản đồ cuối cùng chứa hai cặp khóa-giá trị là {Account:{Name=Linux Hint}=1000 và Account:{Name=Python}=2000}.

10. Map.putAll()

Sử dụng phương pháp này, chúng ta có thể thêm trực tiếp một hoặc nhiều mục vào đối tượng bản đồ tại một thời điểm. Nó lấy một đối tượng bộ sưu tập bản đồ làm tham số.

Cú pháp:

map_object1.putAll(map_object2)

Ví dụ:

Hãy tạo một bản đồ có hai cặp khóa-giá trị và tạo lại một đối tượng bản đồ trống không có mục nào. Sử dụng phương thức putAll() để thêm các mục có sẵn trong đối tượng bản đồ đầu tiên vào đối tượng bản đồ thứ hai.

Tài khoản tài khoản1 = Tài khoản mới(Tên='Gợi ý Linux');

Tài khoản account2 = Tài khoản mới();

Bản đồ map_obj1 = Bản đồ mới{

tài khoản1 => 1000, tài khoản2=> 2000};

System.debug(map_obj1);

Bản đồ map_obj2 = Bản đồ mới();

//putAll()

map_obj2.putAll(map_obj1);

System.debug(map_obj2);

Đầu ra:

Phần kết luận

Bản đồ là một cấu trúc dữ liệu được sử dụng chủ yếu trong các tình huống kích hoạt và giúp tải nhiều dữ liệu hơn cùng một lúc vào cơ sở dữ liệu Salesforce giống như một danh sách. Chúng tôi có hai tùy chọn để thêm các mục vào bản đồ: sử dụng put() và putAll(). Phương thức remove() được sử dụng để xóa một mục cụ thể khỏi bộ sưu tập bản đồ Apex. Phương thức clear() được sử dụng để xóa tất cả các mục. Ngoài ra, chúng ta đã học cách trả về các giá trị và khóa bằng cách sử dụng các phương thức value() và keySet().