Разлика между изход на потребител и изход на клиент в SAP
⚡ Умно обобщение
Изходи на потребители и изходи на клиенти SAP ABAP са подобрения, които добавят персонализирана функционалност към стандартни програми, без да ги модифицират. SAP код. Тази страница обяснява типовете изходи на клиенти, работещи примери, SMOD и CMOD транзакциите, потребителските изходи и как се различават двете техники.

Какво представляват изходите на клиенти?
Клиентските изходи са "куки" предоставена от SAP в много стандартни програми, екрани и менюта, на които клиентите могат "виси" персонализирана функционалност, която да отговаря на бизнес изискванията. Повече за това след малко…
Основното предимство е, че стандартът SAP обектът никога не се променя. Персонализираният код се намира в резервиран include или подекран, който SAP извиквания в точния момент, така че подобрението да оцелее след системна надстройка, вместо да бъде презаписано. Поради това изходите принадлежат към семейството на SAP техники за подобрение заедно с по-новата добавка за бизнес.
Видове изходи на клиенти
Има три основни вида изходи на клиента:
- Излиза от функционалния модул
- Излиза от екрана
- Менюто излиза
Функционален модул ИзходТова позволява на клиента да добавя код чрез функционален модул на определено място в SAP приложна програма
Syntax: CALL CUSTOMER-FUNCTION '004'
Изход от екрана: Позволява на клиента да добавя полета към екран в SAP програма чрез подекран. Подекранът се извиква в рамките на логиката на потока на стандартния екран.
Format: CALL CUSTOMER-SUBSCREEN CUSTSCR2
Изход от менюто: Това позволява на клиента да добавя елементи към падащо меню по стандартен начин. SAP програма. Тези елементи могат да се използват за извикване на допълнителни програми или потребителски екрани.
Format: +CUS ( additional item in GUI status )
Примери за излизане на клиенти
Пример за изход от екрана:
В транзакция CAT2 – Въвеждане на график за работно време, HR желае да включи интерактивно потвърждение, че съзнателното подаване на неверни данни е основание за уволнение.
Пример за изход от меню:
В транзакция SE38 – ABAP Editor, екипът за разработка желае да включи връзка към менюто към транзакция SE80 – Object Navigator за лесна употреба.
ПРЕДИ
СЛЕД
Пример за изход от функционален модул:
Компанията иска банковите данни на Доставчиците при създаването на Доставчик да бъдат задължително събитие. Така че трябва да мига съобщение за грешка „Моля, въведете банковите данни“
ПРЕДИ
СЛЕД
Намиране на изходи на клиенти
В транзакция SMOD и погледнете в детайлите -
Или в транзакция SE81 можете да използвате подходящата област на приложение
Създайте клиентски изход
За да създадете клиентски изход, първо трябва да създадете проект в транзакция CMOD
Later вие присвоявате Customer Exit на вашия проект.
Пълната последователност от намирането на изхода до активирането на кода е кратка и винаги следва едни и същи шест стъпки.
- Намерете подобрението: Намерете името на подобрението в 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 включва, така че се редактира директно и изисква ключ за достъп. Това е основната практическа разлика от клиентския изход, обобщена в следващия раздел.
Изход на потребител срещу Изход на клиент
И двете техники добавят персонализирано поведение към стандартното SAP, но те се различават по обхват, технология и колко безопасни са за надграждане. Таблицата по-долу ги сравнява.
| Критерии | Изход на потребителя | Изход на клиента |
|---|---|---|
| Наличност | Само SD модул | През всички SAP модули |
| Техника | Подпрограма (FORM) в SAP включват например MV45AFZZ | Изход от функционален модул, екран или меню, управляван в SMOD и CMOD |
| Ключ за достъп | Изисква ключ за достъп до модификация | Не е необходим ключ за достъп |
| Upgrade поведение | Трябва да се провери при надстройката със SPAU | Upgrade безопасно, извикано от резервирано включване |
| Управлявано от | Редактирано директно във включване | Активирано чрез CMOD проект |
Изходите за клиенти са по-безопасните и по-общи от двата. За подобрения, до които нито един от изходите не може да достигне, SAP по-късно представи добавката Business.
Излизане на клиенти срещу BAdI
A Бизнес добавка (BAdI) е обектно-ориентираният наследник на customer exit. Вместо резервирано включване, BAdI дефинира интерфейс, а персонализираната логика се намира в клас, който го имплементира. Това носи две предимства, които customer exit не предлага.
- Множество реализации: Многократно използваният BAdI позволява няколко независими реализации на едно и също подобрение, докато клиентски изход позволява само една.
- Ориентация на обекта: BAdI работи с методи и класове, така че е подходящ за съвременна разработка на ABAP обекти и е по-лесен за филтриране по държава или бизнес сценарий.
Практическото правило е просто: използвайте съществуващ клиентски или потребителски изход, когато точката за подобрение вече съществува, и използвайте BAdI, когато е необходима нова, многократно използваема точка за подобрение.








