从 Fiori 收件箱中删除 "Claim" 按钮
Remove "Claim" Button from Fiori inbox
我想删除或至少禁用 SAP Fiori 收件箱页脚中的“声明”按钮。
我已经找到 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
,所以我无法检查它。
非常感谢能帮助解决这个问题!
编辑:我无法访问后端,以防万一有人遇到同样的问题但可以访问后端,请参阅 。
Gateway/Backend解决方案:
有一个选项可以隐藏转发、发布、声明等按钮gateway/backend class。在我看来,您应该采用这种方法,而不是通过扩展 MyInbox UI5 应用程序。
根据 class /IWPGW/CL_TGW_FACADE_BWF_V2
.
在您的网关中创建子class
重新定义方法MAP_TASK_ADDITIONAL_FLAGS
。例如,如果任务 id = XXX,则不显示 Forward、Claim、...
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.
在您的网关系统中打开 spro 中的提供程序实现(德语为 sry)
用标准 class 替换你的 zclass /IWPGW/CL_TGW_FACADE_BWF_V2
瞧瞧
前端解决方案:
如果您无法访问后端,请通过 WebIDE 扩展 MyInbox。
在您的情况下,您可以扩展整个控制器(S3.controller.js)或实现一个 UI Controller Hook(S3.controller.js->extHookChangeFooterButtons)。对于 SAP 标准应用程序的可扩展性,请始终查看 SAP Fiori Apps Reference Library
示例(S3.controller.js - UI 控制器挂钩实现):
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;
}
}
我想删除或至少禁用 SAP Fiori 收件箱页脚中的“声明”按钮。
我已经找到 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
,所以我无法检查它。
非常感谢能帮助解决这个问题!
编辑:我无法访问后端,以防万一有人遇到同样的问题但可以访问后端,请参阅
Gateway/Backend解决方案:
有一个选项可以隐藏转发、发布、声明等按钮gateway/backend class。在我看来,您应该采用这种方法,而不是通过扩展 MyInbox UI5 应用程序。
根据 class
在您的网关中创建子class/IWPGW/CL_TGW_FACADE_BWF_V2
.重新定义方法
MAP_TASK_ADDITIONAL_FLAGS
。例如,如果任务 id = XXX,则不显示 Forward、Claim、...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.
在您的网关系统中打开 spro 中的提供程序实现(德语为 sry)
用标准 class 替换你的 zclass
/IWPGW/CL_TGW_FACADE_BWF_V2
瞧瞧
前端解决方案:
如果您无法访问后端,请通过 WebIDE 扩展 MyInbox。 在您的情况下,您可以扩展整个控制器(S3.controller.js)或实现一个 UI Controller Hook(S3.controller.js->extHookChangeFooterButtons)。对于 SAP 标准应用程序的可扩展性,请始终查看 SAP Fiori Apps Reference Library
示例(S3.controller.js - UI 控制器挂钩实现):
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;
}
}