Salesforce Apex – Χάρτης

Salesforce Apex Chartes



Ο χάρτης Salesforce Apex είναι μια δομή δεδομένων που χρησιμοποιείται κυρίως σε σενάρια ενεργοποίησης και βοηθά στη φόρτωση περισσότερων δεδομένων τη φορά στη βάση δεδομένων Salesforce σαν λίστα. Ωστόσο, αποθηκεύει και οργανώνει τα δεδομένα στη μορφή ζεύγους {key:value}. Θα συζητήσουμε τη συλλογή χαρτών στη γλώσσα προγραμματισμού Apex και τις μεθόδους της. Εδώ, θα χρησιμοποιήσουμε το τυπικό αντικείμενο Account στο Salesforce για όλα τα παραδείγματα. Ας βουτήξουμε γρήγορα σε αυτό το σεμινάριο.

Χάρτης

Ο χάρτης λαμβάνει τα δεδομένα του ζεύγους {key:value} ως είσοδο και τα αποθηκεύει στο πρότυπο Salesforce ή στα προσαρμοσμένα αντικείμενα. Μπορεί να πάρει το sObject ως κλειδί ή τιμή.







Δημιουργία χάρτη

Καθορίζοντας τους τύπους δεδομένων του κλειδιού και της τιμής μαζί με το όνομα του αντικειμένου, μπορεί να δημιουργηθεί ο χάρτης. Εδώ, μια νέα λέξη-κλειδί χρησιμοποιείται για τη δημιουργία της. Μπορεί να είναι προαιρετικό να περάσετε τα στοιχεία κατά τη δημιουργία.



Κενή σύνταξη χάρτη:

Χάρτης map_obj = νέος χάρτης():

Γενική σύνταξη:

Χάρτης map_obj = νέος χάρτης{

Κλειδί => τιμή,....};

sΣύνταξη αντικειμένου:

Χάρτης map_obj = νέος χάρτης{

Κλειδί => τιμή,....};

Εδώ, το sObject μπορεί να είναι ένα τυπικό ή προσαρμοσμένο αντικείμενο. Σε ολόκληρο αυτό το άρθρο, θα ασχοληθούμε μόνο με το χάρτη με το 'Λογαριασμός' sObject.



Ας δούμε τις μεθόδους που υποστηρίζονται από τη συλλογή «χάρτης» Apex μία προς μία.





Ρύθμιση περιβάλλοντος

1. Συνδεθείτε γρήγορα στο Salesforce και ανοίξτε την 'Κονσόλα προγραμματιστή' κάνοντας κλικ στο εικονίδιο με το γρανάζι.



2. Στη συνέχεια, ανοίξτε το «Ανώνυμο παράθυρο» κάνοντας κλικ στο «Εντοπισμός σφαλμάτων» και «Άνοιγμα εκτέλεσης ανώνυμου παραθύρου».

Γενικό Παράδειγμα:

Αρχικά, θα δούμε τη δημιουργία γενικού χάρτη δημιουργώντας έναν χάρτη με δύο θέματα: το 'subject_id' που λειτουργεί ως κλειδί και το 'value' ως το όνομα του θέματος.

Χάρτης programming=new Map {1=> 'Linux',2=> 'Python'};

system.debug(προγραμματισμός);

Παραγωγή:

  1. Κάντε κλικ στο «Εκτέλεση».
  2. Επιλέξτε την επιλογή 'Μόνο εντοπισμός σφαλμάτων'. Μπορείτε να δείτε την έξοδο στο 'Ημερολόγιο εκτέλεσης'.

Μέθοδοι χάρτη

Αρχικά, δημιουργούμε έναν χάρτη από το αντικείμενο 'Λογαριασμός'. Δημιουργούμε τρεις λογαριασμούς με ονόματα έναν προς έναν. Στη συνέχεια, δηλώνουμε έναν χάρτη με το κλειδί και την τιμή ως πληκτρολογήστε και περάστε τους τρεις προηγούμενους λογαριασμούς στον χάρτη παρέχοντας κάποιες τιμές.

// Δημιουργία 3 λογαριασμών με Όνομα

Λογαριασμός 1 = νέος Λογαριασμός(Όνομα='Συμβουλή Linux');

Λογαριασμός 2 = νέος λογαριασμός(Όνομα='Salesforce');

Λογαριασμός λογαριασμού3 = νέος λογαριασμός(Όνομα='Python');

// Προσθέστε τους παραπάνω λογαριασμούς ως κλειδιά στο map_obj

Χάρτης map_obj = νέος χάρτης{

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

System.debug(map_obj);

Παραγωγή:

Μπορείτε να δείτε ότι το 'map_obj' αποθηκεύει τρεις λογαριασμούς.

1. Map.values()

Για να επιστρέψουμε μόνο τις τιμές από τον συγκεκριμένο χάρτη, μπορούμε να χρησιμοποιήσουμε τη μέθοδο values(). Δεν θα πάρει καμία παράμετρο. Απλώς επιστρέφει τη λίστα τιμών που χωρίζονται με κόμμα.

Σύνταξη:

map_object.values()

Παράδειγμα:

Ας επιστρέψουμε όλες τις τιμές από τον προηγούμενο χάρτη. Βεβαιωθείτε ότι πρέπει να εκτελέσετε το προηγούμενο παράδειγμα κώδικα (δημιουργήστε έναν χάρτη με τρεις λογαριασμούς). Διαφορετικά, θα λάβετε ένα σφάλμα. Ο κωδικός πρέπει επίσης να υπάρχει στην κονσόλα.

// Επιστροφή τιμών για όλα τα κλειδιά χρησιμοποιώντας values()

System.debug(map_obj.values());

Παραγωγή:

Υπάρχουν μόνο τρία ζεύγη key:value στο map_obj. Οι τιμές είναι: 1000, 2000 και 3000.

2. Map.keySet()

Επιστροφή Τα κλειδιά υπάρχουν στο αντικείμενο του χάρτη. Παρόμοια με τις values(), δεν χρειάζεται να περάσετε καμία παράμετρο σε αυτήν τη μέθοδο.

Σύνταξη:

map_object.keySet()

Παράδειγμα:

Ας επιστρέψουμε όλα τα κλειδιά από τον προηγούμενο χάρτη. Βεβαιωθείτε ότι εκτελέσατε το προηγούμενο παράδειγμα κώδικα (δημιουργήστε έναν χάρτη με τρεις λογαριασμούς). Διαφορετικά, θα λάβετε ένα σφάλμα. Ο κωδικός πρέπει επίσης να υπάρχει στην κονσόλα.

// Επιστρέψτε όλα τα πλήκτρα χρησιμοποιώντας το keySet()

System.debug(map_obj.keySet());

Παραγωγή:

Υπάρχουν μόνο τρία ζεύγη key:value στο map_obj. Τα κλειδιά είναι: {Account:{Name=Linux Hint}, Account:{Name=Python} και Account:{Name=Salesforce}.

3. Map.size()

Σε ορισμένα σενάρια, πρέπει να γνωρίζουμε τα συνολικά ζεύγη στοιχείων (κλειδί:τιμή) που υπάρχουν στον χάρτη Apex. Size() είναι η μέθοδος που επιστρέφει τα συνολικά ζεύγη (key:value) που υπάρχουν στο map_object. Δεν χρειάζονται παράμετροι για αυτή τη μέθοδο.

Σύνταξη:

map_object.size()

Παράδειγμα:

Επιστρέψτε το μέγεθος του προηγούμενου αντικειμένου χάρτη.

// Επιστροφή συνολικού αριθμού ζευγών χρησιμοποιώντας size()

System.debug(map_obj.size());

Παραγωγή:

Δεδομένου ότι υπάρχουν μόνο 3 ζεύγη, το επιστρεφόμενο μέγεθος() είναι 3.

4. Map.get()

Η πρόσβαση στις τιμές από τον χάρτη χρησιμοποιώντας το κλειδί γίνεται χρησιμοποιώντας τη μέθοδο get(). Για να γίνει αυτό, πρέπει να περάσουμε το κλειδί ως παράμετρο στη μέθοδο get(). Εάν περάσει ένα άγνωστο κλειδί, επιστρέφει ένα σφάλμα.

Σύνταξη:

map_object.get(key)

Παράδειγμα:

Επιστρέψτε τις τιμές των κλειδιών-2 και κλειδιού-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'.

//Πριν καθαρό()

System.debug(map_obj);

// Αφαιρέστε όλα τα ζεύγη χρησιμοποιώντας clear()

map_obj.clear();

//After clear()

System.debug(map_obj);

Παραγωγή:

Προηγουμένως, υπήρχαν 3 ζεύγη κλειδιών-τιμών στο 'map_obj'. Μετά την εφαρμογή της μεθόδου clear(), διαγράφονται και τα 3.

6. Map.equals()

Μπορούμε να συγκρίνουμε δύο αντικείμενα χάρτη χρησιμοποιώντας τη μέθοδο equals(). Η Boolean τιμή του true επιστρέφεται εάν όλα τα κλειδιά και οι τιμές είναι ίδιες και στα δύο αντικείμενα χάρτη. Ενώ η Boolean τιμή του false επιστρέφεται εάν τουλάχιστον μία τιμή είναι διαφορετική.

Σύνταξη:

map_object1.equals(map_object2)

Παράδειγμα:

Ας δημιουργήσουμε τρία αντικείμενα χάρτη με ένα ζεύγος κλειδιού:τιμής, το καθένα σε σχέση με το αντικείμενο 'Λογαριασμός'. Συγκρίνετε αυτά τα αντικείμενα μεταξύ τους.

// Λογαριασμός-1

Λογαριασμός 1 = νέος Λογαριασμός(Όνομα='Συμβουλή Linux');

Χάρτης map_obj1 = νέος χάρτης{

λογαριασμός1 => 1000};

System.debug('Χάρτης - 1:' + map_obj1);

// Λογαριασμός-2

Λογαριασμός 2 = νέος Λογαριασμός(Όνομα='Συμβουλή Linux');

Χάρτης map_obj2 = νέος χάρτης{

account2 => 1000};

System.debug('Χάρτης - 2:' + map_obj1);

// Λογαριασμός-3

Λογαριασμός λογαριασμού3 = νέος λογαριασμός(Όνομα='Python');

Χάρτης map_obj3 = νέος χάρτης{

account3 => 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

Λογαριασμός 1 = νέος Λογαριασμός(Όνομα='Συμβουλή Linux');

Χάρτης map_obj1 = νέος χάρτης{

λογαριασμός1 => 1000};



// Λογαριασμός-2

Χάρτης map_obj2 = νέος χάρτης();

// είναι άδειο()

System.debug('Ο χάρτης-1 είναι κενός: '+map_obj1.isEmpty());

System.debug('Ο χάρτης-2 είναι κενός: '+map_obj2.isEmpty());

Παραγωγή:

Ο πρώτος χάρτης δεν είναι κενός αφού περιέχει ένα ζεύγος κλειδιού-τιμής. Ο δεύτερος χάρτης είναι κενός αφού δεν περιέχει κανένα.

8. Map.remove()

Η μέθοδος remove() στη συλλογή χαρτών Apex χρησιμοποιείται για την αφαίρεση ενός συγκεκριμένου ζεύγους κλειδιού-τιμής με βάση το κλειδί που καθορίζεται σε αυτό ως παράμετρος. Εάν το κλειδί δεν υπάρχει, δημιουργείται σφάλμα.

Σύνταξη:

map_object.remove(key)

Παράδειγμα:

Ας δημιουργήσουμε έναν χάρτη με δύο στοιχεία και ας αφαιρέσουμε το πρώτο στοιχείο.

Λογαριασμός 1 = νέος Λογαριασμός(Όνομα='Συμβουλή Linux');

Λογαριασμός 2 = νέος Λογαριασμός(Όνομα='Python');

Χάρτης map_obj = νέος χάρτης{

account1 => 1000, account2 => 4000};

System.debug('Υπάρχοντας χάρτη'+ map_obj);

//αφαιρώ()

map_obj.remove(account1);

System.debug('Μετά την αφαίρεση του πρώτου στοιχείου:'+map_obj);

Παραγωγή:

Μετά την αφαίρεση του πρώτου στοιχείου από τον χάρτη, υπάρχει μόνο ένα στοιχείο – {Λογαριασμός:{Όνομα=Python}=4000}.

9. Map.put()

Χρησιμοποιώντας αυτή τη μέθοδο, μπορούμε να προσθέσουμε απευθείας ένα στοιχείο στο αντικείμενο του χάρτη κάθε φορά. Δέχεται δύο παραμέτρους: «κλειδί» είναι η πρώτη παράμετρος ενώ η «τιμή» είναι η δεύτερη παράμετρος.

Σύνταξη:

map_object.put(κλειδί,τιμή)

Παράδειγμα:

Ας δημιουργήσουμε έναν χάρτη με ένα ζεύγος κλειδιού-τιμής. Στη συνέχεια, χρησιμοποιούμε τη μέθοδο 'put' για να εισαγάγουμε το 'account2'.

// Λογαριασμός-1

Λογαριασμός 1 = νέος Λογαριασμός(Όνομα='Συμβουλή Linux');

Χάρτης map_obj1 = νέος χάρτης{

λογαριασμός1 => 1000};

System.debug('Πραγματικός χάρτης: '+map_obj1);

// Λογαριασμός-2

Λογαριασμός 2 = νέος Λογαριασμός(Όνομα='Python');

// βάζω()

map_obj1.put(account2,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() για να προσθέσετε τα στοιχεία που είναι διαθέσιμα στο πρώτο αντικείμενο χάρτη στο δεύτερο αντικείμενο χάρτη.

Λογαριασμός 1 = νέος Λογαριασμός(Όνομα='Συμβουλή Linux');

Λογαριασμός 2 = νέος Λογαριασμός(Όνομα='Python');

Χάρτης map_obj1 = νέος χάρτης{

account1 => 1000, account2=> 2000};

System.debug(map_obj1);

Χάρτης map_obj2 = νέος χάρτης();

//putAll()

map_obj2.putAll(map_obj1);

System.debug(map_obj2);

Παραγωγή:

συμπέρασμα

Ο χάρτης είναι μια δομή δεδομένων που χρησιμοποιείται κυρίως σε σενάρια ενεργοποίησης και βοηθά στη φόρτωση περισσότερων δεδομένων κάθε φορά στη βάση δεδομένων Salesforce σαν λίστα. Έχουμε δύο επιλογές για να προσθέσουμε τα στοιχεία στον χάρτη: χρησιμοποιώντας put() και putAll(). Η μέθοδος remove() χρησιμοποιείται για την αφαίρεση ενός συγκεκριμένου στοιχείου από τη συλλογή χαρτών Apex. Η μέθοδος clear() χρησιμοποιείται για τη διαγραφή όλων των στοιχείων. Επίσης, μάθαμε πώς να επιστρέφουμε τις τιμές και τα κλειδιά χρησιμοποιώντας τις μεθόδους values() και keySet().