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="http://schemas.microsoft.com/exchange/services/2006/types">
<soap:Body>
<FindItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://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="http://schemas.microsoft.com/exchange/services/2006/types" />
</soap:Header>
<soap:Body>
<FindItemResponse 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: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 .
Примечание.
Идентификаторы элементов и ключи изменения сокращены, чтобы сохранить удобочитаемость.
Сведения об элементе
Элемент | Пример |
---|---|
Пространство имен |
http://schemas.microsoft.com/exchange/services/2006/types |
Имя схемы |
Схема Types |
Файл проверки |
Types.xsd |
Может быть пустым |
False |