Как получить eTag (MetaData) из вызова getIn) DocumentInfoRecord в SAP Cloud SDK для JavaScript? - PullRequest
0 голосов
/ 03 апреля 2019

Я использую SAP Cloud SDK для javascript для обработки DocumentInfoRecords.Обновление DIR вызвало ошибку 428. Поэтому мне нужен etag запроса, как в SAP Cloud API.

Как я могу получить etag из запроса GET или вообще информацию ответа заголовка каждого запроса SDK?

GET:

DocumentInfoRecord.requestBuilder()
.getByKey(dir.documentInfoRecordDocType, dir.documentInfoRecordDocVersion, dir.documentInfoRecordDocNumber, dir.documentInfoRecordDocPart)
.execute({});

ОБНОВЛЕНИЕ с etag

DocumentInfoRecord.requestBuilder().update(dir).withCustomHeaders({ key: "If-Match", value: "etag" }).execute({});

Ответы [ 2 ]

1 голос
/ 17 мая 2019

Начиная с версии 1.1.0, SAP Cloud SDK для JavaScript (fka SAP S / 4HANA Cloud SDK) прозрачно обрабатывает ETag в фоновом режиме. Для получения дополнительной информации ознакомьтесь с разделом об оптимистическом управлении параллелизмом в блоге release .

Если вы обновитесь до последней версии (1.2.1 на момент написания), вы можете просто получить информацию о записи документа, изменить поля, которые вы хотите изменить, а затем обновить его, отправив тот же объект в службу .

var dir = await DocumentInfoRecord.requestBuilder()
    .getByKey(dir.documentInfoRecordDocType, dir.documentInfoRecordDocVersion, dir.documentInfoRecordDocNumber, dir.documentInfoRecordDocPart)
    .execute({destinationName: "MyServer"});
dir.responsiblePersonName = "John Doe";
DocumentInfoRecord.requestBuilder()
    .update(dir)
    .execute({destinationName: "MyServer"})
    .then(...);
1 голос
/ 03 апреля 2019

ОБНОВЛЕНИЕ: Пожалуйста, смотрите ответ Хеннинга Хайткоттера.


В настоящее время мы не поддерживаем обработку eTag. Мы знаем об этом недостатке и уже имеем его в нашем отставании. Мы обновим этот ответ, как только функция будет доступна.

...