Возврат дельты из сервиса SAP OData Sample

Я пытаюсь извлечь данные из базовой пробной службы SAP через OData. nofollow noreferrer">зарегистрирован. Он отлично работает в «нормальном режиме» и возвращает 302 записи. Чего мне не удается получить, так это данных в дельта-режиме, например, с 20 записями, вместо этого он по-прежнему возвращает 302 записи.

Я нажимаю на этот URL. Чтобы получить данные в дельта-режиме, я отправляю этот заголовок Prefer: odata.maxpagesize=20,odata.track-changes

Я очень новичок в этом, поэтому, пожалуйста, извините меня, если я что-то упустил. Любая помощь будет очень признательна. Спасибо


person Edward Torvalds    schedule 01.07.2020    source источник


Ответы (1)


Я считаю, что эта аннотация не реализована в SAP реализация Odata, так что вам не повезло. Он поддерживается хотя и в ODP, но не в шлюзе OData.

Чтобы включить отслеживание дельты в сервисе OData, у SAP есть собственные рекомендации:

  1. Генерация дельта-токена

  2. Расширить метод GET_ENTITYSET_DELTA

  3. Первый запрос OData к набору сущностей вернет дельта-токен.

  4. Который вы затем используете для запроса дельты

    /sap/opu/odata/sap/ZGW_PRODUCT_SRV/Products_DQ?!deltatoken=’005056A2025C1EE2BFE687AFDC2FAAF4_20130807073741′
    

Прочтите это официальное руководство для получения дополнительной информации

https://blogs.sap.com/2013/09/30/how-to-implement-basic-delta-query-support-in-sap-netweaver-gateway/

Минимальная требуемая версия GW: Netweaver 740, SAP_GWFND SP04

person Suncatcher    schedule 02.07.2020
comment
спасибо за ответ мужик. Мне не повезло искать об этом в Интернете. - person Edward Torvalds; 02.07.2020
comment
это требует изменений на стороне сервера? у меня нет доступа к этим - person Edward Torvalds; 02.07.2020
comment
да, вам нужно реализовать дельта-обработку в реализации службы (pt2), также если эта служба публикуется с использованием аннотации @odata.publish true, поэтому она не поддерживает пользовательскую обработку, и вам тоже не повезло. - person Suncatcher; 02.07.2020