Різниця між виходом користувача та виходом клієнта SAP
⚡ Розумний підсумок
Виходи користувачів та виходи клієнтів у SAP ABAP — це перехоплювачі покращень, які додають користувацьку функціональність до стандартних програм без їхньої зміни. SAP код. На цій сторінці пояснюються типи виходів клієнтів, робочі приклади, транзакції SMOD та CMOD, виходи користувачів та відмінності між цими двома методами.
Що таке вихід клієнтів?
Клієнтські виходи є «гачки» надаються SAP у багатьох стандартних програмах, екранах і меню, на яких клієнти можуть "повісити" налаштовуваний функціонал для задоволення бізнес-вимог. Детальніше про це за мить…
Ключова перевага полягає в тому, що стандарт SAP об'єкт ніколи не змінюється. Користувацький код знаходиться в зарезервованому включенні або підекрані, який SAP викликає у потрібний момент, щоб покращення пережило оновлення системи, а не було перезаписано. Через це виходи належать до сімейства SAP методи покращення разом із новішим Business Add-In.
Типи виходів клієнтів
Існує три основних типи виходу клієнта:
- Вихід з функціонального модуля
- Вихід з екрана
- Вихід з меню
Вихід із функціонального модуляЦе дозволяє клієнту додавати код через функціональний модуль у певному місці в SAP прикладна програма
Syntax: CALL CUSTOMER-FUNCTION '004'
Вихід з екранаЦе дозволяє клієнту додавати поля на екран у SAP більшість квитків вже розпродано! через підекран. Підекран викликається в рамках логіки потоку стандартного екрана.
Format: CALL CUSTOMER-SUBSCREEN CUSTSCR2
Вихід з меню: Це дозволяє клієнту додавати елементи до випадаючого меню у стандартному SAP програма. Ці елементи можна використовувати для виклику додаткових програм або користувацьких екранів.
Format: +CUS ( additional item in GUI status )
Приклади виходу клієнтів
Приклад виходу з екрана:
У транзакцію CAT2 – Запис у табелі робочого часу відділ кадрів бажає включити інтерактивне підтвердження того, що свідоме подання неправильних даних є підставою для звільнення.
Приклад виходу з меню:
У транзакції SE38 – ABAP Editor команда розробників бажає включити посилання меню на транзакцію SE80 – Object Navigator для зручності використання.
ПЕРЕД
ПІСЛЯ
Приклад виходу функціонального модуля:
Компанія хоче, щоб банківські реквізити постачальників під час створення постачальника були обов’язковою подією. Тому вона має блимати повідомлення про помилку «Будь ласка, введіть банківські реквізити».
ПЕРЕД
ПІСЛЯ
Розташування виходів клієнтів
В транзакції SMOD і дивитися в деталі -
Або в транзакції SE81 Ви можете використовувати відповідну область застосування
Створіть клієнтський вихід
Щоб створити клієнтський вихід, спочатку потрібно створити проект у транзакції CMOD
Later ви призначаєте клієнтський вихід для свого проекту.
Повна послідовність від пошуку виходу до активації коду коротка, і вона завжди складається з тих самих шести кроків.
- Знайдіть покращення: Знайдіть назву покращення в SMOD, наприклад, компонент EXIT_SAPMF02K_001 для основного запису постачальника.
- Створіть проєкт: У CMOD введіть назву проекту, яка починається з літери Z або Y, і виберіть «Створити».
- Призначити покращення: На екрані «Призначення покращень» додайте назву покращення, яка містить вихід.
- Напишіть код: Відкрийте вихід функціонального модуля та помістіть код всередину його зарезервованого включення, яке починається з ZX.
- Керування частинами екрана та меню: Для виходу з екрана створіть підекран CUSTSCR, а для виходу з меню заповніть код функції +CUS у статусі графічного інтерфейсу.
- Активуйте проєкт: Активуйте проєкт у 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 робоча зона предмета
Вихід користувача технічно є підпрограмою (FORM) всередині SAP include, тому його можна редагувати безпосередньо та для цього потрібен ключ доступу. Це основна практична відмінність від клієнтського виходу, підсумована в наступному розділі.
Вихід користувача проти виходу клієнта
Обидва методи додають власну поведінку до стандартної SAP, але вони відрізняються обсягом, технологією та ступенем безпеки оновлення. У таблиці нижче їх порівнюють.
| Критерії | Вихід користувача | Вихід клієнта |
|---|---|---|
| доступність | Тільки SD-модуль | Через все SAP Модулі |
| Техніка | Підпрограма (FORM) у SAP включають такі, як MV45AFZZ | Вихід з функціонального модуля, екрана або меню, керований у SMOD та CMOD |
| Ключ доступу | Потрібен ключ доступу для модифікації | Ключ доступу не потрібен |
| Upgrade поведінку | Повинно бути перевірено під час оновлення за допомогою SPAU | Upgrade безпечний, викликається із зарезервованого включення |
| Керує | Редаговано безпосередньо у включенні | Активовано через проект CMOD |
Виходи для клієнтів є безпечнішими та загальнішими з двох. Для покращень, яких не може досягти жоден з виходів, SAP пізніше представив надбудову для бізнесу.
Виходи клієнтів проти BAdI
A Бізнес-додаток (BAdI) є об'єктно-орієнтованим наступником клієнтського виходу. Замість зарезервованого включення, BAdI визначає інтерфейс, а користувацька логіка знаходиться в класі, який його реалізує. Це дає дві переваги, яких немає у клієнтського виходу.
- Кілька реалізацій: Багаторазове використання BAdI дозволяє кілька незалежних реалізацій одного й того ж покращення, тоді як клієнтський вихід дозволяє лише одну.
- Орієнтація на об'єкт: BAdI працює з методами та класами, тому він відповідає сучасній розробці об'єктів ABAP та його легше фільтрувати за країною чи бізнес-сценарієм.
Практичне правило просте: використовуйте існуючий вихід клієнта або користувача, коли точка покращення вже існує, та використовуйте BAdI, коли потрібна нова точка покращення, яку можна використовувати повторно.









