Текущее время: Пн, июн 23 2025, 18:09

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Как распознать обработку событий Control Framework?
СообщениеДобавлено: Пн, дек 07 2015, 16:27 
Начинающий
Начинающий

Зарегистрирован:
Пн, июн 15 2015, 09:18
Сообщения: 17
День добрый всем.

Возник следующий вопрос. У нас в одной стандартной транзакции есть Z-расширение, выполняющее кое-какие проверки и выдающее MESSAGE по результатам. Одна из таких проверок должна выдавать предупреждение - MESSAGE типа W. Проблема в том, что, как оказалось, это же расширение может дергаться в ходе обработки событий одного из ALV-гридов, имеющихся на экране. Так вот, поскольку грид относится к Control Framework, в цикле обработки его событий сообщения типа W превращаются в тип A, что в итоге роняет программу.

Отсюда вопрос: есть ли какой-нибудь умеренно уродливый способ понять, что код выполняется в контексте обработки событий CFW, чтобы соответствующим образом поправить типы выдаваемых сообщений (или не выдавать их вообще)?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как распознать обработку событий Control Framework?
СообщениеДобавлено: Ср, дек 09 2015, 10:47 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
cl_gui_control=>get_focus - This static method returns the object reference of the control that has the focus.

Скажите что за расширение? Что за транзакции его дергают?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как распознать обработку событий Control Framework?
СообщениеДобавлено: Ср, дек 09 2015, 12:52 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
посмотрите в стэке вызовов (ф/м system_callstack)
- подпрогр %_CTL_INPUT пула SAPMSSYD
- подпрогр CONTROL_DISPATCH пула SAPFGUICNTL,
или
sy-ucomm вида %_GC 104 11,
где 104 - подписчик, 11 - событие


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как распознать обработку событий Control Framework?
СообщениеДобавлено: Ср, дек 09 2015, 16:49 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, май 12 2011, 16:06
Сообщения: 351
MaaKut написал(а):
поскольку грид относится к Control Framework, в цикле обработки его событий сообщения типа W превращаются в тип A, что в итоге роняет программу.
А что за событие грида (?), если не секрет? У меня получалось, что W-сообщения отображались не как A-сообщения ("превращались в тип A"), а как E-сообщения, правда с выходом из программы при любом дальнейшем действии.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как распознать обработку событий Control Framework?
СообщениеДобавлено: Пн, дек 14 2015, 08:28 
Начинающий
Начинающий

Зарегистрирован:
Пн, июн 15 2015, 09:18
Сообщения: 17
Доброго всем дня, прошу прощения, что пропал.

Besa написал:
cl_gui_control=>get_focus - This static method returns the object reference of the control that has the focus.

Cпасибо за наводку, попробую.

Besa написал:
Скажите что за расширение? Что за транзакции его дергают?

Транзакция - /DFS/CARD (это не SAPовский стандарт, сторонняя разработка); она там хитрозадым образом цепляет всякие Z-инклюды.

trop написал(а):
посмотрите в стэке вызовов (ф/м system_callstack)

Была такая мысль, но это уже похоже на брутальный костыль. С опаской отношусь к подобным решениям.

LAT написал(а):
А что за событие грида (?), если не секрет? У меня получалось, что W-сообщения отображались не как A-сообщения ("превращались в тип A"), а как E-сообщения, правда с выходом из программы при любом дальнейшем действии.

Событие - клик по кастомной кнопке на тулбаре. Выдаваемое сообщение отображается как E, но по сути представляет собой A, т.к. после него транзакция вылетает.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как распознать обработку событий Control Framework?
СообщениеДобавлено: Пн, дек 14 2015, 16:48 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, май 12 2011, 16:06
Сообщения: 351
Вроде такие ситуации предотвращаются созданием грида с указанием i_appl_events = 'X'. Но если экран и грид давно созданы и оттестированы, и экспериментировать не хочется, имхо, лучше воспользоваться советом Besa.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB