我有一个Odata服务,它为我提供数据,我可以在桌面上显示这些数据。我们将把这个应用程序部署到Launchpad。现在我们有了这个要求,登录用户必须根据他/她的登录ID获取数据。因此,如果我的用户ID是XXXXX,我应该只获取XXXXX的记录。我无法理解流程。我们应该在Odata中实现逻辑,还是应该在显示之前获取所有数据并在UI上过滤模型。
此致 MS
答案 0 :(得分:1)
在oData本身,您可以通过sy-uname访问登录用户。使用该用户,您可以过滤数据。
OR
在前端,您可以通过以下代码访问登录用户
var vUrl = "proxy/sap/bc/ui2/start_up";
var oxmlHttp = null;
oxmlHttp = new XMLHttpRequest();
oxmlHttp.onreadystatechange = function() {
if (oxmlHttp.readyState == 4 && oxmlHttp.status == 200) {
var oUserData = JSON.parse(oxmlHttp.responseText);
vUser = oUserData.id;
}
};
oxmlHttp.open( "GET", vUrl, false );
oxmlHttp.send(null);
答案 1 :(得分:1)
你必须在Odata中处理这个问题。使用
从UI获取用户IDvar storename = sap.ushell.Container.getService("UserInfo").getId();
并将其设置为Odata以过滤并发回结果。
答案 2 :(得分:0)
您应该在服务级别(OData级别)处理此类要求,而不是在UI中。 在DPC_EXT类变量中,SY-UNAME为您提供登录用户。因此,您应该通过从中获取更多信息来过滤您的记录。