WorkFront / AtTask API $$ СЕГОДНЯ +6м недостаток?
API-интерфейс workfront не возвращает те же результаты, что и наш веб-отчет:
В нашем веб-интерфейсе на рабочем столе один из отчетов имеет диапазон дат $$TODAYbw
в $$TODAYe+6m
и вернулось около 500 строк.
Я попробовал тот же запрос на API, как это (отформатирован для облегчения чтения)
/v7.0/RSALLO/search
?fields=DE:project:Probability,allocationDate,scheduledHours,project:name,project:status,roleID,project:status,role:name
&allocationDate_Mod=between
&allocationDate=$$TODAYbw
&allocationDate_Range=$$TODAYe+6m
&AND:0:project:status_Mod=notin
&AND:0:project:status=CPL
&AND:0:project:status=DED
&AND:0:project:status=REJ
&AND:0:project:status=UZF
&AND:0:project:status=IDA
&AND:0:roleID_Mod=in
&AND:0:roleID=55cb58b8001cc9bc1bd9767e080f6c10
&AND:0:roleID=55cb58b8001cc9bd9fc0f8b03a581493
&AND:0:roleID=55cb58b8001cc9bfaa01243cd6024b6d
&AND:0:roleID=55cb58b8001cc9c0afa399dece405efd
&$$LIMIT=1000
который дал едва ли какие-либо результаты. Обратите внимание на &allocationDate_Range=$$TODAYe+6m
линия. Если я изменю это, чтобы прочитать =$$TODAY+6m
без модификатора конца дня API возвращает ~500 строк.
Я прошел все критерии фильтра, и только диапазон allocDate идет не так. Я нашел этот ресурс для модификаторов даты и в нем нет e+6m
Например, пока он работает на нашем веб-интерфейсном отчете.
API имеет недостатки или веб-отчет делает что-то дополнительное в фоновом режиме?
1 ответ
У меня нет точного решения вашей проблемы, но я могу подтвердить, что API действительно трудно разобрать символы подстановки, как вы пытаетесь использовать, и они не всегда приходят так, как мы ожидаем. Кроме того, API не разбирает вещи так же, как отчеты в текстовом режиме, поэтому запрос, который выглядит великолепно в последнем, может вернуть что-то другое в первом.
Если я могу предложить другое решение, так как вы уже программируете это вне Workfront, тогда я предлагаю вам просто выполнить вычисления даты самостоятельно и передать явные объекты даты и времени в Workfront вместо того, чтобы позволить ему использовать свою собственную логику. Я знаю, что это не отвечает на вопрос "что такое запрос, который вернет именно то, что я хочу", но он должен дать вам правильный конечный результат.
Что бы это ни стоило, я потратил около 15 минут, пытаясь заставить пример работать на моем конце, и я сдался после того, как он продолжал возвращать значения, которые должны были быть вне моего собственного диапазона дат.