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

ما هي برمجة التقارير في لغة ABAP؟
SAPيدعم ABAP نوعين من البرامج: برامج التقارير وبرامج الحوار. تُستخدم برامج التقارير عند الحاجة إلى عرض كميات كبيرة من البيانات.
الغرض/استخدام برامج التقارير
- تُستخدم هذه الأدوات عندما يتعين تحديد البيانات من عدد من الجداول ومعالجتها قبل عرضها.
- يُستخدم عندما تتطلب التقارير تنسيقًا خاصًا
- يُستخدم عند الحاجة إلى تنزيل التقرير من SAP إلى ورقة Excel ليتم توزيعها عبر.
- يتم استخدامه عندما يتعين إرسال التقرير إلى شخص معين.
نقاط مهمة يجب ملاحظتها حول برنامج التقرير
- برامج التقارير هي دائمًا برامج قابلة للتنفيذ. نوع البرنامج هو دائما 1.
- يتوافق كل برنامج تقرير مع نوع تطبيق معين، أي إما مع المبيعات والتوزيع، أو FI - CO وما إلى ذلك. ويمكن أيضًا أن يكون تطبيقًا متقاطعًا، أي النوع "*".
- برمجة التقارير هي برمجة تعتمد على الأحداث.
- السطر الأول من برنامج التقرير هو دائمًا تقرير .
- لمنع عنوان القائمة أو اسم البرنامج الإضافة لا يوجد عنوان قياسي للصفحة .
- يمكن تعيين حجم السطر لتقرير معين باستخدام الإضافة حجم الخط .
- يمكن تعيين عدد الأسطر لصفحة معينة باستخدام الإضافة عدد الأسطر n(n1). N هو عدد الأسطر للصفحة وN1 هو عدد الأسطر المحجوزة لتذييل الصفحة.
- لعرض أي معلومات أو رسالة خطأ نقوم بإضافة فئة رسالة إلى البرنامج باستخدام الإضافة: معرف الرسالة . يتم الاحتفاظ بفئات الرسائل في SE91.
ولذلك فإن برنامج التقرير المثالي يجب أن يبدأ بما يلي:
Report <report name> no standard page heading line-size <size> line-count <n(n1)> message-id <message class>.
برامج التقارير مقابل برامج الحوار
يعمل كلا نوعي البرامج على نفس النظام، لكنهما يحلان مشكلتين مختلفتين. يقوم برنامج التقارير بقراءة البيانات وعرضها، بينما يسمح برنامج الحوار للمستخدم بإدارتها من خلال الشاشات.
| المعايير | برنامج التقارير | برامج الحوار |
|---|---|---|
| نوع البرنامج | النوع 1، قابل للتنفيذ | النوع M، مجموعة الوحدات النمطية |
| بدأ ب | اسم البرنامج أو رمز المعاملة | رمز المعاملة فقط |
| التحكم في التدفق | أحداث مثل التهيئة وبدء التحديد | منطق تدفق الشاشة مع وحدات PBO و PAI |
| إدخال المستخدم | شاشة اختيار مُولّدة | الشاشات المصممة في الشاشة Painter |
| الاستخدام النموذجي | عرض وتنزيل كميات كبيرة من البيانات | إنشاء وتغيير بيانات الأعمال |
شاشة الاختيار هي المكان الذي يجمع فيه التقرير مدخلاته، لذلك سيتم وصفها لاحقًا.
شاشة التحديد
"شاشة الاختيار" هي الشاشة التي يتم من خلالها تحديد قيم الإدخال التي يجب تشغيل البرنامج بناءً عليها.
يتم إنشاء شاشة التحديد عادةً من
- المعاملات
- اشر على الخيارات
بناء الجملة
Selection-screen begin of screen <screen #> selection-screen begin of block <#> with frame title <text> ......... ......... selection-screen end of block <#> selection-screen end of screen <screen #>
المعاملات
تساعد المعلمات الشخص على القيام بالاختيار الديناميكي. يمكنهم استيعاب قيمة واحدة فقط لدورة واحدة من تنفيذ البرنامج.
بناء الجملة
تحديد المعلمات كنوع بيانات
Parameters p_id(30) type c.
تحديد المعلمات مثل حقل الجدول.
Parameter p_id like <table name>-<field name>.
يمكن أن تكون المعلمات عبارة عن مربعات اختيار وأزرار اختيار.
Parameters p_id as checkbox.Parameters p_id1 radiobutton group <group name>. Parameters p_id2 radiobutton group <group name>.
يمكن أن تكون المعلمات عبارة عن قائمة مربعات.
Parameter p_id like <table name>-<field name> as listbox
الخيارات
يتم استخدام خيار التحديد لإدخال نطاق من القيم أو مجموعة من القيم إلى البرنامج
بناء الجملة
select-options s_vbeln for vbak-vbeln.
تُظهر لقطة الشاشة حقول الإدخال المنخفضة والعالية التي يُنشئها خيار التحديد، بالإضافة إلى زر التحديد المتعدد.
يمكنك أيضًا تحديد خيار تحديد مثل المتغير
select-options s_vbeln for vbak-vbeln no intervals no-extension
بمجرد جمع المدخلات، يتفاعل البرنامج مع تسلسل ثابت من الأحداث.
الأحداث في برنامج تقرير ABAP
برامج تقرير ABAP هي برامج مدفوعة بالحدث. الأحداث المختلفة في برنامج التقرير هي:
تحميل البرنامج
- يقوم بتشغيل الحدث المرتبط في جلسة داخلية بعد تحميل برنامج من النوع 1 أو M أو F أو S.
- يقوم أيضًا بتشغيل كتلة المعالجة المرتبطة مرة واحدة فقط لكل برنامج وجلسة داخلية.
- تحتوي كتلة المعالجة LOAD-OF-PROGRAM على نفس الوظيفة تقريبًا لـ برنامج ABAP من النوع 1 أو M أو F أو S كمنشئ للفئات الموجودة في كائنات ABAP
التهيئة.
- يتم تنفيذ هذا الحدث قبل عرض شاشة التحديد.
- تهيئة كافة القيم.
- يمكنك تعيين قيم مختلفة بخلاف القيم الافتراضية على شاشة التحديد.
- يمكنك ملء شاشة التحديد الخاصة بك ببعض القيم في وقت التشغيل.
في شاشة التحديد.
- تتم معالجة الحدث عند معالجة شاشة التحديد (في نهاية PAI).
- يتم التحقق من صحة والتحقق من القيم المدخلة هنا
بداية الاختيار.
- هنا يبدأ البرنامج باختيار القيم من الجداول.
نهاية الاختيار.
- بعد تحديد كافة البيانات، يقوم هذا الحدث بكتابة البيانات على الشاشة.
أحداث تفاعلية
- تستخدم لإعداد التقارير التفاعلية. يتم استخدامه لإنشاء قائمة مفصلة من القائمة الأساسية.
💡 نصيحة: العبارات المكتوبة بدون أي كلمة مفتاحية للحدث تنتمي إلى START-OF-SELECTION بشكل افتراضي، وهذا هو السبب في أن التقرير لا يزال قيد التشغيل عندما يكون الحدث مفقودًا.
مثال: برنامج تقرير ABAP بسيط
يجمع البرنامج أدناه الإضافات وشاشة الاختيار والأحداث في تقرير واحد متكامل. ويقرأ البرنامج رؤوس أوامر البيع من VBAK للأرقام المُدخلة في شاشة الاختيار، ويكتبها كقائمة.
REPORT z_sales_order_list NO STANDARD PAGE HEADING LINE-SIZE 80 LINE-COUNT 65(3) MESSAGE-ID zsd. TABLES: vbak. DATA: lt_vbak TYPE STANDARD TABLE OF vbak, ls_vbak TYPE vbak. * Selection screen SELECT-OPTIONS: s_vbeln FOR vbak-vbeln. PARAMETERS: p_erdat LIKE vbak-erdat. INITIALIZATION. p_erdat = sy-datum. AT SELECTION-SCREEN. IF p_erdat > sy-datum. MESSAGE e001(zsd). " Date must not lie in the future ENDIF. START-OF-SELECTION. SELECT * FROM vbak INTO TABLE lt_vbak WHERE vbeln IN s_vbeln AND erdat LE p_erdat. END-OF-SELECTION. LOOP AT lt_vbak INTO ls_vbak. WRITE: / ls_vbak-vbeln, ls_vbak-erdat, ls_vbak-netwr. HIDE ls_vbak-vbeln. ENDLOOP.
ثلاثة تفاصيل جديرة بالملاحظة. تقوم عملية التهيئة (INITIALIZATION) بتعبئة مُعامل التاريخ قبل ظهور شاشة الاختيار. تقوم عملية التحقق من صحة الإدخال عند ظهور شاشة الاختيار (AT SELECTION-SCREEN) وتُصدر رسالة من الفئة ZSD. تقوم عملية الإخفاء (HIDE) بتخزين رقم ترتيب كل صف مُدخل، بحيث يُمكن إنشاء قائمة ثانوية منه بالنقر المزدوج، وهو موضوع القسم التالي.
تنسيق التقرير
يسمح ABAP بتنسيق التقارير بالشكل الذي يريده المستخدم. على سبيل المثال، يجب أن يظهر "الأسطر البديلة" بألوان مختلفة ويجب أن يظهر سطر "الإجماليات" باللون الأصفر.
بناء الجملة
Format Color n Format Color n Intensified On
n قد تتوافق مع أرقام مختلفة
يرجى ملاحظة أن هناك إضافات أخرى إلى جانب التنسيق أيضًا
FORMAT COLOR OFF INTENSIFIED OFF INVERSE OFF HOTSPOT OFF INPUT OFF
برمجة التقارير التفاعلية
- باستخدام البرمجة التفاعلية، يمكن للمستخدمين التحكم بشكل فعال في استرجاع البيانات وعرضها.
- تُستخدم لإنشاء قائمة مفصلة من قائمة أساسية للغاية
- تتم كتابة البيانات التفصيلية في قائمة ثانوية.
- قد تغطي القائمة الثانوية الشاشة الأولى بالكامل أو يمكن عرضها في شاشة جديدة
- يمكن أن تكون القوائم الثانوية تفاعلية في حد ذاتها.
- قد تستدعي القائمة الأولى أيضًا معاملة.
- هناك أحداث مختلفة مرتبطة بالبرمجة التفاعلية.
بعض الأوامر المستخدمة في البرمجة التفاعلية
نقطة ساخنة
إذا قمت بسحب الماوس فوق البيانات المعروضة في التقرير، يتغير شكل المؤشر إلى شكل يد بإصبع السبابة ممدود. يمكن تحقيق نقطة اتصال فعالة باستخدام عبارة FORMAT.
Syntax: Format Hotspot On (Off).
إخفاء
يساعدك هذا الأمر على تخزين أسماء الحقول بناءً على الاسم الذي سيتم إجراء المزيد من المعالجة للحصول على قائمة مفصلة. تتم كتابته مباشرة بعد عبارة WRITE للحقل. عند تحديد صف، يتم ملء القيم تلقائيًا بالمتغيرات لاستخدامها مرة أخرى.
Syntax: Hide <field-name>.
يمكن للتقارير التي تقرأ العديد من الجداول استبدال عبارات SELECT الخاصة بها بقاعدة بيانات منطقية، كما هو موضح أدناه.
قواعد البيانات المنطقية
- بدلاً من استخدام استعلامات "تحديد"، يمكنك استخدام قاعدة البيانات المنطقية لاسترداد البيانات الخاصة بأحد البرامج.
- يتم إنشاء قواعد البيانات المنطقية عن طريق المعاملة SE36
- يمكن أن يصل طول اسم قاعدة البيانات المنطقية إلى 20 حرفًا. قد يبدأ ببادئة مساحة الاسم.
- يتم تحديد البيانات بواسطة برنامج آخر ويمكن الوصول إلى البيانات باستخدام GET الأمر الذي يضع البيانات في منطقة العمل .
مزايا قاعدة البيانات المنطقية مقارنة باستعلامات التحديد العادية.
- فهو يوفر شروط فحص لمعرفة ما إذا كانت الإدخالات صحيحة وكاملة ومعقولة
- أنه يحتوي على عمليات التحقق من الترخيص المركزي للوصول إلى قاعدة البيانات
- تنطبق التحسينات مثل تحسين الأداء على الفور على جميع التقارير التي تستخدم قاعدة البيانات المنطقية.
ملاحظة: نظرًا للتعقيدات المتضمنة، لا يتم استخدام قواعد البيانات المنطقية في معظم الحالات
