مقدمة إلى ABAP: أنواع البيانات، Operaالموجهون والمحرر – البرنامج التعليمي

⚡ ملخص ذكي

مقدمة في لغة ABAP تغطي اللغة SAP تم إنشاء هذا المورد لبناء التطبيقات على نظام R/3. يشرح هذا المورد أنواع البيانات، والمعاملات، وعبارات التحكم، والجدول الداخلي، ومحرر SE38 حيث يبدأ كل برنامج ABAP.

  • 🔤 صيغة الإعلان: يُعرّف المتغير DATA variable_name من النوع variable_type كل متغير في لغة ABAP.
  • 🔢 أنواع البيانات: I و F و P تحمل أرقامًا؛ C و D و N و T تحمل أحرفًا؛ X تحمل بيانات سداسية عشرية.
  • ➗ Operaتورس: تقوم عوامل التشغيل الحسابية بتغيير القيم، بينما تقوم عوامل التشغيل المنطقية مثل EQ وNE وGT وLT بتوجيه القرارات.
  • 🔁 عبارات التحكم: تحدد عبارات IF و CASE و WHILE و DO أي أسطر من البرنامج يتم تشغيلها فعليًا.
  • 📋 الجداول الداخلية: يحتوي الجدول الداخلي على صفوف متعددة في الذاكرة وهو بمثابة العمود الفقري لكل تقرير ABAP.
  • 🖥️ رئيس التحرير: المعاملة SE38 هي محرر ABAP، حيث يتم كتابة البرامج وفحصها وتنفيذها.

مقدمة إلى SAP ABAP

ما هو ABAP؟

ABAP اختصار لـ Advanced Business Application Programming، وهي لغة برمجة لتطوير تطبيقات الأعمال.ping طلبات للحصول على SAP نظام آر/3.

أحدث إصدار من ABAP يسمى ABAP Objects ويدعم البرمجة الموجهة للكائنات. SAP سيتم تشغيل التطبيقات المكتوبة باستخدام ABAP/4، الإصدار الأقدم من ABAP، بالإضافة إلى التطبيقات التي تستخدم كائنات ABAP.

لا تحاول هذه المقدمة توثيق كل شيء لغة أباب يُقدّم هذا الكتاب المفاهيم الأساسية بسرعة، بحيث يمكنك البدء في كتابة برامج عملية ثم الانتقال إلى المواضيع الأكثر تقدماً.

أنواع البيانات

يبدأ كل برنامج ABAP بتحديد البيانات التي سيعمل معها.

بناء الجملة للإعلان عن متغير في ABAP –

DATA Variable_Name TYPE Variable_Type.

على سبيل المثال:

DATA employee_number TYPE I.

فيما يلي قائمة بأنواع البيانات التي يدعمها ABAP.

نوع البيانات طول الحقل الأولي طول الحقل صالح القيمة البدائية معنى
أنواع رقمية
I 4 4 0 عدد صحيح (عدد صحيح)
F 8 8 0 رقم النقطة العائمة
P 8 ٢٠٢٤/٢٠٢٣ 0 رقم معبأ
أنواع الشخصيات
C 1 ٢٠٢٤/٢٠٢٣ '...' حقل نصي (أحرف أبجدية رقمية)
D 8 8 "00000000" حقل التاريخ (التنسيق: YYYYMMDD)
N 1 ٢٠٢٤/٢٠٢٣ '0...0' حقل نص رقمي (أحرف رقمية)
T 6 6 "000000" حقل الوقت (التنسيق: HHMMSS)
نوع سداسي عشري
X 1 ٢٠٢٤/٢٠٢٣ ×'0...0' حقل سداسي عشري

الأنواع الثمانية المذكورة أعلاه هي الأنواع الكلاسيكية ذات الطول الثابت. كما توفر لغة ABAP نوعين ذوي طول متغير يتعرف عليهما المبتدئون بسهولة: STRING للنصوص مهما كان طولها، و إكس سترينغ للبيانات الثنائية من أي طول.

ABAP Operaالاختصاصات

بمجرد تعريف البيانات، يقوم المشغلون بتغييرها ومقارنتها.

تحديد القيم

a = 16.
MOVE 16 TO a.
WRITE a TO b.

تقوم العبارات الثلاث بنقل قيمة. علامة المساواة هي الشكل الحديث، بينما MOVE و WRITE TO هما الشكلان القديمان اللذان ستصادفهما في البرامج القديمة.

عمليات حسابية

COMPUTE a = a * 100.

يدعم ABAP أيضًا الإضافة والطرحTRACتُستخدم الكلمات T و MULTIPLY و DIVIDE ككلمات رئيسية مستقلة، ولكن صيغة COMPUTE الموضحة أعلاه هي الأكثر استخدامًا.

العوامل المنطقية

تُرجع المعاملات المنطقية قيمة صحيحة أو خاطئة، وهي ما تختبره كل عبارة تحكم في القسم التالي. لكل منها شكل لفظي وشكل رمزي، ويمكن استخدامهما بالتبادل.

شكل الكلمة شكل الرمز معنى
EQ = يساوي
NE <> لا يساوي
GT > اعظم من
GE >= أكبر من أو يساوي
LT < Less من
LE <= Less من أو يساوي

بيانات التحكم

تستخدم عبارات التحكم عوامل التشغيل المنطقية المذكورة أعلاه لتحديد أسطر التعليمات البرمجية التي يتم تشغيلها، وعدد مرات تشغيلها.

إذا … انتهى الشرط

IF [NOT] exp [ AND / OR [NOT] exp ].
  ........
[ELSEIF exp.
  .......]
[ELSE.
  .......]
ENDIF.

بيان الحالة

CASE variable.
  WHEN value1.
    .........
  WHEN value2.
    .........
  [WHEN OTHERS.
    .........]
ENDCASE.

حلقة WHILE

WHILE <logical expression>.
  .....
ENDWHILE.

حلقة DO

DO <n> TIMES.
  .....
ENDDO.

تستمر حلقة WHILE طالما أن شرطها متحقق. أما حلقة DO فتستمر لعدد محدد من المرات، أو بشكل لا نهائي حتى توقفها عبارة EXIT.

الجداول الداخلية في لغة ABAP

نادراً ما تكفي المتغيرات الفردية. تقرأ برامج الأعمال العديد من الصفوف في وقت واحد، والجدول الداخلي هو البنية التي تحتفظ بها في الذاكرة.

الجدول الداخلي عبارة عن مصفوفة ديناميكية. ليس له حجم ثابت، ويبقى فقط طوال مدة تشغيل البرنامج، وهو الطريقة القياسية لنقل الصفوف بين قاعدة البيانات والشاشة.

" Declare an internal table and a work area
DATA: lt_employees TYPE TABLE OF pa0001,
      ls_employee  TYPE pa0001.

" Fill it from the database
SELECT * FROM pa0001 INTO TABLE lt_employees UP TO 10 ROWS.

" Read it row by row
LOOP AT lt_employees INTO ls_employee.
  WRITE: / ls_employee-pernr, ls_employee-ename.
ENDLOOP.

تغطي العمليات الثلاث المذكورة أعلاه معظم الأعمال اليومية: تعريف الجدول، وملؤه باستخدام SELECT، ثم المرور عليه باستخدام LOOP AT. تضيف APPEND صفًا، وتجد READ TABLE صفًا، وتزيل DELETE الصفوف التي تطابق شرطًا معينًا.

محرر ABAP/4

يتم كتابة جميع الصيغ المذكورة أعلاه في مكان واحد.

تقديم SE38 يفتح محرر ABAP، حيث ستقضي معظم وقتك كمطور في إنشاء البرامج وتعديلها.

محرر ABAP/4

محرر ABAP/4، المعاملة SE38

كيفية كتابة برنامج ABAP الأول

الشاشة أعلاه هي المكان الذي تتم فيه الخطوات التالية. التسلسل أدناه ينتج تقريرًا جاهزًا للعمل في غضون دقائق قليلة.

  1. افتح المحرر. أدخل رمز المعاملة SE38 في SAP قم بإدخال أوامر واجهة المستخدم الرسومية واضغط على مفتاح الإدخال (Enter).
  2. اذكر اسم البرنامج. اكتب اسمًا يبدأ بـ Z or Y، على سبيل المثال ZHELLO_WORLDهذان الحرفان هما اسم نطاق العميل، و SAP يضمن عدم استبدالها أثناء الترقية.
  3. أنشئه. انقر إنشاءأدخل وصفًا موجزًا، ثم اختر برنامج قابل للتنفيذ كنوع.
  4. قم بتخصيص حزمة. اختار كائن محلي لأغراض التدريب. يبقى الكائن المحلي في نظامك ولا يحتاج إلى طلب نقل.
  5. اكتب الكود.
