вернуть обновленный объект в выходе операции обновления xsodata

Мне было интересно, возможно ли в SAP HANA обновить объект с помощью файла xsjslib и вернуть обновленный объект. В настоящее время при обновлении записи возвращается '204 - Нет содержимого'.

Пример xsodata

"DEMO.VIEWS::myEntity" as "MyEntity" keys("ID")
create using "DEMO.SCRIPTS:createEntity.xsjslib::createEntry"
update using "DEMO.SCRIPTS:updateEntity.xsjslib::updateEntry"
delete using "DEMO.SCRIPTS:deleteEntity.xsjslib::deleteEntry"; 

Ответ

нет содержания

Полезная документация

Я просмотрел документацию SAP по этому вопросу и, похоже, не нашел ничего, связанного с обновлением.

документация SAP

Существует также отличный учебник, который объясняет это для операции создания. Это работает, но, к сожалению, не для операции обновления.

Учебник по созданию операции


person Matthijs Mennens    schedule 10.04.2019    source источник


Ответы (1)


HTTP PUT (или HTTP PATCH) не имеет ответа (проверьте, например, здесь). SAP не меняет это стандартное поведение. Поэтому, если вам действительно нужно вернуть обновленный объект (потому что, например, на серверной стороне некоторая специальная логика изменяет свойства, не являющиеся частью вашего запроса PUT), вам необходимо выполнить дополнительный запрос GET.

person Florian Pfeffer    schedule 16.04.2019
comment
На самом деле, в стандарте говорится, что возвращать пропатченный экземпляр объекта необязательно, поэтому SAP все равно будет соответствовать спецификации, если они выберут вышеуказанное более безопасное решение. - person osxdirk; 13.03.2020
comment
Что еще хуже, так это система SAP, в которой изменения реализуются путем отмены существующего экземпляра и создания нового, измененного. С OData нет средств для правильного моделирования этого. PATCH будет работать, если он вернет экземпляр. Теперь невозможно узнать первичный ключ только что созданного экземпляра. - person osxdirk; 13.03.2020
comment
@osxdirk Что вы хотите сказать нам своими комментариями к сообщению годичной давности?? - person Florian Pfeffer; 13.03.2020