Sap user exit что такое

BADI. Поиск и использование

Business Add-Ins

User-Exits позволяют клиентам прикрепить дополнительный код для стандартных SAP исходный код без необходимости изменения исходного объекта. Business Add-Ins SAP методика расширений, основанная на ABAP Objects.

Служат для того, чтобы вносить модификацию в алгоритм обработки объекта и свести к минимуму работы при обновлении системы.

Основным преимуществом данной концепции является возможность повторного использования. BAdI может быть реализован несколько раз.

Как найти BADI которая срабатывает при конкретном действии :

В классе cl_exithandler в методе GET_INSTANCE ставим точку останова. В exit_name будет вызываемая в данный момент времени BADI.

Sxv_get_clif_by_name – ставим точку останова. В name будет имя BADI.

Работа с BADI

Sap user exit что такое. badi1. Sap user exit что такое фото. Sap user exit что такое-badi1. картинка Sap user exit что такое. картинка badi1Рис 1.

Если установлена «1» (Рис 1.) – возможно одновременно иметь несколько активных реализаций.

Если установлена «2» (Рис 1.) – срабатывание реализаций зависит от фильтра. Для случаев если фильтр отсутствует необходимо ставить проверки в начале каждого реализованного метода BADI т.к. реализации срабатывают для всех инфо-типов (например).

Работа с реализациями происходит в пункте меню «Внедрение» (Рис2.) При создании внедрения BADI создается класс методы которого необходимо переопределить согласно нашей задачи.

Sap user exit что такое. badi2. Sap user exit что такое фото. Sap user exit что такое-badi2. картинка Sap user exit что такое. картинка badi2Рис 2.

При создании BADI с фильтром есть возможность указать информацию для фильтра. (Рис 3.)

Sap user exit что такое. badi3. Sap user exit что такое фото. Sap user exit что такое-badi3. картинка Sap user exit что такое. картинка badi3Рис 3. Sap user exit что такое. badi4. Sap user exit что такое фото. Sap user exit что такое-badi4. картинка Sap user exit что такое. картинка badi4Рис 4.

Активные реализации (то есть те которые срабатывают) помечены желтым цветом, деактивированные – синим. (Рис 4.)

Sap user exit что такое. badi5. Sap user exit что такое фото. Sap user exit что такое-badi5. картинка Sap user exit что такое. картинка badi5Рис 5.

1 – активировать реализацию

2 – деактивировать реализацию (в данном состоянии код выполнятся не будет).

Часто используемые BADI в HR

HRBAS00_RELAT – BADI для соединений.

HRPAD00INFTY – BADI для администрирования персонала

HRBAS00INFTY – BADI для инфо-типов организационного менеджмента.

Источник

Расширение SAP для начинающих. User-exit, BADi, Enhancement

Несмотря на то, что система многофункциональна и избыточна, все же достаточно часто требуется вносить изменения в ее логику работы. Начинающие консультанты часто спрашивают, как же можно расширить логику работы системы для требований бизнеса? Не все можно сделать галочками, это верно. Иногда мы влезаем в исходные коды вендора, чтобы сделать свое расширение SAP, свою логику работы. Для нас, с точки зрения HR, представляют интерес два вида расширений системы.

User-exit

Самая старая технология, но и наиболее простая и универсальная. Суть заключается в том, что SAP в своих программах делает вызов специальных Includes (программ), которые начинаются с букв ZX и поэтому разрешены для изменения консультантам. То есть, мы находим такой вызов, создаем Include (программу) и в ней пишем любую логику. При компиляции система видит, что появился в базе данных такой объект — Include, вставляет его содержимое на то место, где был вызов. Так получается, с точки зрения системы, что этот кусок кода как будто бы уже был в самой программе. Например, форма Т-2, программа HRULT2_2004, инклуд HRUIT2_PRC_2004. Смотрим событие get pernr:

* user-exit
include zx_hrult2_pernr.
pn-endda = p_datep.
if gf_fill_period_to = ‘X’.
pnpendda = p_datep.
endif.

Что мы видим? В программе есть user-exit с названием zx_hrult2_pernr. Можно два раза на него кликнуть и тем самым создать программу. Теперь мы в этом Include можем писать свой код, который будет подставлен вместо строчки include zx_hrult2_pernr.

Другой пример из того же отчета:

Насколько мне известно, нет какого-либо единого наглядного каталога, где можно было бы посмотреть все user-exits. Каждую программу нужно смотреть индивидуально. Часть user-exit можно посмотреть, создать и документировать через транзакцию CMOD — управление проектами расширений. Запускаем транзакцию CMOD, в меню «Утилиты» выбираем «SAP-расширения». И по ключевым словам ищем доступные расширения. Искать проще по маске по словам PY, PT, PA, HR, OM для поля «Прикладной компонент». К этому полю, почему-то, нет средства поиска.

