无法在EWS SOAP调用中设置会议请求属性? [英] Meeting request properties not settable in EWS SOAP calls?

查看:106
本文介绍了无法在EWS SOAP调用中设置会议请求属性?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我通过纯SOAP调用在Exchange Server中(重新)创建(循环)事件与Exchange Web Services进行对话.

I (re)create (recurrent) events in Exchange Server talking to Exchange Web Services with pure SOAP calls.

当这些事件实际上是会议请求时,我尝试维护一些以前检索到的会议属性,因此将它们放在CreateItem调用中:

When these events are actually meeting requests I try to maintain some meeting properties that were previously retrieved, so I put them in the CreateItem call:

AllowNewTimeProposal
AppointmentReplyTime
ConferenceType
IsCancelled
IsOnlineMeeting
IsResponseRequested
MeetingWorkspaceURL
MeetingRequestWasSent
MyResponseType
NetShowURL
Organizer
OptionalAttendees
RequiredAttendees
Resources

起初,对于属性IsCancelledIsOnlineMeeting,我得到了错误Set action is invalid for property,并认为 O,它们可能是自动设置的,但现在我什至为Organizer得到了它们. >在用户为组织者的情况下.

At first I got the error Set action is invalid for property for the properties IsCancelled and IsOnlineMeeting, and thought O, these are probably set automatically, but now I even get them for the Organizer on the event where the user is the organizer.

