الفرق بين مخرج المستخدم ومخرج العميل في SAP

⚡ ملخص ذكي

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

  • 🪝 التعريف الأساسي: مخرج العميل هو خطاف يتم وضعه بواسطة SAP داخل برنامج أو شاشة أو قائمة قياسية يقوم العميل بتعليق منطق مخصص عليها.
  • 🧩 ثلاثة أنواع من المخارج: تتيح مخارج وحدة الوظائف إضافة التعليمات البرمجية، وتتيح مخارج الشاشة إضافة الحقول من خلال شاشة فرعية، وتتيح مخارج القائمة إضافة العناصر إلى قائمة منسدلة.
  • 🔍 تحديد مواقع المخارج: يعرض برنامج SMOD قائمة بالمخارج المتاحة، ويستعرضها برنامج SE81 حسب مجال التطبيق.
  • 🛠️ التنفيذ: يتم إنشاء مشروع في CMOD، ويتم تعيين المخرج له، وكتابة الكود، وتفعيل المشروع.
  • 📦 مخرج المستخدم: يؤدي مخرج المستخدم نفس الغرض ولكنه موجود فقط في وحدة SD، مع كون MV45AFZZ هو المثال الأكثر شهرة.
  • 🇧🇷 اختيار الأسلوب: مخارج المستخدم هي إجراءات فرعية SD، ومخارج العميل آمنة عبر الوحدات النمطية والترقية، وBAdI هو الخلف الموجه للكائنات لكليهما.

مخرج المستخدم ومخرج العميل في SAP

ما هي مخارج العملاء؟

مخارج العملاء هي "خطافات" التي تقدمها SAP ضمن العديد من البرامج والشاشات والقوائم القياسية التي يمكن للعملاء الاطلاع عليها "يشنق" وظائف مخصصة لتلبية متطلبات العمل. المزيد حول هذا الموضوع بعد قليل...

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

أنواع خروج العملاء

هناك ثلاثة أنواع رئيسية من مخارج العملاء:

  1. وحدة وظيفة الخروج
  2. مخارج الشاشة
  3. مخارج القائمة

خروج الوحدة الوظيفيةيسمح هذا للعميل بإضافة التعليمات البرمجية عبر وحدة وظائف في موقع محدد في SAP برنامج التطبيق

Syntax: CALL CUSTOMER-FUNCTION '004'

خروج الشاشةيتيح ذلك للعميل إضافة حقول إلى الشاشة في SAP برنامج عبر شاشة فرعية. يتم استدعاء الشاشة الفرعية ضمن منطق تدفق الشاشة القياسية.

Format: CALL CUSTOMER-SUBSCREEN CUSTSCR2

الخروج من القائمة: يُمكّن هذا النظام العميل من إضافة عناصر إلى قائمة منسدلة في نظام قياسي SAP برنامج. يمكن استخدام هذه العناصر للاتصال بالبرامج الإضافية أو الشاشات المخصصة.

Format: +CUS ( additional item in GUI status )

أمثلة على خروج العملاء

مثال على الخروج من الشاشة:

في المعاملة CAT2 – إدخال جدول العمل، ترغب الموارد البشرية في تضمين إقرار تفاعلي بأن تقديم بيانات غير صحيحة عن علم يعد سببًا للفصل.

أمثلة على خروج العملاء

مثال للخروج من القائمة:

في المعاملة SE38 - محرر ABAP، يرغب فريق التطوير في تضمين رابط قائمة للمعاملة SE80 - Object Navigator لسهولة الاستخدام.

BEFORE

أمثلة على خروج العملاء

AFTER

أمثلة على خروج العملاء

مثال على خروج الوحدة الوظيفية:

تريد الشركة أن تكون تفاصيل البنك الخاصة بالبائعين في عملية إنشاء البائع حدثًا إلزاميًا. لذا يجب أن تظهر رسالة خطأ مفادها "الرجاء إدخال تفاصيل البنك"

BEFORE

أمثلة على خروج العملاء

AFTER

أمثلة على خروج العملاء

تحديد موقع مخارج العملاء

في الصفقة سمود وانظر إلى التفاصيل-

تحديد موقع مخارج العملاء

أو في المعاملات SE81 يمكنك استخدام منطقة التطبيق المناسبة

تحديد موقع مخارج العملاء

إنشاء خروج العميل

لإنشاء خروج عميل، عليك أولاً إنشاء مشروع في المعاملة كمود

إنشاء خروج العميل

Later قمت بتعيين "خروج العميل" لمشروعك.

التسلسل الكامل من إيجاد المخرج إلى تفعيل الرمز قصير، ويتبع دائماً نفس الخطوات الست.

  1. ابحث عن التحسين: حدد اسم التحسين في SMOD، على سبيل المثال المكون EXIT_SAPMF02K_001 لبيانات المورد الرئيسية.
  2. إنشاء المشروع: في CMOD، أدخل اسم مشروع يبدأ بالحرف Z أو Y ثم اختر إنشاء.
  3. قم بتعيين التحسين: في شاشة تعيينات التحسينات، أضف اسم التحسين الذي يحتوي على المخرج.
  4. اكتب الكود: افتح مخرج وحدة الوظائف وضع الكود داخل ملف التضمين المحجوز الخاص بها، والذي يبدأ بـ ZX.
  5. التعامل مع أجزاء الشاشة والقوائم: للخروج من الشاشة، قم بإنشاء الشاشة الفرعية CUSTSCR، وللخروج من القائمة، قم بملء رمز الوظيفة +CUS في حالة واجهة المستخدم الرسومية.
  6. تفعيل المشروع: قم بتفعيل المشروع في CMOD حتى يتم استدعاء وظيفة الخروج أثناء التشغيل. بدون التفعيل، يتم تجاهل الكود.