Это уже новая технология. Расшифровывается как Business Add-Ins (бизнес-дополнения). BAdi состоит из двух сущностей: определение и реализация. Определение — это своего рода описание объекта с указанием, что он может хранить (какие есть атрибуты), что делать (какие есть методы). Это определенная модель, которая описывает, что обязательно должно быть на входе и на выходе, какие параметры могут быть, их типы и правила вызова. Своего рода абстракция: все мы понимаем, что велосипед состоит из колес, педалей, рамы, руля, цепи, которая соединяет педали с колесом через муфту. Но реализация может быть разной. Так и здесь. Концептуальный проект велосипеда — это определение BAdi, а его конкретная реализация в горный, шоссейный или дамский велосипед — это реализация BAdi. Чтобы определить модель велосипеда (какую именно реализацию нужно вызвать в программе) есть понятие фильтра. Фильтр — это элемент данных в определении BAdi. При вызове программа заполняет его каким-то значением (как решит программист). Система смотрит все реализации этого определения BAdi, у которых стоит такое же значение фильтра (или фильтр просто не используется как критерий), и вызывает подходящую реализацию. По этому принципу, например, сделана косвенная оценка видов оплаты. Посмотрите определение HR_INDVAL (тр. SE18) и реализации HR_IV_* (тр. SE19).

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

Транзакции для создания BAdi: SE18 — создание определений, SE19 — создание реализаций.

Источник

Практические рекомендации по поиску user-exit-ов (пользовательских расширений) в стандартном коде

Sap user exit что такое. 9315 3610. Sap user exit что такое фото. Sap user exit что такое-9315 3610. картинка Sap user exit что такое. картинка 9315 3610

Неловкин Александр Николаевич

Chief Software Engineer

Как консультантам, так и разработчикам системы SAP приходится сталкиваться с необходимостью расширить стандартную функциональность системы. Одним из путей расширения функциональности является использование пользовательских расширений (USER-EXIT). Вопросу поиска таких расширений в стандартных приложениях SAP посвящена данная статья.

Как показывает опыт внедрения и сопровождения систем SAP ERP, почти 30-50 % всех ABAP разработок составляют расширения стандартной функциональности при помощи пользовательских расширений (user-exit).

Итак, в рамках данной статьи рассматриваются приёмы поиска в исходном коде user-exit-ов, а именно: customer-exit и BAdi (BusinessAdd-Ins). Новомодные технологии, такие, как Enhancements Spots, рассматривать в данной статье не будем. Их я использую, как правило, в крайнем случае, т.к. не имея рамок, накладываемых интерфейсом во всех вышеупомянутых технологиях, Enhancements Spots провоцирует бесконтрольно вмешательство в логику обработки данных, что может привести к нарушению их целостности.

Применение данной методики является альтернативой применению различных программ, выдающих для заданной программы/транзакции список user-exit-ов. Применение таких программ имеет один существенный недостаток – не даются ответы на вопросы:

Предлагаемая методика (несмотря на её громоздкость) требует меньших трудозатрат за счёт того, что отсекает все «лишние» пользовательские расширения.

Рассмотрим предлагаемую методику на примере решения задачи: при создании в системе кредитора исключить появление двойника.

Для решения этой задачи необходимо поискать в системе дебитора с таким же Номером плательщика налога (т.е. выяснить, не заведена ли в систему информация об этом лице как о дебиторе). Если поиск оказался удачным, то следует заполнить поле «Дебитор» в транзакции ввода кредитора номером найденного дебитора. Для создания кредитора пользователи используют транзакцию XK01 (Ввод кредитора).

Технически, для реализации решения этой задачи нам нужно будет взять из данных создаваемого кредитора (табл. LFA1) значение поля «РегНалогНомер-1» (STCD1), сделать запрос к таблице данных существующих дебиторов (KNA1), попытаться найти в ней запись со значением поля STCD1 равным нашему значению и, если поиск успешен, скопировать из найденной записи поле KNA1-KUNNR в поле LFA1-KUNNR.

1) Запускаем транзакцию (в нашем случае XK01)

3) Непосредственно перед нажатием на кнопку «Сохранить», набираем в строке команд «/h» и нажимаем Enter. В строке состояния (внизу окна) должно появиться сообщение «Отладка включена»

4) Нажимаем «Сохранить» и попадаем в отладчик. (рис.1)

