Building Custom Fiori Applications with Native · PDF file Building Custom Fiori Applications...
Transcript of Building Custom Fiori Applications with Native · PDF file Building Custom Fiori Applications...
www.saphana.com/startupfocus
Building Custom Fiori Applications with
Native HANA
Aron MacDonald
SAP HANA Distinguished Engineer Architect / Solution Designer
August, 2016
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 2
Agenda
Application Overview and Technical Landscape
Utilizing real-time ECC Data
Managing inbound and outbound interfaces with BODS
Building the Application Data storage layer
Using calculation views for complex application logic
Finalizing the Application UX utilizing HANA XS, OData and Fiori
Application Overview and Technical Landscape
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 4
Application Overview: Old vs New
Old Process (mix of MS Excel and Access)
New Custom Fiori Applications
Legacy Issues
Manual Effort
Data Timeliness
Data Security
Performance
SLT
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 5
Fiori Launch Pad and User Preferences
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 6
Smart Filters & Smart Tables
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 7
Detail Screen Enabling Updates
Updates
Save
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 8
Technical Landscape
SLT
SPS08 -> SPS10: Scale out 24Tb (16 x 1.5 Tb)
ECC Replication
Custom Application
/ Custom Data
Staging
HANA XS
OD
ATA
BW Extractors
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 9
Application Stats
ECC Tables Used (read only) 50
Largest ECC Table used in Joins KONV
5.5 Billion rows / 325 Gb
Custom Application Tables 60
Largest Application Table Staging of Enhanced ECC Movements
105 Million rows / 16 Gb
Calculation Views 200
Procedures 40
Fiori Apps (SAPUI5) 11
Lines of Code (SQL & Javascipt) < 12,000
Number of Users 100 (application)
to 500 (reporting)
Payback after covering Project Costs 3 Months after Go-Live
Utilizing real-time ECC Data&Managing inbound and outbound interfaces with BODS
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 11
Example: Enhanced Material Movement Views
Real-time OR Staged (controlled via reporting variable)
Staging
Real-time
Core ECC TablesMovements
MSEG
MSEGO2 (UoM)
Sales
VBAK/VBAP
Purchases
EKKO/EKPO
Sales Contracts
VBFA/VBAK / VBAP/KONV
Purchase Contracts
EKKO / EKPO
Challenge:
1-2 min Runtimes
Solution:
Custom Staging
<1 Sec response
Custom Table:
Enhanced ECC Movements
U
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 12
BODS
BODS Jobs call procedures to log events
Custom Application
/ Custom Data
Staging
Tips:
Minimize BODS
Logic
Encapsulate as
much logic in Hana
Procedures
Event Logs useful
for tracking status
in Fiori Launch Pad
Event
Logs
P
P
P
P
OD
ATA
*
*
P*
Building the Application Data storage layer&Using calculation views for complex application logic
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 14
Building the Application Data storage layer
Created a Custom Schema with 60 Custom Tables
- Master Data (sourced from Non-SAP systems)
- Master Data unique to Application
- Mapping Tables
- Data Staging tables (for longer running views)
- Transaction tables
- Event/Action Log Tables
Used ‘.hdbtable’ artifact to create [in future projects will move to CDS]
No major issues - though Primary Key & Column Sequence changes need careful attention
Tips:
Minimize Data
Staging
Don’t be afraid to
have complex
business logic
determined on the
fly in Calculation
views
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 15
Virtual Data Filtering, Mapping & Aggregation
Enhanced ECC Movements
Business Scenario
Data FiltersJ
Challenge:
1 - 15 min
Runtimes
Solution:
Custom Staging
<30 Sec response
JBusiness Mappings
J
J
J
J
….
U
Mapped Aggregation
P
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 16
Virtual Allocations
Duration (Start / End Date), Year and Monthly Values (from Sources without Dates) needed to be Allocated to Valid Dates within a Validity period by business rules, such as Daily, Weekly, Monthly or other custom logic
E.g. A monthly value of 300, might be split into 30 days of value 10
Tip:
Using Calculation
Views for
Allocations makes
unit testing much
easier than SQL
embedded within a
procedure
Date level distributions
External Sources ECC Tables
P
U
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 17
Virtual UoM Conversion, Complex Calculated Measures & Delta Processing
Tip:
Use the power of
Hana to virtualise
complex logic in
Calculation Views
Keep Procedure
logic as small as
possible
Transaction TableRow format with a base UoM
(Weight and Volume)
Sent Data
xsjs
U
Column Format
(Target UOM)
P
Delta
Difference
Calculated
UoM
Conv
Calc
BAV
Finalizing the Application UX utilizing HANA XS, OData and Fiori
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 19
High level UX
• Utilised SAP UX Team
• Used whiteboard / post-it notes & interactivity PPT
• Next project may use SAP Splash
Check out
https://www.exper
iencesplash.com
https://experience
.sap.com/fiori-
design/
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 20
Typical ODATA usage
Read: Utilised Calculation Views for Display (Binding)
Write: Tables & Exit Procedures
Tip:
Use
Calculation
Views to add
Descriptions
and Virtual
Calculations
Transaction Table
OD
ATA
P
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 21
Main SAPUI5 Issue
• On Premise Native Hana SPS10 SAPUI5 Library Version 1.28
• Smart Filter & Smart Table has some bugs resolved >= 1.36.10
Solution: FLP uses On Prem SAPUI5 ‘Smart’ Apps use Public HCP SAPUI5
1.28 1.36.10
Next Steps:
• PoC of HCP for Front End build (should unify SAPUI5 versions, improving experience)
Tip:
Create your own
template(s) and
use as basis for
building Apps
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 22
Questions?
Thank you.
Aron MacDonaldhttp://scn.sap.com/people/s0000716522/contenthttps://www.linkedin.com/pub/aron-macdonald/14/796/10