Operação GetUserAvailability
Encontre informações sobre a operação GetUserAvailability EWS.
A operação GetUserAvailability fornece informações detalhadas sobre a disponibilidade de um conjunto de usuários, salas e recursos dentro de um período de tempo especificado.
Usando a operação GetUserAvailability
A operação GetUserAvailability fornece informações atuais de disponibilidade do usuário em um nível especificado de detalhes. Aplicativos cliente como Outlook, Outlook Web Access, Outlook Mobile Access e outros usam endereços SMTP para identificar as informações do usuário solicitadas.
O serviço de disponibilidade expande listas de distribuição para recuperar o status gratuito/ocupado para cada membro da lista, desde que o número de caixas de correio na lista de distribuição seja menor que 100, que é o número máximo de identidades que a operação GetUserAvailability pode solicitar. Os status livre/ocupado dos membros da lista de distribuição são mesclados em um único status gratuito/ocupado para toda a lista de distribuição.
Solicitações de aplicativo cliente especificam o período de tempo da consulta de disponibilidade. O período padrão para as informações solicitadas é de 42 dias. Se o calendário do usuário contiver compromissos ou reuniões dentro e fora do período de tempo definido para a consulta, o compromisso será retornado.
Os horários de compromisso e reunião retornados estão no mesmo fuso horário que o aplicativo cliente que está solicitando a reunião.
O serviço de disponibilidade processa a solicitação de cada cliente. O serviço expande todos os compromissos recorrentes e retorna o número máximo de detalhes do calendário que o cliente solicitante tem permissão para receber.
Observação
Se a caixa de correio de destino não estiver disponível ou não puder ser encontrada, uma exceção MailRecipientNotFoundException será lançada. O cliente recebe uma mensagem de erro que afirma que o destinatário de email não é encontrado no serviço de diretório do Active Directory ou Active Directory Domain Services (AD DS).
Cabeçalhos SOAP da operação GetUserAvailability
A operação GetUserAvailability pode usar os cabeçalhos SOAP listados na tabela a seguir.
Header | Elemento | Descrição |
---|---|---|
Representação |
ExchangeImpersonation |
Identifica o usuário que o cliente está representando. Esse cabeçalho é aplicável a uma solicitação. |
RequestVersion |
RequestServerVersion |
Identifica a versão do esquema para a solicitação de operação. Esse cabeçalho é aplicável a uma solicitação. |
Serverversion |
ServerVersionInfo |
Identifica a versão do servidor que respondeu à solicitação. Esse cabeçalho é aplicável a uma resposta. |
TimeZoneContext |
TimeZoneContext |
Especifica um cabeçalho SOAP que identifica o fuso horário a ser usado para todas as respostas do servidor. Todas as vezes que forem retornadas do servidor serão convertidas no fuso horário especificado. Esse cabeçalho é aplicável a uma resposta. |
Exemplo de solicitação GetUserAvailability: obter informações de disponibilidade
O exemplo a seguir de uma solicitação de operação GetUserAvailability mostra como obter informações detalhadas de disponibilidade para dois usuários no fuso horário do Pacífico.
<?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>
Para obter mais informações sobre como recuperar reuniões sugeridas usando o elemento SuggestionsViewOptions , consulte o esquema no diretório virtual do EWS.
O corpo SOAP de solicitação contém os seguintes elementos:
Resposta bem-sucedida da operação GetUserAvailability
O exemplo a seguir mostra uma resposta bem-sucedida à solicitação de operação GetUserAvailability .
Observação
Os identificadores de eventos do calendário foram encurtados para preservar a legibilidade.
<?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>
As informações de disponibilidade para cada usuário são exibidas em um elemento exclusivo do FreeBusyResponse . A ordem dos usuários na solicitação de operação GetUserAvailability determina a ordem dos dados de disponibilidade para cada usuário na resposta.
Um erro será retornado ao cliente se o número de compromissos no período definido na consulta for maior que o número máximo especificado pelo administrador. O número máximo padrão de compromissos é de 10.000 instâncias individuais e itens de recorrência expandidos. Essa propriedade só pode ser configurada por um administrador.
Os seguintes elementos são usados na resposta: