SlideShare a Scribd company logo
Beyond OData
Introducing
the XML/A model for UI5
Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
Roland Bouman
Business Intelligence Consultant & Developer
Just-BI.nl (Rijswijk)
Twitter: @rolandbouman
Blog: http://rpbouman.blogspot.nl
Requirement & Environment: Cost Reporting
• Base Cost Measures:
• Actual
• Planned
• Derived Metrics:
• Delta: Planned – Actual
• Relative: Delta / Planned * 100%
• UI:
• Dropdown filter for Time/Period
• Drilldown tables with Bulletcharts
• UI5
• Time:
• Current Period (Month)
• Year to Date
• Hierarchical Breakdowns:
• Cost Centers
• Cost Elements
• Lazy loading
• Backend:
• HANA 1.0
• Data from BW model
• Front end: UI5
• OData (.xsodata)
Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
Datamodel: BW on HANA 1.0
• Fact Table:
• Amount
• Cost type (planned or actual)
• Keys to dimension tables
• Dimension Tables
• Calendar Dimension Table
• Cost Center Table (Parent/Child)
• Cost Element Table (Parent/Child)
• Texts (Labels)
Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
Cost Hierarchy Data Model
• Hierarchies
• Cost Element
• Cost Center
• Adjacency list:
• Id column (primary key)
• Parent Id column (foreign key to Id)
• Recursion
• Non-leaf nodes
• Only access to direct children
• Variable Depth (Ragged)
• Leaf nodes
• Corresponding Fact table Rows
Dimension Table
Id (primary key)
Parent Id (foreign key)
Fact Table
Dimension Table Id (foreign key)
Metrics (to be aggregated)
Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
Challenge: Recursion & Aggregation with OData
• Recursion
• OData can handle Recursive relationships (navigation properties)
• Think: Lazy loading / Tree-like navigation
• Aggregation
• HANA .xsodata can handle aggregation
• Recursion & Aggregation: 
• Aggregation of fact rows of all descendants of any given non-leaf node
• It needs to not be dead slow, too
Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
Solutions for Recursive Aggregation?
• All Client-side
• Client caches hierarchy + data, client-side aggregation
• Add a Service
• Server-side logic (procedure, xsjs script) handles recursion & aggregation
• HANA 1.0 has no recursive SQL constructs
• Change the Data
• Flatten parent/child hierarchy into a leveled hierarchy (ETL)
• Each level becomes a column
• Periodical batch ETL required (no realtime)
Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
The Alternative: MDX
• Multi-Dimensional Expressions
• OLAP (Online Analytical Processing)
• Designed for Aggregation
• Web Service Protocol
• XML/A: “XML for Analysis”
• Native HANA support
• Analytic Views
• CUBE Calculation Views
Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
SELECT {
[Measures].[Actual]
, [Measures].[Planned]
} ON COLUMNS
, Descendants(
{[Dim].[Hier].[Level].Members}
, 5
, SELF_AND_BEFORE
) ON ROWS
FROM [Cube]
WHERE {[Date].[Hier].[Month].[201811]}
SELECT {
[Measures].[Actual]
, [Measures].[Planned]
} ON COLUMNS
, Descendants(
{[Dim].[Hier].[Level].Members}
, 5
, SELF_AND_BEFORE
) ON ROWS
FROM [Cube]
WHERE {[Date].[Hier].[Month].[201811]}
Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
Cube Calculation View
Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
Dimension Calculation View with Hierarchies
Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
WITH
MEMBER [Measures].[Actual YTD] AS
Aggregate(
Ytd({[Date].[Hier].CurrentMember})
, [Measures].[Actual]
)
MEMBER ...more calculated members...
SELECT ..
Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
Web Service Protocol: XML for Analysis (XML/A)
• It’s just a Web Service Protocol
• Http / Https
• SOAP Protocol (POST)
• XML used for request and response
• What can it do?
• For Building OLAP applications
• Discover: Get metadata
• Execute: run MDX Queries
• HANA
• XS Application
• Empty .xsxmla file enables XML/A
• Analytic view
• CUBE Calculation view
• Javascript Client Library
• https://github.com/rpbouman/xmla4js
• Interactive MDX Query tool
• https://github.com/rpbouman/pash
Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
XML/A: Discover and Execute
• Discover: Metadata/Rowset
• Catalogs (packages)
• Cubes (Analytic and CUBE Calc views)
• Dimensions (Attribute and DIMENSION Calc views)
• Hierarchies
• Levels (Attributes)
• Members (Attribute Values)
• Measures
• Properties (Attribute Values, Builtins)
• Execute: Queries/Dataset
• SELECT
• Axes
• FROM
• Cube (in HANA: a View)
• WHERE
• Special “slicer” axis
• Not a predicate based filter !
• Calculated Members
• Derived Measures
• Named Sets
• Custom groupings
Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
Integration: UI5 Model and Bindings
• Model:
• Provides data access
• Handles back-end requests
• Factory for Binding objects
• Web Service Protocol:
• Normally, OData
• Now, XML/A
• Bindings
• Glues components to Model
• Typically created by the Model
• Binding Types
• Property
• List
• Tree
Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
Practical Implementation
• Override JSON Model + Bindings
• XmlaModel JSONModel
• XmlaDatasetListBinding JSONListBinding
• XmlaDatasetPropertyBinding JSONPropertyBinding
• XmlaDatasetTreeBinding JSONTreeBinding
• XmlaRowsetListBinding JSONListBinding
Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
Summary
• MDX Solves a couple of hard problems
• Recursion/Aggregation problem
• The YTD problem and many more advanced aggregations
• XML/A lets you do MDX over HTTP
• HANA Supports XML/A (and MDX)
• Xmla4js is an Open Source XML/A Client in Javascript
• Extend UI5 JSON model + bindings to use Xmla4js
• Now you can do OLAP with any UI5 component through databinding
Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com

