【问题标题】:How to change the oData version in webide如何在 webide 中更改 oData 版本
【发布时间】:2016-05-11 22:25:14
【问题描述】:

我需要将我的 webide oData 版本更改为 v1。应用程序是自动使用 v2 版本创建的。我已经根据基于 v1 的批处理操作为我的应用程序提供了后端。所以我需要为我的应用程序使用该后端。有没有办法实现这一点?

【问题讨论】:

    标签: sapui5 web-ide


    【解决方案1】:

    您应该能够直接在 manifest.json 中指定类型,并且可以指向 ODataModel v1

    "models": {
        "": {
            "type":"sap.ui.model.odata.ODataModel",
            "dataSource":"mainService"
        }
    },
    

    【讨论】:

    • 嗨 MacGregor,我按照你所说的尝试过。this.getModel() 给了我 odata v1 模型,但是当我执行 UIComponent.prototype.init.apply(this, arguments);它给我的错误是 Uncaught TypeError: this.getOwnerComponent(...).getModel(...).metadataLoaded 不是一个函数。如何解决这个问题。顺便说一下,我在 webide 中使用 sap-fiori masterdetail 应用程序
    • 您使用的是什么版本的 SAPUI5?我在 UIComponent init 方法中看不到该代码。没有看到你的代码就很难解决这个问题......我可以在我的 manifest.json 中执行一个指定 sap.ui.model.odata.ODataModel 的应用程序,没有任何问题。
    【解决方案2】:

    我怀疑您将无法使用新的 Freestyle 模板和清单方法来更改这一点。其实API实例化中的代码如下

    if (!j.type) {
        switch (k.type) {
        case 'OData':
            j.type = 'sap.ui.model.odata.v2.ODataModel';
            break;
        case 'JSON':
            j.type = 'sap.ui.model.json.JSONModel';
            break;
        case 'XML':
            j.type = 'sap.ui.model.xml.XMLModel';
            break;
        default:
        }
    }
    

    所以根据官方文档 sap.ui.model.odata.ODataModel 已被弃用。

    但是,如果您只关心批处理,您可以通过清单文件中的此配置将其关闭

    "": {
        "dataSource": "mainService",
        "settings": {
            "metadataUrlParams": {
                "sap-documentation": "heading"
            },
         "useBatch": false,     
        }
    }
    

    【讨论】:

    • 感谢您的回复..我希望这不适用于我的场景,因为我们已经实现了基于 v1 模型的批处理操作的后端逻辑。我的应用程序完全基于批处理操作。所以我需要批处理功能。要在 webide 中使用新模板,后端必须再次更改,因为它是 v2 ..如果我能够使用 v1 模型,则无需更改后端逻辑。我正在为此寻找解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-23
    • 2019-06-30
    • 2019-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多