2

我正在扩展 hcm.emp.payslip 应用程序,需要在页脚中添加一个按钮....正确的做法是什么?...

选项 1:按照此pdf第 13 页中的说明放置扩展点.. - 它不起作用..我完全按照提到的步骤操作。或者这不起作用,因为我们自己插入了一个扩展点,现在不支持。?

选项 2:扩展 UI 控制器挂钩,如此所述 ——我无法尝试,因为文档非常简短,而且我是初学者......另外我不确定我们是否可以通过扩展控制器来更改视图

我正在使用eclipse,并安装了Tool kit插件,我看到一些地方他们推荐使用Web IDE,但我们想使用工具包来做,因为我不确定我们是否有云HANA访问权限。还是使用UI工具包的方式还是可以的..

想建议正确的方法和详细的步骤......

4

2 回答 2

2

您的选项 1是不可能的(为什么?因为要向页脚添加按钮controllerHook没有 UI 扩展点)

使用选项 2已经在应用程序的详细信息页面的所有控制器( S3.controller.jsS3_phone.controller.js)中给出了 extensionHooks 。

控制器钩子:extHookChangeFooterButtons

默认情况下,SAP 构建 headerFooterOptions 并将该对象发送到您的扩展 Hook

/**
         * @ControllerHook Modify the footer buttons
         * This hook method can be used to add and change buttons for the detail view footer
         * It is called when the decision options for the detail item are fetched successfully
         * @callback hcm.emp.payslip.view.S3_Phone~extHookChangeFooterButtons
         * @param {object} objHdrFtr-Header Footer Object
         * @return {object} objHdrFtr-Header Footer Object
         */

        if (this.extHookChangeFooterButtons) {
            objHdrFtr = this.extHookChangeFooterButtons(objHdrFtr);
        }

因此,您在扩展控制器中会收到相同的附加信息:

extHookChangeFooterButtons: function (objHdrFtr) {
    //first if the buttonsList is empty, create one. 
    //Actually in S3.controller.js buttonsList is not defined since there are no buttons
    if (!objHdrFtr.buttonList) {
        objHdrFtr.buttonList = [];
    }
    //then create a button:
    var extendedButton = {
        sId: "EXT_BUTTON",
        sI18nBtnTxt: "SAMPLE", //make sure you add texts in respective i18n files
        bEnabled: true,
        onBtnPressed: function (evt) {
            that.handleExtButtonPress(evt);
        }
    };
    objHdrFtr.buttonList.append(extendedButton)
    //as you can see SAP says to return the object
    return objHdrFtr;
}

建议:在Web IDE中很容易做到。 为什么?

  • SETUP 无需时间。
  • 非常容易使用,节省大量时间
  • 在 UI 中显示所有 controllerHooks、扩展点
于 2015-05-10T10:37:36.153 回答
1

对于 Fiori Inbox 中的上述示例,请使用 B.aButtonList.push(extendedButton); 这会将按钮添加到列表的末尾(而不是追加)

于 2020-02-06T08:10:55.140 回答