שיעור רביעי – object oriented ABAP – Global class
עד כה עבדנו עם קלאסים לוקלים שלהזכיר אפשר להשתמש בהם רק בתוכנית בה הם הוגדרו.
עכשיו נלמד איך ליצור ולהשתמש בקלאס גלובלי.
יצירת קלאס גלובלי נעשית בטרנזקציה SE24
בטרנזקציה זו אפשר לראות\לשנות קלאסים קיים וליצור אחד חדש
כעת ניצור אחד בשם ZGCL_MY_CLASS
ונקבל את החלון הבא:
נתחיל בהגדרת תכונות:
נלך לחלונית הAttribute ונעבור על מה כל דבר אומר:
Attribute: שם התכונה
Level: האם התכונה היא Instance או Static
Visability: סוג הנראות
Read-only: האם התכונה היא לקריאה בלבד
Typing: האם זה תכונה מסוג TYPE או TYPE REF או LIKE
Associated Type: מה הסוג של התוכנה
Description:תיאור התכונה
Initial Value: מה יהיה הערך הראשוני של התכונה
נגדיר תכונה בשם A שהיא Instance מסוג i שהיא PUBLIC
עכשיו נעבור לחלונית הMETHOD ליצור מתודה
METHOD: שם המתודה
LEVEL: האם המתודה היא Instance או Static
Visability: סוג הנראות
Method type: האם המתודה Constructor או לא
Description: תיאור המתודה
נגדיר מתודה בשם M1 מסוג Instance שהיא PUBLIC
כדי ליצור Constructor נלחץ על הכתור למעלה של הConstructor
והוא יצור את זה לבד
עכשיו הגדרנו את המתודה אבל צריך גם ליישם אותה, כדי ליישם מתודה נלחץ על השם שלה דאבל קליק.
וזה היישום של המתודה ונרשום כאן מה שאנחנו רוצים שהמתודה תעשה
עכשיו אחרי שיצרנו את הקלאס הגלובלי נראה איך משתמשים בו בתוך התוכנה שלנו
הגדרת האובייקט היא כמו בקלאס לוקלי
וגם השימוש בתכונות
ואפשר גם לקרוא למתודות בצורה הרגילה אך יש דרך נוחה יותר לקלאסים לוקלים
נלחץ על כפתור PATTERN שיש בסרגל כלים
ונסמן את ABAP Object Patterns
ובחלון שיפתח נמלא את העמודות הבאות
Instance : האובייקט שאנחנו רוצים לקרוא למתודה ממנו
Class/interface: הקלאס שאנחנו לוקחים את המתודה ממנו
METHOD: שם המתודה הרצוייה
וכשנלחץ על אישור נקבל את הקריאה למתודה
עכשיו זה נראה שעדיף היה לרשום את המתודה לבד אבל במתודות עם הרבה פרמטרים זה חוסך הרבה.
שיעור ראשון – Object Oriented ABAP – SAP BASIS – ABAP – HANA (scmlevi.com)
שיעור שני – Object Oriented ABAP – SAP BASIS – ABAP – HANA (scmlevi.com)
שיעור שלישי – Object Oriented ABAP Methods – SAP BASIS – ABAP – HANA (scmlevi.com)
שיעור רביעי – object oriented ABAP – Global class – SAP BASIS – ABAP – HANA (scmlevi.com)