使用已登录的用户从Odata服务获取数据

使用已登录的用户从Odata服务获取数据,odata,sapui5,Odata,Sapui5,我有一个Odata服务,它向我提供数据,我能够在表中显示这些数据。我们将把这个应用程序部署到Launchpad。现在我们有这样一个要求,即登录用户必须根据其登录ID获取数据。因此,如果我的用户ID为XXXXX,我应该只获取XXXXX的记录。我无法理解流程。我们应该在Odata本身中实现逻辑,还是应该在显示之前获取所有数据并在UI上过滤模型 问候,, MS在oData中,您可以通过sy uname访问登录用户。使用该用户,您可以筛选数据 或 在前端,您可以通过以下代码访问登录用户 var vUrl

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

问候,,
MS

在oData中,您可以通过sy uname访问登录用户。使用该用户,您可以筛选数据

在前端,您可以通过以下代码访问登录用户

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);

在oData中,您可以通过sy uname访问登录用户。使用该用户,您可以筛选数据

在前端,您可以通过以下代码访问登录用户

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);

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

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

您必须仅在Odata中处理此问题。使用从UI获取用户id

var storename = sap.ushell.Container.getService("UserInfo").getId();

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

您必须仅在Odata中处理此问题。使用从UI获取用户id

var storename = sap.ushell.Container.getService("UserInfo").getId();
并将其设置为Odata以过滤并返回结果