AggregateOn

Элемент AggregateOn представляет свойство, используемое для определения порядка сгруппированных элементов для сгруппированного результированного набора FindItem.

<AggregateOn>
   <FieldURI/>
</AggregateOn>
<AggregateOn>
   <IndexedFieldURI/>
</AggregateOn>
<AggregateOn>
   <ExtendedFieldURI/>
</AggregateOn>

AggregateOnType

Атрибуты и элементы

В разделах ниже приводится описание атрибутов, дочерних и родительских элементов.

Атрибуты

Атрибут Описание
Aggregate
Указывает максимальное или минимальное значение свойства, определяемого элементом FieldURI , который используется для упорядочения групп элементов.

Ниже перечислены возможные значения.

-Минимальный
-Максимальная

Дочерние элементы

Элемент Описание
FieldURI
Определяет свойства, на которые часто ссылаются URI.
IndexedFieldURI
Определяет отдельные члены словаря.
ExtendedFieldURI
Определяет расширенные свойства MAPI для получения, задания или создания.

Родительские элементы

Элемент Описание
GroupBy
Задает произвольные группировки для запросов FindItem.
Ниже приведено выражение XPath для этого элемента: /FindItem/GroupBy

Замечания

Операция FindItem может возвращать сгруппированные результаты. В сгруппированных результатах все элементы, имеющие одинаковое значение для данного свойства grouping, собираются вместе и представляются как дочерние элементы этой группы. Например, если вы группируете по отправителю, все сообщения электронной почты организованы в отдельные группы в зависимости от того, относятся ли они к отправителю A, отправителю B и т. д. Эти группы являются дочерними элементами группы отправителей.

Каждая из групп в группе отправителей содержит коллекцию элементов, например фактические сообщения электронной почты, полученные от каждого отправителя. Элемент SortOrder можно использовать для сортировки элементов в группе. Однако для сортировки групп на основе значений свойств элемента необходимо использовать агрегирование.

При агрегации порядок групп основан на определенном свойстве элементов в группе. При использовании агрегирования для сортировки элементов в группе необходимо определить репрезентативное свойство, по которому сортируются группы. Элемент AggregateOn можно использовать для указания свойства представителя.

При идентификации репрезентативного свойства атрибут Aggregate используется для указания того, сортируются ли группы в соответствии с максимальным или минимальным значением идентифицированного свойства. Если для атрибута Aggregate задано значение Максимум, группы сортируются, начиная с наибольшего значения свойства AggregateOn . Если для атрибута Aggregate задано значение Минимум, группы сортируются, начиная с наименьшего значения свойства AggregateOn .

Например, если вы хотите выполнить сгруппированный запрос FindItem с группировкой по отправителю, но вы хотите упорядочить группы, чтобы группа с самым последним сообщением электронной почты находилась поверх, можно группировать по отправителю и агрегировать по дате и времени, полученному с помощью атрибута Aggregate значения Maximum.

Схема, описывающая этот элемент, расположена в виртуальном каталоге EWS на компьютере с MicrosoftExchange Server 2007 и установленной ролью сервера клиентского доступа.

Пример

В следующем примере показан сгруппированные запросы и ответы FindItem. В примере показан запрос на возврат элементов, сгруппированных по свойству ConversationTopic . Две группы, A и B, возвращаются в порядке убывания на основе максимального значения свойства DateTimeReceived .

<!-- EXAMPLE REQUEST -->
<?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="https://schemas.microsoft.com/exchange/services/2006/types">
  <soap:Body>
    <FindItem xmlns="https://schemas.microsoft.com/exchange/services/2006/messages"
                xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types"
                Traversal="Shallow">
      <ItemShape>
        <t:BaseShape>IdOnly</t:BaseShape>
        <t:AdditionalProperties>
          <t:FieldURI FieldURI="message:ConversationTopic"/>
          <t:FieldURI FieldURI="item:DateTimeReceived"/>
        </t:AdditionalProperties>    
      </ItemShape>
      <IndexedPageItemView BasePoint="Beginning" MaxEntriesReturned="20" Offset="0"/>
      <GroupBy Order="Ascending">
        <t:FieldURI FieldURI="message:ConversationTopic"/>
        <t:AggregateOn Aggregate="Maximum">
          <t:FieldURI FieldURI="item:DateTimeReceived"/>
        </t:AggregateOn>
      </GroupBy>
      <ParentFolderIds>
        <t:DistinguishedFolderId Id="inbox"/>
      </ParentFolderIds>
    </FindItem>
  </soap:Body>
