0

情况是这样的:

我们有一个 POWL,我在其中添加了一个工具栏按钮。

单击该按钮会打开一个 FPM-POWL,这是我在此链接的帮助下创建的

https://sapcodes.com/2016/03/25/powl-in-fpm/ ....

(信息:此 POWL 从标准 FBI 视图中获取数据)。

新的 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 中执行它需要做什么,直到现在......我试着想出来,如何将记录传递回调用者类“A”......

因为,与预期不同(因为两个 LPD_CUST 条目都设置了标志“Synch/await”),“A”类继续处理我放置的任何代码

      lr_lpd_handle->launch_application( iv_application_id = lr_lpd_content->application_id ).

所以我想,这是“按设计工作”并且是异步的。

所以,我目前的实验假设是同步的,我将任何选择的商业伙伴的号码导出到内存 ID 并关闭“弹出窗口”。

但是我从来没有回到调用者那里,我想开始编写其余的需求。

因此,我的第二次尝试是,我在 feeder 类“B”(称为弹出窗口)中创建了一个事件,并在 feeder 类“A”(调用者)中为此创建了一个处理程序。

在“A”类的ctor中,我通过“SET HANDLER FOR ALL INSTANCES”注册......并且测试即将开始。

但我真的很讨厌这种方法,....有没有关于这个的最佳实践?

我无法想象,我是唯一一个有这种要求的人,简单来说,就是:

“Listpopup”......我们都知道,这在 sapgui 中是多么简单......但是在 FPM-POWL-LPD 环境中......我无法理解......

编辑:也许我应该在这里做一些事情来强制阻止弹出呼叫?

在此处输入图像描述

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

4

0 回答 0