top of page

מושג ה-Package במערכת ה-SAP:
המצב הנוכחי:
במצב הנוכחי, מערכת ה-SAP כוללת למעלה מ-300 אלף אובייקטי פיתוח (תוכניות, טבלאות, מסכים, BAPIs, מודולים של פונקציות, טיפוסים וכדומה...). האובייקטים האלו מכווצים לכדי יותר מ-1700 מחלקות פיתוח שמאוחסנות במבנה שטוח. כל מפתח יכול להשתמש בכל אובייקט. המפתח יכול בקושי רב לקבוע הגנה לאובייקטי פיתוח שלו. הוא גם בקושי יכול לסמן את אובייקטי הפיתוח שהוא מעוניין שיהיו זמינים לשימוש לאחרים. האופציות הטכניות המודולריות פתוחות למפתחים בסקאלה נמוכה יחסית - למשל, אפשר להשתמש ב-module pools, function groups או מחלקות - כל אלו מציעים אופציות טכניות מודולריות מאוד מוגבלות. לא משנה אם מדובר על סקאלה רחבה או נמוכה, אין מנגנונים שמאפשרים מודולריזציה טכנית. מושג ה-Package פותח על מנת לתת מענה לסוגיות שהועלו לעיל. ה-Packages הם פיתוח נוסף של מחלקות הפיתוח הנוכחיות עם סמנטיקות נוספות חדשות שהוספו להם. ה-Packages עוצבו כך שהם יעזרו למפתחים לבצע מודולריזציה, הכמסה ואי תלות בין יחידות במערכת ה-SAP.
מושג ה-Packages:
מחלקות הפיתוח הנוכחיות הם פשוט Containers פשוטים עבור אובייקטי הפיתוח עם שכבת Transport שקובעת איך יבוצע Transport לאובייקטים. ה-Packages מרחיבים את הקונספט של מחלקות פיתוח עם תוספת של תכונות חדשות: הכלה, ממשקים, נראות ומאפשרי גישה (use accesses).
- מאפיין ה-Nesting: מאפשר להכניס חבילות בתוך חבילות אחרות.
- מאפיין ה-Visibility: זוהי תכונה של אלמנטים בתוך חבילה. האלמנטים יכולים להיות נראים מחוץ לחבילה שהם נמצאים בה. בכל אופן, האלמנטים תמיד נראים לאלמנטים אחרים באותה חבילה, ותמיד בלתי נראים לתת-חבילות שמוטמעות בתוך החבילה שהם נמצאים בה. על מנת שהאלמנט יהיה גלוי מחוץ לחבילה, הוא חייב להיות כלול בלפחות ממשק חבילה אחד.
- מאפיין ה-Use access: מאפשר את השימוש של חבילה אחת באלמנטים הגלויים בממשק של חבילה אחרת (אבל לא בכיוון ההפוך).
האיורים הבאים ממחישים את המאפיינים שצייננו:

PKG_SAP.PNG

ה-Packages משתמשים בממשקים ובנראות כלפי חוץ על מנת לגרום לשירותים שהם מציעים להיות גלויים לחבילות אחרות. כל האלמנטים הגלויים בחבילה יכולים, פוטנציאלית, להיות בשימוש של חבילות אחרות. לעומת זאת, אלמנטים בלתי נראים לא ניתנים לשימוש ע"י חבילות אחרות. זה מאפשר לחבילה לבצע הכמסה של התוכן שלה ולהגן על האלמנטים שלה מלהיות בשימוש ע"י חבילות חיצוניות לא מורשות. 
ה-Use accesses מאפשרים להגביל את השימוש באלמנטים גלויים של ממשקים בחבילות אחרות. לא ניתן להשתמש בכל האלמנטים הגלויים! חבילה יכולה להשתמש באלמנטים גלויים של החבילה הספקית רק לאחר שנוצר ה-use access לחבילה הספקית. מאפיין ה-Nesting מאפשר לנו לחלק יחידות גדולות במערכת ה-SAP ולשים אותם במבנה של היררכיה. היחס בין הממשקים לבין ה-use accesses מאפשר "להחביא" את האלמנטים שאנחנו לא מעוניינים שיהיו נגישים החוצה בצורה פשוטה יחסית, ובאופן זה בעצם להגן עליהם משימוש לא מורשה. מושג ה-Package מאפשר את האופציה של חלוקה והכמסה של מערכת ה-SAP לכדי יחידות טכניות (ה-Packages) ובכך להפחית רמות גבוהות של תלות וכך בעצם לבצע את פעולת ה-decoupling על המערכת בסקאלות גבוהות או נמוכות. לא משנה אם מדובר על חבילת משתמש, חבילת ספק או שניהם, יתכן ויהיו חריגות עקביות של בדיקת החבילות. 

איך ניתן לצפות בכל החבילות שקיימות במערכת? (או בכל אובייקט אחר שקיים במערכת)
Object Navigator:
שימוש: ה-Object Navigator זוהי נקודת הכניסה המרכזית לתוך ה-ABAP Workbench. זהו ממשיך דרכו של מה שהיה נקרא בעבר: Repository Browser, וניתן לגשת אליו ע"י כניסה לטרנזקציה SE80. נשתמש ב-Object Navigator על מנת לארגן את פעולות התכנות שלנו לכדי Integrated Development Environment.
אובייקטי פיתוח מסודרים ביחד לכדי רשימות של אובייקטים. כל רשימת אובייקטים מכילה את כל האובייקטים מקטגוריה מסוימת, כגון: חבילה,  תוכנית או מחלקה גלובאלית. מתוך רשימת האובייקטים, ניתן לבחור אובייקט ע"י לחיצה כפולה עליו. כאשר אנחנו פותחים אובייקט, ה-Workbench מבצעת קריאה לכלי הפיתוח שבעזרתו האובייקט נוצר. על מנת לעזור לנו בעבודה ה-Object Navigator מספק לנו סט נרחב של פונקציות ניווט.
להלן תצלום מסך של מרכיבי הממשק שתואר לעיל:

 

SE80_SCR.PNG
bottom of page