</soap:Envelope>
<!-- EXAMPLE RESPONSE -->
<?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="652" MinorBuildNumber="0" 
                         xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types" />
  </soap:Header>
  <soap:Body>
    <FindItemResponse xmlns:m="https://schemas.microsoft.com/exchange/services/2006/messages" 
                      xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types" 
                      xmlns="https://schemas.microsoft.com/exchange/services/2006/messages">
      <m:ResponseMessages>
        <m:FindItemResponseMessage ResponseClass="Success">
          <m:ResponseCode>NoError</m:ResponseCode>
          <m:RootFolder IndexedPagingOffset="8" TotalItemsInView="8" IncludesLastItemInRange="true">
            <t:Groups>
              <t:GroupedItems>
                <t:GroupIndex>B</t:GroupIndex>
                <t:Items>
                  <t:Message>
                    <t:ItemId Id="AQAnAH=" ChangeKey="CQAAABY" />
                    <t:DateTimeReceived>2006-09-14T23:59:18Z</t:DateTimeReceived>
                    <t:ConversationTopic>B</t:ConversationTopic>
                  </t:Message>
                  <t:Message>
                    <t:ItemId Id="AQAnAHR=" ChangeKey="CQAAAw" />
                    <t:DateTimeReceived>2006-09-15T00:00:24Z</t:DateTimeReceived>
                    <t:ConversationTopic>B</t:ConversationTopic>
                  </t:Message>
                  <t:Message>
                    <t:ItemId Id="AQAnA==" ChangeKey="CQAAJXT" />
                    <t:DateTimeReceived>2006-09-15T00:22:45Z</t:DateTimeReceived>
                    <t:ConversationTopic>B</t:ConversationTopic>
                  </t:Message>
                </t:Items>
              </t:GroupedItems>
              <t:GroupedItems>
                <t:GroupIndex>A</t:GroupIndex>
                <t:Items>
                  <t:Message>
                    <t:ItemId Id="AQAnAAA==" ChangeKey="CQCJNe" />
                    <t:DateTimeReceived>2006-09-14T23:56:12Z</t:DateTimeReceived>
                    <t:ConversationTopic>A</t:ConversationTopic>
                  </t:Message>
                  <t:Message>
                    <t:ItemId Id="AQWgAA==" ChangeKey="CQAACJV6" />
                    <t:DateTimeReceived>2006-09-14T23:57:33Z</t:DateTimeReceived>
                    <t:ConversationTopic>A</t:ConversationTopic>
                  </t:Message>
                  <t:Message>
                    <t:ItemId Id="AAAA==" ChangeKey="CQA6CJXw" />
                    <t:DateTimeReceived>2006-09-15T00:23:31Z</t:DateTimeReceived>
                    <t:ConversationTopic>A</t:ConversationTopic>
                  </t:Message>
                </t:Items>
              </t:GroupedItems>
            </t:Groups>
          </m:RootFolder>
        </m:FindItemResponseMessage>
      </m:ResponseMessages>
    </FindItemResponse>
  </soap:Body>
</soap:Envelope>

Чтобы отсортировать элементы в группе, используйте элемент SortOrder .

Примечание.

Идентификаторы элементов и ключи изменения сокращены, чтобы сохранить удобочитаемость.

Сведения об элементе

Элемент Пример
Пространство имен
https://schemas.microsoft.com/exchange/services/2006/types
Имя схемы
Схема Types
Файл проверки
Types.xsd
Может быть пустым
False

См. также