如何在Eclipse WebApp预览中运行的SAPUI5应用程序中定义SAP强制/客户端编号?

时间:2015-08-24 07:54:36

标签: sap sapui5 netweaver

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

OData服务中使用的客户端数据总是" 100"默认情况下。 我假设使用的客户端是用于存储库设置的客户端。

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

由于SAPUI5 1.26.9及其相应的开发工具似乎可行,因此在SAP NetWeaver Gateway上定义默认客户端,但在升级到1.28.x之后,大部分时间都使用客户端100。

现在我正在搜索该问题的文档,但无法找到任何内容。当然,一个问题是搜索术语"客户端"根本不会帮助。

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

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

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

3 个答案:

答案 0 :(得分:2)

你能在URL中找到一个参数并链接到检索serviceUrl吗?
也许你可以拥有一个URL参数,并且基于这个参数,你可以使用客户端200的硬编码值和其他没有任何东西的服务URL。 您可以检索参数:

$product->prices()->latest()->amount

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

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

答案 1 :(得分:2)

您可以使用renamedpages_controller.rb sap-client - 参数。当您使用SAP Portal或SAPGUI时,这个将自动传递给您的应用程序。

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

答案 2 :(得分: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客户端测试所需的标头变量。

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