More Related Content

PDF
Micro strategy 7i
PPTX
Sap abap course content
PPTX
Tableau API
PPTX
ESRI ERUC 2014 - Easy Automation for Process Efficiencies
PPT
OfficeWriter and the Application Platform
PDF
Sap abap online training
PPT
InstantAtlas Server Workshop presentations - London 2014
PPTX
SQL Saturday Columbus 2014 Exposing SQL Data with SharePoint
Micro strategy 7i
Sap abap course content
Tableau API
ESRI ERUC 2014 - Easy Automation for Process Efficiencies
OfficeWriter and the Application Platform
Sap abap online training
InstantAtlas Server Workshop presentations - London 2014
SQL Saturday Columbus 2014 Exposing SQL Data with SharePoint

What's hot (20)

PPTX
VantagePoint CRM by CIS Demo
PPTX
2014 Workshop - InstantAtlas for ArcGIS Online product overview and the Insta...
RTF
Hana online training, online hana training , sap hana online training
PPT
PPTX
SharePoint Saturday - Chicago - 2014 - Decoding the Business Intelligence Alp...
PPTX
Dogfood 2012 - Decoding the Business Intelligence Alphabet Soup
PPTX
Demonstrating ADF in Action through screenhots - getting (re)acquainted with ...
PPTX
informatica Online Training Institute in India,USA,UK,Canada.
PPTX
Shaking hands with the developer: How IT Communications can help you build a ...
PDF
VBA Training In Bangalore
PPTX
ReportPlus: Create Dashboards with your iPad
PDF
Informatica Online Training
PPTX
What Data-Driven Websites Are and How They Work
PPT
Erpal erp with drupal
PDF
Power BI / AAS Model Optimization
PDF
Perth SharePoint User Group - Hybrid Cloud and Power BI
PPTX
European SharePoint Conference Training Week - Installing SharePoint 2013
PPTX
Project Management With SharePoint
PDF
From Excel hero to Power BI champion
PPTX
With Automated ML, is Everyone an ML Engineer?
VantagePoint CRM by CIS Demo
2014 Workshop - InstantAtlas for ArcGIS Online product overview and the Insta...
Hana online training, online hana training , sap hana online training
SharePoint Saturday - Chicago - 2014 - Decoding the Business Intelligence Alp...
Dogfood 2012 - Decoding the Business Intelligence Alphabet Soup
Demonstrating ADF in Action through screenhots - getting (re)acquainted with ...
informatica Online Training Institute in India,USA,UK,Canada.
Shaking hands with the developer: How IT Communications can help you build a ...
VBA Training In Bangalore
ReportPlus: Create Dashboards with your iPad
Informatica Online Training
What Data-Driven Websites Are and How They Work
Erpal erp with drupal
Power BI / AAS Model Optimization
Perth SharePoint User Group - Hybrid Cloud and Power BI
European SharePoint Conference Training Week - Installing SharePoint 2013
Project Management With SharePoint
From Excel hero to Power BI champion
With Automated ML, is Everyone an ML Engineer?
Ad

Similar to Beyond OData introducing the xmla model for ui5 (Roland Bouwman) (20)

