OData: почему я получаю ошибку HTTP 428 (требуется предварительное условие) при выполнении обновления

#odata #sapui5 #crud

#odata #sapui5 #crud

Вопрос:

Итак, вот мой код

 sap.ui.getCore().getModel("myModel").update("/ZSystemNameSet(mandt='001')", data, null, function(datay, responsey){
            sap.ui.getCore().getModel().refresh();
            MessageToast.show("It worked...!! Data: " datay "Response: " responsey);
        }, function(datax,responsex){
            MessageToast.show("Sorry! Data: " datax "Response: " responsex);
        });
  

Также как мне добавить атрибуты заголовка к вызову update ()?

Ответ №1:

Очевидно, что ваша служба использует оптимистичную блокировку и ожидает заголовок If-Match, содержащий ETag объекта, в запросе. Вы можете передать этот ETag в качестве параметра методу обновления. Для получения дополнительной информации вам следует проверить определение вашего сервиса и документацию.

Что касается обновления атрибутов заголовка: сложно ответить, поскольку нет информации об оркестровке вашего объекта. Обычно вы должны иметь возможность добавить свойство, содержащее информацию об обновлении для вашего заголовка, в структуру данных, которую вы отправляете на сервер, например, если заголовок доступен из вашего объекта ZSystemName через ассоциацию «Header», вы делаете следующее:

 data.Header = { "attribute1" : value1, "attribute2" : value2 }