SAP العملية حسب القيمة والعملية عند طلب المساعدة

⚡ ملخص ذكي

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

  • ❓ الغرض من دليل استخدام الهاتف المحمول: يستجيب الأمر PROCESS ON HELP-REQUEST لـ F1 ويعرض وثائق الحقل المخزنة في قاموس ABAP.
  • 🔎 وجهة نظر الغرض: يستجيب PROCESS ON VALUE-REQUEST للضغط على F4 ويعرض الإدخالات الممكنة المحددة بواسطة القيم أو جدول التحقق أو مساعدة البحث.
  • 🧾 قاعدة احتياطية: عندما يكون حدث POH مفقودًا، يعود النظام إلى وثائق عنصر البيانات، ولا يعرض أي شيء عندما يكون هذا العنصر مفقودًا أيضًا.
  • 🚫 حد النقل: لا يقوم بيان FIELD في POH بنقل حقل الشاشة إلى البرنامج، لأنه يعرض المساعدة فقط.
  • 📚 وحدات المساعدة: يعرض HELP_OBJECT_SHOW_FOR_FIELD وثائق عنصر البيانات، ويعرض HELP_OBJECT_SHOW أي SAPوثيقة البرنامج النصي.
  • 📋 وحدات القيمة: يبدأ F4IF_FIELD_VALUE_REQUEST عملية إدخال القاموس، ويعرض F4IF_INT_TABLE_VALUE_REQUEST قائمة تم إنشاؤها داخل البرنامج.
  • ↩️ مسار العودة: تقوم DYNPPROG و DYNPNR و DYNPROFIELD بإرجاع القيمة المختارة إلى حقل الشاشة، بينما تقوم RETURN_TAB بإرجاعها إلى جدول.

SAP عملية تقييم القيمة وعملية طلب المساعدة

ما هما 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 فعّالة لحقل شاشة.

  1. قم بتعريف جدول القيم: أنشئ جدولاً داخلياً يحتوي عموده الأول على القيمة التي تُكتب مرة أخرى على الشاشة. املأه في وحدة PBO أو في وحدة طلب القيمة نفسها.
  2. قم بتسجيل الحقل في منطق التدفق: أضف PROCESS ON VALUE-REQUEST إلى الشاشة وقم بتوصيل الحقل بـ FIELD … MODULE … بحيث يتم تشغيل الوحدة عند الضغط على F4.
  3. استدعاء وحدة الوظائف: قم بتمرير RETFIELD مع اسم العمود، وDYNPROFIELD مع اسم حقل الشاشة، وVALUE_ORG = 'S' لأن القائمة يتم تمريرها كجدول منظم.
  4. أعد القيمة: يحدد DYNPPROG و DYNPNR البرنامج والشاشة، لذلك تتم كتابة الصف المحدد مباشرة في حقل الشاشة دون الحاجة إلى مزيد من التعليمات البرمجية.
  5. قم بتجريبه: قم بتنشيط الشاشة، واضغط على 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 التابعة، مثل روابط شركات الطيران المُدخلة مسبقًا.

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

كلا الأمرين. يقوم المفتاحان F1 وF4 بمقاطعة الشاشة وتشغيل حدث خاص بهما، ثم يعودان إلى الشاشة نفسها. لا تبدأ معالجة PAI العادية إلا عندما يقوم المستخدم بتشغيل رمز وظيفة عادي.

تُنتج خاصية البحث المرفقة بعنصر البيانات أو جدول التحقق قائمة F4 تلقائيًا. ولا يلزم استخدام ترميز POV إلا عند حساب القيم أثناء التشغيل أو اعتمادها على حقل آخر في الشاشة.

مرر DYNPROFIELD مع اسم العمود واستخدم GET CURSOR LINE للعثور على الصف. ثم تقوم وحدة الوظائف بكتابة القيمة في الصف الصحيح من عنصر التحكم في عملية PBO التالية.

نعم. تقوم مساعدات الذكاء الاصطناعي في أدوات تطوير ABAP بكتابة منطق تدفق POV، وSELECT الذي يملأ جدول القيم، واستدعاء F4IF_INT_TABLE_VALUE_REQUEST مع معلمات RETFIELD وDYNPROFIELD الصحيحة.

لا، لا يزال زر F1 يقرأ الوثائق المخزنة في قاموس ABAP. مساعدو الذكاء الاصطناعي مثل SAP يقوم برنامج جول بالإجابة على الأسئلة بلغة بسيطة بجانب الشاشة، مما يكمل وثائق المجال بدلاً من استبدالها.

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