Будет ли запрос OData для несуществующего поля вызвать неправильный запрос? - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь запросить MS Project Server для получения некоторых задач, фильтруя (частично) локальное настраиваемое поле.Мой запрос выглядит так:

http://server/site/_api/ProjectServer/Projects('project guid')/Tasks?$filter=BaselineFinish gt datetime'0001-01-01T00:00:00' and BaselineFinish le datetime'2018-12-31T22:00:00' and IsMilestone eq false and IsSummary eq false and LocalCustom_x005f_Published_x005f_c9c0419bca2be911b47034f39a71aba5_x005f_000039b78bbe4ceb82c4fa8c0b40014e eq 'My Term'&$top=500&$skip=0

Я попробовал его, и я получил 400 - неправильный запрос.Однако до того, как я добавил фильтр для локального настраиваемого поля, этот запрос работал нормально:

http://server/site/_api/ProjectServer/Projects('project guid')/Tasks?$filter=BaselineFinish gt datetime'0001-01-01T00:00:00' and BaselineFinish le datetime'2018-12-31T22:00:00' and IsMilestone eq false and IsSummary eq false&$top=500&$skip=0

Таким образом, единственное отличие заключается в добавлении фильтра для локального настраиваемого поля.И я знаю, что если локальному настраиваемому полю никогда не было присвоено значение, то оно фактически не существует в объекте задачи на сервере.

Значение, если я запрашиваю кучу задач и еслииз возвращенных задач не было установлено поле Text 28, тогда свойство

LocalCustom_x005f_Published_x005f_c9c0419bca2be911b47034f39a71aba5_x005f_000039b78bbe4ceb82c4fa8c0b40014e

не будет присутствовать в этом конкретном объекте задачи.Если поле Text 28 было установлено для другой задачи, то это свойство будет присутствовать .

Поэтому, учитывая, что я знаю, что некоторые задачи могут не иметь этого поля, это заставляет меняИнтересно, из-за отсутствия этого поля в некоторых задачах мой запрос возвращает неверный запрос?Или я должен смотреть на что-то еще там?

...