-
Type:
New Feature
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: V4.0_CSD03
-
Fix Version/s: V4.0_CSD04
-
Component/s: Data Aggregation
-
Labels:None
-
Environment:
Applied
-
Proposal:
This new feature is motivated by a concrete use case. The current version of the Data Aggregation specification already includes an example for a cross-table and describes how to retrieve its data using transformation groupby in combination with rollup. However, this data is returned as linear collection of entities. For working with data in a grid efficiently, it must be possible to access selected sections of the grid. Details are described in the document “Grid-Like Access to Aggregated Data”, sections 2 and 3: https://www.oasis-open.org/committees/document.php?document_id=62593&wg_abbrev=odata
Some examples to illustrate the transpose transformation applied to the data model in the data aggregation extension specification:
1. Rolodex: Retrieve index cards for customers
GET Customers?$apply = compute( substring( Name, 0, 1 ) as FirstLetter )
/ groupby( (FirstLetter), transpose( Customers, identity ) )
returns
2. Retrieve customers per product category
GET Sales?$apply = groupby( (Product/Category/ID),
transpose( Customers, groupby( (Customer/ID) ) )
returns