Ситуация такая:
У нас есть POWL, куда я добавил кнопку toobar.
Нажатие на эту кнопку открывает FPM-POWL, который я создал с помощьюСправка по этой ссылке
https://sapcodes.com/2016/03/25/powl-in-fpm/....
(ИНФОРМАЦИЯ: Этот POWL берет свои данные из стандартного представления ФБР).
Новый FPM-POWL работает правильно (??«Я надеюсь на это, потому что он показывается), поддерживаемый внутри LPD_CUST, чтобы запустить это всплывающее окно внутри FPM-фреймворка (флаг, который он должен ждать, также устанавливается для вызывающего и вызываемого абонентов).
Хорошо, давайтепродолжить .--
Класс вызова (класс фидера "A", реализующий IF_POWL_FEEDER) вызывает POPUP следующим образом:
DATA(lt_lpd_content) = lr_lpd_handle->mt_content.
READ TABLE lt_lpd_content
REFERENCE INTO DATA(lr_lpd_content)
WITH KEY application_alias = 'ZSRM_GP/BP_POPUP'.
lr_lpd_handle->launch_application( iv_application_id = lr_lpd_content->application_id ).
Пользователь должен просто иметь возможность выбрать одного делового партнера...
После того, как пользователь выберет запись и нажмет специальную кнопку на панели инструментов «всплывающего окна», его класс фидера «B» (также реализующий IF_POWL_FEEDER) делает то, что ему нужно делать внутри handle_action и досейчас ... пытаюсь выяснить, КАК передать запись обратно на звонокer class "A" ...
Поскольку, в отличие от ожидаемого (поскольку обе записи LPD_CUST имеют установленный флаг "Синхронизация / ожидание"), класс "A" продолжает обработку любого кода, который я помещаю после
lr_lpd_handle->launch_application( iv_application_id = lr_lpd_content->application_id ).
Итак, я полагаю, что это «работает как задумано» и является асинхронным.
Итак, мои текущие эксперименты предположили синхронность, и я экспортировал любой выбранный номер делового партнера в идентификатор памяти и закрыл"popup".
Но я никогда не возвращался к вызывающей стороне, где я хотел начать кодировать остальную часть требования.
Итак, моя вторая попытка состоит в том, что я создал событие в фидерекласс "B" (называемый popup) и обработчик для этого внутри feedderclass "A" (вызывающая сторона).
Внутри ctor класса "A" я регистрируюсь через "SET HANDLER FOR ALL INSTANCES" ....и тесты вот-вот начнутся.
Но я действительно ненавижу этот подход ... Есть ли лучшая практика в этом отношении?
Я не могу себе представить, что я единственныйс таким требованием, которое, в простомrms, означает:
"Listpopup" ... и мы все знаем, как это просто в sapgui ... но внутри среды FPM-POWL-LPD ... Я не могу получить это ...
РЕДАКТИРОВАТЬ : Может быть, я должен сделать что-то здесь, чтобы заставить блокировать всплывающий вызов?
Или можетЯ как-то заполняю параметры экспорта действия дескриптора вызываемого, чтобы вернуться к вызывающему элементу handle_action?Ala POWL_FORWARD_anything?