从 SAP Web 中的两个不同系统访问 OData 服务 IDE

Access OData services from two different system in SAP Web IDE

我在两个不同的系统上有两个 OData 服务,为此我在 HCP 中添加了目的地并在 neo-aap.json 文件中添加了条目。

{
    "path": "/sap/opu/odata",
    "target": {
        "type": "destination",
        "name": "ABC",
        "entryPath": "/sap/opu/odata"
    },
    "description": "ABC"
}, {
    "path": "/sap/opu/odata",
    "target": {
        "type": "destination",
        "name": "XYZ",
        "entryPath": "/sap/opu/odata"
    },
    "description": "XYZ"
}

有了这个,我只能访问一个系统的服务,即 ABC 上的 OData 服务。当应用程序加载应用程序时,应用程序也会尝试在 ABC 中加载第二个 OData 服务的命中元数据,但显然不存在,因此失败。

如何在XYZ系统上访问OData服务?

在我看来,这是一个错误。 用于定位目的地的键是“path”值,因此您将始终到达第一个目的地。 您可以通过将路径从 /sap/opu/odata 更改为 /sap/opu/odata1 来解决此问题 然后,您在 manifest.json 中编辑您的数据源:在您尝试指向第二条路径的任何模型上使用调整后的路径调整“uri”。

我已经写了这篇文章 here 并且正忙于让 SAP 改变这种行为。

如果'path'相同,则只匹配第一个。为您的目的地设置不同的路径。 neo-app.json 中的 'path' 属性 只是您目的地的别名。对于您的配置,这意味着,无论何时在您的应用程序中,您从“/sap/opu/odata/...”请求某些内容,应用程序将使用您在目标中配置的 URL 覆盖路径的这一部分。

就这样吧:

{
  "path": "/ABC/sap/opu/odata",
  "target": {
     "type": "destination",
     "name": "ABC",
     "entryPath": "/sap/opu/odata"
  },
  "description": "ABC"
}, {
  "path": "/XYZ/sap/opu/odata",
  "target": {
     "type": "destination",
     "name": "XYZ",
     "entryPath": "/sap/opu/odata"
  },
  "description": "XYZ"
}

然后确保在设置模型数据源时使用“/ABC/sap/opu/odata”或“/XYZ/sap/opu/odata”。