PDF
With big data comes big responsibility
DOCX
Write back functionality from various dashboard tools to sap hana
PDF
5001 accessing sap_hana_with_the_semantic_layer
PDF
Learning Open Source Business Intelligence
PDF
C13,C33,A35 アプリケーション開発プラットフォームとしてのSAP HANA by Makoto Sugishita
PDF
Openobject bi
PDF
Mdx complex-queries-130019
PPT
DWO -Pertemuan 1
PDF
Data Warehousing 101(and a video)
PDF
Openobject bi
PDF
No sql now2011_review_of_adhoc_architectures
PDF
SQLDay2013_ChrisWebb_CubeDesign&PerformanceTuning
PDF
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
PDF
Why you care about
 relational algebra (even though you didn’t know it)
PDF
SSAS, MDX , Cube understanding, Browsing and Tools information
PDF
Building a semantic/metrics layer using Calcite
PPTX
In memory databases presentation
PPTX
Analysis services day1
PDF
Dare to build vertical design with relational data (Entity-Attribute-Value)
PPTX
Dmitry Chastukhin - Business Intelligence hacking – Breaking ICCube
With big data comes big responsibility
Write back functionality from various dashboard tools to sap hana
5001 accessing sap_hana_with_the_semantic_layer
Learning Open Source Business Intelligence
C13,C33,A35 アプリケーション開発プラットフォームとしてのSAP HANA by Makoto Sugishita
Openobject bi
Mdx complex-queries-130019
DWO -Pertemuan 1
Data Warehousing 101(and a video)
Openobject bi
No sql now2011_review_of_adhoc_architectures
SQLDay2013_ChrisWebb_CubeDesign&PerformanceTuning
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Why you care about
 relational algebra (even though you didn’t know it)
SSAS, MDX , Cube understanding, Browsing and Tools information
Building a semantic/metrics layer using Calcite
In memory databases presentation
Analysis services day1
Dare to build vertical design with relational data (Entity-Attribute-Value)
Dmitry Chastukhin - Business Intelligence hacking – Breaking ICCube
Ad

More from Twan van den Broek (20)

PDF
How SAP Leonardo is empowering animal wellbeing (Leon / Harmen)
PPTX
Can you keep up with SAP Analytics Cloud? (Martijn van Foeken)
PDF
SAP Data Hub – What is it, and what’s new? (Sefan Linders)
PDF
SAP HANA SQL Data Warehousing (Sefan Linders)
PDF
SAP analytics as enabler for the intelligent enterprise (Iver van de Zand)
PPTX
Integrating SAPUI5 with ArcGIS Maps (Leon van Ginneken)
PDF
SQL Data Warehousing in SAP HANA (Sefan Linders)
PDF
SAP Predictive Analytics (Nico van der Hoeven)
PDF
Blockchain for the Enterprise
PPSX
DIR - A tribute to Standards and Guidelines... (Laurens van Rijn)
PDF
Building an innovation culture - Powered by diversity
PDF
SAP Leonardo / Machine Learning (Iver van de Zand)
PDF
SAP TechEd recap (Ronald Konijnenburg / Sven van Leuken)
PDF
The importance of applying SAP patches (Joris van de Vis)
PDF
Masterclass Mendix (Jan Penninkhof / Twan van den Broek)
PDF
Masterclass Machine Learning (Ronald Kleijn)
PDF
SAP Run Live Truck - SAP Cloud Platform use cases
PDF
Recap SAP Inside Track NL (sitNL)
PDF
Welcome at SAP Inside Track NL (sitNL)
PDF
Finding ABAP
How SAP Leonardo is empowering animal wellbeing (Leon / Harmen)
Can you keep up with SAP Analytics Cloud? (Martijn van Foeken)
SAP Data Hub – What is it, and what’s new? (Sefan Linders)
SAP HANA SQL Data Warehousing (Sefan Linders)
SAP analytics as enabler for the intelligent enterprise (Iver van de Zand)
Integrating SAPUI5 with ArcGIS Maps (Leon van Ginneken)
SQL Data Warehousing in SAP HANA (Sefan Linders)
SAP Predictive Analytics (Nico van der Hoeven)
Blockchain for the Enterprise
DIR - A tribute to Standards and Guidelines... (Laurens van Rijn)
Building an innovation culture - Powered by diversity
SAP Leonardo / Machine Learning (Iver van de Zand)
SAP TechEd recap (Ronald Konijnenburg / Sven van Leuken)
The importance of applying SAP patches (Joris van de Vis)
Masterclass Mendix (Jan Penninkhof / Twan van den Broek)
Masterclass Machine Learning (Ronald Kleijn)
SAP Run Live Truck - SAP Cloud Platform use cases
Recap SAP Inside Track NL (sitNL)
Welcome at SAP Inside Track NL (sitNL)
Finding ABAP

