SAPUI5 oData PUT операция требует реализации GET ENTITY - PullRequest
0 голосов
/ 09 января 2020

Я реализовал операцию обновления для службы oData. Когда я попытался вызвать его через приложение SAPUI5, я получил следующее сообщение об ошибке:

'XXX_GET_ENTITY' не реализовано в классе поставщика данных

Это правда - я сделал еще не реализован метод GET ENTITY. Тем не менее, кто-то может сказать мне, почему мне нужен этот для обновления?

Код JS для запроса на обслуживание создается следующим образом:

oDataModel.update("/EntitySetName(<key>)", oPayload, {
   success: function(oData) {
      ...
   },
   error: function(oError) {
      ...
   }
});

Я ценю все подсказки / объяснения.

1 Ответ

4 голосов
/ 10 января 2020

Метод обновления по умолчанию для ODataModel - это исправление / слияние, см. Документацию класса ODataModel:

Запуск запроса PUT / MERGE к службе OData, указанной в конструкторе модели. .

Используемый метод обновления определяется глобальным параметром defaultUpdateMethod, который по умолчанию является sap.ui.model.odata.UpdateMethod.Merge. [...]

Реализация по умолчанию метода PATCH_ENTITY сначала вызывает READ_ENTITY, а затем объединяет входящие данные с извлеченными данными для частичного обновления. Из комментариев к этому методу:

*-a patch request is a partial update of an entity. All provided components are patched.
*-The default implementation of patch_entity performs a read before update [...]

Для выполнения запроса PUT установите для свойства updateMethod значение sap.ui.model.odata.UpdateMethod.Put.

...