1

我尝试使用此解决方案在 SAPUI5 应用程序中显示用户 ID。

所需的片段是:

sap.ushell.Container.getService("UserInfo").getId()

sap.ushell不包含本页所述的任何服务方法,它仅包含特定于 UI 的条目。我的 HCP 帐户没有初始化所需的任何 ABAP JS,sap.ushell如下所述:

为方便起见,可以使用特定于平台的引导代码,并且可以通过公司 shell 轻松包含(在 SAPUI5 引导之前),如下所示:

<script> src="/sap/public/bc/ui5_ui5/resources/sap/ushell_abap/bootstrap/abap.js"></script>

此引导代码将自动推迟 SAPUI5 的初始化,直到容器可用。这是引导统一 Shell 的首选方式。

<script src=".../resources/sap/ushell_abap/bootstrap/abap.js"></script>
<script id="sap-ui-bootstrap" src=".../sap-ui-core.js"></script>

如何初始化 sap.ushell?我的 index.html 具有以下引导程序:

<script src="https://sapui5.hana.ondemand.com/1.34.9/resources/sap-ui-

        core.js" id="sap-ui-bootstrap"
                data-sap-ui-libs="sap.m,sap.ui.commons, sap.ui.table,sap.ui.ux3,sap.ushell"
                data-sap-ui-theme="sap_bluecrystal"
                data-sap-ui-preload="async"
                >

            </script>

                  <script>
                     sap.ui.getCore().attachInit(function () {....
                     });
            </script>
4

1 回答 1

4

您可以通过以下方式获取当前用户(在 HCP 登录)的 id:

  1. 在 neo-app.json 文件中添加相应的服务条目:

    "welcomeFile": "index.html",
    "routes": [
    ...
    {
    "path": "/services/userapi",
    "target": {
    "type": "service",
    "name": "userapi"
    }
    ...
    
  2. 在任何你想要的地方设置用户模型(例如在你的 component.js 中):

    // set user model
    var userModel = new sap.ui.model.json.JSONModel();
    userModel.loadData("/services/userapi/currentUser", null, false);
    this.setModel(userModel, "userapi");
    

在 userapi 模型中,您可以访问一些用户信息,包括用户 ID。

于 2016-04-15T09:52:03.693 回答