通过登录用户

时间:2017-05-16 11:13:42

标签: odata sapui5

我有一个Odata服务,它为我提供数据,我可以在桌面上显示这些数据。我们将把这个应用程序部署到Launchpad。现在我们有了这个要求,登录用户必须根据他/她的登录ID获取数据。因此,如果我的用户ID是XXXXX,我应该只获取XXXXX的记录。我无法理解流程。我们应该在Odata中实现逻辑,还是应该在显示之前获取所有数据并在UI上过滤模型。

此致 MS

3 个答案:

答案 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获取用户ID
var storename = sap.ushell.Container.getService("UserInfo").getId();

并将其设置为Odata以过滤并发回结果。

答案 2 :(得分:0)

您应该在服务级别(OData级别)处理此类要求,而不是在UI中。 在DPC_EXT类变量中,SY-UNAME为您提供登录用户。因此,您应该通过从中获取更多信息来过滤您的记录。