ceib написал(а):
Добрый день!
Только начинаю работать с SAP, многого не понимаю, вопрос может быть глупый и слишком абстрактный, но все же прошу подсказать.
Возникла необходимость добавить в стандартную программу кнопку, запускающую свою программу печати. Беглое изучение технологий расширения стандартного функционала не дало никакой ясности с точки зрения того, что именно нужно делать в общем случае. BADI, Enhancement options и т.п., насколько понял, позволяет расширять функционал, только если заранее заложена возможность расширения определенных вещей. В моем случае можно имплементировать BADI GOS_SRV_SELECT и BADI_LAYER, с помощью которых создать кнопки вроде бы нельзя. Намеренно не указываю программу/транзакцию, которую нужно изменить, так как хотелось бы услышать больше не как конкретно решить задачу в этом случае, а как действовать в общем. Как разобраться в многообразии методик расширения функционала, которых даже при беглом изучении насчитал не менее 10.
Собственно вопрос - с какой стороны подойти к проблеме, по каким критериям выбирать техники расширения в общем случае? И в частности - как можно создать кнопку на экране стандартной программы?
Как бы так ответить Вам...
Конкретно, если пользователь тычет пальцем на стандартный тулбар в гуи-статусе, и говорит что хочет именно тут и нигде больше, то вариантов не много(не ломая конечно), не часто SAP резервирует там места. Например тр fbl3n, в гуи статусе видны "кнопки-пустышки", например +CUS01, в fbl3n на тулбар можно вытащить свою кнопку есть бадищка FI_ITEMS_MENUE01. Другой вариант, копать в сторону GUIXT + SAP GUI SCRIPTING.
Вообще по расширению САП, не только кнопкой:
Есть программы которые показывают какие есть возможные расширения в конкретной транзакции, после чего можно пробежаться по ним и проанализировать.
Можно расставлять точки прерывания на операторах call customer function, get badi и тд
Анализ кода.
Наверное самое простое загуглить имея конкретную задачу, в большинстве случаев найдете кучу тем.
И да, методик не так то и много. Да и не имеет значение какую выбрать, бади, экзит, bte или замещение ggb1. Выбирайете которая Вам удобна в конкретном случае, не редко бывает что методика и экзита и бади может решить Вашу задачу, используйте какую хотите. Главное поймите, все эти методики работают по простому принципу. В стандартном коде САП расставлены обычные заглушки, в виде вызовов пользовательских ФМ или методов или перформов, в которых Вы можете писать свой код - все... Да, есть относительно новый инструмент enhancement, по сути тоже самое, почитайте.