יצירת DevHub ו-Scratch org לתרגול ב-Trailhead

ליאור נכתב על ידי ליאור לביא, עודכן בתאריך 20/03/2023

מה הם DevHub ו-Scratch Org ואיך הם עוזרים לנו

DevHub הוא פיצ'ר של סביבת Production או Trailhead אותו ניתן להפעיל כדי שנוכל ליצור Scratch orgs. מרגע שפיצ'ר זה הופעל, לא ניתן לכבות אותו.

Scratch org הוא סוג מיוחד של סביבת Salesforce הניתן ליצירה ומחיקה במהירות. כמה מהר? יצירת Scratch org יכולה לקחת פחות מדקה, ומחיקה שלו היא עניין של שניות. מה שהופך את ה-Scratch orgs לכל כך מועילים למתכנתים היא העובדה שהם נוצרים ריקים לחלוטין מ-Data ו-Metadata, מה שאומר שהם סביבות נקיות לחלוטין עליהם ניתן לבצע פיתוח ללא חשש מתלות בנתונים או מטא-נתונים של סביבת לקוח ספציפית.

בנוסף, ניתן להגדיר עבור Scratch orgs בקלות סוג סביבה (Unlimited, Enterprise, Developer ועוד) ופיצ'רים ספציפיים כמו תמיכה בשפות מסויימות כ-End-User languages או להתקין חבילות כמו Service Cloud ופיצ'רים כמו Knowledge articles, אם עליהם הפיתוח שלנו נסמך.

נקודה אחרונה בנוגע ל-Scratch orgs היא היכולת ליצור אותם באמצעות פקודות מה-Terminal, מה שמאפשר לשלב אותם בצורה חלקה בתוך תהליך CI\CD של DevOps לצורך בדיקות לפני אישור Pull requests לענפי develop ו-master ב-Git.

בגלל הנוחות והקלות של יצירת Scratch orgs, הם נוחים במיוחד ליצירה לצורך תרגול דוגמאות קוד כמו בבלוג זה. יצירת DevHub משלנו תאפשר לנו לאחר מכן בקלות ליצור Scratch org לתרגול באמצעות שורת קוד אחת ב-Terminal ותקל עלינו את הלמידה. 

יצירת Trailhead Playground

ראשית נתחיל ביצירת סביבת Trailhead playground שתשמש אותנו כ-Dev Hub ותאפשר לנו ליצור Scratch orgs:

  1. התחבר ל-Trailhead. אם אין לך חשבון Trailhead, לחץ כאן למדריך לפתיחת חשבון ב-Trailhead וסביבת Playground ראשונה.
  2. לחץ על השם שלך בפינה הימנית העליונה של המסך, לצד תמונת הפרופיל שלך, ומהתפריט בחר Hands-On Orgs.
  3. לחץ על הכפתור Create Playground.
  4. הענק שם לסביבה החדשה, למשל My DevHub, ולחץ על Create.
  5. המתן ש-Salesforce יסיימו ליצור עבורך את הסביבה. זה עשוי לקחת כמה דקות. My DevHub
  6. לאחר שהסביבה נוצרה, לחץ על כפתור ה-Launch ליד שם הסביבה כדי לפתוח אותה.
  7. לאחר שהסביבה נפתחה, לחץ על הלשונית Get Your Login Credentials.
  8. בלשונית Get Your Login Credentials, העתק את שם המשתמש שלך ושמור אותו בצד, אנחנו נזדקק לו בהמשך.
  9. לחץ על הכפתור Reset My Password. בחלונית שנפתחה לחץ OK.
  10.  פתח את תיבת האימייל אתה נרשמת ל-Trailhead, פתח את האימייל שכותרתו Finish resetting your Your Developer Edition password.
  11. לחץ על הקישור במייל לאיפוס סיסמה.
  12. בלשונית הדפדפן שנפתחה, לחץ על Reset Password.
  13. במסך Change Your Password בחר סיסמה חדשה ולחץ על הכפתור Change Password.

מעולה! יצרנו סביבת Playground חדשה. עכשיו נגדיר אותה כ-Dev Hub כדי שנוכל ליצור ממנה Scratch Orgs.

הגדרת סביבת Trailhead כ-DevHub

  1. בסביבת ה-Trailhead החדשה שיצרנו, לחץ על סמל גלגל השיניים ליד סמל הפעמון ותמונת הפרופיל שלך, ובחר Setup.
  2. בלשונית שנפתחה, מצד שמאל למעלה, בשדה החיפוש Quick Find, הזן את המילים Dev Hub ולחץ על התוצאה Dev Hub תחת Development.
  3. העבר את הכפתור Enable Dev Hub למצב Enabled. שים לב! מרגע שהפעלת את האפשרות הזאת, לא ניתן לבטל אותה!
  4. העבר את הכפתור Enable Unlocked Packages and Second-Generation Managed Packages למצב Enabled. שים לב! מרגע שהפעלת את האפשרות הזאת, לא ניתן לבטל אותה!
  5. מעולה! כעת ניצור פרויקט חדש ב-Visual Studio Code ונחבר אליו את סביבת ה-DevHub החדשה שלנו.

יצירת פרויקט SFDX חדש ב-Visual Studio Code

ליצירת פרויקט SFDX חדש ב-VS Code בצע את השלבים הבאים:

  1. פתח את Visual Studio Code.
  2. לחץ במקלדת על קיצור הדרך Ctrl + Shift + P לפתיחת פלטת הפקודות ב-VS Code.
  3. הקלד את המילה Project ולחץ על האופציה SFDX: Create Project.
  4. בחר תבנית פרויקט Standard.
  5. תן שם לפרויקט שלך, לדוגמה MyCoolProject.
  6. בחר תיקיה בה תרצה לשמור את הפרויקט החדש שלך.
  7. אם VS Code מציג מסך שכותרתו Do you trust the authors of the files in this folder? לחץ על הכפתור Yes, I trust the authors.
  8. מעולה! כעת בוא נחבר את סביבת ה-DevHub שלנו לפרויקט שלנו.

חיבור סביבת ה-DevHub שלנו לפרויקט כ-Default DevHub Username

  1. אם ה-Terminal שלך לא פתוח ב-VS Code, הקש את קיצור הדרך Ctrl + ~ כדי לפתוח אותו.
  2. הקלד את הפקודה הבאה ב-Terminal כדי לפתוח ולחבר את ה-Trailhead playground שיצרנו לפרויקט שלנו כ-Dev Hub.
    sfdx org:login:web -d -a MyDevHub
    שים לב לדגל -d, דגל זה מגדיר את ה-Org שנתחבר אליו, ה-Trailhead playground שלנו, כסביבת ברירת המחדל של הפרויקט ליצירת Scratch orgs.
    בנוסף, הדגל -a מאפשר לנו להגדיר Alias, כינוי, לסביבה שלנו. אם לא היינו משתמשים ב-Alias היינו צריכים להקליד את שם המשתמש בסביבה איתו אנחנו מתחברים בפורמט Email מסורבל כשהיינו רוצים להתייחס לסביבה בפקודות השונות.
  3. בלשונית הדפדפן שנפתחה הזן את שם המשתמש ששמרת בצד קודם, ואת הסיסמה שלך לסביבת ה-Trailhead playground. אם הדפדפן מציג לך הודעת Allow Access? לחץ על הכפתור Allow. במסוף אתה תראה הודעת הצלחה כשתכנס לסביבה.
  4.  מעולה! חיברנו את סביבת ה-DevHub שלנו לפרויקט. כעת כל שנשאר לנו לעשות הוא ליצור ממנה סביבת Scratch org חדשה.

יצירת סביבת Scratch Org חדשה

