Skip to content

Latest commit

 

History

History
65 lines (47 loc) · 5.97 KB

Org.OData.Aggregation.V1.md

File metadata and controls

65 lines (47 loc) · 5.97 KB

Aggregation Vocabulary

Namespace: Org.OData.Aggregation.V1

Terms to describe which data in a given entity model can be aggregated, and how.

Terms

Term Type Description
ApplySupported ApplySupportedType This structured type or entity container supports the $apply system query option
Groupable Tag This property can be used in the groupby transformation
Aggregatable Tag This property can be used in the aggregate transformation
CustomAggregate String Dynamic property that can be used in the aggregate transformation

This term MUST be applied with a Qualifier, the Qualifier value is the name of the dynamic property. The value of the annotation MUST be the qualified name of a primitive type. The aggregated values will be of that type.

ContextDefiningProperties [PropertyPath] The annotated property or custom aggregate is only well-defined in the context of these properties

The context-defining properties need either be part of the result entities, or be restricted to a single value by a pre-filter operation. Examples are postal codes within a country, or monetary amounts whose context is the unit of currency.

LeveledHierarchy [PropertyPath] Defines a leveled hierarchy by defining an ordered list of properties in the hierarchy
RecursiveHierarchy RecursiveHierarchyType Defines a recursive hierarchy.
AvailableOnAggregates AvailableOnAggregatesType This action or function is available on aggregated entities if the RequiredProperties are still defined

Functions

Function Signature Description
isroot Entity: EntityType, Hierarchy: String → Boolean Returns true, if and only if the value of the node property of the specified hierarchy is the root of the hierarchy
isdescendant Entity: EntityType, Hierarchy: String, Node: PrimitiveType, MaxDistance: Int16 → Boolean Returns true, if and only if the value of the node property of the specified hierarchy is a descendant of the given parent node with a distance of less than or equal to the optionally specified maximum distance
isancestor Entity: EntityType, Hierarchy: String, Node: PrimitiveType, MaxDistance: Int16 → Boolean Returns true, if and only if the value of the node property of the specified hierarchy is an ancestor of the given child node with a distance of less than or equal to the optionally specified maximum distance
issibling Entity: EntityType, Hierarchy: String, Node: PrimitiveType → Boolean Returns true, if and only if the value of the node property of the specified hierarchy has the same parent node as the specified node
isleaf Entity: EntityType, Hierarchy: String → Boolean Returns true, if and only if the value of the node property of the specified hierarchy has no descendants
Property Type Description
Transformations [String] Transformations that can be used in $apply
CustomAggregationMethods [String] Qualified names of custom aggregation methods that can be used in aggregate(...with...)
Rollup RollupType The service supports rollup hierarchies in a groupby transformation
PropertyRestrictions Boolean Only properties tagged as Groupable can be used in the groupby transformation, and only those tagged as Aggregatable can be used in the aggregate transformation

The number of rollup operators allowed in a groupby transformation

Member Value Description
None 0 No rollup support
SingleHierarchy 1 Only one rollup operator per groupby
MultipleHierarchies 2 Full rollup support
Property Type Description
NodeProperty PropertyPath Property holding the hierarchy node value
ParentNavigationProperty NavigationPropertyPath Property for navigating to the parent node
DistanceFromRootProperty PropertyPath Property holding the number of edges between the node and the root node
IsLeafProperty PropertyPath Property indicating whether the node is a leaf of the hierarchy
Property Type Description
RequiredProperties [PropertyPath] Properties required to apply this action or function