我想从 SAP Fiori 收件箱页脚删除或至少禁用“ claim ”按钮。
我已经找到this question但它仅描述了删除批准/拒绝按钮,这些按钮在 oOptions
中拥有自己的属性。
可能声明按钮位于 buttonList
数组中,但这样设置没有效果:
sap.ui.define([
"sap/m/MessageToast",
"sap/m/Dialog",
"sap/base/Log",
"sap/ui/model/Filter",
"sap/ui/model/FilterOperator",
"sap/ui/model/Sorter",
"sap/ui/core/mvc/Controller"
], function (MessageToast, Dialog, Log, Filter, FilterOperator, Sorter, Controller) {
"use strict";
return Controller.extend("something.controller.App", {
onInit: function () {
this._headerFooterOptions = {
buttonList: []
};
this.setHeaderFooterOptions(this._headerFooterOptions);
// ...
}
});
});
另一种可能的方法是通过 this.setBtnEnabled(sid, false);
禁用该按钮,但由于我不知道声明按钮的 sID
,所以我无法检查这个。
我非常感谢有关此问题的帮助!
编辑:我无法访问后端,如果有人遇到同样的问题但可以访问后端,请参阅 @MrNajzs answer .
最佳答案
网关/后端解决方案:
有一个选项可以通过网关/后端类隐藏转发、释放、声明等按钮。在我看来,您应该采用这种方法,而不是扩展 MyInbox UI5 应用程序。
基于类
/IWPGW/CL_TGW_FACADE_BWF_V2
在网关中创建子类。重新定义方法
MAP_TASK_ADDITIONAL_FLAGS
。例如,如果任务 id = XXX,则不显示转发、声明、...CALL METHOD SUPER->MAP_TASK_ADDITIONAL_FLAGS CHANGING IS_TASK = is_task . if is_task-TASK_DEF_ID CS 'XXX'. "your workitem task id clear: is_task-TASK_SUPPORTS-FORWARD, is_task-TASK_SUPPORTS-CLAIM, is_task-TASK_SUPPORTS-TASKOBJECT, is_task-TASK_SUPPORTS-RESUBMIT. ENDIF.
前端解决方案:
如果您无法访问后端,请通过 WEBIDE 扩展 MyInbox。 在您的情况下,您可以扩展整个 Controller (S3.controller.js)或实现 UI Controller Hook(S3.controller.js->extHookChangeFooterButtons)。对于 SAP 标准应用程序的可扩展性,请始终查看 SAP Fiori Apps Reference Library
示例(S3.controller.js - UI Controller Hook 实现):
extHookChangeFooterButtons: function (oButtonList) {
var sTaskDefinitionId = this.getView().getBindingContext().getProperty("TaskDefinitionID");
switch (sTaskDefinitionId) { //Define your condition
case "XXX":
oButtonList.aButtonList = []; // No Buttons
break;
case "XYZ":
oButtonList.aButtonList.splice(1,1) //No Claim Button
break;
default:
break;
}
}
关于sapui5 - 从 Fiori 收件箱中删除 "Claim"按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65718427/