أبا

أبا/4
نموذجكائنية التوجه ، منظمة ، أمرية
صمم بواسطةساب اس اي
ظهرت لأول مرة1983 ؛ منذ 41 سنة ( 1983 )
إصدار مستقر
7.58 [1] / 26 أكتوبر 2023 ؛ منذ 12 شهرًا ( 2023-10-26 )
الانضباط في الطباعةثابت ، قوي ، آمن ، اسمي
نظام التشغيلمتعدد المنصات
موقع إلكتروني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
  • في قائمة SELECT، على سبيل المثال، الحرفي مثل FieldName
  • كقيمة RHS
  • +
  • -
  • المشغلات المنطقية
    • لا، و، أو
  • عوامل المقارنة
    • بين، =، <>، <، >، <=، >=، مثل
    • IS [NOT] NULL (فقط في حالة WHERE)
7.40 س ب08
  • / (تقسيم يعتمد على التعويم)
7.50
7.51
  • وظيفة كقيمة RHS
SAP NW ABAP وظائف التجميع الوظائف العددية وظائف السلسلة
7.40 س ب05
  • متوسط ​​([متميز])
  • الأعلى
  • مين
  • المجموع([متميز])
  • العد ([متميز])
  • عدد(*)
  • سقف
  • وزارة الدفاع
  • سلسلة فرعية
  • لباد
7.40 س ب08
  • نظام ABS
  • DIV (القسمة القائمة على عدد صحيح)
  • القسمة (القسمة على أساس النظام العشري)
  • أرضية
  • دائري
  • كونكات
  • يستبدل
7.50
  • اتصال_بمسافة
  • معهد
  • غادر
  • طول
  • لـتريم
  • يمين
  • ار بي ايه دي
  • رتريم
7.51
  • AVG( [AS] ) لتحديد نوع الإرجاع
  • FLTP_TO_DEC
  • العلوي
  • أدنى
SAP NW ABAP وظائف سلسلة البايت وظائف التاريخ والوقت وظائف أخرى
7.40 س ب05
  • إرسال إلى أنواع DDIC المضمنة، على سبيل المثال abap.fltp
7.40 س ب08
  • التحام
  • تحويل العملة
  • تحويل الوحدة
  • التحول العشري
7.50
  • بنتوهيكس
  • هيكستوبين
  • الأيام_بين_اليومين
  • إضافة أيام
  • إضافة أشهر
  • البيانات_صالحة
  • الوقت_صالح
  • TSTMP_IS_VALID
  • TSTMP_CURRENT_UTCTIMESTAMP
  • TSTMP_ثانية_بين
  • إضافة ثانية TSTMP
  • يقذف
    • إلى عناصر البيانات، على سبيل المثال CHAR80
    • يمكن أن تكون متداخلة
7.51
  • المنطقة الزمنية لنظام ABAP
  • المنطقة الزمنية للمستخدم ABAP
  • TSTMP_TO_DATS
  • TSTMP_TO_TIMS
  • TSTMP_إلى_التوقيت الصيفي
  • DATS_TIMS_TO_TSTMP
  • يقذف
    • الحفاظ على النوع
    • SSTRING إلى أنواع أخرى
    • CLNT وLANG وTIMS وUNIT إلى عناصر البيانات من النوع CHAR وSSTRING
    • CHAR، SSTRING، NUMC إلى ACCP والعكس
    • دالة التجميع كمتغير
SAP NW ABAP التعبيرات الشرطية (CASE) قابلية التوسعة الجمعيات (غير المُدارة)
7.40 س ب05
  • حالة "بسيطة" (تتصرف مثل عبارة التبديل)
  • عبارات CASE المتداخلة
  • $EXTENSION.* (دعم لإضافات جدول قاعدة البيانات)
  • تعبيرات المسار في
    • قائمة الاختيار
    • جملة من
    • جملة WHERE
    • بند الامتلاك
  • شروط التصفية في تعبيرات المسار، على سبيل المثالProducts._Texts[ lagu = 'EN' ] as english_name
7.40 س ب08
  • "تم البحث" CASE (يتصرف مثل if ... else if)
  • توسيع العرض
7.50
  • يمكن استخدام تعبيرات CASE كعوامل في وظائف CAST
  • توسيع العرض باستخدام معلمات الإدخال وتعبيرات المسار والتحويلات ووظائف التاريخ والوقت
7.51
  • وظيفة كقيمة RHS
  • توسيع العرض باستخدام وظائف التجميع وجمل GROUP BY وUNIONs
  • تعريفات الجمعيات في وجهات النظر مع UNIONs
  • المرشحات الافتراضية للجمعيات (مع المرشح الافتراضي)
  • يمكن تحديد عدد "إلى العديد" (*:) في مرشحات المسار
SAP NW ABAP متغيرات الجلسة معلمات الإدخال آخر
7.40 س ب05
  • العناصر الرئيسية
7.40 س ب08
  • معلمات الإدخال في معظم قواعد البيانات
7.50
  • $session.user (sy-uname)
  • $session.client (sy-mandt)
  • $session.system_language (لغة النظام)
  • معلمات الإدخال على AnyDB
  • وظيفة الجدول (SAP HANA فقط)
7.51
  • $session.system_date (تاريخ النظام)
  • امتدادات البيانات الوصفية

