1

OData がどのように機能するかを理解するための例を 2 週間探しています。Manifest.jsonで、OData サービスを使用して自分の URL を定義しました

{
"_version"  : "1.7.0",
"sap.app"   : {
    "id"            : "test",
    "type"          : "application",
    "i18n"          : "i18n/i18n.properties",
    "applicationVersion": {
        "version"       : "1.0.0"
    },
    "title"         : "{{appTitle}}",
    "description"   : "{{appDescription}}",
    "sourceTemplate": {
        "id"            : "servicecatalog.connectivityComponent",
        "version"       : "0.0.0"
    },
    "dataSources"   : {
        "Test"  : {
            "uri"           : "/sap/opu/odata/sap/ZMY_SERVICE_SRV/",
            "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"
        },

およびInit メソッド内の私の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 sServiceUrl = this.getMetadata().getManifestEntry("sap.app").dataSources["Test"].uri;
        var oModel = new sap.ui.model.odata.v2.ODataModel(sServiceUrl);
        this.setModel(sabModel, "/Test");
        sabModel.read(sServiceUrl, "Test");
    }

Backend から OData をロードするために Table または List を使用したくありません。「手動で」情報をロードし、バックエンドから取得したものに基づいて、1 つまたは別のビューに移動したいと考えています。

ナビゲーターで結果をデバッグすると、次のエラーが表示されます:コンソール

エラーログを確認すると、エラーログが表示されます

バックエンドでサービスをテストすると正常に動作します: OData サービス

私が得た:

<?xml version="1.0"?><feed xml:base="http://Myserver:8000/sap/opu/odata/sap/ZMY_SERVICE_SRV/" 
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
<id>http://Myserver:8000/sap/opu/odata/sap/ZMY_SERVICE_SRV/TestSet</id>
<title type="text">TestSet</title>
<updated>2017-10-23T20:37:55Z</updated>
-<author>
    <name/>
</author>
<link title="TestSet" rel="self" href="TestSet"/>
-<entry>
    <id>http://Myserver:8000/sap/opu/odata/sap/ZMY_SERVICE_SRV/TestSet('1')</id>
    <title type="text">TestSet('1')</title>
    <updated>2017-10-23T20:37:55Z</updated>
    <category scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" term="ZMY_SERVICE_SRV.Test"/>
    <link title="Test" rel="self" href="TestSet('1')"/>
    -<content type="application/xml">
        -<m:properties xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
            xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
            <d:Pernr>1</d:Pernr>
            <d:Nachn>TestUser</d:Nachn>
            <d:Vorna>UserTest</d:Vorna>
            <d:SavingDate m:null="true"/>
            <d:Option/>
            <d:MsgType/>
            <d:MsgNumb/>
        </m:properties>
    </content>
</entry>

ご協力ありがとうございました!!!どんな入力でも大歓迎です!!

4

2 に答える 2