Операция GetUserAvailability
Найдите сведения об операции GetUserAvailability EWS.
Операция GetUserAvailability предоставляет подробные сведения о доступности набора пользователей, комнат и ресурсов в течение указанного периода времени.
Использование операции GetUserAvailability
Операция GetUserAvailability предоставляет сведения о доступности текущего пользователя с указанным уровнем детализации. Клиентские приложения, такие как Outlook, Outlook Web Access, Outlook Mobile Access и другие, используют SMTP-адреса для идентификации запрошенных сведений о пользователе.
Служба доступности расширяет списки рассылки, чтобы получить состояние доступности для каждого члена списка, если количество почтовых ящиков в списке рассылки меньше 100, что является максимальным числом удостоверений, которые может запросить операция GetUserAvailability . Состояния доступности и доступности членов списка рассылки объединяются в одно состояние доступности для всего списка рассылки.
Запросы клиентского приложения указывают период времени запроса на доступность. Период времени по умолчанию для запрашиваемых сведений — 42 дня. Если календарь пользователя содержит встречи или собрания, которые находятся в пределах и за пределами заданного периода времени для запроса, то возвращается встреча.
Возвращаемое время встречи и собрания находятся в том же часовом поясе, что и клиентское приложение, запрашивающее собрание.
Служба доступности обрабатывает запрос для каждого клиента. Служба расширяет все повторяющиеся встречи и возвращает максимальное количество сведений о календаре, на получение которых запрашивающий клиент имеет разрешение.
Примечание.
Если целевой почтовый ящик недоступен или его не удается найти, возникает исключение MailRecipientNotFoundException . Клиент получает сообщение об ошибке о том, что получатель почты не найден в службе каталогов Active Directory или доменные службы Active Directory (AD DS).
Заголовки SOAP операции GetUserAvailability
Операция GetUserAvailability может использовать заголовки SOAP, перечисленные в следующей таблице.
Header | Элемент | Описание |
---|---|---|
Олицетворения |
ExchangeImpersonation |
Определяет пользователя, для которого выполняется олицетворение клиента. Этот заголовок применим к запросу. |
RequestVersion |
RequestServerVersion |
Определяет версию схемы для запроса операции. Этот заголовок применим к запросу. |
ServerVersion |
ServerVersionInfo |
Определяет версию сервера, который ответил на запрос. Этот заголовок применим к ответу. |
TimeZoneContext |
TimeZoneContext |
Задает заголовок SOAP, определяющий часовой пояс, который будет использоваться для всех ответов с сервера. Все значения времени, возвращаемые сервером, будут преобразованы в указанный часовой пояс. Этот заголовок применим к ответу. |
Пример запроса GetUserAvailability: получение сведений о доступности
В следующем примере запроса на операцию GetUserAvailability показано, как получить подробные сведения о доступности для двух пользователей в часовом поясе Тихоокеанского часового пояса.
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<soap:Body>
<GetUserAvailabilityRequest xmlns="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<t:TimeZone xmlns="http://schemas.microsoft.com/exchange/services/2006/types">
<Bias>480</Bias>
<StandardTime>
<Bias>0</Bias>
<Time>02:00:00</Time>
<DayOrder>5</DayOrder>
<Month>10</Month>
<DayOfWeek>Sunday</DayOfWeek>
</StandardTime>
<DaylightTime>
<Bias>-60</Bias>
<Time>02:00:00</Time>
<DayOrder>1</DayOrder>
<Month>4</Month>
<DayOfWeek>Sunday</DayOfWeek>
</DaylightTime>
</t:TimeZone>
<MailboxDataArray>
<t:MailboxData>
<t:Email>
<t:Address>user1@example.com</t:Address>
</t:Email>
<t:AttendeeType>Required</t:AttendeeType>
<t:ExcludeConflicts>false</t:ExcludeConflicts>
</t:MailboxData>
<t:MailboxData>
<t:Email>
<t:Address>user2@example.com</t:Address>
</t:Email>
<t:AttendeeType>Required</t:AttendeeType>
<t:ExcludeConflicts>false</t:ExcludeConflicts>
</t:MailboxData>
</MailboxDataArray>
<t:FreeBusyViewOptions>
<t:TimeWindow>
<t:StartTime>2006-10-16T00:00:00</t:StartTime>
<t:EndTime>2006-10-16T23:59:59</t:EndTime>
</t:TimeWindow>
<t:MergedFreeBusyIntervalInMinutes>60</t:MergedFreeBusyIntervalInMinutes>
<t:RequestedView>DetailedMerged</t:RequestedView>
</t:FreeBusyViewOptions>
</GetUserAvailabilityRequest>
</soap:Body>
</soap:Envelope>
Дополнительные сведения о получении предлагаемых собраний с помощью элемента SuggestionsViewOptions см. в схеме в виртуальном каталоге EWS.
Текст SOAP запроса содержит следующие элементы:
Успешный ответ на операцию GetUserAvailability
В следующем примере показан успешный ответ на запрос операции GetUserAvailability .
Примечание.
Идентификаторы событий календаря сокращены, чтобы сохранить удобочитаемость.
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<t:ServerVersionInfo MajorVersion="8" MinorVersion="0" MajorBuildNumber="665" MinorBuildNumber="7"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" />
</soap:Header>
<soap:Body>
<GetUserAvailabilityResponse xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<FreeBusyResponseArray>
<FreeBusyResponse>
<ResponseMessage ResponseClass="Success">
<ResponseCode>NoError</ResponseCode>
</ResponseMessage>
<FreeBusyView>
<FreeBusyViewType xmlns="http://schemas.microsoft.com/exchange/services/2006/types">DetailedMerged</FreeBusyViewType>
<MergedFreeBusy xmlns="http://schemas.microsoft.com/exchange/services/2006/types">000002220220000000000000</MergedFreeBusy>
<CalendarEventArray xmlns="http://schemas.microsoft.com/exchange/services/2006/types">
<CalendarEvent>
<StartTime>2006-10-16T06:00:00-07:00</StartTime>
<EndTime>2006-10-16T06:30:00-07:00</EndTime>
<BusyType>Busy</BusyType>
<CalendarEventDetails>
<ID>14B6414B0</ID>
<Subject>Meet with Contoso Account Executives</Subject>
<Location />
<IsMeeting>false</IsMeeting>
<IsRecurring>false</IsRecurring>
<IsException>false</IsException>
<IsReminderSet>false</IsReminderSet>
<IsPrivate>false</IsPrivate>
</CalendarEventDetails>
</CalendarEvent>
<CalendarEvent>
<StartTime>2006-10-16T07:00:00-07:00</StartTime>
<EndTime>2006-10-16T08:00:00-07:00</EndTime>
<BusyType>Busy</BusyType>
<CalendarEventDetails>
<ID>E14B6414B0B</ID>
<Subject>Pick up my groceries</Subject>
<Location />
<IsMeeting>false</IsMeeting>
<IsRecurring>false</IsRecurring>
<IsException>false</IsException>
<IsReminderSet>false</IsReminderSet>
<IsPrivate>false</IsPrivate>
</CalendarEventDetails>
</CalendarEvent>
<CalendarEvent>
<StartTime>2006-10-16T09:40:00-07:00</StartTime>
<EndTime>2006-10-16T10:10:00-07:00</EndTime>
<BusyType>Busy</BusyType>
<CalendarEventDetails>
<ID>14B6414B0B1</ID>
<Subject>Meet with doctor</Subject>
<Location>Kirkland</Location>
<IsMeeting>false</IsMeeting>
<IsRecurring>false</IsRecurring>
<IsException>false</IsException>
<IsReminderSet>false</IsReminderSet>
<IsPrivate>false</IsPrivate>
</CalendarEventDetails>
</CalendarEvent>
</CalendarEventArray>
<WorkingHours xmlns="http://schemas.microsoft.com/exchange/services/2006/types">
<TimeZone>
<Bias>480</Bias>
<StandardTime>
<Bias>0</Bias>
<Time>02:00:00</Time>
<DayOrder>5</DayOrder>
<Month>10</Month>
<DayOfWeek>Sunday</DayOfWeek>
</StandardTime>
<DaylightTime>
<Bias>-60</Bias>
<Time>02:00:00</Time>
<DayOrder>1</DayOrder>
<Month>4</Month>
<DayOfWeek>Sunday</DayOfWeek>
</DaylightTime>
</TimeZone>
<WorkingPeriodArray>
<WorkingPeriod>
<DayOfWeek>Monday Tuesday Wednesday Thursday Friday</DayOfWeek>
<StartTimeInMinutes>480</StartTimeInMinutes>
<EndTimeInMinutes>1020</EndTimeInMinutes>
</WorkingPeriod>
</WorkingPeriodArray>
</WorkingHours>
</FreeBusyView>
</FreeBusyResponse>
<FreeBusyResponse>
<ResponseMessage ResponseClass="Success">
<ResponseCode>NoError</ResponseCode>
</ResponseMessage>
<FreeBusyView>
<FreeBusyViewType xmlns="http://schemas.microsoft.com/exchange/services/2006/types">FreeBusyMerged</FreeBusyViewType>
<MergedFreeBusy xmlns="http://schemas.microsoft.com/exchange/services/2006/types">000000001100000000000000</MergedFreeBusy>
<CalendarEventArray xmlns="http://schemas.microsoft.com/exchange/services/2006/types">
<CalendarEvent>
<StartTime>2006-10-16T09:00:00-07:00</StartTime>
<EndTime>2006-10-16T10:00:00-07:00</EndTime>
<BusyType>Tentative</BusyType>
</CalendarEvent>
</CalendarEventArray>
<WorkingHours xmlns="http://schemas.microsoft.com/exchange/services/2006/types">
<TimeZone>
<Bias>480</Bias>
<StandardTime>
<Bias>0</Bias>
<Time>02:00:00</Time>
<DayOrder>5</DayOrder>
<Month>10</Month>
<DayOfWeek>Sunday</DayOfWeek>
</StandardTime>
<DaylightTime>
<Bias>-60</Bias>
<Time>02:00:00</Time>
<DayOrder>1</DayOrder>
<Month>4</Month>
<DayOfWeek>Sunday</DayOfWeek>
</DaylightTime>
</TimeZone>
<WorkingPeriodArray>
<WorkingPeriod>
<DayOfWeek>Monday Tuesday Wednesday Thursday Friday</DayOfWeek>
<StartTimeInMinutes>480</StartTimeInMinutes>
<EndTimeInMinutes>1020</EndTimeInMinutes>
</WorkingPeriod>
</WorkingPeriodArray>
</WorkingHours>
</FreeBusyView>
</FreeBusyResponse>
</FreeBusyResponseArray>
</GetUserAvailabilityResponse>
</soap:Body>
</soap:Envelope>
Сведения о доступности для каждого пользователя отображаются в уникальном элементе FreeBusyResponse . Порядок пользователей в запросе на операцию GetUserAvailability определяет порядок данных о доступности для каждого пользователя в ответе.
Клиенту будет возвращена ошибка, если количество встреч за определенный в запросе период времени больше максимального числа, указанного администратором. Максимальное число встреч по умолчанию — 10 000 отдельных экземпляров и расширенных элементов повторения. Это свойство может быть настроено только администратором.
В ответе используются следующие элементы: