Salesforce Apex – מפה

Salesforce Apex Mph



מפת Salesforce Apex היא מבנה נתונים המשמש בעיקר בתרחישי טריגר ועוזרת לטעון יותר נתונים בכל פעם לתוך מסד הנתונים של Salesforce כמו רשימה. אבל הוא מאחסן ומארגן את הנתונים בפורמט הזוג {key:value}. נדון באוסף המפות בשפת התכנות Apex ובשיטותיה. כאן, נשתמש באובייקט הסטנדרטי של חשבון ב-Salesforce עבור כל הדוגמאות. בואו נצלול במהירות לתוך הדרכה זו.

מַפָּה

מפה לוקחת את נתוני הזוג {key:value} כקלט ומאחסנת אותם באובייקטים הסטנדרטיים של Salesforce או בהתאמה אישית. זה יכול לקחת את sObject כמפתח או כערך.







יצירת מפה

על ידי ציון סוגי הנתונים של המפתח והערך יחד עם שם האובייקט, ניתן ליצור את המפה. כאן, מילת מפתח חדשה משמשת ליצירתה. זה יכול להיות אופציונלי להעביר את האלמנטים במהלך היצירה.



תחביר מפה ריקה:

מפה map_obj = מפה חדשה():

תחביר גנרי:

מפה map_obj = מפה חדשה{

מפתח => ערך,....};

תחביר sObject:

מפה map_obj = מפה חדשה{

מפתח => ערך,....};

כאן, ה-sObject יכול להיות אובייקט סטנדרטי או מותאם אישית. בכל המאמר הזה, נעסוק רק במפה עם sObject 'חשבון'.



בואו נראה את השיטות הנתמכות על ידי אוסף 'מפות' Apex אחת אחת.





הגדרת סביבה

1. היכנס במהירות ל-Salesforce ופתח את 'מסוף המפתחים' על ידי לחיצה על סמל גלגל השיניים.



2. לאחר מכן, פתח את 'חלון אנונימי' על ידי לחיצה על 'ניפוי באגים' ו'פתח חלון אנונימי לביצוע'.

דוגמה כללית:

ראשית, נראה את יצירת המפה הגנרית על ידי יצירת מפה עם שני נושאים: ה-'subject_id' שפועל כמפתח ו-'value' כשם הנושא.

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

system.debug(תכנות);

תְפוּקָה:

  1. לחץ על 'ביצוע'.
  2. סמן את האפשרות 'ניפוי באגים בלבד'. אתה יכול לראות את הפלט ב'יומן ביצוע'.

שיטות מפה

ראשית, אנו יוצרים מפה מהאובייקט 'חשבון'. אנו יוצרים שלושה חשבונות עם שמות אחד אחד. לאחר מכן, אנו מכריזים על מפה עם המפתח והערך כ הקלד והעביר את שלושת החשבונות הקודמים למפה על ידי מתן כמה ערכים.

// צור 3 חשבונות עם שם

חשבון חשבון1 = חשבון חדש(שם='רמז לינוקס');

חשבון חשבון2 = חשבון חדש(שם='Salesforce');

חשבון חשבון3 = חשבון חדש(שם='Python');

// הוסף את החשבונות לעיל כמפתחות ל-map_obj

