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

ما هي برمجة الحوار؟
SAP-ABAP يدعم نوعين من البرامج – برنامج التقرير وبرنامج الحوار.
إذا كان برنامج ABAP الخاص بك يتطلب إدخال المستخدم، فسيتم استخدام برمجة الحوار.
حوار المستخدم هو أي شكل من أشكال التفاعل بين المستخدم والبرنامج، ويمكن أن يكون أيًا مما يلي
- إدخال البيانات
- اختيار عنصر القائمة
- النقر فوق زر
- النقر أو النقر المزدوج على إدخال
يُستخدم برنامج الحوار أيضًا عندما نحتاج إلى التنقل ذهابًا وإيابًا بين الشاشات
يتم إنشاء برامج الحوار بالنوع "M" - تجمع الوحدات النمطية. ولا يمكن تنفيذها بشكل مستقل ويجب إرفاقها برمز معاملة واحد على الأقل تحدد فيه شاشة أولية.
الفرق بين برامج التقارير والحوار
برنامج التقرير:
التقرير هو برنامج يقوم عادةً بقراءة البيانات الموجودة في جداول قاعدة البيانات وتحليلها دون تغيير إعداداتها قاعدة بيانات.
برنامج الحوار:
يتيح لك برنامج الحوار العمل بشكل تفاعلي مع النظام وتغيير محتويات جداول قاعدة البيانات. يحتوي كل برنامج حوار على تسلسل معين من الشاشات التي يعالجها النظام واحدة تلو الأخرى.
| المعايير | برنامج التقارير | برامج الحوار |
|---|---|---|
| نوع البرنامج | النوع 1، قابل للتنفيذ | النوع M، مجموعة الوحدات النمطية |
| الوصول إلى قاعدة البيانات | يقرأ ويحلل البيانات | يقرأ البيانات ويغيرها |
| التنفيذ | يعمل بشكل مستقل | يتم التنفيذ فقط من خلال رمز المعاملة |
| السيطرة | أحداث التقرير | منطق تدفق الشاشة لكل شاشة ديناميكية |
يسهل تتبع تسلسل الشاشة لعملية حوارية من خلال مثال.
معالجة نموذجية للمعاملات في برمجة الحوار
يوضح المخطط مسار عملية واحدة بدءًا من الشاشة الأولى وحتى تحديث قاعدة البيانات. يُدخل المستخدم البيانات على الشاشة 100، ثم يتحقق نظام PAI من صحة الإدخال ويحدد الشاشة التالية، وتجمع الشاشة 200 البيانات المتبقية، وأخيرًا تُسجل مهمة التحديث السجل. كل خطوة من هذه الخطوات تتم بواسطة المكونات المذكورة أدناه.
مكونات برنامج الحوار
الغاء الاعجاب تقرير الذي يستلزم عمومًا إنشاء برنامج مستقل واحد يمكن تنفيذه بشكل مستقل عن الكائنات الأخرى، يستلزم تطوير برنامج الحوار تطوير كائنات متعددة لا يمكن تنفيذ أي منها بمفرده. بدلاً من ذلك، يتم ربط جميع الكائنات بشكل هرمي بالبرنامج الرئيسي ويتم تنفيذها في تسلسل تم تحديده بواسطة مربع الحوار الخاص بالبرنامج الرئيسي.
مكونات برنامج الحوار هي:
رمز العملية
- يبدأ رمز المعاملة تسلسل الشاشة.
- يمكنك إنشاء رموز المعاملات في متصفح المستودع في ABAP Workbench أو باستخدام المعاملة SE93.
- يرتبط رمز المعاملة ببرنامج ABAP وشاشة أولية.
- يمكنك بدء تسلسل الشاشة من أي برنامج ABAP باستخدام عبارة CALL SCREEN.
فواصل
- كل حوار في SAP يتم التحكم في النظام من خلال شاشة واحدة أو أكثر.
- يمكنك إنشاء شاشات باستخدام الشاشة Painter في ABAP Workbench من خلال المعاملة SE51
- كل شاشة تنتمي إلى برنامج ABAP.
- تتكون هذه الشاشات من "قناع شاشة" أو "تخطيط" ومنطق التدفق الخاص به. تحتوي الشاشة على تخطيط يحدد مواضع حقول الإدخال/الإخراج والعناصر الرسومية الأخرى مثل مربعات الاختيار وأزرار الاختيار. يحدد منطق التدفق المعالجة المنطقية داخل الشاشة.
حالة واجهة المستخدم الرسومية
- تحتوي كل شاشة على حالة (حالات) واجهة المستخدم الرسومية والتي تعد مكونات مستقلة للبرنامج.
- يتحكم هذا في أشرطة القائمة، وشريط الأدوات القياسي، وشريط أدوات التطبيق، والتي يمكن للمستخدم من خلالها اختيار الوظائف في التطبيق.
- يمكنك إنشاؤها في ABAP Workbench باستخدام القائمة Painter.
برنامج ABAP
- تنتمي كل شاشة وحالة واجهة المستخدم الرسومية في نظام R/3 إلى برنامج ABAP واحد.
- يحتوي برنامج ABAP على وحدات الحوار التي يتم استدعاؤها بواسطة منطق تدفق الشاشة، كما يقوم أيضًا بمعالجة إدخال المستخدم من حالة واجهة المستخدم الرسومية.
- تُعرف برامج ABAP التي تستخدم الشاشات أيضًا ببرامج الحوار.
- في تجمع الوحدات النمطية (برنامج النوع M)؛ أول كتلة معالجة يتم استدعاؤها هي دائمًا وحدة حوار. ومع ذلك، يمكنك أيضًا استخدام الشاشات في برامج ABAP الأخرى، مثل البرامج القابلة للتنفيذ أو الوحدات الوظيفية. ثم يتم استدعاء كتلة المعالجة الأولى بشكل مختلف؛ على سبيل المثال، بواسطة بيئة وقت التشغيل أو استدعاء الإجراء. يتم بعد ذلك بدء تسلسل الشاشة باستخدام عبارة CALL SCREEN.
منطق تدفق الشاشة
ينقسم منطق تدفق الشاشة بشكل أساسي إلى أربعة مكونات.
- العملية قبل الإخراج (PBO) الحدث: الذي تتم معالجته قبل عرض الشاشة
- العملية بعد الإدخال (PAI) الحدث: والذي تتم معالجته بعد إجراء المستخدم على الشاشة
- عملية بناء على طلب المساعدة (بوه): والتي تتم معالجتها عند الضغط على F1
- عملية بناء على طلب القيمة (التصوير): والتي تتم معالجتها عند الضغط على F4
تم شرح POH و POV بالتفصيل في الصفحة المتعلقة بـ معالجة طلب القيمة ومعالجة طلب المساعدة.
دينبرو
- تُسمى الشاشة مع منطق التدفق الخاص بها برنامجًا ديناميكيًا (Dynpro) ("البرنامج الديناميكي") لأن منطق تدفق الشاشة يؤثر على تدفق البرنامج.
- يتحكم كل Dynpro في خطوة واحدة بالضبط من برنامج الحوار الخاص بك.
- الشاشات التابعة للبرنامج هي مرقمةيمكن أن يكون تسلسل تدفق الشاشة خطيًا أو دوريًا. من داخل سلسلة الشاشات، يمكنك استدعاء سلسلة شاشات أخرى، وبعد معالجتها، العودة إلى السلسلة الأصلية. كما يمكنك تجاوز الشاشة التالية المُعرَّفة مسبقًا من داخل وحدات الحوار في برنامج ABAP.
تجمع وحدة ABAP
- عند وقوع حدث PBO أو PAI، يستدعي برنامج Dynpro برنامج حوار ABAP. وتُسمى مجموعة هذه البرامج بمجمع وحدات ABAP.
- على سبيل المثال، يتم استخدام الوحدات النمطية التي يتم استدعاؤها في حدث PAI للتحقق من إدخال المستخدم ولتشغيل خطوات الحوار المناسبة، مثل مهمة التحديث.
- سيتم استدعاء كافة dynpros من الداخل صورة واحدة؟ تشير المعاملة إلى تجمع وحدات مشترك.
هيكل برنامج الحوار
يوضح مخطط الهيكل كيفية ارتباط رمز المعاملة والشاشات وحالة واجهة المستخدم الرسومية ومجموعة الوحدات النمطية بنفس البرنامج الرئيسي.
تدفق العملية لبرنامج الحوار
يوضح مخطط تدفق العملية التناوب بين الشاشة وبرنامج ABAP: يقوم PBO بملء حقول الشاشة، ويتصرف المستخدم، ويقوم PAI بمعالجة المدخلات قبل استدعاء الشاشة التالية.
كيفية إنشاء برنامج مجموعة وحدات
يتم إنشاء المكونات المذكورة أعلاه بترتيب ثابت. أما الخطوات التالية فتُنشئ معاملة عاملة من مجموعة وحدات فارغة.
- إنشاء مجموعة الوحدات النمطية: في SE80، أو في SE38، أنشئ برنامجًا يبدأ اسمه بـ SAPقم بتعيين نوع البرنامج إلى MZ م - مجموعة الوحدات النمطيةلا يمكن تغيير النوع لاحقًا دون حذف الكائن.
- أعلن عن البيانات العالمية: ضع عبارة TABLES والمتغيرات العامة في ملف التضمين العلوي، والذي يمكن لكل وحدة حوار في المجموعة قراءته.
- تصميم الشاشة: أنشئ الشاشة رقم 100 باستخدام الشاشة Painter (SE51)، ضع حقول الإدخال على التخطيط، وأدخل رقم الشاشة التالي في سمات الشاشة.
- اكتب منطق التدفق: في علامة تبويب منطق التدفق، قم باستدعاء وحدة واحدة لـ PBO ووحدة واحدة لـ PAI، كما هو موضح أدناه.
- إنشاء حالة واجهة المستخدم الرسومية: أنشئ حالة باستخدام القائمة Painter (SE41) وقم بتعيينه في وحدة PBO باستخدام عبارة SET PF-STATUS، بحيث تصل وظائف الحفظ والرجوع والخروج إلى البرنامج كرموز وظيفية.
- ربط رمز المعاملة: في SE93، قم بإنشاء معاملة حوار، وقم بتسمية مجموعة الوحدات النمطية، وأدخل 100 كشاشة أولية.
* Screen 100, flow logic PROCESS BEFORE OUTPUT. MODULE status_0100. PROCESS AFTER INPUT. MODULE user_command_0100. * Module pool SAPMZDEMO MODULE status_0100 OUTPUT. SET PF-STATUS 'STATUS_100'. SET TITLEBAR 'TITLE_100'. ENDMODULE. MODULE user_command_0100 INPUT. CASE sy-ucomm. WHEN 'SAVE'. PERFORM save_data. WHEN 'BACK' OR 'EXIT'. LEAVE TO SCREEN 0. ENDCASE. ENDMODULE.
💡 نصيحة: يؤدي الأمر LEAVE TO SCREEN 0 إلى إنهاء الشاشة الحالية والعودة إلى نقطة الاستدعاء، وهي الطريقة القياسية لإنهاء معاملة حوارية بشكل نظيف.




