SAPфорум.RU
https://sapboard.ru/forum/

SRM7.1: Обработка событий
https://sapboard.ru/forum/viewtopic.php?f=75&t=70371
Страница 1 из 1

Автор:  Refresh [ Чт, июн 09 2011, 08:07 ]
Заголовок сообщения:  SRM7.1: Обработка событий

Через конфигурацию WDCC_FPM_OIF_RFQ_PR_PU компонента FPM_OIF_COMPONENT, добавил кнопку Print с выпадающим списком. Для каждой строки прописываю событие, по которому необходимо выводить разные формы в RFx. Обработку осуществляю в post-расширении action-метода вьюхи CNR_VIEW - ONACTIONBUTTON_PRESSED. Этот то момент мне и не нравится. К тому же в нем события имеют названия: PRINT_ITEM_1, PRINT_ITEM_2.... не смотря на то, что я их именовал совершенно иначе, что неменуемо приведет к проблема, при необходимости добавить новую форму где-нибудь в середине списка.
Вопрос: как и где правильно обрабатывать пользовательские события возникающие при нажатии кнопок, определенных в конфигурациях компонента FPM_OIF_COMPONENT.
Спасибо!

Автор:  csander [ Чт, июн 23 2011, 06:46 ]
Заголовок сообщения:  Re: SRM7.1: Обработка событий

мы делали следующим образом. создали свой компонент веб-экрана, с интерфейсами /SAPSRM/WDI_L_FCP_TE, /SAPSRM/WDI_L_FPC_CA_DTLS, /SAPSRM/WDI_L_FPC_GENERAL, IF_FPM_FLOORPLAN_COMP, IF_FPM_UI_BUILDING_BLOCK. его же и использовали при создании UIBB, который разместили на всех вкладках (чтобы отлавливать нажатие кнопок на всех вкладках). в CC есть метод PROCESS_EVENT. вот в нем и отлавливаем нажатия кнопок
Code:
CASE io_event->mv_event_id.
WHEN 'ZBUTTON_1'.
...
WHEN 'ZBUTTON_N'.
ENDCASE.

вариант для реализации не самый красивый, но по крайней мере он работает.

Автор:  Konstantin Anikeev [ Пт, июн 24 2011, 16:34 ]
Заголовок сообщения:  Re: SRM7.1: Обработка событий  Тема решена

Есть еще вариант.

Ищете в вашей конфигурации управляющий компонент.
Изображение

Изображение

Идете в его конфигурацию и ищете класс-обработчик.
Изображение

В вашем случае /SAPSRM/CL_FPM_OVRIDE_OIF_RFQ - он обрабатывает только общие события FPM (сменить вкладку, открыть,закрыть и т.д.)
Идете в класс. и обращаете внимание на метод INIT_OBJECTS - который создает экземпляр специального обработчика (на события бизнес объекта). У меня /SAPSRM/CL_CH_WD_IDEN_MAP_RFQ. А у него есть замечательный метод /SAPSRM/IF_CLL_IDENT_MAPPER~HANDLE_EVENT.

Соответсвенно классы наследуются, методы переобъявляются ну и все прелести ООП.

А можете глянуть в сторону BADI /SAPSRM/IF_EX_BDI_PDO_ACT_PROC. Правда я не уверен, что он вызывается.

Автор:  Refresh [ Пн, июл 04 2011, 15:03 ]
Заголовок сообщения:  Re: SRM7.1: Обработка событий

Почитал гайд по FPM, да коллега подсказал, в итоге сделали вывод такой.
Для обработки событий есть куча методов в интерфейсах IF_FPM_UI_BUILDING_BLOCK, IF_FPM_OIF_CONF_EXIT для работы с событиями. Свой компонент не обязательно создавать, а можно эти интерфесй добавлять в существующие САПовские компоненты и там их имплементировать. Мне показался этот способ самым корректным. Добавлил в компонент /SAPSRM/WDC_FPM_OIF_CONF.
Таким образом получается объеденил 2 ваших ответа.
Спасибо ВАМ!

Автор:  Danila [ Пт, дек 02 2011, 17:36 ]
Заголовок сообщения:  Re: SRM7.1: Обработка событий

Добрый день.

Столкнулся с аналогичной проблемой.
Несмотря на достаточно подробное обсуждение в данной теме, разобраться не смог, опыта работы с FPM нет :(

Мне так же неоходимо добавить кнопку на один из экранов стандартного WDA приложения HCM_ECM_PLANNING_UI_GAF.
Собственно, кнопку я добавил через стандартный же конфигуратор ECM_AC_PLANNING_UI_GAF.
Там же присвоил ей ИД FPM события.

Не могу понять, где это событие можно поймать теперь и куда добавлять его обработчик?
Возможно ли это сделать так же через конфигуратор и если да, то как?

Очень надеюсь на Вашу помощь.
Заранее благодарен.

Автор:  Konstantin Anikeev [ Пн, дек 05 2011, 19:14 ]
Заголовок сообщения:  Re: SRM7.1: Обработка событий

Danila написал:
Мне так же неоходимо добавить кнопку на один из экранов стандартного WDA приложения HCM_ECM_PLANNING_UI_GAF.
Собственно, кнопку я добавил через стандартный же конфигуратор ECM_AC_PLANNING_UI_GAF.


Это что за модуль? В SRM такого нет.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/