الثلاثاء، 20 أكتوبر 2020

SAP ABAP - Macros وحدات الماكرو في ساب

 SAP ABAP - Macros وحدات الماكرو في ساب


SAP ABAP - Macros وحدات الماكرو في ساب

إذا أردنا إعادة استخدام نفس مجموعة العبارات أكثر من مرة في أحد البرامج ، فنحن بحاجة إلى تضمينها في ماكرو. على سبيل المثال ، يمكن أن يكون الماكرو مفيدًا للحسابات الطويلة أو لكتابة عبارات WRITE المعقدة. يمكننا فقط استخدام ماكرو داخل برنامج يتم تعريفه فيه. يجب أن يحدث تعريف الماكرو قبل استخدام الماكرو في البرنامج.

تم تصميم وحدات الماكرو بناءً على العناصر النائبة. يعمل العنصر النائب مثل المؤشرات في لغة C. يمكنك تعريف ماكرو داخل DEFINE ... END-OF-DEFINITION بيان.

فيما يلي بناء الجملة الأساسي لتعريف الماكرو -

DEFINE <macro_name>. <statements> 
END-OF-DEFINITION. 
   ...... 
  
   <macro_name> [<param1> <param2>....].

من الضروري تحديد ماكرو أولاً قبل استدعائه. <param1>…. يستبدل العناصر النائبة & 1 ... في عبارات ABAP الموجودة في تعريف الماكرو.

الحد الأقصى لعدد العناصر النائبة في تعريف الماكرو هو تسعة. أي عند تنفيذ برنامج ما ، يستبدل نظام SAP الماكرو بعبارات مناسبة ويتم استبدال العناصر النائبة & 1 ، & 2 ،…. & 9 بالمعلمات param1 ، param2 ، .... param9. قد نستدعي ماكرو داخل ماكرو آخر ، لكن ليس نفس الماكرو.

مثال

انتقل إلى المعاملة SE38. قم بإنشاء برنامج جديد ZMACRO_TEST مع الوصف في حقل النص القصير ، وأيضًا بالسمات المناسبة مثل النوع والحالة كما هو موضح في لقطة الشاشة التالية -

برنامج جديد ZMACRO

فيما يلي الكود -

REPORT ZMACRO_TEST. 
DEFINE mac_test. 
WRITE: 'This is Macro &1'. 
END-OF-DEFINITION. 

PARAMETERS: s1 type C as checkbox. 
PARAMETERS: s2 type C as checkbox. 
PARAMETERS: s3 type C as checkbox default 'X'. 

START-OF-SELECTION. 
IF s1 = 'X'. 
   mac_test 1. ENDIF. 
IF s2 = 'X'. 
   mac_test 2. 
ENDIF.
 
IF s3 = 'X'. 
   mac_test 3. 
ENDIF.

لدينا 3 مربعات اختيار. أثناء تنفيذ البرنامج ، دعنا نحدد مربع الاختيار S2.

خانة اختيار برنامج الماكرو

ينتج الكود أعلاه الناتج التالي -

A Macro Program 
 
This is Macro 2

إذا تم تحديد جميع خانات الاختيار ، فإن الكود ينتج عنه الإخراج التالي -

A Macro Program 
 
This is Macro 1 This is Macro 2 This








التسميات: