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/ |