Мне нужно тянуть все, не личные элементы из календаря пользователя в Exchange 2003. Я получил следующие работы, которая тянет все их элементы (в том числе частного поля):Как отфильтровать частные события в запросе календаря для Exchange WebDav?
<?xml version="1.0"?>
<g:searchrequest xmlns:g="DAV:" xmlns:mapi="http://schemas.microsoft.com/mapi/">
<g:sql>
SELECT "http://schemas.microsoft.com/mapi/Private", "urn:schemas:calendar:uid", "urn:schemas:calendar:location", "urn:schemas:httpmail:subject", "urn:schemas:calendar:dtstart", "urn:schemas:calendar:dtend", "urn:schemas:calendar:busystatus", "urn:schemas:calendar:meetingstatus", "urn:schemas:calendar:instancetype"
FROM Scope('SHALLOW TRAVERSAL OF "%s"')
WHERE NOT "urn:schemas:calendar:instancetype" = 1 AND "DAV:contentclass" = 'urn:content-classes:appointment' AND "urn:schemas:calendar:dtstart" > '2003/06/01 00:00:00' AND "mapiPrivate" = 0
ORDER BY "urn:schemas:calendar:dtstart" ASC
</g:sql>
</g:searchrequest>
Однако, когда я пытаюсь добавить приватное поле в WHERE
, я получаю сообщение об ошибке BAD REQUEST
. Следующий код - это то, как я добавил приватное поле в пункт WHERE
.
<?xml version="1.0"?>
<g:searchrequest xmlns:g="DAV:" xmlns:mapi="http://schemas.microsoft.com/mapi/">
<g:sql>
SELECT "http://schemas.microsoft.com/mapi/Private", "urn:schemas:calendar:uid", "urn:schemas:calendar:location", "urn:schemas:httpmail:subject", "urn:schemas:calendar:dtstart", "urn:schemas:calendar:dtend", "urn:schemas:calendar:busystatus", "urn:schemas:calendar:meetingstatus", "urn:schemas:calendar:instancetype"
FROM Scope('SHALLOW TRAVERSAL OF "%s"')
WHERE NOT "urn:schemas:calendar:instancetype" = 1 AND "DAV:contentclass" = 'urn:content-classes:appointment' AND "urn:schemas:calendar:dtstart" > '2003/06/01 00:00:00' AND "mapiPrivate" = 0 AND "http://schemas.microsoft.com/mapi/Private" = 0
ORDER BY "urn:schemas:calendar:dtstart" ASC
</g:sql>
</g:searchrequest>
Что я делаю неправильно? Разве это невозможно?