SAP Fiori在UI5应用程序中登录用户详细信息

时间:2018-03-12 06:07:20

标签: sap sap-fiori

我是SAP Fiori应用程序,我需要获取当前登录的用户详细信息。 我搜索过网络但无法找到解决方案。

有没有办法从启动板获取当前登录的用户详细信息。

4 个答案:

答案 0 :(得分:1)

尝试一下:

aggregation_result = [{
    _id: 1
    user_id: 2,
    user_name: 'john'
    level: 'A'
}, {
    _id: 2
    user_id: 4,
    user_name: 'mike'
    level: 'B'
}, {
    _id: 3
    user_id: '8',
    user_name: 'tommy'
    level: 'C'
}, {
    _id: 4
    user_id: '16',
    user_name: 'davidmith'
    level: 'C'
}]

答案 1 :(得分:1)

FLP shell中有一个UserInfo服务,可以像这样检索:

doSomethingUserDetails: async function() {
  const oUserInfo = await this.getUserInfoService();
  const sUserId = oUserInfo.getId();
  // ...
},

getUserInfoService: async function() {
  return new Promise(resolve => sap.ui.require([
    "sap/ushell/library"
  ], oSapUshellLib => {
    const oContainer = oSapUshellLib.Container;
    const pService = oContainer.getServiceAsync("UserInfo"); // getServiceAsync available since 1.55
    resolve(pService);
  }));
},

您还可以致电oUserInfo.getUser(),该电话具有更多信息,例如电子邮件地址,名称,语言等,但这是一种私有方法。为了通过公共API访问更多信息,您必须使用平台提供的服务,例如SCP Neo环境。

从SAP Cloud Platform- Neo 环境中访问用户详细信息

Neo环境中的SCP提供了一种称为userapi的服务,可以直接在Web IDE中使用。

  1. neo-app.json / routes中:

    {
      "path": "/scpServices/userAPI",
      "target": {
        "type": "service",
        "name": "userapi"
      }
    },
    
  2. manifest.json中:

    • / sap.app / dataSources
      "currentUserSource": {
        "uri": "/scpServices/userAPI/currentUser",
        "type": "JSON"
      },
      
      也可以用/attributes代替/currentUser。查看下面的链接文档。
    • / sap.ui5 / models
      "currentUser": {
        "dataSource": "currentUserSource",
        "preload": true
      },
      
  3. 现在,将JSON模型“ currentUser”设置为可用于数据绑定的应用程序的UIComponent。该模型包含以下数据:

    displayName:“ John Doe(S1234567890)”
    电子邮件:“ john@doe.com”
    firstName:“约翰”
    lastName:“ Doe”
    名称:“ S1234567890”

有关更多信息,请参见文档主题 Accessing the User API

答案 2 :(得分:0)

可以从SDK检索用户ID。 请参阅class sap.ushell.services.UserInfo

答案 3 :(得分:0)

如果您想在启动板中运行应用程序时访问用户详细信息。然后您可以通过添加以下代码片段来检索当前用户详细信息:

var userInfo = sap.ushell.Container.getService("UserInfo");
var email = userInfo.getEmail();

然后可以检索有关用户的更多详细信息,例如电子邮件和全名。请参阅 API here