我无法在Exchange 中创建双周日历约会或在Outlook中查看
该活动于2013年1月19日星期六和星期日举行,为期两周(间隔= 2),最多5次。
预期事件:坐在19日,日落20日,坐在2日,3日太阳,坐在16日元左右
观察到的事件:坐在19日jan,sun 27 jan,坐在2 2 feb,sun 10 feb,坐在16 feb。 Whaaat ??
我查看Outlook 2003 SP3或Outlook 2010(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>
此代码几乎与David Sterling等人的书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>
这是Exchange Server 2010没有服务包 我试过的其他事情:
1)如果我在Outlook中编辑该神秘事件并告诉它在星期五发生,它会或多或少地更新:一个星期五发生额外(2月1日)和最后一个星期六16月16日事件下降,但我的交替坐/太阳发生仍然存在
2)在EWS中使用相同的代码我创建了这个事件:
星期二星期四(1月15日开始):罚款
星期二星期二(开始日期15月1日):错误(交替模式再次)
周一周六(1月14日开始):很好
3)在Outlook 2003中创建完全相同的事件,而不是通过EWS。它显示很好。然后查询EWS,我得到完全相同的SOAP结果。
我担心的是:
我是否误解了重复参数或所有Outlook版本错误?后者似乎不太可能,但上面指出了它。
任何想法可能会出错?
答案 0 :(得分:1)
我发现这是第一天的第一天问题。
我的展望定于星期一为一周的第一天。 如果我在Outlook中创建每两周一次的sat-sun预约,则会出现预期:
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月19日
- 跳了两个星期
- 在那个星期分配下一个坐/太阳
- 等等
通过SOAP创建约会时,Exchange服务器将星期日视为星期的开始,并从第二个示例创建事件。 但是当在周一作为本周开始的Outlook中显示它时,我们得到:
m t w t f s s
. . . . . 19 .
. . . . . . 27
. . . . . 2 .
. . . . . . 10
. . . . . 16 .
所以我要做的就是告诉EWS,我将根据周一作为一周的第一天进行预约。
It cannot be set in the WeeklyRecurrence node
看起来好像可以通过用户配置读取和设置
这导致了下一个问题:How can I read the entire calendar user configuration in Exchange Web Services?