Sap user exit что такое. nelovkinimage002. Sap user exit что такое фото. Sap user exit что такое-nelovkinimage002. картинка Sap user exit что такое. картинка nelovkinimage002

Sap user exit что такое. nelovkinimage003. Sap user exit что такое фото. Sap user exit что такое-nelovkinimage003. картинка Sap user exit что такое. картинка nelovkinimage003

6) На закладке «ABAP команда» вписываем «call customer-function» (рис.3)

Sap user exit что такое. nelovkinimage004. Sap user exit что такое фото. Sap user exit что такое-nelovkinimage004. картинка Sap user exit что такое. картинка nelovkinimage004

Справка: Вызов customer-exit осуществляется оператором CALL CUSTOMER-FUNCTION.

7) На закладке «Метод» заносим «CL_EXITHANDLER» и «GET_INSTANCE» соответственно в поля «Имя класса» и «Имя метода» и нажимаем «Дальше» (кнопка Sap user exit что такое. nelovkinimage005. Sap user exit что такое фото. Sap user exit что такое-nelovkinimage005. картинка Sap user exit что такое. картинка nelovkinimage005). (рис.4)

Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland

Источник

Sap user exit что такое

Sap user exit что такое. empty. Sap user exit что такое фото. Sap user exit что такое-empty. картинка Sap user exit что такое. картинка empty

Часовой пояс: UTC + 3 часа

Правила форума

User Exit

Специалист
Sap user exit что такое. 3. Sap user exit что такое фото. Sap user exit что такое-3. картинка Sap user exit что такое. картинка 3
Sap user exit что такое. 553. Sap user exit что такое фото. Sap user exit что такое-553. картинка Sap user exit что такое. картинка 553

Зарегистрирован:
Пн, сен 17 2007, 10:48
Сообщения: 190
Откуда: Нальчик, РФ
Пол: Мужской

Как «отловить» user exit?

_________________
С уважением, Сергей С.

Почетный гуру
Sap user exit что такое. vet. Sap user exit что такое фото. Sap user exit что такое-vet. картинка Sap user exit что такое. картинка vet
Sap user exit что такое. file.php?avatar=8439. Sap user exit что такое фото. Sap user exit что такое-file.php?avatar=8439. картинка Sap user exit что такое. картинка file.php?avatar=8439

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1005
Откуда: 37 МИКРОРАЙОН
Пол: Мужской

Как «отловить» user exit?

Специалист
Sap user exit что такое. 3. Sap user exit что такое фото. Sap user exit что такое-3. картинка Sap user exit что такое. картинка 3
Sap user exit что такое. 553. Sap user exit что такое фото. Sap user exit что такое-553. картинка Sap user exit что такое. картинка 553

Зарегистрирован:
Пн, сен 17 2007, 10:48
Сообщения: 190
Откуда: Нальчик, РФ
Пол: Мужской

У меня не оч. понятная мне синтаксическая ошибка возникает при попытке активировать данную программу.

_________________
С уважением, Сергей С.

Почетный гуру
Sap user exit что такое. vet. Sap user exit что такое фото. Sap user exit что такое-vet. картинка Sap user exit что такое. картинка vet
Sap user exit что такое. file.php?avatar=8439. Sap user exit что такое фото. Sap user exit что такое-file.php?avatar=8439. картинка Sap user exit что такое. картинка file.php?avatar=8439

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1005
Откуда: 37 МИКРОРАЙОН
Пол: Мужской

У меня не оч. понятная мне синтаксическая ошибка возникает при попытке активировать данную программу.

Специалист
Sap user exit что такое. 3. Sap user exit что такое фото. Sap user exit что такое-3. картинка Sap user exit что такое. картинка 3
Sap user exit что такое. 553. Sap user exit что такое фото. Sap user exit что такое-553. картинка Sap user exit что такое. картинка 553

Зарегистрирован:
Пн, сен 17 2007, 10:48
Сообщения: 190
Откуда: Нальчик, РФ
Пол: Мужской

_________________
С уважением, Сергей С.

Почетный гуру
Sap user exit что такое. vet. Sap user exit что такое фото. Sap user exit что такое-vet. картинка Sap user exit что такое. картинка vet
Sap user exit что такое. file.php?avatar=8439. Sap user exit что такое фото. Sap user exit что такое-file.php?avatar=8439. картинка Sap user exit что такое. картинка file.php?avatar=8439

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1005
Откуда: 37 МИКРОРАЙОН
Пол: Мужской

DATA : jtab LIKE tadir OCCURS 0 WITH HEADER LINE.

DATA : v_devclass LIKE tadir-devclass.

PARAMETERS : p_tcode LIKE tstc-tcode,