כדי ליצור Scratch org בצע את השלבים הבאים:

  1. בפרויקט שלנו, תחת התיקיה config ישנו קובץ בשם project-scratch-def.json. קובץ זה מכיל את ההגדרות עבור סביבות Scratch orgs בפרויקט שלנו. הקוד בקובץ אמור להיראות בערך ככה:
    {
                "orgName": "Demo company",
                "edition": "Developer",
                "features": ["EnableSetPasswordInApi"],
                "settings": {
                    "lightningExperienceSettings": {
                    "enableS1DesktopEnabled": true
                    },
                    "mobileSettings": {
                    "enableS1EncryptedStoragePref2": false
                    }
                }
                }

    כדי להתחיל בצורה נקייה, שנה את שם ה-orgName לערך אחר, כמו למשל My Cool Company, ומחק את הערך "EnableSetPasswordInApi" כך שהמערך תחת features ישאר ריק.

    {
                "orgName": "My Cool Company",
                "edition": "Developer",
                "features": [],
                "settings": {
                    "lightningExperienceSettings": {
                    "enableS1DesktopEnabled": true
                    },
                    "mobileSettings": {
                    "enableS1EncryptedStoragePref2": false
                    }
                }
                }
  2. כדי ליצור Scratch org חדש, הקלד את הפקודה הבאה ב-Terminal:
    sfdx org:create:scratch -f config/project-scratch-def.json -d -a MyScratchOrg

    הפקודה org:create:scratch יוצרת סביבת Scratch org חדשה ב-Salesforce. הדגל d מציין שה-Org הזה הוא Org ברירת המחדל של הפרויקט כרגע, וכל הפקודות בהן נדרש Org יופנו אליו, הדגל מפנה את הפקודה לקובץ ההגדרות עבור Scratch org בפרויקט שלנו והדגל a מציין Alias להגדרת כינוי ל-Scratch org שלנו.

  3. כדי לפתוח את סביבת ה-Scratch org שיצרנו בדפדפן, הקלד את הפקודה הבאה:
    sfdx org:open
    מאחר והגדרנו את ה-Scratch org שלנו כסביבת ברירת המחדל של הפרויקט, הפקודה Open לא מצריכה שנציין בה אותו כסביבת היעד.
  4. זהו! יצרנו סביבת Scratch org חדשה. בכל פעם שנרצה ליצור סביבה חדשה, בין אם זה בפרויקט חדש או קיים, כל שנצטרך לעשות הוא לוודא שה-DevHub שלנו מוגדרת בפרויקט, ולהקליד פקודה אחת מהירה ליצירת Scratch org חדש!

מחיקת סביבת Scratch Org

יצירה ומחיקה של Scratch orgs הן פעולות שגרתיות בתהליך הפיתוח שלנו ב-Salesforce. כדי למחוק Scratch org נרצה לבצע שני שלבים:

  1. לצפות ברשימת הסביבות המקושרות לפרויקט שלנו. כדי לעשות זאת נריץ את הפקודה הבאה:
    sfdx org:list
    הפלט של הפקודה יציג לנו שתי טבלאות: טבלת Non-scratch orgs וטבלת Scratch orgs. מטבלת ה-Scratch orgs נוכל להעתיק את ה-Alias של ה-Scratch org אותו נרצה למחוק.
  2. כדי למחוק Scratch org הרץ את הפקודה הבאה ב-Terminal יחד עם ה-Alias שהעתקנו מטבלת ה-Scratch orgs בשלב הקודם:
    sfdx org:delete:scratch -o MyScratchOrg
    הדגל -o מציין את ה-Alias או ה-Username של ה-org שאנחנו רוצים למחוק.
    ניתן להוסיף לפקודה הזאת את הדגל -p כדי שה-Terminal לא יציג לנו הודעה לאישור סופי לפני מחיקה של ה-Scratch org. השתמש באופציה זאת בזהירות, על מנת שלא תמחק בטעות Scratch org שיש לך עליו Metadata שעוד לא משכת לפרויקט המקומי שלך.

זהו! בפוסט זה למדנו איך להגדיר סביבת Trailhead כ-DevHub, לקשר אותה לפרויקט שלנו, ליצור ממנה Scratch org ולמחוק אותו בסיום השימוש.