Pentaho Data Integration - איך לייבא מידע מ-Salesforce על סמך קובץ אקסל
אחת המשימות שחוזרות על עצמן בעבודה מול Salesforce היא הצורך לייבא מאחת מהסביבות שלנו נתונים על סמך רשימה מקובץ Excel. דרך אחת לעשות את זה, היא לבצע חיפוש על סמך מזהה ייחודי מקובץ ה-Excel שלנו על ידי המרת ערך התאים ב-Excel למחרוזת מופרדת בפסיקים, כמו בפוסט הזה.
אלא שלעיתים, רשימת הערכים שלנו ארוכה מאורך מחרוזת החיפוש המותרת ב-Salesforce, והפתרון הזה הוא לא היעיל ביותר. דרך אחרת, יעילה ומהירה יותר, היא להשתמש בכלי חיצוני על מנת לדגום את קובץ ה-Excel שלנו ועל סמך המזהה הייחודי של הרשומות שניתן בו, לשלוף את הרשומות הנדרשות מ-Salesforce, בתוספת כל השדות הנוספים אותם אנחנו צריכים. בפוסט הזה נלמד איך לעשות זאת עם הכלי החינמי Pentaho Data Integration.
התקנת Pentaho Data Integration (PDI)
- להורדת Pentaho Data Integration לחץ כאן.
- לאחר שההורדה הסתיימה לחץ מקש ימני בעכבר על הקובץ ובחר באפשרות Extract All...
- בחר נתיב לחילוץ הקובץ ולחץ על Extract.
- לאחר שחילוץ הקובץ יסתיים יפתח חלון עם התיקייה data-integration. פתח אותה.
יצירת קובץ Excel עם רשימת מזהים ייחודיים
- פתח את Microsoft Excel.
- צור קובץ חדש ב-Excel עם העמודה Israeli ID.
- מלא את הערכים הבאים בשדה Israeli ID:
- 111222333
- 444555666
- 777888999
- שמור את הקובץ. בדוגמה שלנו קראנו לקובץ contacts.xlsx.
יצירת רשימת אנשי קשר לייבוא מ-Salesforce
- פתח את סביבת ה-Salesforce שלך.
- הוסף לאובייקט Contact שדה בשם Israeli ID מסוג Text באורך 9 תווים. השדה הזה משמש רק להדגמה.
- צור שלושה אנשי קשר, Contacts, והזן עבור כל אחד מהם את אחד משלושת מספרי תעודת הזהות שכתבת בקובץ ה-Excel בשדה Israeli ID, כתובת Email בשדה Email ומספר טלפון בשדה Phone.
יצירת טרנספורמציה
עכשיו, כשיש לנו את קובץ ה-Excel שלנו, את הרשומות ב-Salesforce שנרצה לשלוף ואת PDI מותקנת, נוכל ליצור את התהליך לייבוא הנתונים עבור הרשומות.
- בתוך התיקייה data-integration שנוצרה עבורנו לאחר חילוץ קובץ ה-zip שהורדנו, אתר את קובץ Spoon.bat ופתח אותו. המתן לקובץ שיפתח.
- לחץ על New Transformation.
- מסרגל הצד, תחת הלשונית Design, הרחב את התיקייה Input.
- תחת התיקייה Input לחץ לחיצה כפולה על האופציה Microsoft Excel Input כדי להוסיף אותה לטרנספורמציה שלנו.
- לחץ לחיצה כפולה על השלב Microsoft Excel input כדי לפתוח את חלון ההגדרות שלו, ואז לחץ על הכפתור Browse ובחר את קובץ ה-Excel שיצרנו קודם. שים לב שיכול להיות שתצטרך לשנות את סוג הקובץ בחלונית הבחירה כדי לראות אותו ברשימה.
- אחרי שהגדרנו את הנתיב לקובץ ה-Excel ובחרנו בו, לחץ על הכפתור Add כדי להוסיף אותו לרשימת הקבצים.
- (אופציונאלי) אם קובץ ה-Excel שלך הוא עם סיומת .xlsx, תחת השדה Spread sheet type (engine) בחר באפשרות Excel 2007 XLSX (Apache POI).
- לחץ על הלשונית !Sheets, לחץ על הכפתור Get Sheetname(s)... והעבר את Sheet1 מהעמודה Available items ל-Your selection ולחץ OK.
- לחץ על הלשונית !Fields ועל הכפתור Get fields from header row...
- שנה את ה-Type של השדה Israeli ID מ-Number ל-String, את ה-Length ל-9 ובשדה Format הכנס 9 Hashtags. השינויים האלו יבטיחו שכשנריץ את את הטרנספורמציה, מספר ת"ז יחשב כטקסט ולא מספר.
- (אופציונאלי) לחץ על הכפתור Preview rows כדי לראות את השורות מקובץ ה-Excel.
- לחץ OK לאישור.
- בסרגל הצד, תחת התיקייה Input ממנה בחרנו את Microsoft Excel input, מצא את Salesforce input וגרור אותו מסרגל הצד לתוך אזור העבודה שלנו כדי להוסיף אותו לטרנספורמציה שלנו.
- לחץ לחיצה כפולה על השלב Salesforce input כדי לפתוח את חלונית ההגדרות שלו.
- תחת Salesforce Webservice URL השתמש בכתובת ברירת המחדל אם אתה מתחבר לסביבת ייצור, או שנה את המילה login ל-test אם אתה מתחבר ל-Sandbox או Scratch org.
- תחת Username הכנס את שם המשתמש אתו אתה מתכוון להתחבר לסביבה.
- תחת Password הכנס את הסיסמה של המשתמש אתו אתה מתכוון להתחבר לסביבה ואחריה את ה-Security Token שלו, אלא אם אתה מתחבר לסביבה מ-IP שהוגדר בסביבה תחת ה-Login IPs white list.
- (אופציונאלי) אם למשתמש אתו אתה רוצה להתחבר מ-PDI אין Security token, עקוב אחרי השלבים הכתובים בהמשך סעיף זה. אם יש לו כבר Security token, אם הוא כבר משמש לחיבור API ממקום אחר למשל, ברר עם מי שיצר את החיבור האחר ומשתמש בו מה ה-Token הנוכחי של המשתמש והשתמש בו, אחרת חיבורי ה-API האחרים יפסיקו לעבוד!
כדי להפיק Security token חדש עבור המשתמש אתו אתה מתכוון להתחבר בצע את השלבים הבאים:- התחבר לסביבת היעד שלך עם המשתמש אתו אתה רוצה להתחבר מ-PDI.
- לחץ על התמונה של המשתמש בצד ימין-עליון של המסך ובחר ב-Settings.
- מסרגל הצד בהגדרות המשתמש בחר ב-Reset My Security Token
- בעמוד שנפתח לחץ על הכפתור Reset Security Token כדי לקבל את ה-Token לתיבת המייל של המשתמש.
- לבדיקת החיבור, לחץ על הכפתור Test Connection. הודעה על הצלחת החיבור צריכה להופיע כמו בתמונה הבאה:
- כעת נכתוב את השאילתה שתחזיר לנו את אנשי הקשר מ-Salesforce. במסך הגדרות החיבור ל-Salesforce, סמן את תיבת הסימון Specify query והזן לתוך השדה SOQL את השאילתה כפי שניתן לראות בתמונה הבאה:
- כעת נעבור ללשונית Fields, נלחץ על הכפתור Get fields ונשנה את הגדרות השדות שהוחזרו מ-Salesforce כך שיראו כמו בתמונה הבאה. PDI מנסה לפענח את סוג השדה והפורמט שלו באופן אוטומטי, אבל לפעמים הוא טועה, ולכן נתקן אותו.
- (אופציונאלי) לחץ על הכפתור Preview rows כדי לראות את הרשומות עם השדות ש-PDI מחזיר מ-Salesforce.
- לחץ OK.
- מעולה, עד עכשיו יצרנו שני שלבים, שכל אחד מהם מביא נתונים ממקור אחר. כעת מה שעלינו לעשות הוא להחזיר נתונים מהשלב Salesforce input על סמך המזהים הייחודיים מהשלב Microsoft Excel input. כדי לעשות את זה נתחיל בהוספת השלב Stream lookup לטרנספורמציה שלנו. בסרגל הצד Design, בשדה חיפוש, הקלד את המילה lookup.
- מהתוצאות המופיעות מהסעיף הקודם, גרור ושחרר את השלב Stream lookup לשטח העבודה שלנו.
- לחץ על השלב Microsoft Excel input ולחץ על הסמל של Output connection כדי למתוח חץ חיבור בין השלב Microsoft Excel input והשלב Stream lookup. בצע את אותו הדבר כדי לחבר את Salesforce input ל-Stream lookup.
- כעת נגדיר את ה-Lookup עצמו. לחץ פעמיים על השלב Stream lookup כדי לפתוח את ההגדרות שלו.
- בשדה Lookup step בחר Salesforce input.
- תחת The key(s) to look up the value(s), תחת Field בחר בשדה Israeli ID מקובץ ה-Excel, ותחת השדה LookupField בחר ב-Israeli_ID__c. פה אנחנו בעצם אומרים ל-Lookup שעליו לקחת את הערך מהשדה Israeli ID ולחפש אתו בשדה Israeli_ID__c ברשומות המגיעות Salesforce input.
- תחת Specify the fields to retrieve בחר את השדות שתרצה שיוחזרו מ-Salesforce input, הסוג שלהם ושם שיבדיל ביניהם ובין השדות המגיעים מקובץ ה-Excel עם אותם השמות. לחץ OK לסיום.
- כעת נלחץ על כפתור ה-Run ויפתח עבורנו חלון בשם Run options. נלחץ על הכפתור Run כדי להריץ את הטרנספורמציה שלנו. PDI תציג לנו הודעה עם בקשה לשמירת הטרנספורמציה לפני הרצה. לחץ על Yes ושמור את הקובץ. הטרנספורמציה שלנו תרוץ מיד אחרי שנשמור את הקובץ.
- לאחר שהטרנספורמציה שלנו תסיים לרוץ נראה סימני V ירוקים (✅) ליד השלבים השונים.
- אם תלחץ על השלב Microsoft Excel input ואז על הלשונית Preview data בתחתית המסך, תוכל לראות את הנתונים ש-PDI הביאה מהשלב הזה:
- אם תלחץ על השלב Salesforce input ואז על הלשונית Preview data בתחתית המסך, תוכל לראות את הנתונים ש-PDI הביאה מ-Salesforce. בדוגמה שלנו היא הביאה רק שלוש רשומות Contact, אבל אם היו לנו יותר רשומות, היא הייתה מציגה גם אותן, בהתאם לשאילתה שהגדרנו.
- אם תלחץ על השלב Stream lookup ואז על הלשונית Preview data בתחתית המסך, תוכל לראות את השדה על סמכו בוצע ה-lookup, במקרה הזה Israeli ID, כפי שהגיע מקובץ ה-Excel שלנו, ואת הערכים שהוחזרו עבורו מה-Lookup תחת השדות Email from Salesforce ו-Phone from Salesforce.
- נפלא! אלה הנתונים שרצינו! כעת נייצא אותם לקובץ Excel חדש. מסרגל הצד, לחץ על האיקס לצד תיבת החיפוש כדי לבטל אותו, לחץ על התיקייה Output וגרור את השלב Microsoft Excel output לאזור העבודה שלנו.
- מתח Output Connector מהשלב Stream lookup לשלב Microsoft Excel output החדש שיצרת על ידי לחיצה על Stream lookup, לחיצה על הסמל Output connector ומתיחת החץ מ-Stream lookup ל-Microsoft Excel output כפי שעשינו כאן.
- לחץ פעמיים על השלב Microsoft Excel output כדי לפתוח את חלון ההגדרות שלו.
- לחץ על הכפתור Browse..., תן לקובץ שם ובחר איפה תרצה שישמר.
- לחץ על הלשונית Content ובשדה Encoding בחר UTF-8 כדי להבטיח שתוכן הקובץ ישמר בצורה תקינה גם כשהטקסט בו בעברית.
- לחץ על הלשונית Fields ולחץ על הכפתור Get Fields. לחץ OK לסיום. המסך שלך אמור להיראות כמו בתמונה הבאה:
- שמור את הטרנספורמציה ולחץ על Run כדי להריץ אותה.
- פתח את התיקייה בה הגדרת שישמר קובץ ה-Excel מהשלב Microsoft Excel output ופתח את הקובץ שנוצר. הרחב את העמודות כדי לראות את כל התוכן בצורה ברורה, הוא אמור להיראות כמו בתמונה הבאה:
- זהו! קיבלנו את הנתונים שרצינו מ-Salesforce על סמך מספר תעודת הזהות של איש הקשר.
כמה נקודות חשובות לסיום:- הנתון על סמכו אנחנו שולפים את הנתונים מ-Salesforce צריך להיות מזהה ייחודי ב-Salesforce, אחרת ה-Lookup פשוט יחזיר את ערכי השדות עבור הרשומה הראשונה שהוא מוצא ב-Salesforce עם המזהה הזה. במקרה שלנו המזהה, מספר תעודת זהות, הוא ייחודי והדבר נאכף ברמת הגדרת השדה כ-Unique ב-Salesforce.
- ניתן לשנות את ההפניה מהשלב Microsoft Excel input כדי שתצביע על קובץ Excel אחר כדי להתבסס על נתונים אחרים, או פשוט לערוך את קובץ ה-Excel הנוכחי.
- אחת האופציות תחת השלב Microsoft Excel output היא להוסיף לשם הקובץ את התאריך והשעה בה הוא נוצר. זאת אופציה מאוד נוחה אם נרצה ליצור עותק נפרד עבור תוצאות הטרנספורמציה כל פעם שהיא רצה.