Recently uploaded (20)

PPTX
2025 Product Deck V1.0.pptxCATALOGTCLCIA
PPTX
Belch_12e_PPT_Ch18_Accessible_university.pptx
PDF
DOC-20250806-WA0002._20250806_112011_0000.pdf
PPTX
svnfcksanfskjcsnvvjknsnvsdscnsncxasxa saccacxsax
PDF
Stem Cell Market Report | Trends, Growth & Forecast 2025-2034
PDF
Ôn tập tiếng anh trong kinh doanh nâng cao
PDF
Chapter 5_Foreign Exchange Market in .pdf
DOCX
Euro SEO Services 1st 3 General Updates.docx
PDF
Reconciliation AND MEMORANDUM RECONCILATION
PDF
Solara Labs: Empowering Health through Innovative Nutraceutical Solutions
PPTX
Dragon_Fruit_Cultivation_in Nepal ppt.pptx
PDF
Roadmap Map-digital Banking feature MB,IB,AB
PDF
pdfcoffee.com-opt-b1plus-sb-answers.pdfvi
DOCX
unit 2 cost accounting- Tender and Quotation & Reconciliation Statement
DOCX
unit 1 COST ACCOUNTING AND COST SHEET
PPTX
Lecture (1)-Introduction.pptx business communication
PDF
SIMNET Inc – 2023’s Most Trusted IT Services & Solution Provider
PDF
Outsourced Audit & Assurance in USA Why Globus Finanza is Your Trusted Choice
PPT
Data mining for business intelligence ch04 sharda
PPTX
Amazon (Business Studies) management studies
2025 Product Deck V1.0.pptxCATALOGTCLCIA
Belch_12e_PPT_Ch18_Accessible_university.pptx
DOC-20250806-WA0002._20250806_112011_0000.pdf
svnfcksanfskjcsnvvjknsnvsdscnsncxasxa saccacxsax
Stem Cell Market Report | Trends, Growth & Forecast 2025-2034
Ôn tập tiếng anh trong kinh doanh nâng cao
Chapter 5_Foreign Exchange Market in .pdf
Euro SEO Services 1st 3 General Updates.docx
Reconciliation AND MEMORANDUM RECONCILATION
Solara Labs: Empowering Health through Innovative Nutraceutical Solutions
Dragon_Fruit_Cultivation_in Nepal ppt.pptx
Roadmap Map-digital Banking feature MB,IB,AB
pdfcoffee.com-opt-b1plus-sb-answers.pdfvi
unit 2 cost accounting- Tender and Quotation & Reconciliation Statement
unit 1 COST ACCOUNTING AND COST SHEET
Lecture (1)-Introduction.pptx business communication
SIMNET Inc – 2023’s Most Trusted IT Services & Solution Provider
Outsourced Audit & Assurance in USA Why Globus Finanza is Your Trusted Choice
Data mining for business intelligence ch04 sharda
Amazon (Business Studies) management studies

