我是SAP Fiori应用程序,我需要获取当前登录的用户详细信息。 我搜索过网络但无法找到解决方案。
有没有办法从启动板获取当前登录的用户详细信息。
答案 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环境。
Neo环境中的SCP提供了一种称为userapi
的服务,可以直接在Web IDE中使用。
在neo-app.json
/ routes
中:
{
"path": "/scpServices/userAPI",
"target": {
"type": "service",
"name": "userapi"
}
},
在manifest.json
中:
sap.app
/ dataSources
:
"currentUserSource": {
"uri": "/scpServices/userAPI/currentUser",
"type": "JSON"
},
也可以用/attributes
代替/currentUser
。查看下面的链接文档。 sap.ui5
/ models
:
"currentUser": {
"dataSource": "currentUserSource",
"preload": true
},
现在,将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。