2

使用 SAPUI5 的 Eclipse 开发工具,可以在 WebApp 预览模式下运行 SAPUI5 应用程序。它工作正常期待一分。

OData 服务中使用的客户端数据默认始终为“100”。我假设使用的客户端是用于存储库设置的客户端。

但是对于测试,由于维护的测试数据,我必须使用不同的客户端(200)。

由于 SAPUI5 1.26.9 和相应的开发工具似乎可以工作,在 SAP NetWeaver 网关上定义了一个默认客户端,但在升级到 1.28.x 之后,大部分时间都使用客户端 100。

现在我正在搜索该问题的文档,但找不到任何东西。一个问题当然是搜索词“客户”根本没有帮助。

我也会避免在某处硬编码任何客户端号码,因为在真实系统中,登录的客户端将被自动使用。

但在 WebApp 预览版中,我不会被要求提供客户端。

也许这是问这个问题的错误地方?在这种情况下,我会删除它。

4

3 回答 3

2

您可以在 URL 中有一个参数并将其链接到检索您的 serviceUrl 吗?
也许您可以有一个 URL 参数,并基于该参数,您可以 2 个服务 URL,一个具有客户端 200 的硬编码值,另一个则没有任何内容。您可以检索参数:

jQuery.sap.getUriParameters().get("test-mode") === "true";

在 OData 服务定义中对客户端进行硬编码:

var sUrl = "proxy/protocol/server:port/pathToService?sap-client=600";
var oModel = new sap.ui.model.odata.ODataModel(sUrl,true)
于 2015-08-24T14:35:00.217 回答
2

您可以使用sap-client GET- 参数。当您使用 SAP Portal 或 SAPGUI 时,此信息将自动传递给您的应用程序。

ODataModel将其传递给自己的数据服务。

于 2015-08-25T04:08:10.673 回答
0

当您调用模型对象时,您可以将一些标头变量“指向”到正确的 sap 客户端。

    // Set the client header variable
    var oHeaders = {'sap-client': '120'};
    var bCSRF = "true";
    var oModel = sap.ui.model.odata.ODataModel(serviceURL, true, "user", "pass", oHeaders, bCSRF, false, false, "", false);
    sap.ui.getCore().getModel(oModel, 'gAppModel')

您可以使用 Postman 等 REST 客户端测试您需要哪些标头变量。

OData 构造函数的详细信息可以在 API - UI5 OData 模型中找到

于 2015-09-03T13:34:03.273 回答