REPORT zhello_world.

DATA employee_name TYPE string.
employee_name = 'Guru99'.

WRITE: / 'Hello, ABAP!',
       / 'Welcome', employee_name.
  1. تحقق من بناء الجملة. الإعلام CTRL + F2يعرض شريط الحالة أي خطأ والسطر الذي تسبب فيه.
  2. قم بتفعيل البرنامج. الإعلام CTRL + F3لا يمكن تشغيل برنامج غير نشط.
  3. نفذ - اعدم. الإعلام F8تفتح قائمة الإخراج وتعرض سطري الكتابة.

يؤدي استخدام الشرطة المائلة في عبارة WRITE إلى إنشاء سطر جديد. يؤدي حذفها إلى طباعة كل شيء على سطر واحد، وهي أول عادة تنسيق يكتسبها معظم المبتدئين.

معاملات ABAP الشائعة Codes

تغطي مجموعة صغيرة من رموز المعاملات كل ما يحتاجه مطور ABAP جديد تقريبًا.

تقديم الهدف
SE38 محرر ABAP. إنشاء البرامج وتحريرها وفحصها وتشغيلها.
SE80 مستكشف الكائنات. بيئة عمل واحدة للبرامج والفئات والحزم والشاشات.
SE11 قاموس ABAP. تعريف وفحص جداول قواعد البيانات وعناصر البيانات والمجالات.
SE16N مستعرض البيانات. اعرض محتويات أي جدول دون كتابة استعلام SELECT.
SE37 منشئ الدوال. أنشئ وحدات الدوال واختبرها.
SE24 منشئ الفئات. إنشاء فئات عامة لكائنات ABAP.
ST22 تحليل تفريغ الذاكرة. اقرأ خطأ وقت التشغيل عند انتهاء البرنامج.

يكفي استخدام SE38 وSE11 لإعداد تقرير أولي. يصبح ST22 الأكثر أهمية في المجموعة لحظة تعطل البرنامج.

الأسئلة الشائعة

يشكل الحرفان Z و Y نطاق اسم العميل. SAP لا يتم شحن الكائنات التي تحمل هذه البادئات مطلقًا، لذا لا يمكن للتحديث استبدال برنامجك. أما الأسماء خارج نطاق الاسم هذا، فتعرض للاستبدال.

لغة ABAP/4 هي النسخة الإجرائية، المبنية على التقارير والإجراءات الفرعية. أما ABAP Objects فتضيف الفئات والواجهات والوراثة. تعمل كلتا النسختين على نفس النظام، لذا يمكن استخدام التعليمات البرمجية القديمة والجديدة معًا.

استخدم النوع P، وهو النوع المضغوط. فهو يخزن الأرقام العشرية بدقة، وهو ما تتطلبه المعاملات المالية. أما النوع F فهو عدد عشري ذو فاصلة عائمة، ويُدخل أخطاء تقريب تجعل المجاميع المالية غير موثوقة.

نعم. يمكن لمساعد الذكاء الاصطناعي شرح عملية تفريغ البيانات، وترجمة الشفرة الزائفة إلى لغة ABAP، واقتراح حلقة تكرارية أكثر وضوحًا. تأكد دائمًا من إجراء فحص بناء الجملة، لأن الشفرة المُولّدة قد تشير إلى جداول غير موجودة في نظامك.

لا يُنصح بمراجعته قبل ذلك. غالبًا ما يتجاهل الكود المُولّد عمليات التحقق من الصلاحيات، وقواعد الأداء، وقائمة واجهات برمجة التطبيقات (API) المُتاحة في ABAP Cloud. تعامل معه كمسودة أولية، ثم اختبره كما تختبر أي كود آخر.

تلخيص هذه التدوينة بـ: