Получение одного дополнительного контакта даже после указания условия фильтра для & quot; LastModifiedTime & quot;

Предположим, что в Office365 есть 40 измененных или вновь добавленных контактов, когда мое приложение пытается синхронизировать с помощью API REST, оно выбирает 40 контактов. Если я снова синхронизироваться, указав ниже фильтры

Array (
[$top] => 7
[$orderby] => DateTimeLastModified
[$filter] => DateTimeLastModified gt 2015-01-06T07:23:59Z )

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

Пожалуйста, сообщите, если есть какие-либо ошибки в фильтрах, которые я указал.

0

Решение

Я предполагаю, что значение, которое вы передаете в свой фильтр, является фактическим значением DateTimeLastModified для контакта, который возвращается. Вероятно, это связано с тем, как Exchange хранит дату / время. Время хранится в миллисекундах, но, как видно из того, как REST API предоставляет его, значение имеет только секунды.

Таким образом, хотя API REST сообщает, что значение DateTimeLastModified равно 2015-01-06T07: 23: 59Z, в значении в базе данных Exchange есть несколько неэкспонированных миллисекунд. Скажем, например, реальное значение 2015-01-06T07: 23: 59.050Z. Когда это значение сравнивается с 2015-01-06T07: 23: 59Z, оно больше, поэтому оно возвращается. Чтобы обойти это, вы можете добавить секунду ко времени в фильтре, что должно привести к тому, что этот контакт не вернется.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]