Map map_obj = מפה חדשה{

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

System.debug(map_obj);

תְפוּקָה:

אתה יכול לראות ש'map_obj' מאחסן שלושה חשבונות.

1. Map.values()

כדי להחזיר רק את הערכים מהמפה הנתונה, נוכל להשתמש בשיטת values() . זה לא ייקח שום פרמטר. זה פשוט מחזיר את רשימת הערכים המופרדים בפסיק.

תחביר:

map_object.values()

דוגמא:

בואו נחזיר את כל הערכים מהמפה הקודמת. ודא שאתה צריך להפעיל את קוד הדוגמה הקודם (צור מפה עם שלושה חשבונות). אחרת, תקבל שגיאה. הקוד צריך להתקיים גם במסוף.

// החזר ערכים עבור כל המפתחות באמצעות ערכים()

System.debug(map_obj.values());

תְפוּקָה:

ישנם רק שלושה זוגות מפתח:ערך ב-map_obj. הערכים הם: 1000, 2000 ו-3000.

2. Map.keySet()

החזר המפתחות נמצאים באובייקט המפה. בדומה לערכים(), אין צורך להעביר שום פרמטר לשיטה זו.

תחביר:

map_object.keySet()

דוגמא:

בואו נחזיר את כל המפתחות מהמפה הקודמת. ודא שאתה מבצע את קוד הדוגמה הקודם (צור מפה עם שלושה חשבונות). אחרת, תקבל שגיאה. הקוד צריך להתקיים גם במסוף.

// החזר את כל המקשים באמצעות keySet()

System.debug(map_obj.keySet());

תְפוּקָה:

ישנם רק שלושה זוגות מפתח:ערך ב-map_obj. המפתחות הם: {Account:{Name=Linux Hint}, Account:{Name=Python} וחשבון:{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();

//אחרי clear()

System.debug(map_obj);

תְפוּקָה:

בעבר, ישנם 3 זוגות מפתח-ערך ב-'map_obj'. לאחר החלת המתודה clear(), כל ה-3 נמחקים.

6. Map.equals()

אנו יכולים להשוות בין שני אובייקטי מפה באמצעות שיטת equals() . הערך הבוליאני של true מוחזר אם כל המפתחות והערכים זהים בשני אובייקטי המפה. בעוד שהערך הבוליאני של false מוחזר אם לפחות ערך אחד שונה.

תחביר:

map_object1.equals(map_object2)

דוגמא:

בואו ניצור שלושה אובייקטי מפה עם זוג מפתח:ערך אחד, כל אחד ביחס לאובייקט 'חשבון'. השוו את החפצים הללו ביניהם.

// חשבון-1

חשבון חשבון1 = חשבון חדש(שם='רמז לינוקס');

Map map_obj1 = מפה חדשה{

account1 => 1000};

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

// חשבון-2

חשבון חשבון2 = חשבון חדש(שם='רמז לינוקס');

Map map_obj2 = מפה חדשה{

account2 => 1000};

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

// חשבון-3

חשבון חשבון3 = חשבון חדש(שם='Python');

Map map_obj3 = מפה חדשה{

account3 => 2000};

System.debug('Map - 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 = חשבון חדש(שם='רמז לינוקס');

Map map_obj1 = מפה חדשה{

account1 => 1000};



// חשבון-2

Map map_obj2 = מפה חדשה();

// זה ריק()

System.debug('Map-1 ריק: '+map_obj1.isEmpty());

System.debug('Map-2 ריק: '+map_obj2.isEmpty());

תְפוּקָה:

המפה הראשונה אינה ריקה מכיוון שהיא מכילה זוג מפתח-ערך אחד. המפה השנייה ריקה מכיוון שהיא לא מכילה אף אחת.

8. Map.remove()

שיטת remove() באוסף מפות Apex משמשת להסרת זוג מפתח-ערך מסוים בהתבסס על המפתח שצוין בו כפרמטר. אם המפתח אינו קיים, מתעוררת שגיאה.

תחביר:

map_object.remove(key)

דוגמא:

בואו ניצור מפה עם שני פריטים ונסיר את הפריט הראשון.

חשבון חשבון1 = חשבון חדש(שם='רמז לינוקס');

חשבון חשבון2 = חשבון חדש(שם='Python');

Map map_obj = מפה חדשה{

account1 => 1000,account2 => 4000};

System.debug('מפה קיימת'+ map_obj);

//לְהַסִיר()

map_obj.remove(account1);

System.debug('לאחר הסרת הפריט הראשון:'+map_obj);

תְפוּקָה:

לאחר הסרת הפריט הראשון מהמפה, רק פריט אחד קיים - {Account:{Name=Python}=4000}.

9. Map.put()

בשיטה זו נוכל להוסיף פריט אחד ישירות לאובייקט המפה בכל פעם. הוא מקבל שני פרמטרים: 'מפתח' הוא הפרמטר הראשון ואילו 'ערך' הוא הפרמטר השני.

תחביר:

map_object.put(key,value)

דוגמא:

בואו ניצור מפה עם זוג מפתח-ערך אחד. לאחר מכן, אנו משתמשים בשיטת 'put' כדי להוסיף 'חשבון2'.

// חשבון-1

חשבון חשבון1 = חשבון חדש(שם='רמז לינוקס');

Map map_obj1 = מפה חדשה{

account1 => 1000};

System.debug('מפה בפועל: '+map_obj1);

// חשבון-2

חשבון חשבון2 = חשבון חדש(שם='Python');

// put()

map_obj1.put(account2,2000);

System.debug('מפה סופית: '+map_obj1);

תְפוּקָה:

בעבר, יש רק זוג מפתח-ערך אחד במפה שהוא {Account:{Name=Linux Hint}=1000}. לאחר הוספת 'חשבון2', המפה הסופית מכילה שני זוגות מפתח-ערך שהם {Account:{Name=Linux Hint}=1000 ו- Account:{Name=Python}=2000}.

10. Map.putAll()

באמצעות שיטה זו, אנו יכולים להוסיף ישירות פריט בודד או מרובים לאובייקט המפה בכל פעם. זה לוקח אובייקט אוסף מפות כפרמטר.

תחביר:

map_object1.putAll(map_object2)

דוגמא:

בואו ניצור מפה עם שני זוגות מפתח-ערך וניצור שוב אובייקט מפה ריק ללא פריטים. השתמש בשיטת putAll() כדי להוסיף את הפריטים הזמינים באובייקט המפה הראשון לאובייקט המפה השני.

חשבון חשבון1 = חשבון חדש(שם='רמז לינוקס');

חשבון חשבון2 = חשבון חדש(שם='Python');

Map map_obj1 = מפה חדשה{

account1 => 1000, account2=> 2000};

System.debug(map_obj1);

Map map_obj2 = מפה חדשה();

//putAll()

map_obj2.putAll(map_obj1);

System.debug(map_obj2);

תְפוּקָה:

סיכום

מפה היא מבנה נתונים המשמש בעיקר בתרחישי טריגר ועוזר לטעון יותר נתונים בכל פעם לתוך מסד הנתונים של Salesforce כמו רשימה. יש לנו שתי אפשרויות להוסיף את הפריטים למפה: באמצעות put() ו-putAll(). השיטה remove() משמשת להסרת פריט מסוים מאוסף מפות Apex. השיטה clear() משמשת למחיקת כל הפריטים. כמו כן, למדנו כיצד להחזיר את הערכים והמפתחות באמצעות השיטות values() ו-keySet().