Beyond OData introducing the xmla model for ui5 (Roland Bouwman)

  • 1. Beyond OData Introducing the XML/A model for UI5 Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com Roland Bouman Business Intelligence Consultant & Developer Just-BI.nl (Rijswijk) Twitter: @rolandbouman Blog: http://rpbouman.blogspot.nl
  • 2. Requirement & Environment: Cost Reporting • Base Cost Measures: • Actual • Planned • Derived Metrics: • Delta: Planned – Actual • Relative: Delta / Planned * 100% • UI: • Dropdown filter for Time/Period • Drilldown tables with Bulletcharts • UI5 • Time: • Current Period (Month) • Year to Date • Hierarchical Breakdowns: • Cost Centers • Cost Elements • Lazy loading • Backend: • HANA 1.0 • Data from BW model • Front end: UI5 • OData (.xsodata) Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
  • 4. Datamodel: BW on HANA 1.0 • Fact Table: • Amount • Cost type (planned or actual) • Keys to dimension tables • Dimension Tables • Calendar Dimension Table • Cost Center Table (Parent/Child) • Cost Element Table (Parent/Child) • Texts (Labels) Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
  • 5. Cost Hierarchy Data Model • Hierarchies • Cost Element • Cost Center • Adjacency list: • Id column (primary key) • Parent Id column (foreign key to Id) • Recursion • Non-leaf nodes • Only access to direct children • Variable Depth (Ragged) • Leaf nodes • Corresponding Fact table Rows Dimension Table Id (primary key) Parent Id (foreign key) Fact Table Dimension Table Id (foreign key) Metrics (to be aggregated) Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
  • 6. Challenge: Recursion & Aggregation with OData • Recursion • OData can handle Recursive relationships (navigation properties) • Think: Lazy loading / Tree-like navigation • Aggregation • HANA .xsodata can handle aggregation • Recursion & Aggregation:  • Aggregation of fact rows of all descendants of any given non-leaf node • It needs to not be dead slow, too Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
  • 7. Solutions for Recursive Aggregation? • All Client-side • Client caches hierarchy + data, client-side aggregation • Add a Service • Server-side logic (procedure, xsjs script) handles recursion & aggregation • HANA 1.0 has no recursive SQL constructs • Change the Data • Flatten parent/child hierarchy into a leveled hierarchy (ETL) • Each level becomes a column • Periodical batch ETL required (no realtime) Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
  • 8. The Alternative: MDX • Multi-Dimensional Expressions • OLAP (Online Analytical Processing) • Designed for Aggregation • Web Service Protocol • XML/A: “XML for Analysis” • Native HANA support • Analytic Views • CUBE Calculation Views Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com SELECT { [Measures].[Actual] , [Measures].[Planned] } ON COLUMNS , Descendants( {[Dim].[Hier].[Level].Members} , 5 , SELF_AND_BEFORE ) ON ROWS FROM [Cube] WHERE {[Date].[Hier].[Month].[201811]}
  • 9. SELECT { [Measures].[Actual] , [Measures].[Planned] } ON COLUMNS , Descendants( {[Dim].[Hier].[Level].Members} , 5 , SELF_AND_BEFORE ) ON ROWS FROM [Cube] WHERE {[Date].[Hier].[Month].[201811]} Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
  • 10. Cube Calculation View Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
  • 11. Dimension Calculation View with Hierarchies Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
  • 12. WITH MEMBER [Measures].[Actual YTD] AS Aggregate( Ytd({[Date].[Hier].CurrentMember}) , [Measures].[Actual] ) MEMBER ...more calculated members... SELECT .. Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
  • 13. Web Service Protocol: XML for Analysis (XML/A) • It’s just a Web Service Protocol • Http / Https • SOAP Protocol (POST) • XML used for request and response • What can it do? • For Building OLAP applications • Discover: Get metadata • Execute: run MDX Queries • HANA • XS Application • Empty .xsxmla file enables XML/A • Analytic view • CUBE Calculation view • Javascript Client Library • https://github.com/rpbouman/xmla4js • Interactive MDX Query tool • https://github.com/rpbouman/pash Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
  • 14. XML/A: Discover and Execute • Discover: Metadata/Rowset • Catalogs (packages) • Cubes (Analytic and CUBE Calc views) • Dimensions (Attribute and DIMENSION Calc views) • Hierarchies • Levels (Attributes) • Members (Attribute Values) • Measures • Properties (Attribute Values, Builtins) • Execute: Queries/Dataset • SELECT • Axes • FROM • Cube (in HANA: a View) • WHERE • Special “slicer” axis • Not a predicate based filter ! • Calculated Members • Derived Measures • Named Sets • Custom groupings Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
  • 15. Integration: UI5 Model and Bindings • Model: • Provides data access • Handles back-end requests • Factory for Binding objects • Web Service Protocol: • Normally, OData • Now, XML/A • Bindings • Glues components to Model • Typically created by the Model • Binding Types • Property • List • Tree Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
  • 16. Practical Implementation • Override JSON Model + Bindings • XmlaModel JSONModel • XmlaDatasetListBinding JSONListBinding • XmlaDatasetPropertyBinding JSONPropertyBinding • XmlaDatasetTreeBinding JSONTreeBinding • XmlaRowsetListBinding JSONListBinding Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com
  • 17. Summary • MDX Solves a couple of hard problems • Recursion/Aggregation problem • The YTD problem and many more advanced aggregations • XML/A lets you do MDX over HTTP • HANA Supports XML/A (and MDX) • Xmla4js is an Open Source XML/A Client in Javascript • Extend UI5 JSON model + bindings to use Xmla4js • Now you can do OLAP with any UI5 component through databinding Roland.Bouman@just-bi.nl – Roland.Bouman@gmail.com