Начиная с ABAP 7.4 SP08 нам стал доступен специальный тип BAdI — AMDP BAdI, который позволяет заменить/расширить стандартную реализацию AMDP процедур реализованных SAP-ом или в Custom решениях. Основное предназначение AMDP BAdI — вызов процедур реализованных в реализации AMDP BAdI из других AMDP процедур в системе. Чтобы это стало возможным используется ключевое слово USING в определении AMDP процедуры:
1 2 3 4 5 6 7 |
METHOD some_amdp_method BY DATABASE PROCEDURE FOR HDB LANGUAGE SQLSCRIPT OPTIONS READ-ONLY USING amdp_badi_name=>amdp_method_name. CALL "AMDP_BADI_NAME=>AMDP_METHOD_NAME" (:some_parameters); ENDMETHOD. |
Особенности AMDP BAdI:
- Нет возможности использования BAdI фильтров
- Fallback класс — обязателен для реализации BAdI (данный класс определяет поведение по умолчанию, если не определена иная реализация)
- Каждый метод AMDP BAdI класса реализации должен быть AMDP процедурой
- Вызов таких BAdI может осуществляться обычным образом через GET BADI и CALL BADI
Далее реализуем свой AMDP BAdI, реализацию к нему по умолчанию через Fallback класс, а так же дополнительную Custom реализацию.