שדות Pointer הם הדבק שמחבר בין הטבלאות ב-MyBusiness CRM — הם יוצרים קישורים חיים בין רשומות, מאפשרים לשלוף מידע מטבלאות קשורות, ומהווים את הבסיס למודל נתונים יעיל ונקי.
כשאתם עובדים עם מערכת CRM, המידע לא חי בבידוד. עסקה קשורה ללקוח, שורת מכירה קשורה למוצר, ומשימה קשורה לאיש קשר. שדות Pointer הם הדרך שבה MyBusiness מייצגת את הקשרים האלה — במקום להעתיק מידע ממקום למקום, שדה Pointer מצביע על הרשומה המקורית ושומר על קישור חי אליה.
מה זה שדה Pointer?
שדה Pointer הוא הפניה (Reference) מרשומה בטבלה אחת אל רשומה בטבלה אחרת. הוא שומר את ה-objectId של הרשומה המקושרת, ומאפשר למערכת לשלוף ממנה מידע בזמן אמת.
דוגמאות מהמערכת:
| שדה Pointer | בטבלה | מצביע על טבלה | משמעות |
|---|---|---|---|
AccountId |
Sales | Accounts | העסקה שייכת ללקוח מסוים |
SaleId |
SaleRows | Sales | שורת מכירה שייכת לעסקה |
ProductId |
SaleRows | Products | שורת מכירה מקושרת למוצר |
SaleStatusId |
Sales | SaleStatuses | סטטוס העסקה |
OwnerId |
Sales | _User | המשתמש האחראי על העסקה |

שדה Pointer בטופס — מוצג כרשימה נפתחת עם אפשרות חיפוש מתוך רשומות טבלת היעד
יצירת שדה Pointer

כדי ליצור שדה Pointer חדש:
- היכנסו לפאנל הניהול (siteadmin) ובחרו את הטבלה הרלוונטית.
- לחצו על "Add Field".
- הגדירו שם לשדה — מומלץ לסיים ב-
Id, למשלCategoryId,ProjectId. - בחרו סוג Pointer.
- הגדירו Target Class — שם הטבלה שאליה השדה מצביע. למשל, אם אתם מוסיפים שדה קטגוריה לעסקאות, ה-Target Class יהיה
Categories. - הגדירו Label בעברית, למשל "קטגוריה".
- שמרו את השדה.
סינטקס נקודה (Dot Notation) — שליפת מידע מטבלאות מקושרות
אחד היתרונות הגדולים של שדות Pointer הוא היכולת לשלוף שדות מהטבלה המקושרת באמצעות סינטקס נקודה. הפורמט משתנה מעט בהתאם להקשר:
בשאילתות ובטפסים
הפורמט הוא: PointerFieldName.TargetFieldName
AccountId.Name— שם הלקוח דרך שדה Pointer של לקוחSaleStatusId.Name— שם הסטטוס דרך שדה Pointer של סטטוסOwnerId.name— שם המשתמש האחראי
בדוחות ואגרגציות
הפורמט כולל גם את שם טבלת היעד: PointerFieldName.TargetClassName.TargetFieldName
AccountId.Accounts.Name— שם הלקוח (דרך טבלת Accounts)SaleStatusId.SaleStatuses.Name— שם הסטטוס (דרך טבלת SaleStatuses)ProductId.Products.Price— מחיר המוצר (דרך טבלת Products)
בטריגרים
בפעולות טריגר מסוג dynamic value, הפורמט זהה לדוחות:
AccountId.Accounts.Name— שם הלקוח מהרשומה שהפעילה את הטריגרSaleId.Sales.Total— סה"כ העסקה מתוך שדה Pointer

תרשים מודל נתונים — החיצים מייצגים שדות Pointer שמקשרים בין טבלאות
שדות Pointer בטפסים
כאשר שדה Pointer מוצג בטופס כרטיס, הוא מופיע כרשימה נפתחת (Dropdown) או שדה חיפוש שמציג את הרשומות מטבלת היעד. המשתמש בוחר רשומה מהרשימה, והמערכת שומרת את הקישור.
לדוגמה: בטופס עסקה, שדה AccountId יציג רשימה של כל הלקוחות מטבלת Accounts, ובחירת לקוח תקשר את העסקה אליו.
טבלאות משנה באמצעות Pointer
שדות Pointer מאפשרים גם להציג טבלאות משנה (Sub-Tables) בתוך טופס. אם לטבלה B יש שדה Pointer שמצביע על טבלה A, אפשר להציג בתוך כרטיס של A את כל הרשומות הקשורות מ-B.
דוגמה: בטופס עסקה (Sales), ניתן להציג טבלת משנה של שורות מכירה (SaleRows) — כי לכל שורה יש שדה SaleId שמצביע על העסקה. למדריך מפורט, ראו [הוספת טבלת משנה לכרטיס](guide_sub_tables.md).
כיוון הקשר בטריגרים: Source ו-Target
כאשר אתם מגדירים פעולת update-object בטריגר, צריך לציין את כיוון הקשר בין הרשומה שהפעילה את הטריגר לרשומה שרוצים לעדכן:
- source (מקור): שדה ה-Pointer נמצא ברשומה שהפעילה את הטריגר, ומצביע על הרשומה שרוצים לעדכן.
– דוגמה: source.AccountId — הרשומה הנוכחית מכילה שדה AccountId שמצביע על הלקוח שרוצים לעדכן.
- target (יעד): שדה ה-Pointer נמצא ברשומה שרוצים לעדכן, ומצביע חזרה אל הרשומה שהפעילה את הטריגר.
– דוגמה: target.SaleId — הרשומות בטבלה המעודכנת מכילות שדה SaleId שמצביע על הרשומה הנוכחית.

שימוש בסינטקס נקודה בשאילתה — שליפת שם הלקוח דרך שדה Pointer
שדות Pointer בדוחות ובסינונים
בדוחות ובשאילתות, שדות Pointer מאפשרים:
- הצגת שדות מטבלה מקושרת: במקום להציג objectId חסר-משמעות, הציגו את שם הלקוח, שם המוצר, או כל שדה אחר מטבלת היעד.
- סינון לפי שדה מקושר: סננו עסקאות לפי שם לקוח, או שורות מכירה לפי שם מוצר.
- קיבוץ (Group By): קבצו תוצאות לפי שדה מטבלה מקושרת, למשל סכום מכירות לפי לקוח.
טיפים לעבודה עם שדות Pointer
- תכננו את מודל הנתונים: לפני שמתחילים ליצור טבלאות ושדות, שרטטו את הקשרים ביניהן. חשבו מי "מכיל" את מי ואיפה ה-Pointer צריך להיות.
- מוסכמת שמות: סיימו שמות שדות Pointer ב-
Id—AccountId,SaleId,ProductId. זה מבהיר מייד שמדובר בקישור לטבלה אחרת. - היררכיה ברורה: הבינו את הקשר הורה-ילד. בדרך כלל ה-Pointer נמצא בטבלת ה"ילד" ומצביע על ה"הורה" — SaleRows (ילד) מצביע על Sales (הורה).
- הימנעו ממעגלים: היזהרו מיצירת קישורים מעגליים (A מצביע על B שמצביע על A) שעלולים ליצור בעיות בטריגרים.
- השתמשו בסינטקס הנכון: זכרו שבדוחות ואגרגציות הפורמט כולל את שם הטבלה (
AccountId.Accounts.Name), ואילו בשאילתות פשוטות מספיקAccountId.Name.