FPM-WD-LPD:以POWL作为Listpopup来选择一条记录,然后将其返回

时间:2019-03-13 12:10:34

标签: abap fpm webdynpro

情况是这样的:

我们有一个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环境中...我无法获得...

编辑:也许我应该在此处执行一些操作以强制执行阻止弹出式调用?

enter image description here

或者我可以以某种方式填充被调用者的handle动作的导出参数以返回到调用者的handle_action吗?阿拉POWL_FORWARD_anything吗?

0 个答案:

没有答案