[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
  • كائنات ABAP
6.40 2004
  • الكائنات المشتركة
7.0 2006
  • إطار عمل التبديل/مفهوم التحسين
7.02
  • تعبيرات مثل: check lcl=>mi(1) + abs( -2 ) >= 3.
7.40 2012-11-29
  • "إرسال الكود إلى الأسفل" - استخدم الميزات المتقدمة من قاعدة البيانات الأساسية
  • تعبيرات البناء (NEW، VALUE، REF، CONV، CAST، EXACT، COND، SWITCH)
  • واجهات فئات الاختبار التي تم تنفيذها جزئيًا
  • تعبيرات الجدول
  • وظائف وجود خط الجدول الداخلي/فهرس الخط
7.40 س ب05 ديسمبر 2013
  • MOVE-CORRESPONDING للجداول الداخلية
  • تعبير LET في تعبيرات المنشئ
  • المشغل المقابل
  • مشاهدات CDS
  • إجراءات قاعدة البيانات المُدارة من ABAP
7.40 س ب08 سبتمبر 2014
  • تعبيرات FOR
  • عامل البناء REDUCE
  • قيمة البداية لتعبيرات المنشئ
  • التجميع حسب الجداول الداخلية
  • تعبيرات التصفية والقيم الافتراضية لتعبيرات الجدول
  • فتح إعلانات SQL المضمنة بعد عبارة INTO
  • طرق الواجهة الاختيارية
7.50 نوفمبر 2015
  • نوع البيانات المدمج الجديد INT8
  • التعبير العلائقي هو حالة من
  • تعبيرات المضيف المفتوحة لـ SQL
  • تعبيرات SQL المفتوحة ROUND وCONCAT وLPAD وLENGTH وREPLACE وRIGHT وRTRIM وSUBSTRING
  • فتح تعبيرات مسار SQL
  • فتح SQL SELECT UNION
  • فتح الاستعلام الفرعي SQL INSERT FROM
7.51 أكتوبر 2016
  • التعدادات
  • تعبيرات الجدول الشائعة في Open SQL
  • فتح SQL/CDS CROSS JOIN
  • التعامل مع عملاء CDS
  • امتدادات البيانات الوصفية في CDS
  • التاريخ والوقت في Open SQL/CDS
  • النقطة العائمة على Open SQL/CDS
7.52 سبتمبر 2017
  • الفرز الافتراضي للجداول الداخلية
7.54 سبتمبر 2019
  • أنواع البيانات المضمنة الجديدة
  • نوع ABAP الجديد المدمجutclong
  • مهام حسابية
  • الأماكن العشرية في الطوابع الزمنية
  • التعامل مع العملاء
  • امتدادات INTOالبند
  • تعريف الجمعيات
  • دالة تجميعية جديدةSTRING_AGG
  • وظائف مدمجة جديدة
  • الجمع DISTINCTاختياري في الدالة التجميعيةCOUNT
  • تعبيرات النافذة
  • شروط SQL المنقحة
  • التسلسلات الهرمية الزمنية
  • متصفحات التسلسل الهرمي الجديدة
  • التعبيرات التجميعية في تعبيرات SQL
  • CASTالمصفوفة المنقحة
  • الوضع الصارم في فحص بناء الجملة
  • التحقق من بناء الجملة للثوابت الحرفية والمضيفة
  • شرح تلميحات قاعدة البيانات
  • تعليقات توضيحية لإصدار العناصر
  • تحديد كيانات CDS بعدUSING
  • علامات الاقتباس للمخططات المنطقية
  • إضافة in placeالبيانlate numbering
  • إضافةin class ... unique
  • الاسم الخارجي للفعل
  • التحكم في المجال الثابت
  • اسم عشوائي لأساليب المعالج
  • مجموعة السلوك لا استثناءات
  • لغة التلاعب بالكيان
  • TYPE STRUCTURE FOR
  • معلومات الرد
  • أسماء الأنواع المطلقة
  • خدمة الأعمال
  • التحقق من التصاريح في التحديثات
  • نوع الرسالة الضمنية فيIF_T100_DYN_MSG
  • استخدام فئات الاختبار
  • إضافة COMBINATION MODE OR|ANDالبيانGRANT SELECT ON
  • إضافة REDEFINITIONالبيانGRANT SELECT ON
  • مسندVOID
  • إضافة IN SCENARIOالبيانGRANT SELECT ON
  • الشرط العام للبيانDEFINE ROLE
  • متغير جديدINHERITING CONDITIONS FROM SUPER
  • REPLACINGمشغلين مختلفين
  • تعريف الجانب العام
  • قيود DCL لتسلسلات ABAP CDS
  • قيود DCL لكيانات عرض الإسقاط المعاملاتي
7.55 سبتمبر 2020
  • لا يمكن استخدام العبارة الداخلية ABAP EXPORT NAMETAB بعد الآن، مما يؤدي إلى حدوث خطأ وقت التشغيل.
  • لا يزال يتم دعم عبارة ABAP الداخلية IMPORT NAMETAB جزئيًا لأسباب تتعلق بالتوافق مع الإصدارات الأقدم. يؤدي أي وصول إلى إدخالات أنواع جدول DDIC إلى حدوث خطأ وقت التشغيل. يؤدي أي وصول آخر إلى حدوث أخطاء من ATC.
  • لم يعد يتم دعم جدول قاعدة البيانات الأصلية السابق DDNTF لوصف حقول اسم الجدول المنفصل وسيتم حذفه.
  • من الممكن الآن تحديد ارتباطات جديدة بمصادر البيانات الخارجية في عروض إسقاط CDS.
  • يتوفر نوع جديد من عرض CDS: كيان عرض CDS.
  • تم تحسين القيمة الافتراضية لمعلمة الملف الشخصي rdisp/max_alt_modes، التي تحدد العدد المحتمل لجلسات ABAP لكل جلسة مستخدم، من 6 إلى 16 وهي الآن نفس الحد الأقصى لعدد جلسات ABAP لكل جلسة مستخدم.
  • في التعيينات وراء إضافة NEXT لعامل البناء REDUCE، يمكن الآن استخدام عوامل تعيين الحساب +=، +=، *=، /= أو &&=، ويتم تطبيق القواعد ذات الصلة.
  • دعم التعبيرات العادية المتوافقة مع Perl
  • الاستبدالات الحرفية
  • استثناء جديد قابل للاكتشاف CX_SY_STRING_SIZE_TOO_LARGE
  • خيار التنسيق CURRENCY للأرقام العشرية العائمة
  • SQL: دالة تجميعية جديدة ALLOW_PRECISION_LOSS
  • SQL: تحديد إطار النافذة الاختياري داخل وظيفة النافذة
  • SQL: وظائف النافذة الجديدة FIRST_VALUE وLAST_VALUE
  • SQL: وظائف تحويل التاريخ/الوقت الجديدة لـ TIMESTAMPL وDATS وTIMS
  • SQL: وظائف الطابع الزمني الجديدة UTCL_CURRENT وUTCL_ADD_SECONDS وUTCL_SECONDS_BETWEEN
  • SQL: وظائف التاريخ الجديدة DATN_DAYS_BETWEEN وDATN_ADD_DAYS وDATN_ADD_MONTHS
  • SQL: إضافات جديدة بعد شرط ORDER BY: NULLS FIRST و NULLS LAST
  • SQL: وظائف التجميع الجديدة MEDIAN وSTDDEV وVAR وCORR وCORR_SPEARMAN
  • SQL: دالة تحويل الهندسة الجديدة as_geo_json
  • تم تعديل شروط SQL
  • SQL: وظيفة نافذة جديدة NTILE
  • SQL: SELECT، INTO target – يمكن الآن إعلان متغيرات المضيف بشكل مضمن حتى عندما تكون عبارة FROM ديناميكية
  • SQL: وظائف تحويل النوع الجديدة to_clob و to_blob
  • SQL: وظيفة تحويل العملات الجديدة تحويل العملات
  • SQL: يمكن الآن استخدام البث والمحددات على تعبيرات SQL
  • SQL: أنواع البيانات الإضافية المسموح بها في تعبيرات SQL الأولية
  • SQL: خيارات تحميل التسلسل الهرمي
  • SQL: الحروف المكتوبة
  • SQL: وظائف سلسلة جديدة
  • SQL: إضافة إلى شرط UPDATE FROM
  • SQL: الوضع الصارم لفحص بناء الجملة
  • الوصول إلى CDC: التحقق من أن العنصر IS [NOT] INITIAL في حالة حرفية
  • الوصول إلى مركز السيطرة على الأمراض: تجاوز الإضافة عند
  • الوصول إلى مركز السيطرة على الأمراض: التحقق من اسم المستخدم في شروط المستخدم
  • الوصول إلى مركز السيطرة على الأمراض: أنواع البيانات
  • مركز السيطرة على الأمراض: شروط تجاوز الجانب
  • إعلان استثناءات CX_NO_CHECK
7.56 أكتوبر 2021
  • في قاموس ABAP، تم توسيع وحدة التحميل. تتوفر الآن الإعدادات التالية:
    • العمود المفضل
    • الصفحة المفضلة
    • العمود المطبق
    • الصفحة تم فرضها
  • يتيح البيان الجديد EXTEND ABSTRACT ENTITY من DDL الخاص بـ ABAP CDS إمكانية إضافة عناصر جديدة إلى الكيانات المجردة الموجودة في CDS باستخدام ملحقات الكيانات المجردة في CDS
  • في الكيانات المجردة لـ CDS، أصبح من الممكن الآن تعريف ارتباطات بين الوالدين دون شرط ON. يمكن ترك شرط ON خارجًا إذا كان هدف الارتباط هو أيضًا كيان مجرد لـ CDS
  • يمكن لتعريف التسلسل الهرمي DEFINE HIERARCHY الآن استخدام الإضافة الجديدة CACHE ON|OFF|FORCE لتحديد سياسة التخزين المؤقت للتسلسل الهرمي المُنشأ
  • بالنسبة لكل عرض قائم على DDIC من CDS (قديم)، يتم إنشاء عرض DDIC مُدار بواسطة CDS (قديم) في قاموس ABAP عند التنشيط
  • في كيانات عرض CDS، أصبح من الممكن الآن إعادة استخدام التعبيرات المحددة في قائمة SELECT في مواضع متغيرات أخرى لنفس كيان عرض CDS باستخدام بناء الجملة $projection.reuse_exp
  • يتم الآن دعم عبارات UNION في كيانات عرض CDS. هناك بعض الاختلافات بين عبارات UNION في العروض المستندة إلى CDS DDIC. والفرق الأكثر أهمية هو أنه يمكن تضمين فروع عبارات الاتحاد داخل بعضها البعض في كيانات عرض CDS
  • أصبحت الإضافة DISTINCT متاحة الآن لعبارات SELECT في كيانات عرض CDS
  • في كيانات عرض CDS، يتوفر مشغلان جديدان للمجموعة:
    • يستثني
    • تتقاطع
  • تتوفر وظيفتان تحويل جديدتان في كيانات عرض CDS:
    • الحصول على القيمة الرقمية
    • المبلغ المتداول إلى الـDECFLOAT
  • أصبحت النصوص المكتوبة متاحة الآن لكيانات عرض CDS. تسمح النصوص المكتوبة بإعلان نوع صريح وهي متاحة للعديد من أنواع بيانات قاموس ABAP المضمنة
  • في كيانات عرض CDS، تم تنفيذ معالجة خاصة لحقول مبلغ CDS وحقول كمية CDS. وهي تختلف عن معالجة حقول المبلغ وحقول الكمية في DDIC، على سبيل المثال، هناك المزيد من أنواع البيانات الممكنة ويتم النظر في مرجع مفتاح العملة/مفتاح الوحدة في التعبيرات
  • في كيانات عرض CDS، تم توسيع مصفوفة التعبير:
    • في شرط WHERE، يتم دعم التعبيرات الحسابية وتعبيرات الحالة كعوامل
    • في بند HAVING، يتم دعم التعبيرات الحسابية وتعبيرات الحالة كعوامل
    • في تعبير الحالة الذي تم البحث عنه، يتم دعم التعبيرات الحسابية وتعبيرات الحالة كمتعاملات
  • في عروض إسقاط CDS، أصبح من الممكن الآن إعادة تعريف ارتباطات CDS من الكيان المسقط في جزء الرأس. يتم ذلك باستخدام الكلمة الأساسية REDEFINE ASSOCIATION. يمكن أن تتضمن إعادة التعريف مرشحًا جديدًا واسمًا مستعارًا وإعادة التوجيه إلى هدف ارتباط جديد، والذي يجب أن يكون أيضًا عرض إسقاط CDS، وبالتالي نقل نموذج البيانات الكامل إلى طبقة الإسقاط
  • من الممكن الآن تحديد عقد مزود لعرض إسقاط CDS باستخدام الكلمة الأساسية PROVIDER CONTRACT. يحدد عقد المزود السيناريو الذي سيتم فيه استخدام عرض إسقاط CDS، ويحدد السيناريو بدوره وقت التشغيل الذي سيتم فيه تنفيذ العرض والميزات المتاحة
  • يتوفر الآن برنامج ABAP الموثق التالي لتقييم ما إذا كان الانتقال من عرض CDS DDIC (قديم) إلى كيان عرض CDS ممكنًا:
    • مرشحو الهجرة
  • يتوفر الآن برنامج ABAP الموثق التالي لترحيل وجهات النظر المستندة إلى CDS DDIC إلى كيانات عرض CDS:
    • هجرة RUTDDLSV2
  • يتوفر نوع مرجعي جديد للتعليقات التوضيحية:
    • مرجع التعريف المحلي
  • تم إصدار التعليقات التوضيحية الجديدة التالية لـ AbapCatalog.extensibility:
    • AbapCatalog.extensibility.allowNewdataSources
    • AbapCatalog.extensibility.dataSources
    • AbapCatalog.extensibility.elementSuffix
    • كتالوج Abap.قابلية التوسع.قابلة للتوسع
    • AbapCatalog.extensibility.quota.maximumBytes
    • AbapCatalog.extensibility.quota.maximumFields
  • تتوفر وظائف الجدول الجديدة التالية لنظام CDS:
    • ... SERIES_GENERATE_DATE( الخطوة = ... من القيمة = ... إلى القيمة = ... ) ...
    • ... SERIES_GENERATE_INTEGER( الخطوة = ... من القيمة = ... إلى القيمة = ... ) ...
    • ... SERIES_GENERATE_TIME( الخطوة = ... من القيمة = ... إلى القيمة = ... ) ...
    • ... SERIES_GENERATE_TIMESTAMP( الخطوة = ... من القيمة = ... إلى القيمة = ... ) ...
  • يمكن استخدام بناء الجملة التالي لمحدد مكون الكائن -> للوصول إلى المكونات والسمات بشكل ديناميكي الآن:
    • ... {dref->(اسم المركب)} | {cref->(اسم الإضافة)} | {iref->(اسم الإضافة)} ...
  • يمكن الآن استخدام عامل إلغاء المرجع->* لمتغيرات مرجع البيانات ذات النوع العام في جميع مواضع المتغيرات تقريبًا. في السابق، كان ذلك ممكنًا في عبارة ASSIGN فقط
  • من الممكن الآن تحديد عبارات MOVE-CORRESPONDING مع الإضافات التالية في سياق الجداول المتداخلة في الهياكل العميقة. يضمن كلا الأمرين عدم حذف الجداول المتداخلة في الهياكل المستهدفة العميقة وإضافة أسطر جديدة من الجداول المتداخلة في الهياكل المصدرية العميقة
  • من الممكن الآن تحديد العبارات باستخدام عامل المكون الذي يتوافق مع الإضافات التالية في سياق الجداول المتداخلة في الهياكل العميقة. يضمن كلا الأمرين عدم حذف الجداول المتداخلة في الهياكل المستهدفة العميقة وإضافة أسطر جديدة من الجداول المتداخلة في الهياكل المصدرية العميقة:
    • إضافة القاعدة
  • بالإضافة إلى الدعم الحالي لتعبيرات PCRE العادية وتعبيرات POSIX العادية (قديمة)، يدعم ABAP الآن أيضًا تعبيرات XPath العادية وتعبيرات XSD العادية. داخليًا، يتم تحويلها إلى تعبيرات PCRE العادية ومعالجتها بواسطة مكتبة PCRE2
    • يمكن استخدام كلا النوعين من التعبيرات العادية بواسطة الطرق الجديدة (المصنعية) CREATE_XPATH2 وCREATE_XSD من فئات النظام CL_ABAP_REGEX وCL_ABAP_MATCHER
    • يمكن استخدام التعبيرات العادية لـ XPath بواسطة الوسيطة الجديدة xpath في بعض الوظائف المضمنة
  • تدعم الفئة CL_ABAP_MATCHER الآن التعليقات التوضيحية في بناء جملة PCRE. يمكن استخدام الطريقة SET_CALLOUT لتسجيل فئة معالج تنفذ الواجهة IF_ABAP_MATCHER_CALLOUT. ثم تقوم الأحرف الخاصة (?C...) في تعبير عادي PCRE باستدعاء طريقة الواجهة CALLOUT عند تنفيذ الطريقة MATCH
  • الآن، تمت إزالة هذا القيد جزئيًا. في العبارات INSERT وAPPEND وCOLLECT وMODIFY وDELETE وREAD وLOOP وSORT، يمكن أن تكون المتغيرات رموز حقول ومعلمات رسمية مكتوبة بشكل عام بالكامل باستخدام بيانات TYPE أو TYPE any. يمكن استخدام مثل هذه المتغيرات كما لو كانت مكتوبة مع أي جدول. إذا كان هناك وصول إلى الفهرس، فلا تزال المتغيرات مطلوبة والتي يتم كتابتها على الأقل باستخدام TYPE index_table
  • يمكن الآن إعلان أسماء مستعارة للمفاتيح الثانوية للجداول الداخلية باستخدام إضافة ALIAS من TYPES وDATA. يمكن أن يكون هذا مفيدًا عند تغيير المفاتيح الثانوية الحالية دون إبطال صلاحية المستخدمين
  • يدعم ABAP SQL الآن وظيفة السلسلة الجديدة INITCAP
  • وظائف التاريخ والوقت الجديدة
  • طاقم عمل جديد
  • يدعم ABAP SQL الآن مشغلي المجموعة الجديدين INTERSECT وEXCEPT
  • يمكن الآن استخدام معلمة البدء الجديدة في الدالة REPLACE_REGEXPR. بالإضافة إلى ذلك، يمكن الآن أن تتضمن ظاهرة حدوث المعلمة تعبيرات
  • يدعم ABAP SQL الآن دالة السلسلة الجديدة SUBSTRING_REGEXPR التي تدعم التعبيرات العادية
  • إذا تم استخدام إحدى الميزات الجديدة المذكورة أعلاه أو إحدى وظائف جدول نظام CDS الجديدة SERIES_GENERATE_ في ​​عبارة ABAP SQL، فسيتم إجراء فحص بناء الجملة في وضع صارم، والذي يتعامل مع العبارة بشكل أكثر صرامة من فحص بناء الجملة العادي
  • من هذا الإصدار فصاعدًا، يمكن لمؤلفي عناصر التحكم في الوصول وضع علامة على مجموعة فرعية من عناصر CDS المستخدمة في شروط الوصول الخاصة بهم باعتبارها اختيارية، بحيث لا تتأثر كيانات CDS التي ترث شروط الوصول الخاصة بها بتأثير اليوم الأول بعد الآن
  • مع الإضافة الجديدة ALL، يمكن لشروط الوصول أن تعبر عن أنه لن يتم منح الوصول إلا عندما تلبي جميع القيم من ارتباط ذي قيمة محددة الشرط
  • في جميع مواقع عناصر التحكم في الوصول، يمكن كتابة المراجع إلى كائنات التفويض وحقول التفويض وأسماء سيناريوهات SACF في صيغة المعرف عندما تتوافق معها وفي صيغة السلسلة مع استخدام علامات الاقتباس المفردة كبديل
  • عند استخدام جوانب محددة ذاتيًا، يمكن الآن تسمية مجموعة عشوائية من عناصرها (يتم دعم تعبيرات المسار) كعناصر تصفية. يمكن الرجوع إلى عناصر التصفية هذه عند استخدام الجانب المحدد ذاتيًا في شرط الوصول
  • كان قسم REPLACING متاحًا سابقًا فقط للوراثة المستندة إلى الكيان INHERITING CONDITIONS FROM ENTITY cds_ntity متاحًا الآن أيضًا للوراثة المستندة إلى الدور INHERIT role FOR GRANT SELECT ON cds_entity
  • يدعم قسم الاستبدال في وراثة الشرط الآن خطوة استبدال عامة لاستبدال حقل أو ارتباط عشوائي لمصدر الوراثة بحقل أو ارتباط عشوائي لهدف الوراثة
  • كان احترام الإعدادات في إطار التفويض القابل للتبديل (SACF) ممكنًا بالفعل بالنسبة لظروف PFCG المخصصة:
    • ASPECT PFCG_AUTH ( S_OBJECT في السيناريو ... )
  • بالنسبة لتسلسلات CDS الهرمية، كان التحكم في الوصول مقتصرًا على استخدام الشروط التي لا تؤدي إلى تصفية قاعدة البيانات. الآن يمكن استخدام العناصر الموجودة في دليل التسلسل الهرمي المعلن DIRECTORY ... FILTER BY لصياغة مثل هذه الشروط
  • عند تشغيل النظام باستخدام مستخدم الطوارئ SAP*، يتم الآن إلغاء تنشيط التحكم في الوصول إلى CDS
  • بدءًا من الإصدار 7.56، يمكن تكوين الإعدادات المهمة لوثائق الكلمات الرئيسية ABAP بشكل صريح. قبل ذلك، كان يتم تكوين الوثائق ضمنيًا من إعدادات النظام
  • يسمح برنامج ABAP_DOCU_CONFIG بالاختيار بين مجموعات مختلفة من المعلمات:
    • مجموعة المعلمات النموذجية لأنظمة تطوير SAP
    • مجموعة المعلمات النموذجية لأنظمة تطوير العملاء
    • مجموعة المعلمات النموذجية لأنظمة SAP S/4HANA
    • مجموعة المعلمات النموذجية لبيئة SAP S/4HANA Cloud ABAP
    • مجموعة المعلمات النموذجية لبيئة SAP BTP ABAP
    • مجموعة المعلمات الحالية
  • تم تحسين نموذج برمجة التطبيقات RESTful ABAP (RAP)
7.57 أكتوبر 2022
  • يمكن تخصيص مكونات الهياكل لرموز الحقول باستخدام بناء الجملة الجديد struc-(comp) الذي يحل إلى حد كبير محل المتغير ASSIGN COMPONENT OF
  • يمكن تحديد الإضافة الجديدة ELSE UNASSIGN للمتغيرات التالية من العبارة ASSIGN:
    • المهام الديناميكية
    • مهام المكونات الديناميكية
    • الوصول الديناميكي
    • تعيين تعبير الجدول
  • يحل SAP HANA XSA محل SAP HANA XSC. إن طرق الوصول المصممة خصيصًا لكائنات XSC ليست مناسبة لكائنات XSA وقد تم إعلانها قديمة. تعد طرق العرض الخارجية DDIC واحدة من طرق الوصول هذه. وقد تم إعلانها قديمة. يمكن العثور على مزيد من المعلومات في ملاحظات SAP 2465027 و3116165
  • يعلن عامل الإعلان الجديد FINAL عن متغير ثابت لا يمكن تعيين قيمة أخرى له في مواضع كتابة أخرى لنفس السياق
  • تحدد الإضافة الجديدة STEP حجم الخطوة وترتيب معالجة جدول داخلي. بالنسبة إلى العبارات LOOP وFOR، يمكن استخدام STEP للتحكم في حجم الخطوة وترتيب المعالجة. بالنسبة إلى العبارات APPEND وDELETE وINSERT وVALUE وNEW، يمكن استخدام STEP فقط لتحديد حجم الخطوة. لا يمكن تغيير ترتيب المعالجة باستخدام STEP لهذه العبارات
  • لا يُسمح بالوصول إلى فهرس الجدول عند الوصول إلى جدول داخلي باستخدام مفتاح تجزئة (الوصول إلى جدول مجزأ باستخدام مفتاحه الأساسي أو الوصول إلى أي جدول داخلي باستخدام مفتاح ثانوي مجزأ). عند تحديد مفتاح مجزأ ديناميكيًا خلف USING KEY في العبارة LOOP AT أو التعبير FOR ... IN، يجب أن يؤدي استخدام FROM وTO إلى حدوث استثناء. لم تكن هذه هي الحال قبل الإصدار 7.57. من الإصدار 7.57 فصاعدًا، يحدث خطأ وقت التشغيل ITAB_ILLEGAL_INDEX_OP في مثل هذا الموقف. قبل الإصدار 7.57، كان السلوك غير محدد.
  • عند تحديد قيمة سالبة لـ FROM في العبارة LOOP AT أو التعبير FOR ... IN، يتم تعيينها على 1 ضمناً. قبل الإصدار 7.57، لم يكن هذا هو الحال في الموقف التالي:
    • يتم الوصول إلى الجدول الداخلي باستخدام مفتاح مرتب
    • يحتوي الجدول الداخلي على أكثر من 10 أسطر جدول
    • تم تحديد شرط WHERE الذي يمكن تحسينه
  • يسمح بيان IMPORT الآن بتعيين بيانات من النوع n إلى كائنات بيانات من النوع c إذا كان لها نفس الطول. قد يؤدي هذا التغيير إلى سلوك غير متوافق إذا أدى التعامل مع الاستثناء السابق إلى نتائج مختلفة عن السلوك الجديد
  • تم تحسين التخزين المؤقت لكيان CDS: يتم الآن دعم التخزين المؤقت للعرض على العرض، بشرط أن يفي كيان عرض CDS المستخدم كمصدر بيانات بمتطلبات معينة
  • في كيانات عرض CDS، تتوفر إضافة ELSE NULL في التمييز بين الحالات البسيطة والمعقدة. وهي تحدد القيمة الفارغة كقيمة إرجاع لفرع ELSE
  • تمت إضافة خيارات جديدة للبث في كيانات عرض CDS
  • من الممكن الآن تعريف التخزين المؤقت للجدول لكيانات عرض CDS:
    • يمكن تمكين تخزين الجدول مؤقتًا وتعطيله باستخدام التعليق التوضيحي @AbapCatalog.entityBuffer.definitionAllowed: true|false
    • يمكن تحديد نوع التخزين المؤقت باستخدام مخزن كيان CDS المحدد بواسطة DEFINE VIW ENTITY BUFFER ON cds_view_entity ...
  • في كيانات عرض CDS، تم تحسين وظيفة SUBSTRING. فهي الآن لا تقبل فقط الحروف، بل تقبل أيضًا الحقول والمعلمات والتعبيرات والوظائف المضمنة كحجج pos وlen
  • في كيانات عرض CDS، تم تحسين الدالتين LEFT وRIGHT. وهما تقبلان الآن الحروف والحقول والمعلمات والتعبيرات والدالات المضمنة كحجج len
  • في كيانات عرض CDS، يتوفر متغيران جديدان لجلسة التطبيق:
    • معرف النظام الأساسي
    • معرف المنطقة
  • تم إعلان استخدام عروض DDIC المُدارة بواسطة CDS كأمر عفا عليه الزمن. يسرد برنامج ABAP التالي جميع كائنات المستودع التي تستخدم عروض DDIC المُدارة بواسطة CDS:
    • RUT_WHERE_USE_SQLVIEW
  • تتوفر وجهات نظر إسقاط تحليلية لـ CDS لنمذجة الاستعلامات التحليلية. يتم تعريف وجهة نظر إسقاط تحليلية لـ CDS باستخدام DEFINE TRANSIENT VIEW ENTITY AS PROJECTION ON. يجب تعيين قيمة عقد المزود على ANALYTICAL_QUERY
  • يتوفر نوع جديد من عرض إسقاط CDS: واجهة CDS المعاملية. تعمل واجهات CDS المعاملية كطبقة واجهة عامة مستقرة في نموذج بيانات CDS. تُستخدم عادةً في سياق نموذج برمجة التطبيقات RESTful ABAP لتوفير الأساس لواجهة RAP BO. يتم تعريف عرض واجهة CDS المعاملية باستخدام DEFINE VIEW ENTITY AS PROJECTION ON. يجب تعيين قيمة عقد المزود على TRANSACTIONAL_INTERFACE
  • تم تنفيذ معالجة خاصة لحقول مبلغ CDS وحقول كمية CDS للمقارنات في كيانات عرض CDS
  • يتم الآن دعم نوع البيانات abap.string لمعلمات الإدخال في قائمة معلمات كيان عرض CDS وفي قائمة معلمات دالة جدول CDS
  • يتم الآن دعم نوع البيانات abap.string عند ربط المعلمات الفعلية بمعلمات الإدخال لكيان عرض CDS، إذا تم استخدام دالة جدول CDS كمصدر بيانات بعد FROM
  • يتيح البيان الجديد EXTEND CUSTOM ENTITY من DDL الخاص بـ ABAP CDS إمكانية إضافة عناصر جديدة إلى كيانات CDS المخصصة الموجودة باستخدام ملحقات الكيانات المخصصة لـ CDS
  • أصبحت وجهات النظر المستندة إلى CDS DDIC (قديمة)، والتي تم تعريفها باستخدام العبارة DEFINE VIEW، قديمة. عند إنشاء نماذج بيانات جديدة، يجب استخدام كيانات عرض CDS، المحددة باستخدام DEFINE VIEW ENTITY، بدلاً من ذلك
  • إصدارات لغة ABAP القديمة
    • ABAP ثابت مع استخدام مقيد للكائنات
    • ABAP القياسي مع استخدام مقيد للكائنات
  • يحل SAP HANA XSA محل SAP HANA XSC. إن طرق الوصول المصممة خصيصًا لكائنات XSC ليست مناسبة لكائنات XSA وقد تم إعلانها قديمة. يتضمن هذا وجهات نظر DDIC الخارجية ووكلاء إجراءات قاعدة البيانات. يمكن العثور على مزيد من المعلومات في ملاحظات SAP 2465027 و3116165
  • تم تحسين نموذج برمجة التطبيقات RESTful ABAP (RAP)
  • أصبحت أوراق الغش الخاصة بـ ABAP متاحة الآن كجزء من وثائق الكلمات الرئيسية الخاصة بـ ABAP
7.58 أكتوبر 2023
  • يمكن الآن لآراء الإسقاط التحليلي CDS أن تحتوي أيضًا على آراء البعد التحليلي ككيان متوقع.
  • أصبحت ملاحظة CDS @AbapCatalog.preserveKey قديمة ولديها سلوك مختلف جزئيًا الآن.
  • تحدد أنواع CDS البسيطة أنواع البيانات الأولية بشكل أصلي في ABAP CDS. يمكن إثراء نوع CDS البسيط بالبيانات الوصفية باستخدام تعليقات CDS. عبارة بناء الجملة لتحديد نوع CDS البسيط هي DEFINE TYPE.
  • تحدد أنواع CDS المرقمة أنواعًا مرقمة بشكل أصلي في ABAP CDS. عبارة بناء الجملة لتحديد نوع CDS المرقمة هي DEFINE TYPE ENUM.
  • أصبحت خاصية التعليق التوضيحي ABAP Environment.sql.passValue متاحة الآن أيضًا لمعلمات CDS في كيانات عرض CDS، وعروض إسقاط CDS، وتسلسلات CDS الهرمية. تم تحسين نطاق التعليق التوضيحي.
  • يتوفر تعليق توضيحي جديد لـ ABAP في كيانات عرض CDS، وعروض إسقاط CDS، وتسلسلات CDS الهرمية: Environment.sql.passValueForClient. وهو يعمل بطريقة مماثلة للتعليق التوضيحي Environment.sql.passValue، ولكن لحقول العميل. وهو يحدد ما إذا كان سيتم تمرير علامة اختيار؟ أو قيمة حرفية إلى قاعدة البيانات في شرط ABAP SQL عند مقارنة حقل العميل بمتغير مضيف.
  • يتوفر الآن بناء جملة جديد لتحديد عدد ارتباطات CDS، وعمليات الانضمام إلى CDS، وشروط التصفية لتعبيرات مسار CDS
  • الكيان الجديد لـ CDS متاح: دالة CDS القياسية. يتم تعريفها باستخدام عبارة CDS DDL DEFINE SCALAR FUNCTION. ترتبط دالة CDS القياسية بدالة AMDP التي يتم تنفيذها باستخدام SQLScript.
  • تم تحسين مصفوفة الأنواع التي يمكن تحويلها إلى بعضها البعض باستخدام CAST لعرض CDS DDIC (قديم) وللكيانات في عرض CDS. يمكن الآن تحويل أنواع البيانات DECFLOAT16 وDECFLOAT34 إلى نوع البيانات CURR.
  • أصبح الآن شرط WHERE متاحًا أيضًا لواجهات المعاملات CDS لتقييد مجموعة النتائج التي يتم إرجاعها عند الوصول إلى الواجهة المعاملاتية.
  • يمكن الآن استخدام الحروف المكتوبة في المزيد من مواضع المتغيرات في ABAP CDS. ويمكن الآن استخدامها في حالة WHERE لعروض إسقاط CDS وفي حالة ON لارتباطات CDS.
  • يمكن الآن استخدام تعبير إعادة الاستخدام $projection.Field لإعادة استخدام الحقول المحددة عبر تعبير المسار.
  • يتوفر نوع جديد من قواعد الوصول لعروض إسقاط CDS من نوع استعلام معاملات CDS: projection_rule المعرفة باستخدام العبارة GRANT SELECT ON ... AS PROJECTION ON ... FALLBACK ASSOCIATION ....
  • تتوفر وظيفتان جديدتان لـ DCL:
    • حالة وقت تشغيل التبديل
    • تبديل حالة وقت التشغيل
  • تتوفر فئتان جديدتان للنظام للحسابات الرقمية:
    • يحتوي CL_ABAP_BIGINT على طرق لإجراء العمليات الحسابية بأي حجم من الأعداد الصحيحة في ABAP.
    • يحتوي CL_ABAP_RATIONAL على طرق للحساب باستخدام الأعداد النسبية دون أي فقدان للدقة.
  • تقوم الفئة الجديدة CL_ABAP_DIFF بمقارنة محتوى الجداول الداخلية وإرجاع معلومات حول أي اختلافات تم العثور عليها.
  • تعمل الطرق الجديدة MOVE_TRUNC وMOVE_TO_SHORT_TRUNC وADD_TO_SHORT_TRUNC وSUBTRACTSECS_TO_SHORT_TRUNC من فئة النظام CL_ABAP_TSTMP على تقريب الكسور من الثواني في الطوابع الزمنية الطويلة إلى الأسفل بينما تعمل الطرق الحالية MOVE وMOVE_TO_SHORT وADD_TO_SHORT وSUBTRACTSECS_TO_SHORT على التقريب تجاريًا. ونظرًا لأن الأخيرة قد تكون غير متوقعة، فيمكن استخدام الطرق الجديدة الآن للحفاظ على الجزء الصحيح من الطوابع الزمنية الطويلة.
  • باستخدام الطريقة الجديدة GET_CURRENT_PHASE، يمكنك الحصول على معلومات حول مرحلة المعاملات RAP الحالية.
  • تسمح المواصفة الجديدة \LINE بتحديد نوع السطر الخاص بجدول داخلي في اسم نوع مطلق. يمكن أن يتبع \LINE -comp لتحديد نوع مكون نوع السطر.
  • في الطرق الوظيفية، يمكن استخدام العبارة RETURN لتعيين نتيجة تعبير expr إلى قيمة الإرجاع عند إنهاء الطريقة.
  • تسمح الإضافة DEFAULT بتعيين قيم لمكون مستهدف استنادًا إلى تعبير.
  • حتى الآن، لم يتم تحسين شرط WHERE باستخدام الوصول إلى المفتاح إلا في ظل ظروف محدودة للغاية حيث كان من الضروري مقارنة أزواج القيمة الرئيسية صراحةً من أجل المساواة ودمجها باستخدام AND. الآن، يقوم المترجم بتحليل شرط WHERE بدقة ويحاول بنفسه استخراج أزواج القيمة/المفتاح اللازمة للوصول إلى المفتاح.
  • يمكن تعريف تعبيرات ABAP SQL على الجانب الأيمن من الشرط الموجود بين قوسين.
  • يتوفر بناء جملة جديد لتحديد عدد العناصر المرتبطة: {MANY | ONE | {EXACT ONE}} TO {MANY | ONE | {EXACT ONE}}
  • من الممكن الآن معالجة عدة جداول داخلية يتم الوصول إليها باستخدام FROM @itab ضمن عبارة ABAP SQL واحدة باستخدام محرك ABAP SQL. حاليًا، يقتصر هذا على عمليات ربط الجداول الداخلية التي لا تتضمن أي جداول قاعدة بيانات.
  • مع الإضافة الجديدة PRIVILEGED ACCESS، يمكن تعطيل التحكم في وصول CDS لعبارة SELECT كاملة.
  • بدءًا من الإصدار 7.58، توفر شاشة عرض ABAP Keyword Documentation وظيفة لإرسال ملاحظات في أنظمة التطوير غير التابعة لشركة SAP وفي بوابة مساعدة SAP. وحتى الآن، كانت إمكانية إرسال ملاحظات عبر البريد الإلكتروني متاحة فقط في أنظمة التطوير التابعة لشركة SAP. يمكن تشغيل الوظيفة أو إيقاف تشغيلها في تكوين ABAP Keyword Documentation، راجع ملاحظة SAP 3051036.
  • بدءًا من الإصدار 7.58، تقدم وثائق الكلمات الرئيسية لـ ABAP تخطيطًا جديدًا في أدوات تطوير ABAP لـ Eclipse (ADT) حيث يتوفر أيضًا التبديل بين Standard ABAP وABAP Cloud. يتضمن التخطيط الجديد:
    • شريط رأس جديد يحتوي على روابط لملاحظات البريد الإلكتروني وإصدار الويب
    • كتل مفاتيح مميزة للتلميحات وكتل التعليمات البرمجية وغيرها
    • طاولات بخطوط حمار وحشي
  • في الإصدار 7.58، تم تحسين نموذج برمجة التطبيقات RESTful ABAP (RAP) على النحو التالي:
    • RAP BDL في إصدار ABAP 7.58
    • ABAP EML في إصدار ABAP 7.58

انظر أيضا

مراجع

  1. ^ "التغييرات في الإصدارات 7.5x". help.sap.com . مؤرشف من الأصل في 2020-10-24 . تم الاسترجاع 2024-09-03 .
  2. ^ ""ABAP History". SAP-technical.com". مؤرشف من الأصل في 2017-11-15 . تم الاسترجاع 2010-08-09 .
  3. ^ "مصفوفة توافر المنتج - PAMs". scn.sap.com . 2016-09-28. مؤرشف من الأصل في 2016-09-28 . تم الاسترجاع 2024-09-03 .
  4. ^ "قائمة رموز المعاملات". بوابة مساعدة SAP . تم الاسترجاع في 2023-09-09 .
  5. ^ "القائمة الكاملة لرموز المعاملات في S4/HANA - docsfortec.com". docsfortec.com . مؤرشف من الأصل في 2024-05-14 . تم الاسترجاع في 2024-05-14 .
  6. ^ "البدء باستخدام أدوات تطوير ABAP لـ SAP NetWeaver | مدونات SAP". 19 يونيو 2012. مؤرشف من الأصل في 28 يونيو 2015. تم الاسترجاع في 15 يونيو 2015 .
  7. ^ "مثال على برنامج ABAP مع العديد من التعبيرات". مؤرشف من الأصل في 2015-06-19 . تم الاسترجاع 2015-06-19 .
  8. ^ "البيانات - إعلان مضمن". help.sap.com .
  9. ^ "Classes"، SAP NetWeaver 7.0 ، تم أرشفته من الأصل في 28 نوفمبر 2009 ، تم استرجاعه في 10 أغسطس 2009
  10. ^ "ABAP Keyword Documentation". مؤرشف من الأصل في 2019-07-11 . تم الاسترجاع في 2019-07-11 .
  11. ^ "مصفوفة ميزات ABAP الخاصة بخدمات البيانات الأساسية (CDS) | مدونات SAP". 2 فبراير 2015. مؤرشف من الأصل في 11 يوليو 2019. تم الاسترجاع 11 يوليو 2019 .
  • ABAP — توثيق الكلمات الرئيسية
  • بوابة مساعدة SAP
  • مناقشات تطوير ABAP والمدونات والمستندات ومقاطع الفيديو على شبكة SAP Community Network (SCN)
تم الاسترجاع من "https://en.wikipedia.org/w/index.php?title=ABAP&oldid=1243756173"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate