Массовое обновление RESVT
В прошлом месяце у меня был вопрос о POSTing в поле RESVT Workfront. С тех пор я завершил свою базу данных, чтобы получить все данные Leave Calendar нашего отдела и передать их в API Workfront в качестве методов POST; Однако я обнаружил новую проблему.
Каждый раз, когда я добавляю новое событие RESVT пользователю с существующим событием RESVT, он удаляет предыдущее событие, прежде чем сохранить новое событие. Я рассмотрел отправку массового редактирования с использованием формата массового редактирования, чтобы сразу получить все события для пользователя в Интернете, как показано ниже:
https://sosprojects.preview.workfront.com/attask/api/v9.0
/5b6b72b5007d93b00b00dda361398cad?method=put&updates=
[
{
objCode:”RESVT”,
startDate:”2018-08-20T00:00:00:000-0700”,
endDate:”2018-08-23T00:00:00:000-700”
},
{
objCode:”RESVT”,
startDate:”2018-09-20T00:00:00:000-0700”,
endDate:”2018-09-23T00:00:00:000-0700”
}
]
&sessionID=209055d209f94662b32ac50175b34bc7
Какой Workfront "принимает" (не выдает код ошибки), но сохраняет только последнее событие RESVT (например, 9/20 - 9/23).
Я пытался использовать PUT для редактирования существующего события RESVT, но каждое событие RESVT будет принимать только одну дату начала и одну дату окончания, поэтому он объединяет эти попытки в одно дополнительное длинное событие.
Я знаю, что календарь перерывов может вручную создавать несколько событий RESVT для каждого пользователя, но я не могу понять, как воспроизвести это умение с помощью моих методов http. Календарь всегда создает новые события RESVT для каждого события, зарегистрированного всякий раз, когда я добавляю новое событие к нему; так что я думаю, что он делает что-то вроде массового POST, который я попробовал наверху, так почему мой метод не может сделать то же самое?
1 ответ
Документы API не показывают обновление в качестве допустимого метода для объекта RESVT. Просто измените поля непосредственно для конкретного объекта, который вы хотите обновить. Вы знаете его идентификатор?
PUT https://<url>.my.workfront.com/attask/api/v9.0/RESVT/<ID of the reserved time you want to edit>?userID=abc1234,startDate=<date>,endDate=<date>