SAP العملية حسب القيمة والعملية عند طلب المساعدة
⚡ ملخص ذكي
تُعدّ عمليتا "المعالجة عند طلب القيمة" و"المعالجة عند طلب المساعدة" من أحداث الشاشة التي تقف وراء مفتاحي F4 وF1 في SAP ABAP. تشرح هذه الصفحة كلا الحدثين، وعبارات FIELD التي تؤدي إلى تشغيلهما، ووحدات الوظائف التي تعرض الوثائق أو الإدخالات المحتملة.

ما هما POH و POV؟
أولاً، لنبدأ إذا لم تكن لديك أي فكرة عن منطق تدفق الشاشة واستخداماته في SAPننصحك بالاطلاع على دليلنا التعليمي حول برامج الحوار.
يُعدّ كلٌّ من POH و POV حدثين على الشاشة يُجيبان على طلب المساعدة من المستخدم. يستجيب POH للضغط على مفتاح F1 ويشرح معنى الحقل، بينما يستجيب POV للضغط على مفتاح F4 ويعرض القيم التي يقبلها الحقل. يتم تعريف كلا الحدثين في منطق تدفق الشاشة، بجانب PBO و PAI.
| المعايير | POH (عملية طلب المساعدة) | وجهة نظر (عملية بناءً على طلب القيمة) |
|---|---|---|
| الناجمة عن | مفتاح F1 | مفتاح F4، أو زر الإدخالات الممكنة |
| الهدف | يشرح معنى المجال | يعرض القيم التي يقبلها الحقل |
| المصدر الافتراضي | توثيق عناصر البيانات في قاموس ABAP | القيم الثابتة، أو جدول التحقق، أو مساعدة البحث |
| نقل البيانات | لا شيء، يتم عرض الحقل فقط | تُكتب القيمة المختارة مرة أخرى في حقل الشاشة |
| وحدة وظيفية نموذجية | HELP_OBJECT_SHOW_FOR_FIELD | F4IF_INT_TABLE_VALUE_REQUEST |
الآن، دعونا ننظر إلى POH وPOV بالتفصيل
عملية طلب المساعدة (POH): تعليمات F1
- عند الضغط على F1 يتم تنفيذ حدث POH لعنصر البيانات المحدد.
- إذا لم يكن حدث PROCESS ON HELP-REQUEST موجودًا في منطق عملية الشاشة، فسيتم استخدام توثيق الحقل في قاموس ABAP كأساس لعرض المساعدة. حتى في حال عدم وجود هذا التوثيق، لن يتم عرض أي مساعدة.
- لعرض وثائق مساعدة الحقل، يجب عليك برمجة منطق تدفق الشاشة التالي في حدث POH:
PROCESS ON HELP-REQUEST FIELD <f> [MODULE <mod>] WITH <num>
- إذا كان هناك وثائق عنصر بيانات خاصة بالشاشة للحقل ، يمكنك عرضه عن طريق تحديد رقمه .
- الرقم يمكن أن يكون حرفيا أو متغيرا. يجب الإعلان عن المتغير وتعبئته في برنامج ABAP المقابل.
- لاحظ أن عبارة FIELD لا تنقل محتويات حقل الشاشة لبرنامج ABAP في حدث PROCESS ON HELP-REQUEST. إنه يعرض فقط وثائق المساعدة. هذا كل شيء.
الوحدة يُعرَّف هذا الجزء في برنامج ABAP كوحدة PAI عادية. يجب أن تضمن آلية معالجة الوحدة عرض مساعدة كافية للحقل المعني. بدلاً من استدعاء شاشة إضافية تحتوي على حقول نصية، يُنصح باستخدام إحدى وحدات الوظائف التالية لعرض مساعدة مناسبة. SAPوثيقة البرنامج النصي
HELP_OBJECT_SHOW_FOR_FIELD
- تعرض وحدة الوظيفة هذه وثائق عنصر البيانات لمكونات أي بنية أو جدول قاعدة بيانات من قاموس ABAP.
- يمكنك تمرير اسم المكون والبنية أو الجدول إلى معلمات الاستيراد FIELD وTABLE.
HELP_OBJECT_SHOW
- استخدم وحدة الوظيفة هذه لعرض أي منها SAPوثيقة البرنامج النصي.
- يجب عليك تمرير فئة المستند (على سبيل المثال، TX للنصوص العامة، وDE لتوثيق عناصر البيانات) واسم المستند إلى معلمات الاستيراد DOKCLASS وDOKNAME.
- لأسباب فنية، يجب عليك أيضًا تمرير جدول داخلي فارغ بنوع السطر TLINE إلى معلمات الجداول الخاصة بوحدة الوظائف.
يشرح F1 الحقل. ويسرد الحدث التالي ما يمكن إدخاله فيه.
العملية على القيمة (POV): F4
- عندما يختار المستخدم الوظيفة الإدخالات المحتملة (F4)، يعرض النظام قيم الإدخال المحتملة لحقل (القيم، جدول الاختيار، رمز المطابقة)، بشرط أن يتم تخزينها بواسطة المطور.
- تتم دائمًا معالجة الحدث PROCESS ON VALUE-REQUEST إذا قام المستخدم باستدعاء "الإدخالات المحتملة".
- لتحديد القيم المحتملة لحقل على الشاشة، يجب عليك تحديد ما يلي في حدث POV لمنطق تدفق الشاشة:
PROCESS ON VALUE-REQUEST FIELD field name MODULE module name
- بالنسبة للقيم المحتملة، ضمن الوحدة النمطية المحددة أعلاه، يجب عليك استخدام وحدة الوظيفة العامة HELP_VALUES_GET_WITH_TABLE للحصول على القيم الممكنة من قاموس ABAP.
هناك بعض الوظائف الأخرى التي يمكن استخدامها أيضًا للمساعدة في الإدخال:
F4IF_FIELD_VALUE_REQUEST
- يستدعي مساعدة الإدخال الخاصة بقاموس ABAP ديناميكيًا.
- يمكنك تمرير أسماء مكونات البنية أو جدول قاعدة بيانات قاموس ABAP إلى الوحدة النمطية للوظيفة في معلمات الاستيراد TABNAME وFIELDNAME.
- تبدأ الوحدة الوظيفية قاموس ABAP تعليمات الإدخال لهذا المكون. تتم قراءة كافة حقول الشاشة ذات الصلة.
- إذا قمت بتحديد معلمات الاستيراد DYNPPROG، وDYNPNR، وDYNPROFIELD، فسيتم إرجاع اختيار المستخدم إلى الحقل المقابل على الشاشة.
- إذا قمت بتحديد معلمة الجدول RETURN_TAB، فسيتم إرجاع التحديد إلى الجدول بدلاً من ذلك.
MODULE VALUE_CARRIER INPUT. CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST' EXPORTING TABNAME = 'DEMOF4HELP' FIELDNAME = 'CARRIER1' DYNPPROG = PROGNAME DYNPNR = DYNNUM DYNPROFIELD= 'CARRIER'. ENDMODULE.
F4IF_INT_TABLE_VALUE_REQUEST
- تعرض وحدة الوظيفة هذه قائمة القيم التي قمت بإنشائها في ملف برنامج ABAP.
- يتم تمرير قائمة القيم إلى الوحدة النمطية للوظيفة كمعلمة الجدول VALUE_TAB.
- إذا قمت بتحديد معلمات الاستيراد DYNPPROG، وDYNPNR، وDYNPROFIELD، فسيتم إرجاع اختيار المستخدم إلى الحقل المقابل على الشاشة.
- إذا قمت بتحديد معلمة الجدول RETURN_TAB، فسيتم إرجاع التحديد إلى الجدول بدلاً من ذلك.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING RETFIELD = 'CONNID' DYNPPROG = PROGNAME DYNPNR = DYNNUM DYNPROFIELD = 'CONNECTION' VALUE_ORG = 'S' TABLES VALUE_TAB = VALUES_TAB.
هذا كل شيء بالنسبة إلى POH وPOV. اترك تعليقاتك في حالة وجود أي شكوك.
كيفية إنشاء مساعدة F4 من جدول داخلي
يتم إنشاء قائمة قيم غير موجودة في قاموس ABAP داخل البرنامج، ثم تُمرر إلى الدالة F4IF_INT_TABLE_VALUE_REQUEST. تُنتج الخطوات التالية مساعدة F4 فعّالة لحقل شاشة.
- قم بتعريف جدول القيم: أنشئ جدولاً داخلياً يحتوي عموده الأول على القيمة التي تُكتب مرة أخرى على الشاشة. املأه في وحدة PBO أو في وحدة طلب القيمة نفسها.
- قم بتسجيل الحقل في منطق التدفق: أضف PROCESS ON VALUE-REQUEST إلى الشاشة وقم بتوصيل الحقل بـ FIELD … MODULE … بحيث يتم تشغيل الوحدة عند الضغط على F4.
- استدعاء وحدة الوظائف: قم بتمرير RETFIELD مع اسم العمود، وDYNPROFIELD مع اسم حقل الشاشة، وVALUE_ORG = 'S' لأن القائمة يتم تمريرها كجدول منظم.
- أعد القيمة: يحدد DYNPPROG و DYNPNR البرنامج والشاشة، لذلك تتم كتابة الصف المحدد مباشرة في حقل الشاشة دون الحاجة إلى مزيد من التعليمات البرمجية.
- قم بتجريبه: قم بتنشيط الشاشة، واضغط على F4 في الحقل، وتأكد من ظهور القائمة وأن التحديد يصل إلى الحقل.
* Flow logic of the screen PROCESS ON VALUE-REQUEST. FIELD spfli-connid MODULE f4_connid. * Module in the ABAP program MODULE f4_connid INPUT. DATA: lt_values TYPE STANDARD TABLE OF spfli. SELECT * FROM spfli INTO TABLE lt_values WHERE carrid = spfli-carrid. CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING retfield = 'CONNID' dynpprog = sy-repid dynpnr = sy-dynnr dynprofield = 'SPFLI-CONNID' value_org = 'S' TABLES value_tab = lt_values. ENDMODULE.
💡 نصيحة: اقرأ قيمة حقل شاشة آخر باستخدام وحدة الوظائف DYNP_VALUES_READ قبل ملء القائمة. هكذا يتم إنشاء مساعدة F4 التابعة، مثل روابط شركات الطيران المُدخلة مسبقًا.