💡 نصيحة: يبدأ تضمين مخرج وحدة الوظائف بـ ZX، لذا يتم نقله مع المشروع. لا تضع المنطق المخصص مباشرةً في SAP وحدة الوظائف، لأن ذلك سيكون تعديلاً وليس تحسيناً.

ما هو مخرج المستخدم؟

يخدم خروج المستخدم نفس غرض خروج العميل ولكنه متاح فقط لـ SD وحدة. يتم تنفيذ الخروج كنداء لوحدة الوظيفة. يتم كتابة الكود من قبل المطور.

نعرف جيدا خروج المستخدم في SD MV45AFZZ

  • USEREXIT_FIELD_MODIFICATION – لتعديل سمات الشاشة
  • USEREXIT_SAVE_DOCUMENT – لإجراء العمليات عندما يضغط المستخدم على حفظ
  • USEREXIT_SAVE_DOCUMENT_PREPARE
  • USEREXIT_MOVE_FIELD_TO_VBAK – عندما يتم نقل تغييرات رأس المستخدم إلى منطقة عمل الرأس.
  • USEREXIT_MOVE_FIELD_TO_VBAP – عندما يتم نقل تغييرات عنصر المستخدم إلى SAP منطقة عمل البند

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

مخرج المستخدم مقابل مخرج العميل

تُضيف كلتا التقنيتين سلوكًا مخصصًا إلى السلوك القياسي SAPلكنها تختلف في نطاقها وتقنيتها ومدى أمان ترقيتها. يقارن الجدول أدناه بينها.

المعايير مخرج المستخدم مخرج العميل
التوفر وحدة بطاقة SD فقط عبر الكل SAP نماذج
تقنية روتين فرعي (FORM) في SAP يشمل ذلك على سبيل المثال MV45AFZZ يتم إدارة وحدة الوظائف أو الشاشة أو مخرج القائمة في SMOD وCMOD
مفتاح الوصول يتطلب مفتاح وصول للتعديل لا حاجة لمفتاح دخول
Upgrade سلوك يجب التحقق من ذلك في الترقية مع SPAU Upgrade آمن، يتم الاتصال به من مكان محجوز يشمل
محفوظة. الموقع مدار من قبل تم التعديل مباشرة في الملف المضمن تم تفعيله من خلال مشروع CMOD

تُعدّ مخارج العملاء أكثر أمانًا وأوسع نطاقًا من المخارج الأخرى. أما بالنسبة للتحسينات التي لا يمكن لأي من المخرجين الوصول إليها، SAP ثم تم طرح الإضافة التجارية.

مخارج العملاء مقابل BAdI

A إضافة الأعمال (BAdI) يُعدّ BAdI خليفةً لـ Customer Exit في البرمجة الكائنية. فبدلاً من تضمين محجوز، يُعرّف BAdI واجهةً، وتُوضع المنطق المخصص في فئة تُنفّذها. وهذا يُوفّر ميزتين لا يُقدّمهما Customer Exit.

  • تطبيقات متعددة: يسمح BAdI متعدد الاستخدامات بتنفيذات مستقلة متعددة لنفس التحسين، بينما يسمح مخرج العميل بتنفيذ واحد فقط.
  • توجيه الكائن: يعمل BAdI مع الأساليب والفئات، لذا فهو يناسب تطوير كائنات ABAP الحديثة ويسهل تصفيته حسب البلد أو سيناريو العمل.

القاعدة العملية بسيطة: استخدم مخرج العميل الحالي أو مخرج المستخدم عندما تكون نقطة التحسين موجودة بالفعل، واستخدم BAdI عندما تكون هناك حاجة إلى نقطة تحسين جديدة قابلة لإعادة الاستخدام.

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

يعرض SMOD SAP تتضمن التحسينات والمكونات الداخلية لها. يقوم CMOD بتجميع تحسين واحد أو أكثر في مشروع العميل، وتعيين الكود، وتفعيله. يُستخدم SMOD للعرض، بينما يُستخدم CMOD للتنفيذ.

لا. يُعدّ مخرج العميل تحسينًا وليس تعديلًا، لذا لا حاجة إلى مفتاح وصول. يتم تعديل مخرج المستخدم مباشرةً في SAP يتضمن ذلك وبالتالي يتطلب مفتاح وصول للتعديل.

قم بتشغيل العملية، ثم افتح النظام، ثم الحالة لقراءة اسم البرنامج، ثم ابحث عن تحسينات هذا البرنامج في SMOD أو SE81. ومن الطرق الشائعة المختصرة البحث في جدول MOD.SAP لمجموعة وظائف البرنامج.

تقوم مساعدات الذكاء الاصطناعي في أدوات تطوير ABAP بقراءة اسم البرنامج واقتراح التحسينات أو المخارج أو BAdI المناسبة، مع شرح تأثير كل منها. يبقى على المطور تأكيد الاختيار وكتابة المنطق داخل الملف المضمن المحجوز.

يقوم مستشارو الذكاء الاصطناعي بتقييم ما إذا كانت نقطة التحسين موجودة بالفعل وعدد عمليات التنفيذ المطلوبة، ثم يوصون عادةً بـ BAdI أو نقطة تحسين للعمل الجديد، ويحتفظونping مخارج كلاسيكية لنقاط لا وجود لها إلا كمخارج.

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