情况是这样的:
我们有一个POWL,在其中添加了一个工具栏按钮。
单击该按钮将打开我创建的FPM-POWL 借助此链接
https://sapcodes.com/2016/03/25/powl-in-fpm/ ....
(信息:此POWL从标准FBI视图中获取数据)。
新的FPM-POWL在LPD_CUST内正确维护(我希望如此,因为它得到显示),以便在FPM框架(应等待的标志,也应在调用者上设置)中启动此弹出窗口和被呼叫者)。
好的,让我们继续。--
调用类(实现IF_POWL_FEEDER的馈送类“ A”)像这样调用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中进行什么操作,直到现在...尝试弄清楚,如何将记录传递回调用方类“ A” ...
因为与预期不同(因为两个LPD_CUST条目都将标志设置为“ Synch / await”),所以类“ A”继续处理我放置在
之后的任何代码 lr_lpd_handle->launch_application( iv_application_id = lr_lpd_content->application_id ).
所以我想这是“按设计工作”并且是异步的。
因此,我当前的实验假定是同步的,我将选择的业务伙伴的号码导出到内存ID中并关闭了“弹出窗口”。
但是我再也没有回到调用者那里,我想在那里开始编写其余需求。
因此,我的第二个尝试是,我在供料器类“ B”(称为弹出窗口)中创建了一个事件,并在供料器类“ A”(调用者)中为此创建了处理程序。
在“ A类”的ctor中,我通过“所有实例的SET HANDLER”进行了注册。...测试即将开始。
但是我真的很讨厌这种方法,....是否有关于此的最佳实践?
我无法想象,我是唯一有这种要求的人,简单来说,这意味着:
“ Listpopup” ...我们都知道,这在sapgui中有多简单...但是在FPM-POWL-LPD环境中...我无法获得...
编辑:也许我应该在此处执行一些操作以强制执行阻止弹出式调用?
或者我可以以某种方式填充被调用者的handle动作的导出参数以返回到调用者的handle_action吗?阿拉POWL_FORWARD_anything吗?