DATA wa_tadir TYPE tadir.

IF NOT p_tcode IS INITIAL.

SELECT SINGLE * FROM tstc WHERE tcode EQ p_tcode.

ELSEIF NOT p_pgmna IS INITIAL.

SELECT SINGLE * FROM tadir

AND obj_name = tstc-pgmna.

MOVE : tadir-devclass TO v_devclass.

SELECT SINGLE * FROM trdir

WHERE name = tstc-pgmna.

SELECT SINGLE * FROM tfdir

WHERE pname = tstc-pgmna.

SELECT SINGLE * FROM enlfdir

WHERE funcname = tfdir-funcname.

SELECT SINGLE * FROM tadir

AND obj_name EQ enlfdir-area.

MOVE : tadir-devclass TO v_devclass.

SELECT * FROM tadir INTO TABLE jtab

AND object IN (‘SMOD’, ‘SXSD’)

AND devclass = v_devclass.

SELECT SINGLE * FROM tstct

WHERE sprsl EQ sy-langu

AND tcode EQ p_tcode.

FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.

IF NOT jtab[] IS INITIAL.

FORMAT COLOR COL_HEADING INTENSIFIED ON.
* Sorting the internal Table
SORT jtab BY object.

DATA : wf_txt(60) TYPE c,

wf_object2(30) TYPE c.

FORMAT COLOR COL_HEADING INTENSIFIED ON.

2 ‘Enhancement/ Business Add-in’,

IF wa_tadir-object = ‘SMOD’.

ELSEIF wa_tadir-object = ‘SXSD’.

wf_object2 = ‘ Business Add-in’.

FORMAT COLOR COL_GROUP INTENSIFIED ON.

wf_smod = wf_smod + 1.

SELECT SINGLE modtext INTO wf_txt

WHERE sprsl = sy-langu

AND name = wa_tadir-obj_name.

FORMAT COLOR COL_NORMAL INTENSIFIED OFF.

SELECT SINGLE text INTO wf_txt

WHERE sprsl = sy-langu

AND exit_name = wa_tadir-obj_name.

FORMAT COLOR COL_NORMAL INTENSIFIED ON.

2 wa_tadir-obj_name HOTSPOT ON,

WRITE : /(105) sy-uline.

FORMAT COLOR COL_TOTAL INTENSIFIED ON.

FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.

WRITE:/(105) ‘No userexits or BADis exist’.

FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.

WRITE:/(105) ‘Transaction does not exist’.

DATA : wf_object TYPE tadir-object.

GET CURSOR FIELD field1.

CHECK field1(8) EQ ‘WA_TADIR’.

READ TABLE jtab WITH KEY obj_name = sy-lisel+1(20).

MOVE jtab-object TO wf_object.

SET PARAMETER ID ‘MON’ FIELD sy-lisel+1(10).

CALL TRANSACTION ‘SMOD’ AND SKIP FIRST SCREEN.

SET PARAMETER ID ‘EXN’ FIELD sy-lisel+1(20).

CALL TRANSACTION ‘SE18’ AND SKIP FIRST SCREEN.

Специалист
Sap user exit что такое. 3. Sap user exit что такое фото. Sap user exit что такое-3. картинка Sap user exit что такое. картинка 3
Sap user exit что такое. 553. Sap user exit что такое фото. Sap user exit что такое-553. картинка Sap user exit что такое. картинка 553

Зарегистрирован:
Пн, сен 17 2007, 10:48
Сообщения: 190
Откуда: Нальчик, РФ
Пол: Мужской

_________________
С уважением, Сергей С.

Президент
Sap user exit что такое. rang2037 mo. Sap user exit что такое фото. Sap user exit что такое-rang2037 mo. картинка Sap user exit что такое. картинка rang2037 mo

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский

Специалист
Sap user exit что такое. 3. Sap user exit что такое фото. Sap user exit что такое-3. картинка Sap user exit что такое. картинка 3
Sap user exit что такое. 553. Sap user exit что такое фото. Sap user exit что такое-553. картинка Sap user exit что такое. картинка 553

Зарегистрирован:
Пн, сен 17 2007, 10:48
Сообщения: 190
Откуда: Нальчик, РФ
Пол: Мужской

_________________
С уважением, Сергей С.

Специалист
Sap user exit что такое. 3. Sap user exit что такое фото. Sap user exit что такое-3. картинка Sap user exit что такое. картинка 3
Sap user exit что такое. 553. Sap user exit что такое фото. Sap user exit что такое-553. картинка Sap user exit что такое. картинка 553

Зарегистрирован:
Пн, сен 17 2007, 10:48
Сообщения: 190
Откуда: Нальчик, РФ
Пол: Мужской

Опишу свои действия:

На этом вот месте и возникает вопрос:)

_________________
С уважением, Сергей С.

Гуру-эксперт
Sap user exit что такое. 5stars. Sap user exit что такое фото. Sap user exit что такое-5stars. картинка Sap user exit что такое. картинка 5stars

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988

Опишу свои действия:

На этом вот месте и возникает вопрос:)

А не знаю как Вы искали в SMOD по транзакции, но писк (F4) по имени компонента (exit_saplqaat_002) выдал расширение QAAT0001

Специалист
Sap user exit что такое. 3. Sap user exit что такое фото. Sap user exit что такое-3. картинка Sap user exit что такое. картинка 3
Sap user exit что такое. 553. Sap user exit что такое фото. Sap user exit что такое-553. картинка Sap user exit что такое. картинка 553

Зарегистрирован:
Пн, сен 17 2007, 10:48
Сообщения: 190
Откуда: Нальчик, РФ
Пол: Мужской

Второй вариант мне нравится намного больше, но вот вопрос: будет ли это работать?

_________________
С уважением, Сергей С.

Гуру-эксперт
Sap user exit что такое. 5stars. Sap user exit что такое фото. Sap user exit что такое-5stars. картинка Sap user exit что такое. картинка 5stars

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988

.
Мне насоветовали огромную кучу программ, с подобными наименованиями, вроде ‘Z_USEREXITS’, выполняющих примерно одни действия. В поиске по транзакции из любой из этих программ расширения с именем ‘QAAT0001’ не обозначено:?

Второй вариант мне нравится намного больше, но вот вопрос: будет ли это работать?

Президент
Sap user exit что такое. rang2037 mo. Sap user exit что такое фото. Sap user exit что такое-rang2037 mo. картинка Sap user exit что такое. картинка rang2037 mo

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский

Похоже, что QAAT0001 имеет какое-то отношение к Quality Assurance, inspection и т.п. У нас, например, это вообще не используется. А нельзя ли огласить, что вы, собственно, пытаетесь изобразить в user-exit? Какова конечная цель?

Специалист
Sap user exit что такое. 3. Sap user exit что такое фото. Sap user exit что такое-3. картинка Sap user exit что такое. картинка 3
Sap user exit что такое. 553. Sap user exit что такое фото. Sap user exit что такое-553. картинка Sap user exit что такое. картинка 553

Зарегистрирован:
Пн, сен 17 2007, 10:48
Сообщения: 190
Откуда: Нальчик, РФ
Пол: Мужской

С одной стороный не передается номер ТЗ, что не есть хорошо в моем случае(хотя, наверное, можно как-нибуть уйти от этой проблемы). С другой стороны CF_EPSILON, он же epsilon на входе можно было бы использовать в качестве флага, чтоб include не выполнялся при втором и полседующих проходах.

Подозреваю, что это ужасно тупо всилу своей примитивности, но другого способа я не не вижу, а точнее сказать не знаю.

Если кто подсксажет умное решение, буду весьма признателен.Спасибо.

_________________
С уважением, Сергей С.

Часовой пояс: UTC + 3 часа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Логотип © 2006 Андрей Горшков
Поддержка: Кирилл Андреев, 2011-…

Источник

User exits are used in an extraction if the standard SAP extractors do not provide the expected data or the required functionality, for instance in authorizations or time checks. User exits are commonly used in Sales and Distribution (SD) modules. There are many exits provided by SAP in the areas of sales, transportation, shipping and billing. A user exit is designed to make some changes when standard SAP is not capable of fulfilling all the requirements.

To be able to access what exits are available in each area of sales, go to IMG using this path: IMG → Sales and Distribution → System Modifications → User Exits. The documentation for each exit in the areas of SD is explained thoroughly.

For instance, if you want to find user exits in Sales Document Processing (contract, quotation or sales order), follow the path mentioned above and continue to expand the node User Exits in Sales → User Exits. Click on icon documentation to see all user exits available in Sales Document Processing.

Used to modify screen attributes.

Helps in performing operations when the user hits Save.

Very useful to check input fields, put any value in the field or show a popup to users and to confirm the document.

Used when user header changes are moved to header work area.

Used when user item changes are moved to SAP item work area.

A User Exit serves the same purpose as Customer Exits but they are available only for the SD module. The exit is implemented as a call to a Function Module. User Exits are modifications to SAP standard programs.

Example

While processing, enter the transaction code ‘ME01’ and press F8 (Execute) button. The above code produces the following output −

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

S.No.User Exit & Description
1