sapui5 - 从 Fiori 收件箱中删除 "Claim"按钮

标签 sapui5 sap-fiori

我想从 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 应用程序。

  1. 基于类 /IWPGW/CL_TGW_FACADE_BWF_V2 在网关中创建子类。

  2. 重新定义方法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.
    
  3. 在网关系统中的 spro 中打开提供程序实现(德语为 sry)
    enter image description here

  4. 将您的 zclass 替换为标准类 /IWPGW/CL_TGW_FACADE_BWF_V2
    enter image description here


  5. enter image description here


前端解决方案:

如果您无法访问后端,请通过 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/

相关文章:

modal-dialog - 如何扩展 "sap.m.Dialog"以将自定义内容添加到对话框页脚?

sapui5 - 是否可以在一个 View 中使用 2 个模型

javascript - sapui5 fiori xml View 如何添加BulletChart

sapui5 - SAP UI5 App加载图片有稳定的解决方案吗?

cordova - 使用设备声音的 SAP Fiori 客户端

routing - SAPUI5 路由抛出错误 “Control (ID of an App control) could not be found”

java - 未定义属性上聚合角色的命名空间前缀 sap

SAPUI5 JSONModel 和 JSONP

javascript - 使多组合框和项目的尺寸相同

css - 如何在 window.print 中使用 SAPUI5 库 css?