Search code examples
exchange-serverexchangewebservicesexchange-server-2010

exchange web services restriction paths


I have done a bit of searching and am unable to find a list of legal properties for use with the FindItem <Restriction> element, specificially what can I use in

<IsEqualTo><FieldURI FieldURI="???"></IsEqualTo>
that will not result in a ErrorUnsupportedPathForQuery error?

(Using EWS Exchange2010_SP1)


Solution

  • I wrote an integration test which performs a FindItem using an exists filter for each of the UnindexedFieldURIType. Sorry private project, can't post code.

    These fields work:

    • ITEM_BODY
    • CONVERSATION_GLOBAL_UNIQUE_UNREAD_SENDERS
    • MESSAGE_IS_DELIVERY_RECEIPT_REQUESTED
    • ITEM_LAST_MODIFIED_NAME
    • CONVERSATION_GLOBAL_UNIQUE_SENDERS
    • CONTACTS_CHILDREN
    • FOLDER_CHILD_FOLDER_COUNT
    • CONVERSATION_FLAG_STATUS
    • CONTACTS_INITIALS
    • ITEM_INTERNET_MESSAGE_HEADERS
    • CONTACTS_MILEAGE
    • TASK_STATUS
    • CONTACTS_FILE_AS
    • CONVERSATION_MESSAGE_COUNT
    • ITEM_DATE_TIME_CREATED
    • CONVERSATION_LAST_DELIVERY_TIME
    • CALENDAR_IS_RECURRING
    • TASK_OWNER
    • CONTACTS_DISPLAY_NAME
    • TASK_ASSIGNED_TIME
    • CONVERSATION_GLOBAL_FLAG_STATUS
    • CONTACTS_FILE_AS_MAPPING
    • CONVERSATION_SIZE
    • CONTACTS_OFFICE_LOCATION
    • CALENDAR_APPOINTMENT_SEQUENCE_NUMBER
    • CALENDAR_CONFERENCE_TYPE
    • CALENDAR_MEETING_WORKSPACE_URL
    • CALENDAR_MEETING_REQUEST_WAS_SENT
    • CONTACTS_GIVEN_NAME
    • CONVERSATION_HAS_ATTACHMENTS
    • MESSAGE_RECEIVED_BY
    • FOLDER_DISPLAY_NAME
    • CONVERSATION_GLOBAL_SIZE
    • CONTACTS_BUSINESS_HOME_PAGE
    • TASK_COMPANIES
    • FOLDER_TOTAL_COUNT
    • ITEM_DATE_TIME_SENT
    • CALENDAR_APPOINTMENT_REPLY_TIME
    • ITEM_SENSITIVITY
    • TASK_IS_RECURRING
    • ITEM_DATE_TIME_RECEIVED
    • CONTACTS_MIDDLE_NAME
    • CONTACTS_JOB_TITLE
    • MESSAGE_FROM
    • CONTACTS_PROFESSION
    • ITEM_ITEM_CLASS
    • CONTACTS_BIRTHDAY
    • MEETING_RESPONSE_TYPE
    • FOLDER_FOLDER_CLASS
    • CONTACTS_WEDDING_ANNIVERSARY
    • MESSAGE_IS_RESPONSE_REQUESTED
    • TASK_DELEGATION_STATE
    • CALENDAR_APPOINTMENT_STATE
    • MESSAGE_RECEIVED_REPRESENTING
    • CONVERSATION_GLOBAL_MESSAGE_COUNT
    • CALENDAR_MY_RESPONSE_TYPE
    • TASK_BILLING_INFORMATION
    • ITEM_CATEGORIES
    • MESSAGE_INTERNET_MESSAGE_ID
    • ITEM_SUBJECT
    • FOLDER_UNREAD_COUNT
    • CALENDAR_NET_SHOW_URL
    • ITEM_IMPORTANCE
    • ITEM_CONVERSATION_ID
    • TASK_IS_TEAM_TASK
    • TASK_DELEGATOR
    • CONTACTS_HAS_PICTURE
    • CALENDAR_ORGANIZER
    • MESSAGE_IS_READ_RECEIPT_REQUESTED
    • TASK_MILEAGE
    • CONTACTS_MANAGER
    • CONTACTS_POSTAL_ADDRESS_INDEX
    • ITEM_DISPLAY_TO
    • CONVERSATION_ITEM_CLASSES
    • TASK_ACTUAL_WORK
    • TASK_TOTAL_WORK
    • CONTACTS_ASSISTANT_NAME
    • CONVERSATION_GLOBAL_UNREAD_COUNT
    • CALENDAR_LOCATION
    • MESSAGE_SENDER
    • CONTACTS_SURNAME
    • CALENDAR_LEGACY_FREE_BUSY_STATUS
    • TASK_DUE_DATE
    • TASK_IS_ASSIGNMENT_EDITABLE
    • CALENDAR_IS_ALL_DAY_EVENT
    • MESSAGE_REFERENCES
    • CONVERSATION_GLOBAL_UNIQUE_RECIPIENTS
    • TASK_CHANGE_COUNT
    • CONTACTS_SPOUSE_NAME
    • CONVERSATION_UNREAD_COUNT
    • CONVERSATION_IMPORTANCE
    • ITEM_IN_REPLY_TO
    • CALENDAR_WHEN
    • ITEM_REMINDER_IS_SET
    • MESSAGE_CONVERSATION_TOPIC
    • MESSAGE_CONVERSATION_INDEX
    • TASK_PERCENT_COMPLETE
    • TASK_COMPLETE_DATE
    • CONVERSATION_UNIQUE_UNREAD_SENDERS
    • CALENDAR_START
    • TASK_IS_COMPLETE
    • CONVERSATION_UNIQUE_RECIPIENTS
    • ITEM_REMINDER_MINUTES_BEFORE_START
    • CONVERSATION_GLOBAL_HAS_ATTACHMENTS
    • CONVERSATION_GLOBAL_IMPORTANCE
    • ITEM_SIZE
    • TASK_CONTACTS
    • CALENDAR_ALLOW_NEW_TIME_PROPOSAL
    • CONTACTS_DEPARTMENT
    • CONVERSATION_GLOBAL_LAST_DELIVERY_TIME
    • CALENDAR_END
    • POSTITEM_POSTED_TIME
    • CALENDAR_TIME_ZONE
    • ITEM_LAST_MODIFIED_TIME
    • CONTACTS_NICKNAME
    • MEETING_REQUEST_INTENDED_FREE_BUSY_STATUS
    • TASK_START_DATE
    • CONTACTS_COMPANY_NAME
    • MEETING_HAS_BEEN_PROCESSED
    • CONVERSATION_UNIQUE_SENDERS
    • ITEM_DISPLAY_CC
    • CONTACTS_GENERATION

    It's worth noting that of the fields that produce an error, most fail with an ERROR_UNSUPPORTED_PATH_FOR_QUERY, but others fail with a ERROR_INVALID_PROPERTY_FOR_EXISTS. That suggests that some fields work with some some SearchExpressionTypes while others don't.