gpt4 book ai didi

odata - 获取 SAPUI5 v2 ODataModel 的服务元数据?

转载 作者:行者123 更新时间:2023-12-05 03:12:57 26 4
gpt4 key购买 nike

我尝试获取 sapui5 v2 odata 模型的服务元数据。代码:

var oModel = new sap.ui.model.odata.v2.ODataModel(someServiceURL);
var oMetadata = oModel.getServiceMetadata();

这应该根据这个页面工作: https://openui5beta.hana.ondemand.com/docs/guide/6c47b2b39db9404582994070ec3d57a2.html

无论如何,我得到了 oMetadata 的“undefined”。如果我将代码更改为:

var oModel = new sap.ui.model.odata.v2.ODataModel({
loadMetadataAsync : false,
serviceUrl : someServiceURL
});

还是oMetadata === undefined

根据 SDK 文档元数据应同步加载:

Return the metadata object. Please note that when using the model with bLoadMetadataAsync = true then this function might return undefined because the metadata has not been loaded yet. In this case attach to the metadataLoaded event to get notified when the metadata is available and then call this function.

我的代码有什么问题?

我正在使用 (1.28.11):

<script src="https://sapui5.netweaver.ondemand.com/resources/sap-ui-core.js"    ...

我开始调试 UI5 代码并检测到以下行:this.bLoadMetadataAsync = true;

我开始调试 SAPUI5 代码并检测到以下行(似乎每次都被调用):

this.bLoadMetadataAsync = true;

这是一个错误吗?还是我的代码有问题?

最佳答案

解决方案:以下内容在实际应用程序环境中对我有用。我想它没有在我的 fiddle 中被解雇是因为没有发出实际的数据请求:

var oModel = new sap.ui.model.odata.v2.ODataModel(<ServiceURL>);

oModel.attachMetadataLoaded(null, function(){
var oMetadata = oModel.getServiceMetadata();
console.log(oMetadata);
},null);

引导解决方案:

好的,所以我开始尝试了一下,发现了以下内容:

  • .getServiceMetadata()sap.ui.model.odata.ODataModel 配合良好。
  • 使用 sap.ui.model.odata.v2.ODataModel 元数据请求是通过网络发送的,但是 .getServiceMetadata() 返回了 未定义
  • 我尝试了 sap.ui.model.odata.v2.ODataModel.attachMetadataLoaded() 但该事件从未被触发。 (这个只适用于我用的jsbin)

我将根据我所做的任何进一步发现对其进行编辑。如果您有任何应该包含在我的发现/测试中的内容,请告诉我。

编辑:

bLoadMetadataAsync 是您可以在 sap.ui.model.odata.ODataModel 上设置的参数。该参数不再位于 sap.ui.model.odata.v2.ODataModel 的 API 中。我假设默认选择异步加载。

编辑:@user3783327 在这里报告了一个错误:https://github.com/SAP/openui5/issues/564

关于odata - 获取 SAPUI5 v2 ODataModel 的服务元数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31938755/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com