Разница между пользовательским выходом и выходом клиента в 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 — Навигатор объектов для простоты использования.

ДО

Примеры выходов клиентов

ПОСЛЕ

Примеры выходов клиентов

Пример выхода из функционального модуля:

Компания хочет, чтобы банковские реквизиты Продавцов при создании Продавца были обязательным событием. Поэтому должно появиться сообщение об ошибке «Пожалуйста, введите банковские реквизиты».

ДО

Примеры выходов клиентов

ПОСЛЕ

Примеры выходов клиентов

Поиск выходов клиентов

В транзакции СМОД и рассмотреть детали-

Поиск выходов клиентов

Или в транзакции SE81 вы можете использовать соответствующую область применения

Поиск выходов клиентов

Создайте выход для клиентов

Чтобы создать выход клиента, сначала необходимо создать проект в транзакции. CMOD

Создайте выход для клиентов

Later вы назначаете Выход клиента своему проекту.

Весь процесс от нахождения выхода до активации кода непродолжителен и всегда состоит из шести шагов.

  1. Найдите улучшение: Найдите название расширения в SMOD, например, компонент EXIT_.SAPMF02K_001 для основных данных поставщика.
  2. Создайте проект: В CMOD введите название проекта, начинающееся с буквы Z или Y, и выберите «Создать».
  3. Назначьте улучшение: На экране «Назначения расширений» добавьте название расширения, содержащее выходной параметр.
  4. Напишите код: Откройте модуль выхода функции и поместите код внутрь зарезервированного включаемого файла, начинающегося с ZX.
  5. Обработка элементов экрана и меню: Для выхода из экрана создайте подэкран CUSTSCR, а для выхода из меню заполните код функции +CUS в статусе графического интерфейса пользователя.
  6. Активируйте проект: Активируйте проект в CMOD, чтобы вызов функции завершения происходил во время выполнения. Без активации код будет проигнорирован.

💡 Совет: Включение выхода из функционального модуля начинается с ZX, поэтому он переносится вместе с проектом. Никогда не размещайте пользовательскую логику непосредственно в... SAP функциональный модуль, потому что это будет модификация, а не улучшение.

Что такое пользовательский выход (User Exit)?

Пользовательский выход служит той же цели, что и Клиентский выход, но доступен только для SD модуль. Выход реализован как вызов функционального модуля. Код написан разработчиком.

Хорошо знаю, что выход пользователя в SD МВ45AFZZ

  • 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 определяет интерфейс, а пользовательская логика находится в классе, который его реализует. Это дает два преимущества, которых нет у пользовательского выхода.

  • Множество реализаций: Многофункциональный BAdI позволяет реализовать несколько независимых вариантов одного и того же расширения, в то время как пользовательский выход позволяет реализовать только один.
  • Объектно-ориентированное программирование: BAdI работает с методами и классами, поэтому он подходит для современной разработки на основе ABAP Objects и упрощает фильтрацию по стране или бизнес-сценарию.

Практическое правило простое: используйте существующий пользовательский выход или выход для клиента, если точка расширения уже существует, и используйте BAdI, если требуется новая, многократно используемая точка расширения.

Часто задаваемые вопросы (FAQ)

SMOD отображает SAP Улучшения и входящие в них компоненты. CMOD объединяет одно или несколько улучшений в проект клиента, назначает код и активирует его. SMOD предназначен для просмотра, CMOD — для реализации.

Нет. Пользовательский выход — это расширение, а не модификация, поэтому ключ доступа не требуется. Пользовательский выход редактируется непосредственно в SAP включает в себя и, следовательно, требует ключа доступа для модификации.

Выполните транзакцию, откройте «Система», затем «Статус», чтобы прочитать имя программы, а затем найдите расширения этой программы в SMOD или SE81. Распространенный способ — поиск в таблице MOD.SAP для функциональной группы программы.

Искусственный интеллект в инструментах разработки ABAP считывает имя программы и предлагает соответствующее расширение, выход или BAdI, а также объясняет, что каждый из них изменяет. Разработчик всё равно подтверждает выбор и пишет логику внутри зарезервированного include-файла.

Консультанты по искусственному интеллекту оценивают, существует ли уже точка улучшения и сколько реализаций необходимо, а затем обычно рекомендуют BAdI или точку улучшения для новой работы, чтобыping классические выходы для точек, которые существуют только как выходы.

Подведем итог этой публикации следующим образом: