البرنامج التعليمي لبرمجة الحوار: وحدة التجميع في SAP ABAP

⚡ ملخص ذكي

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

  • 💬 التعريف الأساسي: يتولى برنامج الحوار أي تفاعل للمستخدم، مثل إدخال البيانات أو اختيار عنصر من القائمة أو النقر فوق زر، ويمكنه تحديث قاعدة البيانات.
  • 🅼 نوع البرنامج: برامج الحوار هي مجموعات وحدات نمطية من النوع M، ولا يمكن تشغيلها بمفردها، ويجب ربطها برمز معاملة واحد على الأقل مع شاشة أولية.
  • 🧩 المكونات: يشكل رمز المعاملة والشاشات وحالة واجهة المستخدم الرسومية ومجموعة وحدات ABAP ومنطق التدفق معًا تطبيق حوار واحد.
  • 🔄 منطق التدفق: يتم تشغيل PBO قبل ظهور الشاشة، ويتم تشغيل PAI بعد إجراء المستخدم، ويجيب POH على F1، ويجيب POV على F4.
  • 🖥️ داينبرو: الشاشة بالإضافة إلى منطق التدفق الخاص بها هي شاشة ديناميكية، وكل شاشة ديناميكية تتحكم في خطوة واحدة بالضبط من الحوار.
  • 📦 مجموعة الوحدات النمطية: تشير جميع وحدات dynpros التي يتم استدعاؤها ضمن معاملة واحدة إلى مجموعة وحدات نمطية مشتركة تحتوي على وحدات الحوار.
  • 🛠️ مسار الإنشاء: يقوم SE80 بإنشاء مجموعة الوحدات النمطية، ويقوم SE51 بتصميم الشاشة، ويقوم SE41 ببناء حالة واجهة المستخدم الرسومية، ويقوم SE93 بربط رمز المعاملة.

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 بمعالجة المدخلات قبل استدعاء الشاشة التالية.

كيفية إنشاء برنامج مجموعة وحدات

يتم إنشاء المكونات المذكورة أعلاه بترتيب ثابت. أما الخطوات التالية فتُنشئ معاملة عاملة من مجموعة وحدات فارغة.

  1. إنشاء مجموعة الوحدات النمطية: في SE80، أو في SE38، أنشئ برنامجًا يبدأ اسمه بـ SAPقم بتعيين نوع البرنامج إلى MZ م - مجموعة الوحدات النمطيةلا يمكن تغيير النوع لاحقًا دون حذف الكائن.
  2. أعلن عن البيانات العالمية: ضع عبارة TABLES والمتغيرات العامة في ملف التضمين العلوي، والذي يمكن لكل وحدة حوار في المجموعة قراءته.
  3. تصميم الشاشة: أنشئ الشاشة رقم 100 باستخدام الشاشة Painter (SE51)، ضع حقول الإدخال على التخطيط، وأدخل رقم الشاشة التالي في سمات الشاشة.
  4. اكتب منطق التدفق: في علامة تبويب منطق التدفق، قم باستدعاء وحدة واحدة لـ PBO ووحدة واحدة لـ PAI، كما هو موضح أدناه.
  5. إنشاء حالة واجهة المستخدم الرسومية: أنشئ حالة باستخدام القائمة Painter (SE41) وقم بتعيينه في وحدة PBO باستخدام عبارة SET PF-STATUS، بحيث تصل وظائف الحفظ والرجوع والخروج إلى البرنامج كرموز وظيفية.
  6. ربط رمز المعاملة: في 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 إلى إنهاء الشاشة الحالية والعودة إلى نقطة الاستدعاء، وهي الطريقة القياسية لإنهاء معاملة حوارية بشكل نظيف.

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

يفتح الأمر CALL SCREEN شاشة جديدة ويحتفظ بالشاشة الأصلية في قائمة الانتظار، بحيث يعود المعالجة إليها. أما الأمر LEAVE TO SCREEN فيستبدل الشاشة الحالية، ولا يعود أي شيء إلى الشاشة الأصلية.

مجموعة وحدات تسمى SAPينقسم ملف MZDEMO إلى MZDEMOTOP للبيانات العامة، وMZDEMOO01 لوحدات PBO، وMZDEMOI01 لوحدات PAI، وMZDEMOF01 للبرامج الفرعية. ويقوم برنامج العمل بإنشائها تلقائيًا.

قم بتعيين نوع وظيفة الزر E في حالة واجهة المستخدم الرسومية، واستدعِ وحدته باستخدام الأمر MODULE exit AT EXIT-COMMAND. ثم يتم تشغيل الوحدة قبل التحقق من صحة الحقول، مما يسمح للمستخدم بمغادرة الشاشة التي تحتوي على إدخالات غير صالحة.

نعم. تقوم مساعدات الذكاء الاصطناعي داخل أدوات تطوير ABAP بصياغة وحدات PBO وPAI، وعبارة CASE على SY-UCOMM، وعمليات التحقق من صحة الحقول من وصف الشاشة. أما التخطيط نفسه فيتم رسمه في الشاشة. Painter.

لا تزال شركة Dynpros تشغل جميع الآلات الكلاسيكية SAP معاملات واجهة المستخدم الرسومية. عادةً ما يتم بناء واجهات المستخدم الجديدة باستخدام Fiori، وتساعد أدوات الذكاء الاصطناعي من خلال قراءة منطق التدفق الحالي واقتراح تصميم خدمة وتطبيق مكافئ.

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