如何对实现 CockpitAction<I, O> 接口的 class 的小部件执行刷新操作
How to perform refresh operation on widget from class that implements CockpitAction<I, O> interface
美好的一天。
在class实现了CockpitAction接口的widget上调用刷新操作有什么解决方案吗?一般来说,你应该实现这个接口才能在后台使用你自己的动作。所以在我的例子中,它是订阅页面中的按钮:
在图片上你可以看到4个不同的按钮,这不是backoffice开箱即用的功能,所以你应该自己实现。
4 个按钮 = 4 个动作。当你按下按钮时,有一个方法:
ActionResult perform(ActionContext var1);
调用它来执行所需的逻辑。
还有方法:
default boolean canPerform(ActionContext ctx) {
return true;
}
用来检测这个按钮是主动状态还是被动状态,比如是否可以点击
问题是,当你按下按钮时,它应该变为非活动状态,但它仍然是活动状态,因为没有触发刷新,你可以通过点击刷新按钮手动触发刷新。理想情况下,应该在 perfrom() 方法 中按下操作按钮后触发刷新:
我搜索了一下class实现CockpitAction接口的代码,没有找到触发刷新操作的方法。 backoffice 的构建逻辑非常复杂,而且没有很好的文档记录,所以我什至没有找到合适的触发刷新的函数。
如果您使用过 SAP Hybris 并且对 Backoffice 很了解,请您帮忙解决这个问题。
提前致谢!
在刚刚设置的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;
}
美好的一天。
在class实现了CockpitAction接口的widget上调用刷新操作有什么解决方案吗?一般来说,你应该实现这个接口才能在后台使用你自己的动作。所以在我的例子中,它是订阅页面中的按钮:
在图片上你可以看到4个不同的按钮,这不是backoffice开箱即用的功能,所以你应该自己实现。 4 个按钮 = 4 个动作。当你按下按钮时,有一个方法:
ActionResult perform(ActionContext var1);
调用它来执行所需的逻辑。
还有方法:
default boolean canPerform(ActionContext ctx) { return true; }
用来检测这个按钮是主动状态还是被动状态,比如是否可以点击
问题是,当你按下按钮时,它应该变为非活动状态,但它仍然是活动状态,因为没有触发刷新,你可以通过点击刷新按钮手动触发刷新。理想情况下,应该在 perfrom() 方法 中按下操作按钮后触发刷新:
我搜索了一下class实现CockpitAction接口的代码,没有找到触发刷新操作的方法。 backoffice 的构建逻辑非常复杂,而且没有很好的文档记录,所以我什至没有找到合适的触发刷新的函数。
如果您使用过 SAP Hybris 并且对 Backoffice 很了解,请您帮忙解决这个问题。
提前致谢!
在刚刚设置的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;
}