ייבוא וייצוא רשומות בין סביבות ב-Salesforce DX

ליאור נכתב על ידי ליאור לביא, עודכן בתאריך 13/10/2021

אחד החסרונות של סביבת פיתוח חדשה ב-Salesforce הוא שהיא אינה מכילה נתונים עליהם אנחנו עשויים להסתמך בקוד שלנו. לדוגמה, יכול להיות שיש לנו בסביבת הייצור אובייקט שם Status ובו רשומה בשם "חדש". בנוסף, יש לנו אובייקט בסביבה בשם Task ועליו שדה מסוג Lookup בשם Status המצביע על האובייקט Status. לסיום, יש לנו Validation rule על האובייקט Task שאוכף לוגיקה לפיה רשומת Task יכולה להיפתח אך ורק אם הערך בשדה Status שווה ל-"חדש". כאשר ניצור סביבת פיתוח חדשה, הרשומה "חדש" לא תיובא, ואם ננסה לשמור Task חדשה נקבל הודעת שגיאה מה-Validation rule. פתרון פשוט לבעיה הזאת היא לייבא את הרשומה "חדש" מסביבת הייצור שלנו לסביבת הפיתוח.

ייצוא רשומות

על מנת לייצא את הרשומה הנדרשת מסביבת הייצור שלנו נבצע את השלבים הבאים:
  1. פתח את הפרויקט שלך ב-Salesforce DX.
  2. פתח את חלונית הטרמינל על ידי לחיצה על הצירוף Ctrl + ~.
  3. הזן את הקוד הבא:
    sfdx force:data:tree:export -q "SELECT Id, Name FROM Status__c WHERE Name ='חדש'" -d ./exports -u Prod
    • sfdx - קידומת הפקודות של Salesforce CLI.
    • force:data:tree:export - הפקודה לייצוא נתונים מסביבת Salesforce.
    • -q "SELECT Id, Name FROM Status__c WHERE Name = 'חדש'" - דגל לציון שאילתה (Query) והשאילתה עצמה למשיכת הרשומות הנדרשות.
    • -d ./exports - דגל לציון היעד (Destination) לשמירת הקובץ שיחזיק את תוצאות השאילתה שלנו.
    • -u Prod - דגל לבחירת המשתמש (User) או ה-Alias שלו לסביבת הייצור. בדוגמה הגדרתי שה-Alias עבור המשתמש שלי בסביבת הייצור הוא Prod. אצלך זה יכול להיות ערך אחר או שם המשתמש עצמו, בתבנית Email.

כעת אם נסתכל בעץ התיקיות בפרויקט שלנו, לצד התיקיות config ו-force-app נמצא תיקיה חדשה בשם exports ובתוכה קובץ בשם Status__c.json המכיל את נתוני הרשומות שייצאנו מסביבת הייצור. קובץ הזה ישמש אותנו לייבוא הרשומה שייצאנו מסביבת הייצור לסביבת הפיתוח שלנו.

ייבוא רשומות

על מנת לייבא את הרשומה הנדרשת לסביבת הפיתוח שלנו נבצע את השלבים הבאים:
  1. הזן בטרמינל את הקוד הבא:
    sfdx force:data:tree:import -f exports/Status__c -u Dev
    • force:data:tree:import - הפקודה לייבוא נתונים לסביבת Salesforce.
    • -f export/Status__c - דגל ונתיב לקובץ (File) ממנו נייבא את הנתונים לסביבת הפיתוח שלנו.
    • -u Dev - דגל לבחירת המשתמש (User) או ה-Alias שלו לסביבת הפיתוח. בדוגמה הגדרתי שה-Alias עבור המשתמש שלי בסביבת הפיתוח הוא Dev. אצלך זה יכול להיות ערך אחר או שם המשתמש עצמו, בתבנית Email.
  2. בסיום הרצת הפקודה תוצג בטרמינל הודעת הצלחה עם נתוני הרשומה שיובאה לסביבת הפיתוח.