手动加载OData webIDE

时间:2017-10-09 15:38:55

标签: navigation odata sapui5

我在SAPUI5中真的很新鲜,我的JS水平非常差。我对所有控制器都有点迷茫/困惑。

我从SAP获得一个只有1个条目的OData实体集。此条目有3个字段[NAME,MSG_TYPE,MSG_NUMB]。当应用程序启动时(在加载VIEW之前)并根据收到的值我想:

  • 如果MSG_TYPE = E且MSG_NUMB = 1 - 加载NotFound视图。
  • 如果MSG_TYPE = E且MSG_NUMB = 2 - 加载ObjectNotFound视图。
  • 其他值 - 加载主视图。

我看到你可以将URL发送到OData var并且你可以调用它但我想知道是否可以使用以下配置来完成它而不用“硬编码”url。

我有以下内容: - manifest.json:

    "title": "{{appTitle}}",
    "description": "{{appDescription}}",
    "sourceTemplate": {
        "id": "servicecatalog.connectivityComponent",
        "version": "0.0.0"
    },
    "dataSources": {
        "TEST": {
            "uri": "/sap/opu/odata/sap/ZHCM_SRV_01/",
            "type": "OData",
            "settings": {
                "odataVersion": "2.0",
                "localUri": "localService/metadata.xml"
            }
        }
    }
},

...

        "models": {
        "i18n": {
            "type": "sap.ui.model.resource.ResourceModel",
            "settings": {
                "bundleName": "test.i18n.i18n"
            }
        },
        "TEST": {
            "type": "sap.ui.model.odata.v2.ODataModel",
            "settings": {
                "defaultOperationMode": "Server",
                "defaultBindingMode": "TwoWay",
                "defaultCountMode": "None"
            },
            "dataSource": "TEST",
            "preload": true
        }enter code here

在Component.js

init: function() {
        // call the base component's init function
        UIComponent.prototype.init.apply(this, arguments);
        // create the views based on the url/hash
        this.getRouter().initialize();
        // set the device model
        this.setModel(models.createDeviceModel(), "device");

        var oModelSab = this.getModel( "TEST" );
        oModelSab.read("/TestSet");
        if  ( oModelSab.getObject("/Test(1)/MSG_TYPE") === 'E' )
        {
            if  ( oModelSab.getObject("/Test(1)/MSG_NUMB") === '1' )
            {
                this.getRouter().navTo("NotFound");
            }else{
                this.getRouter().navTo("ObjectNotFound");
            }
        }

我已经检查了如何在openUI5 SDK中加载OData我已经检查过课程中的视频等等但我找不到任何关于自己加载Odata并根据需要使用它的信息。全部通过列表和表格进行管理......

感谢输入!!

0 个答案:

没有答案