0

Exchangeで隔週のカレンダーの予定を作成したり、Outlookで表示したりするのに問題があります

イベントは、2013年1月19日から土曜日と日曜日に隔週(interval = 2)で、最大5回発生します。
予想される発生:sat 19 jan、sun 20 jan、sat 2 feb、sun 3 feb、sat 16 feb
観測された発生:sat 19 jan、sun 27 jan、sat 2 feb、sun 10 feb、sat16feb。わぁぁぁぁ?
Outlook 2003SP3またはOutlook2010(SP?)との予定を確認します。

これは、Exchange Webサービスでイベントを作成したコードであり、私が試したことについてのコメントがあります。

<soapenv:Envelope
  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:typ="http://schemas.microsoft.com/exchange/services/2006/types"
  xmlns:mes="http://schemas.microsoft.com/exchange/services/2006/messages">
<soapenv:Header>
  <typ:RequestServerVersion Version="Exchange2007_SP1"/>
  <typ:MailboxCulture>en-US</typ:MailboxCulture>
  <!-- typ:TimeZoneContext makes no difference -->
  <typ:TimeZoneContext>
     <typ:TimeZoneDefinition Id="W. Europe Standard Time"></typ:TimeZoneDefinition>
  </typ:TimeZoneContext>
</soapenv:Header>
<soapenv:Body>
   <mes:CreateItem SendMeetingInvitations="SendToNone">
      <mes:Items>
         <typ:CalendarItem>
           <typ:Subject>Every 2 weeks sa/su, ends after 5</typ:Subject>
           <typ:Body BodyType="Text"></typ:Body>
           <typ:ReminderIsSet>false</typ:ReminderIsSet>
           <typ:Start>2013-01-19T11:00:00.000+01:00</typ:Start>
           <typ:End>2013-01-19T11:30:00.000+01:00</typ:End>
           <typ:IsAllDayEvent>false</typ:IsAllDayEvent>
           <typ:LegacyFreeBusyStatus>Busy</typ:LegacyFreeBusyStatus>
           <typ:Location></typ:Location>
           <typ:Recurrence>
           <typ:WeeklyRecurrence>
             <typ:Interval>2</typ:Interval>
             <!-- Day name order makes no difference -->
             <typ:DaysOfWeek>Saturday Sunday</typ:DaysOfWeek>
             <!-- typ:FirstDayOfWeek>Sunday</typ:FirstDayOfWeek   Tried but not allowed in Exchange2007_SP1 or Exchange2010-->
           </typ:WeeklyRecurrence>
           <typ:NumberedRecurrence>
             <typ:StartDate>2013-01-19</typ:StartDate>
             <typ:NumberOfOccurrences>5</typ:NumberOfOccurrences>
           </typ:NumberedRecurrence>
         <!-- MeetingTimeZone makes no difference -->
         <typ:MeetingTimeZone TimeZoneName="W. Europe Standard Time"/>
         </typ:Recurrence>
         </typ:CalendarItem>
      </mes:Items>
   </mes:CreateItem>
</soapenv:Body>
</soapenv:Envelope>

このコードは、DavidSterling他による『 Inside Microsoft Exchange Server 2007 Web Services』のリスト9-29と実質的に同じです。

このイベントについてEWSにクエリを実行すると、作成したものが返されます。

<t:CalendarItem>
   <t:ItemId Id="AQMkA[snip]PYb1"/>
   <t:Subject>Every 2 weeks sa/su, ends after 5</t:Subject>
   [snip]
   <t:Start>2013-01-19T10:00:00Z</t:Start>
   <t:End>2013-01-19T10:30:00Z</t:End>
   <t:CalendarItemType>RecurringMaster</t:CalendarItemType>
   <t:Recurrence>
      <t:WeeklyRecurrence>
         <t:Interval>2</t:Interval>
         <t:DaysOfWeek>Sunday Saturday</t:DaysOfWeek>
      </t:WeeklyRecurrence>
      <t:NumberedRecurrence>
         <t:StartDate>2013-01-19+01:00</t:StartDate>
         <t:NumberOfOccurrences>5</t:NumberOfOccurrences>
      </t:NumberedRecurrence>
   </t:Recurrence>
</t:CalendarItem>

これはExchangeServer2010のサービスパックなしです。
私が試した他のこと:

1)Outlookでそのミステリーイベントを編集し、金曜日にも発生するように指示すると、ほぼ適切に更新されます。1つの金曜日が余分に発生し(2月1日)、最後の2月16日土曜日のイベントが終了しますが、 /太陽の発生は残ります

2)EWSで同じコードを使用して、次のイベントを作成しました:
火曜日木曜日(開始日1月15日):晴れ
日曜日火曜日(開始日1月15日):間違った(交互のパターン)
月曜日土曜日(開始日1月14日):罰金

3)EWSを使用する代わりに、Outlook2003でまったく同じイベントを作成します。それはうまく表示されます。次に、EWSにクエリを実行すると、まったく同じSOAP結果が得られます。

私の懸念は次のとおりです。
繰り返しパラメータを誤って解釈しているのでしょうか、それともすべてのOutlookバージョンが間違っているのでしょうか。後者はありそうもないようですが、上記はそれを示しています。

ここで何がうまくいかないのか誰かが考えていますか?

4

1 に答える 1

1

週の最初の日の問題であることがわかりました。

私の Outlook は、月曜日が週の最初の日になるように設定されていました。Outlook で隔週の土日予定を作成すると、予定どおりに発生します。

 m  t  w  t  f  s  s
 .  .  .  .  . 19 20
 .  .  .  .  .  .  .
 .  .  .  .  .  2  3
 .  .  .  .  .  .  .
 .  .  .  .  .  9  .

ここで、日曜日が週の最初の日になるように Outlook を設定しました。それから私は得る:

 s  m  t  w  t  f  s 
 .  .  .  .  .  . 19
 .  .  .  .  .  .  .
27  .  .  .  .  .  2
 .  .  .  .  .  .  .
10  .  .  .  .  . 16
 .  .  .  .  .  .  .

ここでの「推論」は次のとおりです:
- 今週の土日が発生する機会は 1 つ: 1 月 19 日
- 2 週間ジャンプ
- その週の次の土日を割り当てる
- など

SOAP を使用して予定を作成するとき、Exchange サーバーは日曜日を週の始まりと見なし、2 番目の例から発生を作成していました。しかし、月曜日を週の始まりとして Outlook でこれを表示すると、次のようになります。

 m  t  w  t  f  s  s
 .  .  .  .  . 19  .
 .  .  .  .  .  . 27
 .  .  .  .  .  2  .
 .  .  .  .  .  . 10
 .  .  .  .  . 16  .

したがって、私がしなければならないことは、EWS に、月曜日を週の最初の曜日として予約していることを伝えることだけです。
WeeklyRecurrence ノードでは設定できません
。ユーザー構成を介して読み取りおよび設定できるように見えます。
これは次の質問につながります: Exchange Web サービスで予定表ユーザー構成全体を読み取るにはどうすればよいですか?

于 2013-01-29T11:24:16.063 に答える