Сбой метаданных службы Одата - PullRequest
0 голосов
/ 12 июня 2018

Бэкэнд команда предоставила новый сервис Odata.Я объявил это в манифесте и использовал его в контроллере.Это работает правильно в моей системе.Но это не работает правильно в любой другой среде.Я получаю сообщение об ошибке - первоначальная загрузка метаданных не удалась.а также некоторые внутренние ошибки сервера.

Manifest.json

"ordersq": {
            "uri": "/sap/opu/odata/sap/ZOrders_QUEUE_SRV/",
            "type": "OData",
            "settings": {
                "odataVersion": "2.0",
                "localUri": "localService/ZOrders_QUEUE_SRV/metadata.xml"
            }
        },

Контроллер:

var sServiceUrl = this.getOwnerComponent().getMetadata().getManifestEntry("sap.app").dataSources["ordersq"].uri;
                var OdataModel = new sap.ui.model.odata.v2.ODataModel(sServiceUrl);
                var sPath = "/BuyersQueueSet('" + mfOrder + "')";
                OdataModel.read(sPath, {
                    success: this.queueSuccess.bind(this),
                    error: this.queueError.bind(this)
                });
            }

Есть что-то, что мне не хватает.Нужно ли что-то делать для этого metadata.xml?Я больше ничего не настраивал.Я просто скопировал вставленный localuri, как это указано для других сервисов, без добавления каких-либо метаданных для этого нового сервиса.

1 Ответ

0 голосов
/ 12 июня 2018

Возможно, у вас проблема с CORS.Проверьте трассировку сети, если у вас есть 401 или 403 при запросе метаданных $.Это происходит, когда вы пытаетесь загрузить определенные ресурсы с другого сервера.

Это известная распространенная проблема, и она существует по соображениям безопасности.Есть несколько способов преодолеть это, и все они довольно хорошо задокументированы.

В общем, если вы используете SAP Cloud Platform, просто настройте пункт назначения, указывающий на вашу службу на сервере Netweaver (вам потребуется Cloud Connector длядоступ из облака к вашей частной сети).Если вы развертываете свои приложения на других серверах Netweaver, я думаю, что самое простое решение - установить WebDispatcher в качестве обратного прокси-сервера.

Другая возможность - ошибка 404 при запросе метаданных $.Если вы получаете это, то это потому, что вы не перенаправляете свои запросы в правильную систему Netweaver.Убедитесь, что вы настроили WebDispacher для разрешения определенных URL в правильной системе.Опять же, множество учебников, показывающих, как это сделать.

...