Текущее время: Вт, июл 22 2025, 17:02

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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