2013-05-06 3 views
6

Я пытаюсь позвонить GetUserAvailabilityRequest из Южноафриканского стандартного времени, который не соблюдает летнее время, однако для элемента TimeZone требуются подэлементы StandardTime и DaylightTime, которые требуют подробностей о переходе к или от DST. Опущение этих элементов приводит к ошибке, равно как и к отправке произвольных данных. Кто-нибудь знает правильный способ сделать этот звонок?Как вызвать Exchange Web Services GetUserAvailabilityRequest, когда текущий часовой пояс не учитывает летнее время?

Подробнее на основе комментариев от @ jan-doggen. В этом примере пользователь базируется в Южной Африке Standard Time

запрос (с произвольным ST и DST изменения даты 1 января)

<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>-120</Bias> 
      <StandardTime> 
       <Bias>0</Bias> 
       <Time>00:00:00</Time> 
       <DayOrder>1</DayOrder> 
       <Month>1</Month> 
       <DayOfWeek>Wednesday</DayOfWeek> 
      </StandardTime> 
      <DaylightTime> 
       <Bias>0</Bias> 
       <Time>00:00:00</Time> 
       <DayOrder>1</DayOrder> 
       <Month>1</Month> 
       <DayOfWeek>Wednesday</DayOfWeek> 
      </DaylightTime> 
     </t:TimeZone> 
     <MailboxDataArray> 
      <t:MailboxData> 
       <t:Email> 
        <t:Address>[email protected]</t:Address> 
       </t:Email> 
       <t:AttendeeType>Organizer</t:AttendeeType> 
       <t:ExcludeConflicts>false</t:ExcludeConflicts> 
      </t:MailboxData> 
      <t:MailboxData> 
       <t:Email> 
        <t:Address>[email protected]</t:Address> 
       </t:Email> 
       <t:AttendeeType>Required</t:AttendeeType> 
       <t:ExcludeConflicts>false</t:ExcludeConflicts> 
      </t:MailboxData> 
     </MailboxDataArray> 
     <t:FreeBusyViewOptions> 
      <t:TimeWindow> 
       <t:StartTime>2013-05-13T00:55:11</t:StartTime> 
       <t:EndTime>2013-05-27T00:55:11</t:EndTime> 
      </t:TimeWindow> 
      <t:MergedFreeBusyIntervalInMinutes>15</t:MergedFreeBusyIntervalInMinutes> 
      <t:RequestedView>FreeBusyMerged</t:RequestedView> 
     </t:FreeBusyViewOptions> 
    </GetUserAvailabilityRequest> 
</soap:Body> 

Ответ:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
<s:Body> 
    <s:Fault> 
     <faultcode xmlns:a="http://schemas.microsoft.com/exchange/services/2006/types">a:-2146233088</faultcode> 
     <faultstring xml:lang="en-US">The specified time zone isn't valid.</faultstring> 
     <detail> 
      <m:ErrorCode xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">-2146233088</m:ErrorCode> 
     </detail> 
    </s:Fault> 
</s:Body> 

+0

Вы пытались установить DaylightTime и StandardTime как с предубеждением 0? Тогда переключение не имеет значения. –

+0

Да, проблема заключается в компонентах даты для описания перехода от стандартного к дневному свету. –

+0

Хорошо, но вы устанавливаете их в какое-то произвольное время. В то время вы переключаетесь с предубеждения 0 на смещение 0 ;-) –

ответ

3

Всей examples on MSDN показывает, что стандартные и время дневного света имеют различные значения для <Month>. Используйте разные значения месяца, но то же значение <Bias> как для дневного, так и для стандартного часового пояса.

3

Благодаря комментарию @ WilliamPrice мне удалось это решить. Ответ был установлен месяц перехода на летнее время на другое значение, чем стандартное время при установке этих значений произвольно:

<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>-120</Bias> 
      <StandardTime> 
       <Bias>0</Bias> 
       <Time>00:00:00</Time> 
       <DayOrder>1</DayOrder> 
       <Month>1</Month> 
       <DayOfWeek>Wednesday</DayOfWeek> 
      </StandardTime> 
      <DaylightTime> 
       <Bias>0</Bias> 
       <Time>00:00:00</Time> 
       <DayOrder>1</DayOrder> 
       **<Month>2</Month>** 
       <DayOfWeek>Wednesday</DayOfWeek> 
      </DaylightTime> 
     </t:TimeZone> 
     <MailboxDataArray> 
      <t:MailboxData> 
       <t:Email> 
        <t:Address>[email protected]</t:Address> 
       </t:Email> 
       <t:AttendeeType>Organizer</t:AttendeeType> 
       <t:ExcludeConflicts>false</t:ExcludeConflicts> 
      </t:MailboxData> 
      <t:MailboxData> 
       <t:Email> 
        <t:Address>[email protected]</t:Address> 
       </t:Email> 
       <t:AttendeeType>Required</t:AttendeeType> 
       <t:ExcludeConflicts>false</t:ExcludeConflicts> 
      </t:MailboxData> 
     </MailboxDataArray> 
     <t:FreeBusyViewOptions> 
      <t:TimeWindow> 
       <t:StartTime>2013-05-13T00:55:11</t:StartTime> 
       <t:EndTime>2013-05-27T00:55:11</t:EndTime> 
      </t:TimeWindow> 
      <t:MergedFreeBusyIntervalInMinutes>15</t:MergedFreeBusyIntervalInMinutes> 
      <t:RequestedView>FreeBusyMerged</t:RequestedView> 
     </t:FreeBusyViewOptions> 
    </GetUserAvailabilityRequest> 
</soap:Body> 
Смежные вопросы