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

«Тра­нза­кция SM02: сообщения в SAP системе»
Олег Башкатов:
С помощью ФМ TH_POPUP можно отправить сообщение конкретному пользователю :-)
«Ра­сши­ре­ния системы (Enhancement Framework). Часть 1»
Юрий Слободчиков:
> так как последняя переменная в структуре содержит объявление, заканчивающееся запятой, а объявление расширения вклинивается в эту структуру, то мы получаем проблему, которую в принципе решить...
«Тра­нза­кция SM02: сообщения в SAP системе»
Олег Башкатов:
Лучшая практика показывает, что сисадмин/базисник о состоянии системы и планах проведения работ должен узнавать из других источников нежели информация от кого-то из SM02 :-)

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

Мухаммад Усман
3880
11

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

Примечание

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

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

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

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

Вы хотели бы увидеть полную версию статьи?

Если вы являетесь подписчиком журнала SAP Professional Journal, пожалуйста, введите в правом верхнем углу логин и пароль.

Если вы хотите подписаться на журнала SAP Professional Journal, пожалуйста, обратитесь в редакцию или сделайте заказ на сайте.

Правила получения тестового доступа к статьям SAP Professional Journal

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

Марина Карась (Рейтинг: 30) 15:17, 09 июля 2010

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

Людмила Марченко (Рейтинг: 197) 15:32, 15 июля 2010

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

Павел Мартынов (Рейтинг: 493) 17:32, 15 июля 2010

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

Левон Киракосян (Рейтинг: 1305) 16:06, 16 июля 2010

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

Александр С (Рейтинг: 30) 22:27, 16 июля 2010

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

Виталий Глущенко (Рейтинг: 20) 14:20, 17 июля 2010

Первые два способа имеют право на существование, но в моей практике ни разу не использовались, т.к. при изменении бизнес-логики приложения очень часто нужно знать не все 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% проблем с поиском расширений.

Евгений Лифиренко (Рейтинг: 30) 19:21, 17 июля 2010

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

Михаил Зотов (Рейтинг: 96) 10:42, 19 июля 2010

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

Кирилл Сатарин (Рейтинг: 979) 20:09, 19 июля 2010

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

Александр Насонов (Рейтинг: 60) 16:04, 23 июля 2010

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

Максим Филенко (Рейтинг: 137) 15:03, 24 июля 2010

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

Дмитрий Воронин (Рейтинг: 112) 16:28, 30 июля 2010

Все просто и понятно!

Любое воспроизведение запрещено.
Копирайт © «Издательство ООО «Эксперт РП» Copyright © 2010 Wellesley Information Services. All rights reserved.