0

再会。

是否有任何解决方案可以在实现 CockpitAction 接口的类中调用小部件的刷新操作。一般来说,您应该实现此接口以便在后台使用您自己的操作。因此,就我而言,它是订阅页面中的按钮: 在此处输入图像描述

在图片上你可以看到 4 个不同的按钮,这不是后台的开箱即用功能,所以你应该自己实现它。4 个按钮 = 4 个动作。当您按下按钮时,有一种方法:

ActionResult 执行(ActionContext var1);

调用它来执行所需的逻辑。

还有方法:

默认 boolean canPerform(ActionContext ctx) { return true; }

用于检查此按钮是否设置为主动或被动状态,例如是否可点击。

问题是,当您按下按钮并且它应该变为非活动状态时它仍然处于活动状态,因为没有触发刷新,您可以通过单击刷新按钮手动触发刷新。理想情况下,应在 perfrom() 方法中按下操作按钮后触发刷新在此处输入图像描述

我进行了搜索,没有找到从实现 CockpitAction 接口的类代码中触发刷新操作的方法。后台如何构建的逻辑非常复杂并且没有很好的文档记录,所以我什至没有找到触发刷新的正确函数。

如果您使用过 SAP Hybris 并且非常了解 Backoffice,请您帮忙解决这个问题。

提前致谢!

4

1 回答 1

1

在 perform 方法中只需设置 result.setStatusFlags(EnumSet.of(StatusFlag.OBJECT_MODIFIED));

public ActionResult<T> perform(final ActionContext<T> obj)
{
-------- some logic --------
    final ActionResult result = new ActionResult(ActionResult.SUCCESS);
    result.setStatusFlags(EnumSet.of(StatusFlag.OBJECT_MODIFIED));
    return result;
}
于 2019-07-29T12:00:28.560 回答