أبا
| نموذج | كائنية التوجه ، منظمة ، أمرية |
|---|---|
| صمم بواسطة | ساب اس اي |
| ظهرت لأول مرة | 1983 |
| إصدار مستقر | 7.58 [1]
/ 26 أكتوبر 2023 |
| الانضباط في الطباعة | ثابت ، قوي ، آمن ، اسمي |
| نظام التشغيل | متعدد المنصات |
| موقع إلكتروني | community.sap.com/topics/abap |
| التنفيذات الرئيسية | |
| SAP R/2 ، SAP R/3 ، SAP S/4HANA | |
| متأثر بـ | |
| Objective-C ، [ بحاجة لمصدر ] COBOL ، [ بحاجة لمصدر ] SQL [ بحاجة لمصدر ] | |
ABAP (Advanced Business Application Programming، والمعروفة في الأصل باسم Allgemeiner Berichts-Aufbereitungs-Prozessor ، وتعني بالألمانية "معالج إعداد التقارير العامة" [2] ) هي لغة برمجة عالية المستوى أنشأتها شركة البرمجيات الألمانية SAP SE . وهي حاليًا، إلى جانب Java ، تُعتبر لغة برمجة SAP NetWeaver Application Server ، وهو جزء من منصة SAP NetWeaver لبناء تطبيقات الأعمال.
مقدمة
ABAP هي واحدة من العديد من لغات الجيل الرابع المخصصة للتطبيقات ( 4GLs ) التي تم تطويرها لأول مرة في ثمانينيات القرن العشرين. كانت في الأصل لغة التقارير لـ SAP R/2 ، وهي منصة مكنت الشركات الكبيرة من بناء تطبيقات الأعمال المركزية لإدارة المواد والمحاسبة المالية والإدارية.
كان ABAP اختصارًا لـ A llgemeiner B erichts- A ufbereitungs- P rozessor ، وهي كلمة ألمانية تعني " معالج إعداد التقارير العامة"، ولكن تمت إعادة تسميته لاحقًا [ متى؟ ] إلى لغة برمجة تطبيقات الأعمال المتقدمة بالإنجليزية . كانت ABAP واحدة من أولى اللغات التي تضمنت مفهوم قواعد البيانات المنطقية (LDBs)، والتي توفر مستوى عاليًا من التجريد من مستوى (مستويات) قاعدة البيانات الأساسية، والتي تدعم كل منصة ولغة ووحدات.
تم استخدام لغة ABAP في الأصل من قبل المطورين لتطوير منصة SAP R/3 . وكان من المقصود أيضًا أن يستخدمها عملاء SAP لتحسين تطبيقات SAP - حيث يمكن للعملاء تطوير تقارير وواجهات مخصصة باستخدام برمجة ABAP. كانت اللغة موجهة للعملاء الأكثر خبرة في البرمجة.
تظل لغة ABAP هي اللغة المستخدمة في إنشاء البرامج لنظام R/3 الذي يعمل بين العميل والخادم ، والذي أصدرته شركة SAP لأول مرة في عام 1992. ومع تطور أجهزة الكمبيوتر خلال تسعينيات القرن العشرين، تمت كتابة المزيد والمزيد من تطبيقات وأنظمة SAP بلغة ABAP. وبحلول عام 2001، تمت كتابة جميع الوظائف الأساسية بلغة ABAP. وفي عام 1999، أصدرت شركة SAP امتدادًا موجهًا للكائنات إلى لغة ABAP يُدعى ABAP Objects، جنبًا إلى جنب مع إصدار R/3 4.6.
تدعم منصة التطوير الحالية الخاصة بشركة SAP NetWeaver كل من ABAP و Java .
يحتوي ABAP على تجريد بين تطبيقات الأعمال ونظام التشغيل وقاعدة البيانات. وهذا يضمن عدم اعتماد التطبيقات بشكل مباشر على خادم معين أو منصة قاعدة بيانات ويمكن نقلها بسهولة من منصة إلى أخرى.
يعمل SAP Netweaver حاليًا على UNIX ( AIX و HP-UX و Solaris و Linux ) و Microsoft Windows و i5/OS على IBM System i (المعروف سابقًا باسم iSeries وAS/400) و z/OS على IBM System z (المعروف سابقًا باسم zSeries وS/390). قواعد البيانات المدعومة هي HANA وSAP ASE (المعروف سابقًا باسم Sybase) و IBM Db2 و Informix و MaxDB و Oracle و Microsoft SQL Server (تم إيقاف دعم Informix في إصدار SAP Basis 7.00). [3]
بيئة تشغيل ABAP
توجد جميع برامج ABAP داخل قاعدة بيانات SAP. ولا يتم تخزينها في ملفات خارجية منفصلة مثل برامج Java أو C++. وفي قاعدة البيانات، توجد جميع أكواد ABAP في شكلين: الكود المصدر، الذي يمكن عرضه وتحريره باستخدام أدوات ABAP Workbench؛ والكود المولد، وهو تمثيل ثنائي يمكن مقارنته إلى حد ما بـ Java bytecode. يتم تنفيذ برامج ABAP تحت سيطرة نظام وقت التشغيل، وهو جزء من نواة SAP. يكون نظام وقت التشغيل مسؤولاً عن معالجة عبارات ABAP، والتحكم في منطق تدفق الشاشات والاستجابة للأحداث (مثل قيام المستخدم بالنقر فوق زر الشاشة)؛ ومن هذا المنظور، يمكن اعتباره آلة افتراضية قابلة للمقارنة مع Java VM. أحد المكونات الرئيسية لنظام وقت تشغيل ABAP هو واجهة قاعدة البيانات، التي تحول عبارات ABAP المستقلة عن قاعدة البيانات ("Open SQL") إلى عبارات مفهومة بواسطة نظام إدارة قواعد البيانات الأساسي ("Native SQL"). تتولى واجهة قاعدة البيانات التعامل مع جميع الاتصالات مع قاعدة البيانات العلائقية نيابة عن برامج ABAP؛ ويحتوي أيضًا على ميزات إضافية مثل تخزين الجداول والبيانات التي يتم الوصول إليها بشكل متكرر في الذاكرة المحلية لخادم التطبيق.
أنظمة SAP والمناظر الطبيعية
توجد جميع بيانات SAP ويتم تشغيل جميع برامج SAP في سياق نظام SAP . يتكون النظام من قاعدة بيانات علائقية مركزية وخادم تطبيقات واحد أو أكثر ("مثيلات") للوصول إلى البيانات والبرامج في هذه القاعدة البيانات. يحتوي نظام SAP على مثيل واحد على الأقل ولكنه قد يحتوي على المزيد، وذلك غالبًا لأسباب تتعلق بالحجم والأداء. في نظام يحتوي على مثيلات متعددة، تضمن آليات موازنة التحميل توزيع التحميل بالتساوي على خوادم التطبيقات المتاحة.
تتكون عمليات تثبيت خادم تطبيقات الويب ( المناظر الطبيعية ) عادةً من ثلاثة أنظمة: نظام للتطوير؛ ونظام للاختبار وضمان الجودة؛ ونظام للإنتاج. وقد يحتوي المشهد الطبيعي على المزيد من الأنظمة (على سبيل المثال، أنظمة منفصلة لاختبار الوحدات واختبار ما قبل الإنتاج) أو قد يحتوي على عدد أقل (على سبيل المثال، التطوير والإنتاج فقط، بدون ضمان جودة منفصل)؛ ومع ذلك، فإن ثلاثة أنظمة هي التكوين الأكثر شيوعًا. يتم إنشاء برامج ABAP وتخضع للاختبار الأول في نظام التطوير. وبعد ذلك يتم توزيعها على الأنظمة الأخرى في المشهد الطبيعي. تتم هذه الإجراءات تحت سيطرة نظام التغيير والنقل (CTS)، المسؤول عن التحكم في التزامن (على سبيل المثال، منع مطورين اثنين من تغيير نفس الكود في نفس الوقت)، وإدارة الإصدارات، ونشر البرامج على أنظمة ضمان الجودة والإنتاج.
يتكون خادم تطبيقات الويب من ثلاث طبقات: طبقة قاعدة البيانات؛ وطبقة التطبيق؛ وطبقة العرض. وقد تعمل هذه الطبقات على نفس الأجهزة المادية أو على أجهزة مختلفة. تحتوي طبقة قاعدة البيانات على قاعدة البيانات العلائقية وبرنامج قاعدة البيانات. تحتوي معرفة "طبقة التطبيق" على مثيل أو مثيلات النظام. تعمل جميع عمليات التطبيق، بما في ذلك المعاملات التجارية وتطوير ABAP، على طبقة التطبيق. تتولى طبقة العرض التعامل مع مستخدمي النظام. يمكن الوصول عبر الإنترنت إلى خوادم تطبيقات ABAP عبر واجهة رسومية خاصة، تسمى "SAP GUI"، أو عبر متصفح الويب.
طبقات البرمجيات
يتم نشر برنامج ABAP في مكونات البرنامج. ومن الأمثلة على ذلك:
- SP_BASIS هي الطبقة الأساسية التقنية المطلوبة في كل نظام ABAP.
- يحتوي SAP_ABA على وظائف مطلوبة لجميع أنواع تطبيقات الأعمال، مثل إدارة الشركاء التجاريين والعناوين.
- يوفر SAP_UI الوظيفة اللازمة لإنشاء تطبيقات SAP UI5.
- BBPCRM هو مثال لتطبيق الأعمال، في هذه الحالة تطبيق CRM
- SAP ABAP هي لغة برمجة ERP.
المعاملات
المعاملة في مصطلحات SAP هي تنفيذ برنامج. الطريقة المعتادة لتنفيذ رمز ABAP في نظام SAP هي إدخال رمز معاملة (على سبيل المثال، VA01 هو رمز المعاملة لـ "إنشاء أمر مبيعات"). رموز المعاملات الشائعة (رموز T) التي يستخدمها مطورو ABAP هي SE38 وSE09 وSE10 وSE24 وSE11 وSE16N وSE80 وSE37 وST22 وما إلى ذلك. [4] [5] يمكن استدعاء المعاملات عبر قوائم محددة بواسطة النظام أو قائمة على الأدوار خاصة بالمستخدم. يمكن أيضًا بدءها عن طريق إدخال رمز المعاملة مباشرة في حقل الأوامر، والذي يوجد في كل شاشة SAP. يمكن أيضًا استدعاء المعاملات برمجيًا عن طريق عبارات ABAP CALL TRANSACTION وLEAVE TO TRANSACTION. المفهوم العام للمعاملة يسمى وحدة العمل المنطقية (LUW) في مصطلحات SAP.
أنواع برامج ABAP
كما هو الحال في لغات البرمجة الأخرى، فإن برنامج ABAP هو إما وحدة قابلة للتنفيذ أو مكتبة، والتي توفر كودًا قابلاً لإعادة الاستخدام لبرامج أخرى ولا يمكن تنفيذه بشكل مستقل.
يميز ABAP بين نوعين من البرامج القابلة للتنفيذ:
- التقارير
- مجموعات الوحدات
تتبع التقارير نموذج برمجة بسيط نسبيًا حيث يقوم المستخدم بإدخال مجموعة من المعلمات (على سبيل المثال، اختيار من مجموعة فرعية من البيانات) ثم يستخدم البرنامج معلمات الإدخال لإنتاج تقرير في شكل قائمة تفاعلية. قد يكون مصطلح "تقرير" مضللًا إلى حد ما حيث يمكن أيضًا تصميم التقارير لتعديل البيانات؛ والسبب وراء تسمية هذه البرامج بالتقارير هو طبيعة "القائمة الموجهة" للإخراج الذي تنتجه.
تحدد مجموعات الوحدات أنماطًا أكثر تعقيدًا لتفاعل المستخدم باستخدام مجموعة من الشاشات. يشير مصطلح "الشاشة" إلى الصورة الفعلية المادية التي يراها المستخدم. تحتوي كل شاشة أيضًا على "منطق تدفق"، والذي يشير إلى رمز ABAP الذي يتم استدعاؤه ضمناً بواسطة الشاشات، والذي ينقسم إلى قسم "PBO" (العملية قبل الإخراج) وقسم "PAI" (العملية بعد الإدخال). في وثائق SAP، يشير مصطلح "dynpro" (البرنامج الديناميكي) إلى مجموعة الشاشة ومنطق تدفقها.
أنواع البرامج غير القابلة للتنفيذ هي:
- وحدات INCLUDE – يتم تضمينها في وقت التوليد في وحدة الاستدعاء؛ وغالبًا ما يتم استخدامها لتقسيم البرامج الكبيرة.
- مجموعات البرامج الفرعية – تحتوي على برامج فرعية لـ ABAP (كتل من التعليمات البرمجية محاطة بعبارات FORM/ENDFORM ويتم استدعاؤها باستخدام PERFORM).
- مجموعات الوظائف – وهي عبارة عن مكتبات من وحدات الوظائف المستقلة (المحاطة بـ FUNCTION/ENDFUNCTION ويتم استدعاؤها باستخدام CALL FUNCTION).
- فئات الكائنات - وهي تشبه فئات Java والواجهات؛ تحدد الأولى مجموعة من الأساليب والسمات، وتحتوي الثانية على تعريفات أساليب "فارغة"، والتي يجب على أي فئة تنفذ الواجهة توفير كود صريح لها.
- الواجهات – مثل فئات الكائنات
- مجموعات النوع - تحدد مجموعات من أنواع البيانات والثوابت.
تتكون برامج ABAP من جمل فردية (عبارات). تُسمى الكلمة الأولى في العبارة كلمة ABAP الرئيسية. تنتهي كل عبارة بنقطة. يجب فصل الكلمات دائمًا بمسافة واحدة على الأقل. يمكن وضع مسافة بادئة للعبارات كما يحلو لك. باستخدام الكلمات الرئيسية والإضافات والمتغيرات، لا يفرق نظام وقت تشغيل ABAP بين الأحرف الكبيرة والصغيرة.
يمكن أن تمتد العبارات إلى ما هو أبعد من سطر واحد. يمكنك أن يكون لديك عدة عبارات في سطر واحد (على الرغم من أن هذا غير مستحسن). يتم التعرف على السطور التي تبدأ بعلامة النجمة * في العمود الأول على أنها سطور تعليق بواسطة نظام وقت تشغيل ABAP ويتم تجاهلها. تشير علامات الاقتباس المزدوجة (") إلى أن بقية السطر عبارة عن تعليق.
بيئة التطوير
هناك طريقتان ممكنتان للتطوير في ABAP. يعتمد التوفر على إصدار نظام ABAP.
منضدة عمل ABAP
يعد برنامج ABAP Workbench جزءًا من نظام ABAP ويمكن الوصول إليه عبر واجهة المستخدم الرسومية SAP . ويحتوي على أدوات مختلفة لتحرير البرامج. وأهمها (تظهر رموز المعاملات بين قوسين):
- محرر ABAP لكتابة وتحرير التقارير ومجموعات الوحدات النمطية ومجموعات البرامج الفرعية (SE38)
- قاموس ABAP لمعالجة تعريفات جدول قاعدة البيانات واسترجاع الأنواع العالمية (SE11)
- رسام القائمة لتصميم واجهة المستخدم (شريط القائمة، شريط الأدوات القياسي، شريط أدوات التطبيق، تعيين مفتاح الوظيفة) (SE41)
- برنامج Screen Painter لتصميم الشاشات ومنطق التدفق (SE51)
- منشئ الوظائف لوحدات الوظائف (SE37)
- منشئ الفئات لفئات وواجهات كائنات ABAP (SE24)
يوفر مستكشف الكائنات (المعاملة SE80) واجهة متكاملة واحدة لهذه الأدوات المختلفة.
أدوات تطوير ABAP
أدوات تطوير ABAP ( ADT )، والمعروفة رسميًا باسم "ABAP في Eclipse"، عبارة عن مجموعة من المكونات الإضافية لـ Eclipse IDE لتطوير كائنات ABAP. [6]
في هذا السيناريو، يقوم مطور ABAP بتثبيت الأدوات المطلوبة على جهاز الكمبيوتر الخاص به ويعمل محليًا، بينما يتم إجراء مزامنة مستمرة مع الواجهة الخلفية.
قاموس ABAP
يحتوي قاموس ABAP على كافة البيانات الوصفية المتعلقة بالبيانات في نظام SAP. وهو مرتبط ارتباطًا وثيقًا بـ ABAP Workbench بحيث يتم الحصول على أي مرجع للبيانات (على سبيل المثال، جدول أو عرض أو نوع بيانات) من القاموس. يستخدم المطورون معاملات قاموس ABAP (بشكل مباشر أو من خلال SE80 Object Navigator داخل ABAP Workbench) لعرض هذه البيانات الوصفية وصيانتها.
عند تغيير كائن القاموس، فإن البرنامج الذي يشير إلى الكائن المتغير سوف يشير تلقائيًا إلى الإصدار الجديد في المرة التالية التي يتم فيها تشغيل البرنامج. ولأن ABAP يتم تفسيره، فليس من الضروري إعادة تجميع البرامج التي تشير إلى كائنات القاموس المتغيرة.
فيما يلي وصف موجز لأهم أنواع كائنات القاموس:
- الجداول عبارة عن حاويات بيانات موجودة في قاعدة البيانات العلائقية الأساسية. في أغلب الحالات، توجد علاقة 1 إلى 1 بين تعريف الجدول في قاموس ABAP وتعريف نفس الجدول في قاعدة البيانات (نفس الاسم، نفس الأعمدة). تُعرف هذه الجداول باسم "الشفافة". هناك نوعان من الجداول غير الشفافة: توجد الجداول "المجمعة" ككيانات مستقلة في قاموس ABAP ولكنها مجمعة معًا في جداول مادية كبيرة ("مجموعات") على مستوى قاعدة البيانات. غالبًا ما تكون الجداول المجمعة عبارة عن جداول صغيرة تحتوي على بيانات التكوين على سبيل المثال. يتم تجميع الجداول "المجمعة" فعليًا في "مجموعات" بناءً على مفاتيحها الأساسية؛ على سبيل المثال، افترض أن الجدول المجمع H يحتوي على بيانات "رأسية" حول فواتير المبيعات، بينما يحتوي الجدول المجمع D الآخر على عناصر سطر الفاتورة. سيتم بعد ذلك تجميع كل صف من H فعليًا مع الصفوف ذات الصلة من D داخل "جدول مجمع" في قاعدة البيانات. هذا النوع من التجميع، والذي تم تصميمه لتحسين الأداء، موجود أيضًا كوظيفة أصلية في بعض أنظمة قواعد البيانات العلائقية، ولكن ليس كلها.
- توفر الفهارس إمكانية الوصول السريع إلى بيانات الجدول لشروط التحديد المستخدمة بشكل متكرر. يحتوي كل جدول SAP على "فهرس أساسي"، يتم إنشاؤه ضمنيًا مع الجدول ويُستخدم لفرض تفرد المفتاح الأساسي. يمكن تعريف فهارس إضافية (فريدة أو غير فريدة)؛ تسمى هذه "الفهارس الثانوية".
- إن العروض لها نفس الغرض الموجود في قاعدة البيانات الأساسية: فهي تحدد مجموعات فرعية من الأعمدة (و/أو الصفوف) من جدول واحد أو - باستخدام شرط الانضمام - من عدة جداول. ونظرًا لأن العروض عبارة عن جداول افتراضية (فهي تشير إلى بيانات في جداول أخرى)، فإنها لا تشغل قدرًا كبيرًا من المساحة.
- الهياكل هي أنواع بيانات معقدة تتكون من حقول متعددة (قابلة للمقارنة مع struct في C/C++).
- توفر عناصر البيانات المحتوى الدلالي لحقل جدول أو هيكل. على سبيل المثال، قد تحتوي عشرات الجداول والهياكل على حقل يوضح السعر (لمنتج نهائي أو مادة خام أو مورد، ...). يمكن أن تحتوي كل هذه الحقول على نفس عنصر البيانات "PRICE".
- تحدد المجالات الخصائص البنيوية لعنصر البيانات. على سبيل المثال، يمكن أن يكون لعنصر البيانات PRICE مجال معين يحدد السعر كحقل رقمي يحتوي على رقمين عشريين. يمكن أن تحمل المجالات أيضًا محتوى دلاليًا في توفير قائمة بالقيم المحتملة. على سبيل المثال، يمكن للمجال "BOOLEAN" تحديد حقل من نوع "character" بطول 1 ولا يميز بين الأحرف الكبيرة والصغيرة، ولكنه سيقيد أيضًا القيم المحتملة بـ "T" (true) أو "F" (false).
- تساعد عمليات البحث (التي تحل محل "أكواد المطابقة" التي عفا عليها الزمن الآن) في توفير استراتيجيات بحث متقدمة عندما يرغب المستخدم في رؤية القيم المحتملة لحقل بيانات. توفر عملية تشغيل ABAP مساعدة ضمنية (من خلال سرد جميع القيم للحقل، على سبيل المثال جميع أرقام العملاء الحاليين)، ولكن يمكن استخدام عمليات البحث لتحسين هذه الوظيفة، على سبيل المثال من خلال توفير عمليات بحث العملاء حسب الموقع الجغرافي والتصنيف الائتماني وما إلى ذلك.
- تطبق كائنات القفل قفلًا على مستوى التطبيق عند تغيير البيانات.
بناء جملة ABAP
يبدأ هذا الوصف الموجز لقواعد بناء الجملة ABAP بكلمة "Hello" الشائعة .
مرحبا بالعالم
تقرير الاختبار . اكتب "مرحبا بالعالم!" .
يحتوي هذا المثال على بيانين: REPORTو WRITE. يعرض البرنامج قائمة على الشاشة. في هذه الحالة، تتكون القائمة من سطر واحد "Hello, World!". REPORTيشير البيان إلى أن هذا البرنامج عبارة عن تقرير. يمكن أن يكون هذا البرنامج عبارة عن مجموعة وحدات بعد استبدال REPORTالبيان بـ PROGRAM.
عبارات متسلسلة
يمكن دمج العبارات المتتالية ذات الجزء الأول المتطابق (أقصى اليسار) في عبارة "متسلسلة" باستخدام عامل السلسلة :. يُكتب الجزء المشترك من العبارات على يسار النقطتين، وتُكتب الأجزاء المختلفة على يمين النقطتين ويتم فصلها بفواصل. يُربط عامل النقطتين مباشرة بالرمز السابق، بدون مسافة (ينطبق نفس الشيء على الفواصل في قائمة الرموز، كما يمكن رؤيته في الأمثلة أدناه).
غالبًا ما يتم استخدام التسلسل في WRITEالعبارات. WRITEيقبل فقط وسيطة واحدة، لذلك على سبيل المثال، إذا كنت تريد عرض ثلاثة حقول من هيكل يسمى FLIGHTINFO، فيجب عليك كتابة الكود التالي:
اكتب معلومات الرحلة - من المدينة . اكتب معلومات الرحلة - من المدينة إلى . اكتب معلومات الرحلة - من المطار إلى .
يؤدي ربط العبارات إلى شكل أكثر قابلية للقراءة وأكثر حدسًا:
اكتب : FLIGHTINFO - CITYFROM ، FLIGHTINFO - CITYTO ، FLIGHTINFO - AIRPTO .
في جملة متسلسلة، لا يقتصر الجزء الأول (قبل النقطتين) على اسم الجملة فقط. يمكن وضع الجزء المشترك بالكامل من الجمل المتتالية قبل النقطتين. مثال:
استبدل 'A' بـ 'B' في LASTNAME . استبدل 'A' بـ 'B' في FIRSTNAME . استبدل 'A' بـ 'B' في CITYNAME .
يمكن إعادة كتابتها في شكل متسلسل على النحو التالي:
استبدل 'A' بـ 'B' في : LASTNAME ، FIRSTNAME ، CITYNAME .
تعليقات
لدى ABAP طريقتان لتعريف النص كتعليق :
- علامة النجمة (*) في العمود الأيسر من السطر تجعل السطر بأكمله تعليقًا
- إن وضع علامة اقتباس مزدوجة (") في أي مكان على السطر يجعل بقية هذا السطر تعليقًا
مثال:
***************************************
** البرنامج: الحجوزات **
** المؤلف: جو بايت، 07-يوليو-2007 **
*******************************************
تقرير الحجوزات .
* قراءة حجوزات الطيران من قاعدة البيانات
SELECT * FROM FLIGHTINFO WHERE CLASS = 'Y' "Y = economy OR CLASS = 'C' . "C = business (...)
المساحات
يعتبر الكود في ABAP حساسًا للمسافات البيضاء.
س = أ + ب ( ج ).
يقوم بتعيين السلسلة الفرعية للمتغير a إلى المتغير x، بدءًا من b بالطول المحدد بواسطة المتغير c.
س = أ + ب ( ج ).
يعين إلى المتغير x مجموع المتغير a ونتيجة الاستدعاء إلى الطريقة b باستخدام المعلمة c.
بيانات ABAP
على النقيض من لغات مثل C/C++ أو Java، والتي تحدد مجموعة محدودة من العبارات الخاصة باللغة وتوفر معظم الوظائف عبر المكتبات، تحتوي لغة ABAP على كمية كبيرة من العبارات المضمنة. استخدمت هذه العبارات تقليديًا هياكل تشبه الجمل وتجنبت الرموز، مما يجعل برامج ABAP مطولة نسبيًا. ومع ذلك، في الإصدارات الأحدث من لغة ABAP، من الممكن استخدام أسلوب أكثر إيجازًا. [7]
مثال على بناء الجملة القائم على العبارة (الذي ينشأ بناء جملته في لغة COBOL) مقابل بناء الجملة القائم على التعبير (كما في لغة C/Java):
إضافة ضريبة إلى السعر . * يعادل السعر = السعر + الضريبة .
أنواع البيانات والمتغيرات
يوفر ABAP مجموعة من أنواع البيانات المضمنة. بالإضافة إلى ذلك، يمكن استخدام كل بنية أو جدول أو عرض أو عنصر بيانات محدد في قاموس ABAP لكتابة متغير. كما يمكن استخدام فئات الكائنات والواجهات كأنواع.
أنواع البيانات المضمنة هي:
| يكتب | وصف |
|---|---|
| أنا | عدد صحيح |
| ص | عدد عشري معبأ |
| ف | نقطة عائمة |
| ن | حرف رقمي |
| ج | شخصية |
| د | تاريخ |
| ت | وقت |
| إكس | سداسي عشري (بايت خام) |
| خيط | سلسلة ذات طول متغير |
| إكسترينج | مصفوفة بايتات خام ذات طول متغير |
تحتوي متغيرات أو ثوابت التاريخ (النوع D) على عدد الأيام منذ 1 يناير 1 م. تحتوي متغيرات أو ثوابت الوقت (النوع T) على عدد الثواني منذ منتصف الليل. من الخصائص الخاصة لكلا النوعين أنه يمكن الوصول إليهما كأعداد صحيحة وكسلاسل أحرف (بتنسيق داخلي "YYYYMMDD" للتواريخ و"hhmmss" للأوقات)، والتي يمكن استخدامها للتعامل مع التاريخ والوقت. على سبيل المثال، يحسب مقتطف التعليمات البرمجية أدناه آخر يوم في الشهر السابق (ملاحظة: SY-DATUM هو متغير محدد بواسطة النظام يحتوي على التاريخ الحالي):
DATA LAST_EOM TYPE D . "تاريخ نهاية الشهر الأخير"
* ابدأ من تاريخ اليوم
LAST_EOM = SY - DATUM . * اضبط الأحرف 6 و7 (0-نسبيًا) من سلسلة YYYYMMDD على "01"، * مما يعطي اليوم الأول من الشهر الحالي LAST_EOM + 6 ( 2 ) = '01' . * اطرح يومًا واحدًا LAST_EOM = LAST_EOM - 1 .
اكتب : 'آخر يوم في الشهر السابق كان' ، LAST_EOM .
يجب الإعلان عن جميع متغيرات ABAP صراحةً حتى يمكن استخدامها. ويمكن الإعلان عنها إما باستخدام عبارات فردية وكتابة صريحة أو، منذ ABAP 7.40، بشكل مضمن مع الكتابة المستنتجة .
إعلان مكتوب صراحةً
عادةً ما يتم وضع جميع الإعلانات في أعلى وحدة التعليمات البرمجية (البرنامج، البرنامج الفرعي، الوظيفة) قبل أول بيان قابل للتنفيذ؛ هذا الوضع هو اتفاقية وليس قاعدة نحوية مفروضة. يتكون الإعلان من الاسم والنوع والطول (حيثما ينطبق ذلك) ومعدلات إضافية (على سبيل المثال عدد الأرقام العشرية الضمنية لحقل الأرقام العشرية المعبأة) واختياريًا قيمة أولية:
* الأنواع البدائية:
البيانات : نوع العداد I ، نوع الصلاحية I القيمة 60 ، معدل الضريبة ( 3 ) ، النوع P الأعداد العشرية 1 ، الاسم الأخير ( 20 ) ، النوع C ، نوع الوصف STRING .
* أنواع القاموس:
البيانات : نوع الأصل البلد .
* الجدول الداخلي:
البيانات : T_FLIGHTS نوع جدول FLIGHTINFO ، T_LOOKUP نوع جدول HASHED FLT_LOOKUP .
* الكائنات:
البيانات : نوع الحجز المرجعي إلى CL_FLT_BOOKING .
لاحظ استخدام النقطتين لتسلسل عبارات DATA المتتالية معًا.
إعلان مضمن
منذ ABAP 7.40، [8] يمكن إعلان المتغيرات ضمنيًا باستخدام بناء الجملة التالي:
البيانات ( اسم_المتغير ) = 'القيمة' .
بالنسبة لهذا النوع من الإعلان، يجب أن يكون من الممكن استنتاج النوع بشكل ثابت، على سبيل المثال عن طريق توقيع الطريقة أو بنية جدول قاعدة البيانات.
من الممكن أيضًا استخدام هذا النحو في عبارات OpenSQL:
حدد * من ekko إلى @ DATA ( lt_ekko ) حيث ebeln EQ @ lv_ebeln .
كائنات ABAP
تدعم لغة ABAP البرمجة الموجهة للكائنات ، من خلال ميزة تُعرف باسم "كائنات ABAP". [9] وهذا يساعد على تبسيط التطبيقات وجعلها أكثر قابلية للتحكم.
إن ABAP Objects متوافقة تمامًا مع اللغة الحالية، لذا يمكن للمرء استخدام العبارات ووحدات التضمين الموجودة في البرامج التي تستخدم ABAP Objects، ويمكنه أيضًا استخدام ABAP Objects في برامج ABAP الحالية. يكون فحص بناء الجملة أقوى في برامج ABAP Objects، ولا يُسمح ببعض الأشكال النحوية (الأقدم عادةً) لبعض العبارات.
تشكل الكائنات كبسولة تجمع بين الشخصية والسلوك المعني. يجب أن تمكن الكائنات المبرمجين من رسم خريطة لمشكلة حقيقية وحلها البرمجي المقترح على أساس فردي. الكائنات النموذجية في بيئة الأعمال هي، على سبيل المثال، "العميل" أو "الطلب" أو "الفاتورة". بدءًا من الإصدار 3.1 فصاعدًا، احتوى مستودع كائنات الأعمال (BOR) الخاص بخادم تطبيقات الويب SAP ABAP على أمثلة لمثل هذه الكائنات. سيتم دمج نموذج كائن BOR في كائنات ABAP في الإصدار التالي من خلال ترحيل أنواع كائنات BOR إلى مكتبة فئة ABAP. إن المقدمة الشاملة لتوجيه الكائنات ككل ستتجاوز حدود هذه المقدمة لكائنات ABAP. تقدم هذه الوثائق مجموعة مختارة من المصطلحات المستخدمة عالميًا في توجيه الكائنات والتي تحدث أيضًا في كائنات ABAP. في الأقسام اللاحقة، تستمر في مناقشة كيفية استخدام هذه المصطلحات في كائنات ABAP بمزيد من التفصيل. يحتوي نهاية هذا القسم على قائمة للقراءات الإضافية، مع مجموعة مختارة من العناوين حول التوجه نحو الكائنات.
- الكائنات هي حالات من الفئات. وهي تحتوي على بيانات وتوفر خدمات. وتشكل البيانات سمات الكائن. وتعرف الخدمات بالطرق (المعروفة أيضًا بالعمليات أو الوظائف). وعادةً ما تعمل الطرق على البيانات الخاصة (سمات الكائن أو حالته)، والتي لا يمكن رؤيتها إلا بواسطة طرق الكائن. وبالتالي لا يمكن للمستخدم تغيير سمات الكائن مباشرةً، ولكن فقط بواسطة طرق الكائن. وهذا يضمن الاتساق الداخلي للكائن.
- تصف الفئات الكائنات. من وجهة نظر تقنية، تعد الكائنات حالات تشغيل لفئة ما. من الناحية النظرية، يمكن إنشاء أي عدد من الكائنات استنادًا إلى فئة واحدة. كل حالة (كائن) من الفئة لها هوية فريدة ومجموعة خاصة بها من القيم لسماتها.
- مراجع الكائنات هي عناوين فريدة يمكن استخدامها لتحديد الكائنات والإشارة إليها في برنامج. تتيح مراجع الكائنات الوصول إلى سمات وطرق الكائن.
في البرمجة الموجهة للكائنات، عادةً ما يكون للكائنات الخصائص التالية:
- التغليف – تقيد الكائنات رؤية مواردها (السمات والطرق) للمستخدمين الآخرين. كل كائن له واجهة تحدد كيفية تفاعل الكائنات الأخرى معه. يتم تغليف تنفيذ الكائن، أي أنه غير مرئي خارج الكائن نفسه.
- الوراثة – يمكن استخدام فئة موجودة لاشتقاق فئة جديدة. ترث الفئات المشتقة بيانات وطرق الفئة العليا. ومع ذلك، يمكنها استبدال الطرق الموجودة، وإضافة طرق جديدة أيضًا.
- تعدد الأشكال – تتصرف الطرق المتطابقة (التي تحمل نفس الاسم) بشكل مختلف في فئات مختلفة. في كائنات ABAP، يتم تنفيذ تعدد الأشكال عن طريق إعادة تعريف الطرق أثناء الميراث واستخدام بنيات تسمى الواجهات.
مشاهدات CDS
تُعد خدمات البيانات الأساسية ABAP (ABAP CDS) بمثابة تنفيذ لمفهوم CDS العام لـ AS ABAP. تتيح خدمات ABAP CDS إمكانية تعريف نماذج البيانات الدلالية على قاعدة البيانات المركزية لخادم التطبيق. على AS ABAP، يمكن تعريف هذه النماذج بشكل مستقل عن نظام قاعدة البيانات. توفر كيانات هذه النماذج وظائف وصول محسّنة عند مقارنتها بجداول وعروض قاعدة البيانات الحالية المحددة في قاموس ABAP، مما يجعل من الممكن تحسين التطبيقات المستندة إلى Open SQL. يتضح هذا بشكل خاص عندما يستخدم AS ABAP قاعدة بيانات SAP HANA، حيث يمكن تنفيذ خصائص الذاكرة الخاصة به بطريقة مثالية.
يتم تعريف نماذج البيانات باستخدام لغة تعريف البيانات (DDL) ولغة التحكم في البيانات (DCL) المتوفرة في ABAP CDS في بناء جملة ABAP CDS. يتم دمج الكائنات المحددة باستخدام هذه اللغات في قاموس ABAP وإدارتها هنا أيضًا.
لا يمكن برمجة كود مصدر CDS إلا في أدوات تطوير ABAP المستندة إلى Eclipse (ADT). تستخدم لغة تعريف البيانات (DDL) ولغة التحكم في البيانات (DCL) محررين مختلفين. [10]
سمات
| SAP NW ABAP | انضمامات SQL | عمليات مجموعة SQL | جمل SELECT |
|---|---|---|---|
| 7.40 س ب05 |
|
|
|
| 7.40 س ب08 | |||
| 7.50 | |||
| 7.51 |
|
| SAP NW ABAP | حرفية | العمليات الحسابية | التعبيرات الشرطية |
|---|---|---|---|
| 7.40 س ب05 |
|
|
|
| 7.40 س ب08 |
|
||
| 7.50 | |||
| 7.51 |
|
| SAP NW ABAP | وظائف التجميع | الوظائف العددية | وظائف السلسلة |
|---|---|---|---|
| 7.40 س ب05 |
|
|
|
| 7.40 س ب08 |
|
| |
| 7.50 |
| ||
| 7.51 |
|
|
|
| SAP NW ABAP | وظائف سلسلة البايت | وظائف التاريخ والوقت | وظائف أخرى |
|---|---|---|---|
| 7.40 س ب05 |
| ||
| 7.40 س ب08 |
| ||
| 7.50 |
|
|
|
| 7.51 |
|
|
| SAP NW ABAP | التعبيرات الشرطية (CASE) | قابلية التوسعة | الجمعيات (غير المُدارة) |
|---|---|---|---|
| 7.40 س ب05 |
|
|
|
| 7.40 س ب08 |
|
|
|
| 7.50 |
|
|
|
| 7.51 |
|
|
|
| SAP NW ABAP | متغيرات الجلسة | معلمات الإدخال | آخر |
|---|---|---|---|
| 7.40 س ب05 |
| ||
| 7.40 س ب08 |
|
||
| 7.50 |
|
|
|
| 7.51 |
|
|
[11]
الجداول الداخلية في ABAP
الجداول الداخلية هي ميزة مهمة للغة ABAP. يتم تعريف الجدول الداخلي بشكل مشابه لمتجه struct s في C++ أو متجه الكائنات في Java. الفرق الرئيسي مع هذه اللغات هو أن ABAP يوفر مجموعة من العبارات للوصول بسهولة إلى محتويات الجداول الداخلية والتلاعب بها. لاحظ أن ABAP لا يدعم المصفوفات؛ الطريقة الوحيدة لتعريف كائن بيانات متعدد العناصر هي استخدام جدول داخلي. [ بحاجة لمصدر ]
الجداول الداخلية هي وسيلة لتخزين مجموعات بيانات متغيرة ذات بنية ثابتة في الذاكرة العاملة لـ ABAP، وتوفر وظائف المصفوفات الديناميكية. يتم تخزين البيانات على أساس صف تلو الآخر، حيث يكون لكل صف البنية نفسها.
تُستخدم الجداول الداخلية بشكل مفضل لتخزين وتنسيق محتوى جداول قاعدة البيانات من داخل البرنامج. علاوة على ذلك، تعد الجداول الداخلية المرتبطة بالهياكل وسيلة مهمة لتحديد هياكل البيانات المعقدة في برنامج ABAP.
يقوم المثال التالي بتعريف جدول داخلي يحتوي على حقلين بتنسيق جدول قاعدة البيانات VBRK.
* قم أولاً بتعريف النوع المنظم
TYPES : BEGIN OF t_vbrk ، VBELN TYPE VBRK - VBELN ، ZUONR TYPE VBRK - ZUONR ، END OF t_vbrk .
* الآن قم بتعريف جدول داخلي من النوع المحدد لدينا t_vbrk
DATA : gt_vbrk TYPE STANDARD TABLE OF t_vbrk , gt_vbrk_2 TYPE STANDARD TABLE OF t_vbrk . "من السهل تعريف المزيد من الجداول
* إذا لزم الأمر، قم بتحديد الهيكل (سطر الجدول الداخلي)
* التعريف بالنوع أو بالإشارة إلى الجدول الداخلي:
DATA : gs_vbrk TYPE t_vbrk , gs_vbrk_2 LIKE LINE OF gt_vbrk_2 .
* يمكنك أيضًا تعريف نوع الجدول إذا لزم الأمر
TYPES tt_vbrk TYPE STANDARD TABLE OF t_vbrk .
تاريخ
لا تقدم القائمة التالية سوى لمحة عامة تقريبية عن بعض المعالم المهمة في تاريخ لغة ABAP. لمزيد من التفاصيل، راجع ABAP – التغييرات الخاصة بالإصدار.
| إصدار | تاريخ الافراج عنه | تغييرات كبيرة |
|---|---|---|
| 4.6 درجة مئوية | مايو 2000 |
|
| 6.40 | 2004 |
|
| 7.0 | 2006 |
|
| 7.02 |
| |
| 7.40 | 2012-11-29 |
|
| 7.40 س ب05 | ديسمبر 2013 |
|
| 7.40 س ب08 | سبتمبر 2014 |
|
| 7.50 | نوفمبر 2015 |
|
| 7.51 | أكتوبر 2016 |
|
| 7.52 | سبتمبر 2017 |
|
| 7.54 | سبتمبر 2019 |
|
| 7.55 | سبتمبر 2020 |
|
| 7.56 | أكتوبر 2021 |
|
| 7.57 | أكتوبر 2022 |
|
| 7.58 | أكتوبر 2023 |
|
انظر أيضا
مراجع
- ^ "التغييرات في الإصدارات 7.5x". help.sap.com . مؤرشف من الأصل في 2020-10-24 . تم الاسترجاع 2024-09-03 .
- ^ ""ABAP History". SAP-technical.com". مؤرشف من الأصل في 2017-11-15 . تم الاسترجاع 2010-08-09 .
- ^ "مصفوفة توافر المنتج - PAMs". scn.sap.com . 2016-09-28. مؤرشف من الأصل في 2016-09-28 . تم الاسترجاع 2024-09-03 .
- ^ "قائمة رموز المعاملات". بوابة مساعدة SAP . تم الاسترجاع في 2023-09-09 .
- ^ "القائمة الكاملة لرموز المعاملات في S4/HANA - docsfortec.com". docsfortec.com . مؤرشف من الأصل في 2024-05-14 . تم الاسترجاع في 2024-05-14 .
- ^ "البدء باستخدام أدوات تطوير ABAP لـ SAP NetWeaver | مدونات SAP". 19 يونيو 2012. مؤرشف من الأصل في 28 يونيو 2015. تم الاسترجاع في 15 يونيو 2015 .
- ^ "مثال على برنامج ABAP مع العديد من التعبيرات". مؤرشف من الأصل في 2015-06-19 . تم الاسترجاع 2015-06-19 .
- ^ "البيانات - إعلان مضمن". help.sap.com .
- ^ "Classes"، SAP NetWeaver 7.0 ، تم أرشفته من الأصل في 28 نوفمبر 2009 ، تم استرجاعه في 10 أغسطس 2009
- ^ "ABAP Keyword Documentation". مؤرشف من الأصل في 2019-07-11 . تم الاسترجاع في 2019-07-11 .
- ^ "مصفوفة ميزات ABAP الخاصة بخدمات البيانات الأساسية (CDS) | مدونات SAP". 2 فبراير 2015. مؤرشف من الأصل في 11 يوليو 2019. تم الاسترجاع 11 يوليو 2019 .
روابط خارجية
- ABAP — توثيق الكلمات الرئيسية
- بوابة مساعدة SAP
- مناقشات تطوير ABAP والمدونات والمستندات ومقاطع الفيديو على شبكة SAP Community Network (SCN)
