扩展SAP Fiori应用程序 - 在页脚中添加按钮

时间:2014-12-23 06:35:19

标签: sap-fiori

我正在扩展hcm.emp.payslip app并需要在页脚中添加一个按钮....这样做的正确方法是什么?...

选项1:按照此pdf的第13页所述放置扩展点.. - 它没有工作......我完全遵循上述步骤。或者这不会起作用,因为我们正在插入一个自己的扩展点,现在不支持。?

选项2:按照here所述扩展UI控制器挂钩 - 我无法尝试这个,因为文档非常简短,而且我是初学者......我也不确定是否我们可以通过扩展控制器来改变视图

我正在使用eclipse,并安装了工具包插件,我看到他们推荐使用Web IDE的一些地方,但我们希望使用工具包,因为我不确定我们是否有云HANA访问。或者仍然可以使用UI工具包方式..

希望通过详细步骤建议正确的方法......

2 个答案:

答案 0 :(得分:1)

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

使用选项2 ,所有控制器中都已提供extensionHooks( S3.controller.j s和 S3_phone.controller.js )应用程序的详细信息页面

controllerHook: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中很容易实现。 为什么?

  • 没时间设置。
  • 非常好用,节省了大量时间
  • 显示所有控制器挂钩, 用户界面中的扩展点

答案 1 :(得分:1)

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