发生了什么事?
所有这些会议属性都不能在CreateItem呼叫中设置吗?
我是否刚刚偶然地撞到了三个不可设置的位置-在哪里可以找到实际可设置的列表(例如,文档位于

What is going on?
Are all these meeting properties not settable in a CreateItem call?
Have I just accidentally bumped into three that are not settable - where can I find a list of what is actually settable (the docs at e.g. https://msdn.microsoft.com/en-us/library/aa580675%28v=exchg.80%29.aspx do mention the occasional read-only element, but not these)?

请求:

<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>
     <typ:TimeZoneDefinition Id="W. Europe Standard Time"/>
  </typ:TimeZoneContext>
</soapenv:Header>
<soapenv:Body>
   <mes:CreateItem SendMeetingInvitations="SendToNone">
      <mes:SavedItemFolderId>
         <typ:DistinguishedFolderId Id="calendar">
            <typ:Mailbox>
               <typ:EmailAddress>jan@TimeTellBV567.onmicrosoft.com</typ:EmailAddress>
            </typ:Mailbox>
         </typ:DistinguishedFolderId>
      </mes:SavedItemFolderId>
      <mes:Items>
         <typ:CalendarItem>
           <typ:Subject>recuir MODI</typ:Subject>
           <typ:Body BodyType="Text"></typ:Body>
           <typ:Categories>
             <typ:String>TimeTell</typ:String>
           </typ:Categories>
           <typ:ReminderIsSet>false</typ:ReminderIsSet>
           <typ:Start>2015-07-23T11:30:00.000+02:00</typ:Start>
           <typ:End>2015-07-23T12:00:00.000+02:00</typ:End>
           <typ:IsAllDayEvent>false</typ:IsAllDayEvent>
           <typ:LegacyFreeBusyStatus>Busy</typ:LegacyFreeBusyStatus>
           <typ:Location>daar</typ:Location>
           <typ:IsResponseRequested>true</typ:IsResponseRequested>
           <typ:MyResponseType>Organizer</typ:MyResponseType>
           <typ:Organizer>
             <typ:Mailbox>
               <typ:Name>Jan</typ:Name>
               <typ:EmailAddress>jan@somewhere.onmicrosoft.com</typ:EmailAddress>
               <typ:RoutingType>SMTP</typ:RoutingType>
             </typ:Mailbox>
           </typ:Organizer>
           <typ:RequiredAttendees>
             <typ:Attendee>
               <typ:Mailbox>
                 <typ:Name>Ben</typ:Name>
                 <typ:EmailAddress>ben@somewhere.onmicrosoft.com</typ:EmailAddress>
                 <typ:RoutingType>SMTP</typ:RoutingType>
               </typ:Mailbox>
               <typ:ResponseType>Unknown</typ:ResponseType>
             </typ:Attendee>
           </typ:RequiredAttendees>
           <typ:Recurrence>
             <typ:WeeklyRecurrence>
               <typ:Interval>1</typ:Interval>
               <typ:DaysOfWeek>Thursday</typ:DaysOfWeek>
             </typ:WeeklyRecurrence>
             <typ:NoEndRecurrence>
               <typ:StartDate>2015-07-23+01:00</typ:StartDate>
             </typ:NoEndRecurrence>
           </typ:Recurrence>
           <typ:MeetingTimeZone TimeZoneName="W. Europe Standard Time"/>
           <typ:ConferenceType>0</typ:ConferenceType>
           <typ:AllowNewTimeProposal>true</typ:AllowNewTimeProposal>
           <typ:IsOnlineMeeting>false</typ:IsOnlineMeeting>
         </typ:CalendarItem>
      </mes:Items>
   </mes:CreateItem>
</soapenv:Body>
</soapenv:Envelope>

响应:

<Envelope>
  <Header>
    <ServerVersionInfo MajorVersion="15" MinorVersion="1" MajorBuildNumber="213" MinorBuildNumber="21" Version="V2_47"/>
  </Header>
  <Body>
    <CreateItemResponse>
      <ResponseMessages>
        <CreateItemResponseMessage ResponseClass="Error">
          <MessageText>Set action is invalid for property.</MessageText>
          <ResponseCode>ErrorInvalidPropertySet</ResponseCode>
          <DescriptiveLinkKey>0</DescriptiveLinkKey>
          <MessageXml>
            <FieldURI FieldURI="calendar:Organizer"/>
          </MessageXml>
          <Items/>
        </CreateItemResponseMessage>
      </ResponseMessages>
    </CreateItemResponse>
  </Body>
</Envelope>

我目前正在与组织者一起在Office 365上使用自己的日历进行测试,但是正如您从请求中看到的那样,我希望它可以从Exchange2007_SP1开始使用.

I'm currently testing with the organizer in his own calander, against Office 365, but as you can see from the request I want this to work from Exchange2007_SP1 up.

推荐答案

(回答我自己的问题)

嗯,这个问题有点虚惊一场,但是我把它留在这里是因为很难找到信息.

Mmm, that question was a bit of a false alarm, but I'm leaving it here because the information is hard to find.

事实证明,我尝试修改的属性确实都是只读的:IsCancelledIsOnlineMeetingMeetingRequestWasSentOrganizer. 从:

It turns out that the properties I attempted to modify were indeed all read-only: IsCancelled, IsOnlineMeeting, MeetingRequestWasSent and Organizer. Quoting Kim Brand from an answer in the 'Exchange EWS set CalendarItem Organizer' post at the MS Exchange Development Forum:

管理器是一个只读属性,这意味着您不能设置"该属性.这就是为什么您看到错误消息设置操作对属性无效"的原因.
Organizer is a read-only property, which means that you can't "set" that property. That's why you are seeing the error message "Set action is invalid for property".

组织者是负责协调会议出席者的一方,并且其值会自动设置为创建CalendarItem的用户(除非使用了Delegate Access).
Organizer is the party responsible for coordinating meeting attendence, and its value gets automatically set to the user that creates the CalendarItem (unless Delegate Access is used).

当我在CreateItem调用中不包含上述属性时,它将起作用.创建/更新的约会上的GetItem显示确实设置了Organizer:

When I leave the above properties out of my CreateItem call, it works. A GetItem on the created/updated appointment shows that Organizer is indeed set:

<t:Organizer>
   <t:Mailbox>
      <t:Name>Jan</t:Name>
      <t:EmailAddress>/O=EXCHANGELABS/OU=EXCHANGE ADMINISTRATIVE GROUP (FYDIBOHF23SPDLT)/CN=RECIPIENTS/CN=A9403513C6AA40E68E05776BFEA9C117-JAN</t:EmailAddress>
      <t:RoutingType>EX</t:RoutingType>
      <t:MailboxType>OneOff</t:MailboxType>
   </t:Mailbox>
</t:Organizer>


:
可以通过MAPI设置只读属性,请参阅我的其他帖子


:
It is possible to set readonly properties through MAPI, see my other post
How to 'set' read-only calendar appointment properties (related to meetings)?

这篇关于无法在EWS SOAP调用中设置会议请求属性?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