Меню

Три простых способа поиска расширений

|

Расширения системы призваны совершенствовать и адаптировать бизнес-процессы под стандарты компании. Умение быстро находить расширения является залогом более эффективного и успешного определения местоположения конкретного расширения.

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

Примечание

Данная статья предназначена для разработчиков АВАР и функциональных консультантов и предполагает, что читатель уже знаком с инструментами и выполнением программ в среде SAP.

Перед тем, как выполнить расширение приложения, прежде всего, следует установить местонахождение этих расширений в системе SAP. Это можно сделать тремя способами:

  • Выполнить поиск в программе SAP
  • Выполнить поиск в репозитарии бизнес-объектов
  • Найти BAdI при помощи трассировки SQL

Все приведенные примеры взяты из компонента SAP ERP Central Component (SAP ECC) 6.0 и могут применяться к более поздним версиям.

Оформите подписку sappro и получите полный доступ к материалам SAPPRO

У вас уже есть подписка?

Войти

Обсуждения Количество комментариев11

Комментарий от  

Марина Карась

  |  09 июля 2010, 15:17

Статья очень полезная и познавательная: дает конкретные рекомендации с пошаговыми инструкциями.
Действительно, бывают такие ситуации, когда нужно быстро найти то или иное расширение. Автор полностью раскрыл секреты их быстрого поиска. Вопросов не остается.
Спасибо автору!

Комментарий от  

неизвестного пользователя

  |  15 июля 2010, 15:32

хоть я и не разработчик, а консультант, но очень нужная статья, т.к. это нужно всем!!!

Комментарий от  

Павел Мартынов

  |  15 июля 2010, 17:32

В принципе действенные способы, но BAdI в новых системах вызываются не только с помощью CL_EXITHANDLER, но и с помощью специального оператора CALL BADI.
 
По моему мнению легче искать отладчиком. Ставим точку остановки CL_EXITHANDLER=>GET_INSTANCE, так как для старых BAdI вызывается данный метод и также в отладчике ставим точку остановки по оператору CALL BADI.

Комментарий от  

Левон Киракосян

  |  16 июля 2010, 16:06

Есть программа для поиска расширений, которая делает все описанные действия и не только их.
Исходник можно взять например тут: http://wiki.sdn.sap.com/wiki/display/Snippets/Find+User-exits,+BADIs,+BTEs,+Etc+by+TCode+or+Program

Комментарий от  

Александр С

  |  16 июля 2010, 22:27

На мой взгляд статья актуально исключительно для начинающих разработчиков и функциональных консультантов. Задача поиска расширений актуально каждый день и есть масса различных видов расширений, помимо описанных в статье - BADI.
В отношении поиска подходящих BADI проще всего поставить точку останова в методе CL_EXITHANDLER=>GET_INSTANCE (тр. SE24), далее заходим в исследуемую транзакцию, выполняем предполагаемые бизнес процессом операции и при каждом потенциальном входе в BADI, оказываемся на нашей точке останова. Смотрим по стеку вызовов с какими параметрами вызывался метод. В параметре EXIT_NAME будет определение искомого BADI. Если искать через контекстный поиск CL_EXITHANDLER, то можно его не найти, так как он может быть в вызываемом ФМ другой группы функций или подпрограмме внешней программы.
Вообще по поиску и использованию расширений можно написать чуть ли не целую книгу! SAP предоставил благодатную почву)

Комментарий от  

Виталий Глущенко

  |  17 июля 2010, 14:20

Первые два способа имеют право на существование, но в моей практике ни разу не использовались, т.к. при изменении бизнес-логики приложения очень часто нужно знать не все BADI/USER-EXIT\'ы которые имеются в программе, а только те которые будут относиться к какому-то событию. Для этого больше всего подходит способ \"Поиск BAdI при помощи трассировки SQL\", но у него есть огромный недостаток, это наличие прав на запуск ST05. На некоторых проектах в которых участвовал я, базисники отказывались давать права на ST05. В таких ситуациях помогало наличие прав на запуск отладчика(у ABAP-разработчиков они практически всегда есть). На примере который привел УСМАН необходимо запустить отладчик(/h или /hs), непосредственно перед нажатием кнопки \"save\". Потом нажимаем кнопку \"save\" и в отладчике нажимаем F9 и вводим CALL CUSTOMER-FUNCTION для остановки на всех USER-EXIT\'ах и F9 на вкладке Method вводим
Class name: CL_EXITHANDLER
Method name: GET_INSTANCE
и нажимаем F8. Теперь мы будем останавливаться на каждом расширении и можно будет изучить передаваемые в расширение  параметры. Так проще найти BADI, которые лучше всего подходят, для данного случая. Есть и другие способы, но использование отладчика помогает решить 90% проблем с поиском расширений.

Комментарий от  

Евгений Лифиренко

  |  17 июля 2010, 19:21

Первые два способа известны всем консультантам, которые используют ABAP и зачастую они не дают результатов. Третий способ наиболее интересен и полезен, но и он не покажет всех точек входа. Одним словом название статьи соответствует наполнению, за что и получает высокие балы.

Комментарий от  

Михаил Зотов

  |  19 июля 2010, 10:42

Спасибо за статью! Очень полезная статья для того, чтобы повысить эффективность работы. С первыми двумя способами поиска расширений я встречался, и пользовался ими. А вот третий способ оказался для меня открытием! И он мне очень понравился!

Комментарий от  

Кирилл Сатарин

  |  19 июля 2010, 20:09

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

Комментарий от  

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

  |  23 июля 2010, 16:04

Наиболее интересен, с точки зрения know-how, третий способ

Комментарий от  

Максим Филенко

  |  24 июля 2010, 15:03

Статья очень полезна в работе. Позволила структурировать варианты поиска расширений, которые нигде толком не описаны и передаются специалистами \"из рук в руки\" только на основании собственного опыта. Из недочетов статьи можно отметить некоторые пропуски в описаниях движений по различным меню, что затрудняет поиск описанных функций.