Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MultiLevelExpand transformation #293

Open
wants to merge 45 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
4750db8
auto-expand transformation
HeikoTheissen Nov 10, 2023
53368e3
Avoid EnumType
HeikoTheissen Nov 10, 2023
64e5ae7
Instance annotations for auto-expanded result sets
HeikoTheissen Nov 14, 2023
b5a6f34
Reprased definitions
HeikoTheissen Nov 14, 2023
9238702
SortOrder -> SortOrderType
HeikoTheissen Nov 14, 2023
34b5a64
Avoid <dt>
HeikoTheissen Nov 14, 2023
443f99c
After alignment with @uhlmannm
HeikoTheissen Nov 15, 2023
2fb8ff2
rephrasing
HeikoTheissen Nov 15, 2023
f5dea9f
Make `LeafLevel` mandatory
HeikoTheissen Nov 15, 2023
41b289a
Don't call out instance annotation
HeikoTheissen Feb 2, 2024
2df14e4
Merge remote-tracking branch 'origin/main' into auto-expand
HeikoTheissen Apr 4, 2024
defafdf
Allowed values for DrillState
HeikoTheissen Apr 8, 2024
8584dfe
Merge remote-tracking branch 'origin/main' into auto-expand
HeikoTheissen Apr 11, 2024
f27abe8
auto-refreshed
HeikoTheissen Apr 11, 2024
3ca799d
@uhlmannm's suggestion
HeikoTheissen Apr 12, 2024
92f1abd
Simplifications agreed in V4 table meeting
HeikoTheissen Apr 26, 2024
bb78f7d
Example request
HeikoTheissen Apr 26, 2024
4181573
Rephrased
HeikoTheissen Apr 26, 2024
b227e7f
Typos
HeikoTheissen Apr 26, 2024
e390b0c
@uhlmannm's comments
HeikoTheissen Apr 29, 2024
b9ecf4f
explained example
HeikoTheissen Apr 29, 2024
b587137
expand N levels
HeikoTheissen Apr 29, 2024
ae774a6
renamed type
HeikoTheissen Apr 29, 2024
3cb5082
typo
HeikoTheissen Apr 29, 2024
c9bbadf
more links
HeikoTheissen Apr 29, 2024
3e6379a
corrected LeavesCount, ResultEntriesCount
HeikoTheissen Apr 29, 2024
f98c999
example formatting
HeikoTheissen Apr 29, 2024
64f96eb
save lines
HeikoTheissen Apr 29, 2024
bc35559
round parentheses for in
HeikoTheissen Apr 29, 2024
9f24039
More elegance
HeikoTheissen Apr 29, 2024
8c7b80b
reword: deeper -> finer-grained
HeikoTheissen Apr 29, 2024
4dfd1c6
Sort order like Common.SortOrderType
HeikoTheissen May 2, 2024
5036eba
As agreed in meeting on 2024-05-24
HeikoTheissen May 24, 2024
192cc17
Explain D vs. A
HeikoTheissen May 24, 2024
fbe94b9
Merge remote-tracking branch 'origin/main' into auto-expand
HeikoTheissen Jul 12, 2024
f603089
Merge remote-tracking branch 'origin/main' into auto-expand
HeikoTheissen Jan 10, 2025
66e2af7
subtotals at bottom
HeikoTheissen Jan 10, 2025
4cd0ad4
@uhlmannm's suggestion (slightly reworked)
HeikoTheissen Jan 10, 2025
f7059d6
AutoExpand -> MultiLevelExpand
HeikoTheissen Jan 14, 2025
e51acaa
@ralfhandl's suggestion (slightly adapted)
HeikoTheissen Jan 15, 2025
ff2ea96
@ThomasChadzelek's comments
HeikoTheissen Feb 11, 2025
8b99b2c
Explain the cast
HeikoTheissen Feb 11, 2025
00badf5
Merge remote-tracking branch 'origin/main' into auto-expand
HeikoTheissen Feb 21, 2025
0ae8299
@agoerler's suggestion
HeikoTheissen Feb 21, 2025
20ee029
You can never be explicit enough
HeikoTheissen Feb 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions vocabularies/Analytics.json
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,13 @@
"$Type": "Analytics.AutoExpandEntry",
"@Core.Description": "Entries with exceptional expansion",
"@Core.OptionalParameter": {}
},
{
"$Name": "SubtotalsAtBottom",
"$Type": "Edm.Bool",
"@Core.Description": "Whether to have expanded subtotal rows duplicated: before and after their descendants",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Whether to duplicate the group headers so that they are included before and after their descendants

"@Core.LongDescription": "The entry before has [DrillState](Hierarchy.md#HierarchyType) `expanded`,\n the entry after has DrillState `subtotal`.",
"@Core.OptionalParameter": { "DefaultValue": "false" }
}
],
"$ReturnType": {
Expand Down
23 changes: 12 additions & 11 deletions vocabularies/Analytics.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Term|Type|Description
[AggregatedProperties](Analytics.xml#L106) *(Deprecated)*|\[[AggregatedPropertyType](#AggregatedPropertyType)\]|<a name="AggregatedProperties"></a>Deprecated in favor of [`AggregatedProperty`](#AggregatedProperty)
[AggregatedProperty](Analytics.xml#L124)|[AggregatedPropertyType](#AggregatedPropertyType)|<a name="AggregatedProperty"></a>Dynamic property for aggregate expression with specified aggregation method defined on the annotated entity type.
[AnalyticalContext](Analytics.xml#L144)|\[[AnalyticalContextType](#AnalyticalContextType)\]|<a name="AnalyticalContext"></a>Collection of properties that define an analytical context
[LevelInformation](Analytics.xml#L288) *([Experimental](Common.md#Experimental))*|[HierarchyType](Hierarchy.md#HierarchyType)|<a name="LevelInformation"></a>Information about grouping levels in the result set of a request including the [`AutoExpand`](#AutoExpand) transformation
[LevelInformation](Analytics.xml#L300) *([Experimental](Common.md#Experimental))*|[HierarchyType](Hierarchy.md#HierarchyType)|<a name="LevelInformation"></a>Information about grouping levels in the result set of a request including the [`AutoExpand`](#AutoExpand) transformation


## Functions
Expand Down Expand Up @@ -62,7 +62,8 @@ Parameter|Type|Description
[SiblingOrder](Analytics.xml#L234)|\[[AutoExpandSiblingOrder](#AutoExpandSiblingOrder)\]|Sort specification to apply to all direct descendants of a given entry in the resulting leveled hierarchy
*[ShowLevels](Analytics.xml#L237)*|Int64|*Optional parameter:* Number of levels to be shown in the initial expansion (absent means all levels)
*[ExpandEntries](Analytics.xml#L243)*|\[[AutoExpandEntry](#AutoExpandEntry)\]|*Optional parameter:* Entries with exceptional expansion
[&rarr;](Analytics.xml#L249)|\[EntityType\]|Output set including the instance annotation [`LevelInformation`](#LevelInformation)
*[SubtotalsAtBottom](Analytics.xml#L249)*|Bool|*Optional parameter:* Whether to have expanded subtotal rows duplicated: before and after their descendants<br>The entry before has [DrillState](Hierarchy.md#HierarchyType) `expanded`, the entry after has DrillState `subtotal`.
[&rarr;](Analytics.xml#L261)|\[EntityType\]|Output set including the instance annotation [`LevelInformation`](#LevelInformation)


<a name="AggregatedPropertyType"></a>
Expand Down Expand Up @@ -92,31 +93,31 @@ Property|Type|Description
[AccumulativeMeasure](Analytics.xml#L168)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|The measure has non-negative and additive values; it can be used in whole-part charts, e.g. the Donut

<a name="AutoExpandLevel"></a>
## [AutoExpandLevel](Analytics.xml#L253) *([Experimental](Common.md#Experimental))*
## [AutoExpandLevel](Analytics.xml#L265) *([Experimental](Common.md#Experimental))*
Property names constituting a level in an [unnamed leveled hierarchy](#AutoExpand)

Properties in `D` must be used to identify entries in [`ExpandEntries/Entry`](#AutoExpandEntry),
otherwise they have the same effect as properties in `A`.

Property|Type|Description
:-------|:---|:----------
[D](Analytics.xml#L260)|\[String\]|A non-empty set of property names that define a combination of dimension values
[A](Analytics.xml#L263)|\[String\]|A possibly empty set of names of additional properties of the dimensions that occur in `D`
[D](Analytics.xml#L272)|\[String\]|A non-empty set of property names that define a combination of dimension values
[A](Analytics.xml#L275)|\[String\]|A possibly empty set of names of additional properties of the dimensions that occur in `D`

<a name="AutoExpandSiblingOrder"></a>
## [AutoExpandSiblingOrder](Analytics.xml#L267) *([Experimental](Common.md#Experimental))*
## [AutoExpandSiblingOrder](Analytics.xml#L279) *([Experimental](Common.md#Experimental))*
Sibling order in an [unnamed leveled hierarchy](#AutoExpand)

Property|Type|Description
:-------|:---|:----------
[Property](Analytics.xml#L270)|String|Property by which to sort
[Descending](Analytics.xml#L273)|Boolean?|Sort direction, ascending if not specified otherwise
[Property](Analytics.xml#L282)|String|Property by which to sort
[Descending](Analytics.xml#L285)|Boolean?|Sort direction, ascending if not specified otherwise

<a name="AutoExpandEntry"></a>
## [AutoExpandEntry](Analytics.xml#L277) *([Experimental](Common.md#Experimental))*
## [AutoExpandEntry](Analytics.xml#L289) *([Experimental](Common.md#Experimental))*
Expansion state of an entry in an [unnamed leveled hierarchy](#AutoExpand)

Property|Type|Description
:-------|:---|:----------
[Entry](Analytics.xml#L280)|\[String\]|An entry on a given [level](#AutoExpandLevel) is identified by a collection of values for the `D` properties that constitute all levels up to and including the given one
[Levels](Analytics.xml#L283)|Int64?|Number of levels to be expanded, null means all levels, 0 means collapsed
[Entry](Analytics.xml#L292)|\[String\]|An entry on a given [level](#AutoExpandLevel) is identified by a collection of values for the `D` properties that constitute all levels up to and including the given one
[Levels](Analytics.xml#L295)|Int64?|Number of levels to be expanded, null means all levels, 0 means collapsed
12 changes: 12 additions & 0 deletions vocabularies/Analytics.xml
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,18 @@ $apply=filter(Industry in ('IT','AI'))
<Record/>
</Annotation>
</Parameter>
<Parameter Name="SubtotalsAtBottom" Type="Edm.Bool" Nullable="false">
<Annotation Term="Core.Description" String="Whether to have expanded subtotal rows duplicated: before and after their descendants" />
<Annotation Term="Core.LongDescription">
<String>The entry before has [DrillState](Hierarchy.md#HierarchyType) `expanded`,
the entry after has DrillState `subtotal`.</String>
</Annotation>
<Annotation Term="Core.OptionalParameter">
<Record>
<PropertyValue Property="DefaultValue" String="false" />
</Record>
</Annotation>
</Parameter>
<ReturnType Type="Collection(Edm.EntityType)">
<Annotation Term="Core.Description" String="Output set including the instance annotation [`LevelInformation`](#LevelInformation)" />
</ReturnType>
Expand Down
4 changes: 4 additions & 0 deletions vocabularies/Hierarchy.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,10 @@
"Value": "expanded",
"@Core.Description": "The entry precedes entries from finer-grained aggregation levels"
},
{
"Value": "subtotal",
"@Core.Description": "The entry follows entries from finer-grained aggregation levels and contains subtotals"
},
{ "Value": "leaf", "@Core.Description": "The entry belongs to the finest-grained aggregation level" },
{
"Value": "collapsed",
Expand Down
Loading
Loading