UpdateItem 操作

UpdateItem 操作用于修改 Exchange 存储中现有项的属性。

备注

可以对一项执行三个基本更新操作。 下表列出了可以执行的操作。

操作 说明
Append
将数据添加到现有属性。 此操作将保留当前数据。 Append 不适用于所有属性。
Set
如果属性包含数据,则替换属性的数据;如果属性不存在,则创建属性并设置其值。 set 操作仅适用于可写属性。
删除
从项中删除属性。 这与将属性设置为空值不同。 此操作完成后,项的 属性不存在。 删除仅适用于可写属性。

UpdateItem 调用可用于修改一个或多个项,以及每个项的一个或多个属性。 ItemChanges 元素包含作为此调用的一部分执行的所有修改。 ItemChange 元素(ItemChanges 元素的子元素)表示要对单个项执行的修改。 ItemChange 元素包含一组可对单个项执行的更新操作。 这些更改包含在 汇报 (Item) 元素中。 ItemId 元素标识要更新的项。 若要更新项目上的多个属性,必须为需要更新的每个属性提供 SetItemFieldAppendToItemFieldDeleteItemField

注意

更新操作按指定的顺序应用。

对于每次更改,必须指定要更改的属性的路径,以及具有新值的该项的表示形式。 删除操作略有不同,只要求应删除的属性的路径。 对于 set 和 append 操作,指定的路径必须引用在项表示形式中设置的相同属性。 如果它们不同,将返回错误。

UpdateItem 操作可以设置 Exchange 存储项的开始结束时间。 在 UpdateItem 请求中,无需设置结束时间即可设置开始时间。 如果 开始 时间晚于 结束 时间,这可能会导致错误。 请注意,客户端应用程序必须调整开始时间更改时的结束时间才能保留持续时间。

当单个日历项目更新为定期主日历项时,UpdateItem 操作必须设置 MeetingTimeZone 属性,以便保留日历项的原始时区。

SetItemField 请求示例

说明

以下 UpdateItem 请求示例演示如何设置项的 sensitivity 属性。

代码

<?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>
    <UpdateItem MessageDisposition="SaveOnly" ConflictResolution="AutoResolve" 
                xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
      <ItemChanges>
        <t:ItemChange>
          <t:ItemId Id="AAAtAEFkb..." ChangeKey="CQAAABYAAAB..."/>
          <t:Updates>
            <t:SetItemField>
              <t:FieldURI FieldURI="item:Sensitivity"/>
              <t:Message>
                <t:Sensitivity>Normal</t:Sensitivity>
              </t:Message>
            </t:SetItemField>
          </t:Updates>
        </t:ItemChange>
      </ItemChanges>
    </UpdateItem>
  </soap:Body>
</soap:Envelope>

Comments

项标识符和更改键已缩短,以保持可读性。

SetItemField 请求元素

请求中使用以下元素:

AppendToItemField 请求示例

说明

下面的 UpdateItem 请求示例演示如何将文本追加到项的 body 属性。

代码

<?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>
    <UpdateItem MessageDisposition="SaveOnly" ConflictResolution="AutoResolve" 
                xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
      <ItemChanges>
        <t:ItemChange>
          <t:ItemId Id="AAAtAEFkbW..." ChangeKey="CQAAABYA..."/>
          <t:Updates>
            <t:AppendToItemField>
              <t:FieldURI FieldURI="item:Body"/>
              <t:Message>
                <t:Body BodyType="Text">Some additional text to append</t:Body>
              </t:Message>
            </t:AppendToItemField>
          </t:Updates>
        </t:ItemChange>
      </ItemChanges>
    </UpdateItem>
  </soap:Body>
</soap:Envelope>

Comments

以下属性支持追加操作:

  • message:ReplyTo

  • item:Body

  • 所有收件人和与会者集合属性

项标识符和更改键已缩短,以保持可读性。

AppendToItemField 请求元素

请求中使用以下元素:

DeleteItemField 请求示例

说明

以下 UpdateItem 请求示例演示如何删除项的属性。

代码

<?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>
    <UpdateItem MessageDisposition="SaveOnly" ConflictResolution="AutoResolve" 
                xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
      <ItemChanges>
        <t:ItemChange>
          <t:ItemId Id="AAAtAEFkbWluaXN0cm..." ChangeKey="CQAAABYAA..."/>
          <t:Updates>
            <t:DeleteItemField>
              <t:FieldURI FieldURI="item:Body"/>
            </t:DeleteItemField>
          </t:Updates>
        </t:ItemChange>
      </ItemChanges>
    </UpdateItem>
  </soap:Body>
</soap:Envelope>

Comments

项标识符和更改键已缩短,以保持可读性。

DeleteItemField 请求元素

请求中使用以下元素:

成功的响应示例

说明

以下示例显示了 对 UpdateItem 请求的成功响应。

代码

<?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="664" MinorBuildNumber="0" 
                         xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"/>
  </soap:Header>
  <soap:Body>
    <UpdateItemResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" 
                        xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" 
      xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
      <m:ResponseMessages>
        <m:UpdateItemResponseMessage ResponseClass="Success">
          <m:ResponseCode>NoError</m:ResponseCode>
          <m:Items>
            <t:Message>
              <t:ItemId Id="AAAtAEFkbW..." ChangeKey="CQAAABYAAA..."/>
            </t:Message>
          </m:Items>
        </m:UpdateItemResponseMessage>
      </m:ResponseMessages>
    </UpdateItemResponse>
  </soap:Body>
</soap:Envelope>

Comments

项标识符和更改键已缩短,以保持可读性。

成功的响应元素

响应中使用以下元素:

另请参阅

UpdateItem 操作(任务)

UpdateItem 操作(联系人)

更新联系人

更新任务