Page 1
April 2014
Develop Applications on Integrated SUSE and SAP Platforms Build SAP HANA Apps in the Framework of the SAP and SUSE Campaign
Please dial-in NOW to connect to the audio: use
the dial-in telephone number in the invite that
you have received by email.
The participant code is visible in the chat window.
Page 2
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 2
Disclaimer
This presentation outlines our general product direction and should not be relied on in making a
purchase decision. This presentation is not subject to your license agreement or any other agreement
with SAP. SAP has no obligation to pursue any course of business outlined in this presentation or to
develop or release any functionality mentioned in this presentation. This presentation and SAP's
strategy and possible future developments are subject to change and may be changed by SAP at any
time for any reason without notice. This document is provided without a warranty of any kind, either
express or implied, including but not limited to, the implied warranties of merchantability, fitness for a
particular purpose, or non-infringement. SAP assumes no responsibility for errors or omissions in this
document, except if such damages were caused by SAP intentionally or grossly negligent.
Page 3
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 3
Today’s Speakers
Thomas Jung Director, SAP HANA
Product Management
Markus Guertler Architect & ISV Technical
Manager, SUSE LINUX,
Novell GmbH
Clemens Suter-
Crazzolara Platform Ecosystems,
SAP AG
Page 4
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 4
Agenda
SAP HANA Development: Overview
Platform
SAP HANA Extended Application Services (XS)
SAP HANA XS Technical Architecture
SAP HANA Studio Development Perspective
Browser Based Development Tools
SAP HANA Native Development Model
Introducing River (time permitting)
SUSE Technology Overview
Advantages for partners (as part of SAP PartnerEdge program for Application Development )
Questions & answers
Page 6
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 6
What is SAP HANA?
HW technology innovations
64 bit address space
100 GB/s data throughput
Dramatic decline in
price/performance
Multicore architecture
Massive parallel scaling with many blades
Row and column store
Compression
Partitioning
No aggregate tables
Insert only on delta
SAP SW technology innovations
Convergence of improved hardware economics and technology innovations enables SAP to deliver on its
vision of the real-time enterprise with in-memory business applications
Page 7
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 7
Columnar Storage Do More With Less (Space)
• Compression (by factors)
• Read relevant data only
• Main memory structures
• Super-efficient algorithms
• Insert only works fine
• Adding fields is easy
Column Store Row Store
Row4
Row3
Row2
Row1
Row4
Row3
Row2
Row1
DocNum
DocDate
Sold-To
ValueStatus
SalesOrg
DocNum
DocDate
Sold-To
ValueStatus
SalesOrg
Page 8
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 8
DB Layer
Code
Traditional: “Data to Code” New Model: “Code to Data”
Massive data copies creates
bottleneck
Transfer Minimum Result Set
Overview Traditional Programming Model vs. New Programming Model
Application Layer Application Layer
DB Layer
Code
Page 9
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 9
SAP HANA Extended Application Services (XS) Introduction
What: Small footprint application server / web server / basis
for an application development platform inside SAP HANA
Rationale: Enable application development and deployment
while minimizing architectural “layers”
Create apps that have an http-based UI (browser, mobile apps)
Apps run directly on SAP HANA, w/o additional external servers or
components
-> simplified system architecture = low TCO
Tight integration w/ SAP HANA DB -> best possible performance
Scope: wide range of apps
Lightweight small web-based applications
Complex enterprise business applications
Page 10
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 10
SAP HANA
Client
Development model for SAP HANA based native applications
SAP HANA extended application services offer
Easy access to SAP HANA database via HTTP-based consumption
Attractive, dynamic HTML5 UI applications via OData services or by
writing native application-specific code that runs in SAP HANA context
Powerful search services
Built-in web server to access static content stored in
SAP HANA repository
Application development following a layered approach
UI rendering completely in the client (browser, mobile apps)
Server-side procedural logic in JavaScript
All artifacts stored in the SAP HANA repository
Presentation logic
Control flow logic
Calculation logic Data
XS
Page 11
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 11
An application‘s foundation
Presentation logic
Control flow logic
Calculation logic
Data
Page 12
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 12
Performance gains with HANA
Presentation logic
Control flow logic
Calculation logic
Data
HANA
Page 13
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 13
Modern clients handle presentation logic
Presentation logic
Control flow logic
Calculation logic
Data
HANA
Client
Page 14
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 14
Push the control flow down!
Presentation logic
Control flow logic
Calculation logic
Data
Client
HANA
Page 15
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 15
Push the control flow down!
Presentation logic
Control flow logic
Calculation logic
Data
Client
HANA
Page 16
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 16
The essence of HANA Application Services (XS)!
Presentation logic
Control flow logic
Calculation logic
Data
Client
HANA
XS
Page 17
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 17
SAP HANA Extended Application Services – Overview
Front-end Technologies
http/s
HTML5 / SAPUI5
Client-side JavaScript
Control Flow Technologies OData
Server-Side JavaScript
XMLA
Data Processing Technologies SQL / SqlScript
Calculation Engine Functions
Application Function Library (AFL)
Presentation logic
Control flow logic
Data
Client: Browser or Mobile
SAP HANA
XS
Calculation logic
Page 18
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 20
vs. native SAP HANA applications
DBMS
Data
application server
app code
3-tier
client
UI rendering
Control
DB I/F
Display
rendered UI
Queries HANA
Data
XS services
Native SAP HANA
client
Control
& Queries
UI rendering
app code
Traditional 3-tier applications (Java, ABAP)
Page 19
SAP HANA Application
Services Architecture
Page 20
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 22
Lightweight architecture
Page 21
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 23
Architecture in more detail: SAP HANA XS Engine Process
Page 22
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 24
End to end architecture
Page 23
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 25
Distributed XS
Distributed Configuration
• N active servers in one cluster
• M standby server(s) in one cluster
Approach
• Operational XS Engine service can run on all nodes of the
SAP HANA system
• SAP Web Dispatcher deployed “in front of” SAP HANA
• Round-robin load balancing approach
Benefits
• Maximized concurrency for requests going through XS
Node 1
Node 2
Node 3
Node 4
Standby Node
Share
d S
tora
ge
XS
XS
XS
XS
XS
SA
P W
eb D
ispatc
her
Page 24
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 26
Distributed XS: Failover
Distributed Configuration
• N active servers in one cluster
• M standby server(s) in one cluster
Approach
• Operational XS Engine service can run on all nodes of the
SAP HANA system
• SAP Web Dispatcher deployed “in front of” SAP HANA
• Round-robin load balancing approach
• Standby node becomes active and XS on it becomes
operational
Benefits
• Redundancy provides for uninterrupted service (HA)
Node 1
Node 2
Node 3
Node 4
Standby Node
Share
d S
tora
ge
XS
XS
XS
XS
XS
SA
P W
eb D
ispatc
her
Page 25
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 27
Authentication for XS
XS Authentication Options:
- Basic Authentication
- Form-based authentication
- SSO (Single-Sign On) via SAP Logon Tickets
- SSO via X.509 (standard for Public Key Infrastructure)
- SSO via SAML 2.0 (Security Assertion Markup Language)
- SSO via SAML2 also for XHR (ajax) - NEW for SPS 07
- SSO via Kerberos - NEW for SPS 07
- Outbound SSO via SAP Assertion Tickets - NEW for SPS 07
Page 26
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 28
Job Scheduling
• HANA now contains a Job
Scheduler which can run
XSJS and SQLScript
• New Development artifact:
XSJOB
• Extension to the Admin tool
to maintain job definitions
and view job logs
Page 27
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 29
Job Scheduling – XSCRON syntax
• CRON-like syntax for
controlling job timings and
repetitions
Page 28
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 30
Content lifecycle management in SAP HANA Managing “content” in SAP HANA
SAP HANA content defined:
Not part of the core SAP HANA DB installation itself
Is delivered by SAP as part of SAP HANA optimized solutions
Is created in SAP HANA-based development projects (partner, customer)
Sometimes called “objects” or “artifacts”
Content comprises all kinds of objects, for example:
Schemas and table definitions
Attribute views, analytic views and calculation views
Procedures and privileges
SQLScript, JavaScript and HTML
Roles and permissions
Page 29
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 31
Content lifecycle management in SAP HANA The repository
The repository and lifecycle management of objects
Native feature of SAP HANA providing “backend” functionality
for content lifecycle management
Used to manage various types of design time objects (Content)
During deployment/activation the design time objects become
runtime objects (Catalog)
Key functions provided by the repository:
Object versioning
Namespace concept
Support for server-based development
SAP HANA Studio
Modeling Perspective
run time
design time
SAP HANA
content
Page 30
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 32
Delivery Unit
Packages Views, Procedures,
Privileges, etc.
Content lifecycle management in SAP HANA Transport of changes in a typical basic transport landscape
SAP HANA
Development
System
SAP HANA
QA/Test
System
SAP HANA
Productive
System
Delivery Unit
Packages Views, Procedures,
Privileges, etc.
Delivery Unit
Packages Views, Procedures,
Privileges, etc.
Page 31
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 33
SAP HANA Application Lifecycle Management (HALM)
Use cases
New SAP customers
without ABAP-footprint
SAP customers with the
need for a lightweight
transport management
Simple and easy
Native SAP HANA transport tool,
which can be used without
additional systems
Lightweight and easy-to-use tool
Easy setup and minimal
configuration effort
Constraints
No central management of
extended system landscapes
No transport synchronization
to non-HANA content
No integration in SAP
process tools (ChaRM, QGM)
Page 32
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 34
Change Tracking
• Optional mode for managing content in
a promote-to-production system
landscape (activate in HALM)
• Automatic recording of changes to a
change list
• Allows a developer (or team) to work
on a development artifact and release
the “change” only when the artifact is
ready to promote to the test system
• Provides more precise control over
which objects get transported from the
development system
Page 33
SAP HANA Studio Development
Perspective
Page 34
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 36
SAP HANA Studio Development Perspective
Goal: Provide an extensible and
integrated development environment
supporting all development artifacts
necessary for building a HANA
application, covering development,
testing, debugging, supportability and
lifecycle management. As new and
existing technologies are being integrated
into HANA, a seamless integration of
the corresponding external tools in the
HANA Development Workbench should
be possible.
Target customer: HANA Application
Developer (Internal and external
developers). Including content
development scenarios.
Page 35
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 37
SAP HANA Studio Development Perspective
• Utilizes standard Eclipse projects – HANA
Specific, General SAP Projects, and even
3rd party ones
Page 36
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 38
SAP HANA Studio Development Perspective
• Standard Eclipse Team Provider interface
for storing all objects into the SAP HANA
Repository
Page 37
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 39
SAP HANA Studio Development Perspective
• HANA Specific Editors and
Debugger Enhancements (for
example: XSJS – Server Side
JavaScript)
Page 38
SAP HANA Studio Development
Perspective Workflow
Page 39
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 41
Create a new Eclipse Project from within SAP HANA Studio
Page 40
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 42
This is a “true” Eclipse Project persisted on the developers local
machine
Page 41
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 43
The project is then linked to the SAP HANA Repository
Page 42
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 44
After linked to a Repository, specific HANA packages are added as
folders
Page 43
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 45
The SAP HANA Repository is then treated like Git or Perforce and
Eclipse checks out the content for editing
Page 44
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 46
There is also an SAP HANA Repository Browser – entire projects
can be checked out from there as well
Page 45
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 47
The Repository content is copied to the developer’s machine and
edited locally and offline
Page 46
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 48
Standard Eclipse editors as well as special SAP provided editors
are then utilized
Page 47
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 49
Upon saving in any Eclipse editor, a commit back to the SAP HANA
Repository is done automatically
Page 48
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 50
Full source merge, rebase, conflict resolution, and version
management is built in
Page 49
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 51
Changes are inactive when first committed; inactive testing is
supported as of SP7
Page 50
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 52
We also have direct interaction with other Eclipse based tools (such
as ABAP Development Tools and SAPUI5)
Page 51
SAP HANA Browser Based
Development Tools
Page 52
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 54
SAP HANA Web-based Development Workbench
• SP6 introduced two
separate browser based
IDEs
• SP7 merges both of
these back together into
a single application with
three sub-tools:
• Editor
• Catalog
• Security
Page 53
SAP HANA Web-based
Development Workbench
Editor
Page 54
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 56
SAP HANA Web-based Development Workbench
Editor
• completely browser
based IDE for
lightweight creation and
editing of development
objects and debugging
without the need for
SAP HANA Studio
• Direct URL:
/sap/hana/xs/editor/
Page 55
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 57
SAP HANA Web-based Development Workbench
Editor
• Access to the full SAP HANA
Repository in a browser
• Create, delete, and rename
packages and files
Page 56
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 58
SAP HANA Web-based Development Workbench
Editor
• Code Editors with
• Syn tax Coloring
• Code Folding
• Client side and server side
checks
• No need to check out content
– direct editing and activation
upon save
Page 57
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 59
SAP HANA Web-based Development Workbench
Editor – Application Templates
• Application creation wizards
which create the package as
well as the starting artifacts
• Both mobile and desktop
SAPUI5 templates with the
correct bootstrapping for SAP
HANA
• Automatic generation of
.xsapp and .xsaccess files
• Special UI5 templates for
injection into existing HTML
pages as well
Page 58
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 60
SAP HANA Web-based Development Workbench
Editor – Direct Test
• Test html pages, xsjs, and xsodata
services directly from the editor in
the browser
• Including special mobile device
emulation modes for testing
Page 59
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 61
SAP HANA Web-based Development Workbench
Editor – XSJS Debugging Support
• Set Breakpoints
from the editor
• Interactive server
side debugger
running in-place in
the browser
• View and change
variable values
Page 60
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 62
SAP HANA Web-based Development Workbench
Editor – Versions
• Access to version management
of objects
• Two way comparison editor
• Select any two server versions
for comparison
Page 61
SAP HANA Web-based
Development Workbench
Catalog
Page 62
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 64
SAP HANA Web-based Development Workbench
Catalog
• Also access the SAP HANA
Catalog
• View Tables, Views,
Procedures, Functions, etc
and their Content
• Direct URL:
/sap/hana/xs/catalog/
Page 63
SAP HANA Web-based
Development Workbench
Security
Page 64
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 66
SAP HANA Web-based Development Workbench
Security
• Also access User and Role
Details
• Assign roles to users and
perform basic user
administration tasks
• Direct URL:
/sap/hana/xs/security/
Page 65
SAP HANA Web-based
Development Workbench
Trace
Page 66
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 68
SAP HANA Web-based Development Workbench
Trace
• Access to the developer
centric server trace files
• Direct URL:
/sap/hana/xs/trace/
Page 67
SAP HANA Native Development
Model
Page 68
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 70
Development model – general rules
SAPUI5
UIS
XSJS XSODATA
SINA
XSXMLA
CDS/HDBDD
SQLScript
SQL
Views
AFL
HDBTable HDBRole
• UI Rendering completely in the
Client
• Server-side procedural logic in
JavaScript
• All artifacts stored in the SAP
HANA Repository
•
Page 69
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 71
Development model
Data Intensive Logic
• SQLScript / SQL
• HANA Views
• Attribute
• Analytical
• Calculation
• Application Function Library (AFL)
• Business Function Library (BFL)
• Predictive Analytics Library (PAL)
SAPUI5
UIS
XSJS XSODATA
SINA
XSXMLA
CDS/HDBDD
SQLScript
SQL
Views
AFL
HDBTable HDBRole
Page 70
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 72
Overview What?
SQLScript is
An interface for applications to access SAP HANA
Extension of ANSI Standard SQL
Language for creating stored procedures in HANA
Declarative Logic SELECT queries
Calculation Engine(CE) functions
Orchestration Logic Data Definition Language(DDL)
Data Manipulation Language(DML)
Assignment & imperative logic
Page 71
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 73
Overview Why?
Main goal is to allow the execution of data intensive calculations inside SAP HANA
Two reasons why this is required to achieve the best performance:
Eliminate data transfer between database & application tiers
Calculations need to be executed in the database layer to get the maximum benefit from SAP HANA
features such as fast column operations, query optimization and parallel execution.
Page 72
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 74
Overview Advantages
Compared to plain SQL queries, SQLScript has the following advantages:
Returns multiple results, while a SQL query returns only one result set
Complex logic can be broken down into smaller chunks of code. Enables modular programming,
reuse and a better understandability by functional abstraction. For structuring complex queries,
standard SQL only allows the definition of SQL views. However, SQL views have no parameters
SQLScript supports local variables for intermediate results with implicitly defined types. With
standard SQL, it would be required to define globally visible views even for intermediate steps
SQL Script has control logic such as if/else that is not available in SQL
Page 73
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 75
Front-end Technologies
http/s
HTML5 / SAPUI5
Client-side JavaScript
Control Flow Technologies OData
Server-Side JavaScript
XMLA
Data Processing Technologies SQL / SqlScript
Calculation Engine Functions
Application Function Library (AFL)
Presentation logic
Control flow logic
Data
Client: Browser or Mobile
SAP HANA
XS
Calculation logic
Overview Application Development Technologies
Page 74
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 76
DB Layer
Code
Traditional: “Data to Code” New Model: “Code to Data”
Massive data copies creates
bottleneck
Transfer Minimum Result Set
Overview Traditional Programming Model vs. New Programming Model
Application Layer Application Layer
DB Layer
Code
Page 75
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 77
Overview SQLScript Code Example
BEGIN
...
-- Query 1
product_ids = select "ProductId", "Category", "DescId"
from "SAP_HANA_EPM_DEMO"."sap.hana.democontent.epm.data::products"
where "Category" = 'Notebooks'
or "Category" = 'PC';
-- Query 2
product_texts = select "ProductId", "Category", "DescId", "Text"
from :product_ids as prod_ids
inner join "SAP_HANA_EPM_DEMO"."sap.hana.democontent.epm.data::texts"
as texts on prod_ids."DescId" = texts."TextId";
-- Query 3
out_notebook_count = select count(*) as cnt from
:product_texts where "Category" = 'Notebooks';
-- Query 4
out_pc_count = select count(*) as cnt from
:product_texts where "Category" = 'PC';
...
END;
Notebooks PCs
Products
Q3 Q4
Q2
Q1
Page 76
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 78
Overview Parallel Processing
SELECT statements are executed in parallel unless:
Any local scalar parameters and variables are used in the procedure
Any read/write procedures or DML/DDL operations are executed
Any imperative logic is used within the procedure, such as IF statements of FOR loops
Any SQL statements are used that are not assigned to a intermediate variable or parameter
Page 77
Wizard, Editor & Viewer
Page 78
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 80
“Stored Procedure” under “Database
Development”
Two file formats
.hdbprocedure is the new artifact type
which will be the recommended file
format moving forward.
.procedure is still supported, but has
been deprecated and eventually will be
removed.
Wizard, Editor & Viewer Stored Procedure Wizard
Page 79
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 81
Wizard, Editor & Viewer Procedure Templates
Create procedure templates(.proceduretemplate file)
Template parameters can be used as placeholders
Consumable from Stored Procedure wizard dialog,
currently only supported by .procedure file format
Page 80
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 82
Procedures based on templates inherit the template parameters
Changes to templates are reflected in the consuming procedures
Wizard, Editor & Viewer Procedure Templates
Page 81
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 83
Wizard, Editor & Viewer Editor Integration with SAP HANA Development Perspective
Source code based editor
Client side syntax checking
Code hints
Syntax highlighting
Page 82
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 84
Wizard, Editor & Viewer Procedure Code Breakdown
Schema definition – developer can define which schema in which the run-time object of the
procedure will be created
Page 83
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 85
Wizard, Editor & Viewer Procedure Code Breakdown
Package hierarchy and procedure name – contains the complete package hierarchy as well as the
name of the procedure, separated by double colon(::)
Page 84
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 86
Wizard, Editor & Viewer Procedure Code Breakdown
Input/output parameter definition – developer can define both input parameters with default values as
well as output parameters. Parameters can reference simple types, or global types defined via CDS
Page 85
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 87
Wizard, Editor & Viewer Procedure Code Breakdown
Metadata declarations: developer can set language(SQLScript/R), security(invoker/definer),
default schema and read/write access
Page 86
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 88
Wizard, Editor & Viewer Procedure Code Breakdown
Script body – developer writes the body of the script between the BEGIN and END statements
Page 87
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 89
Procedures in the catalog can now be viewed in the SQLScript editor in read-only mode.
Allows for setting/removing of breakpoints within the runtime object.
Wizard, Editor & Viewer SQLScript Procedure Viewer
Page 89
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 91
Debugger Debug Perspective
Resume/Terminate
Variable evaluation
Breakpoint management
Break on break-points
Basic step debugging
Page 90
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 92
Define procedure to be
debugged
Debug both repository
and catalog procedures
Debugger Debug Configuration
Page 91
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 93
Debug with input parameters
Debugger Debug Configuration
Page 92
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 94
Debugger External Debugging
Attach to running session
By connection ID
By application user ID
Page 93
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 95
Debugger Debug Compilation Options
Full debug compilation mode
Debug any procedure within the
call stack
Page 94
SQLScript Language Features
Page 95
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 97
SQLScript Language Features Declarative Logic
Allows the developer to declare the data selection via SELECT or CE(Calculation Engine) functions
Developer defines the what
Engine defines the how and executes accordingly
Massive parallelized
Page 96
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 98
SQLScript Language Features Imperative Logic
Allows developer to control the flow of the logic within SQLScript.
Scalar variable manipulation
DDL/DML logic
WHILE loops
Branching logic based on some conditions, for example IF/ELSE
Executed exactly as scripted, procedurally
No parallel processing
Page 97
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 99
SQLScript Language Features Arrays
Allows the developer to define and
construct arrays within SQLScript
Set elements
Return elements
Remove elements
Concatenate two arrays
Turn array into a table
Turn a column of a table into an
array
Return cardinality of an array
Page 98
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 100
SQLScript Language Features Dynamic Filtering
Allows developers to apply a dynamic
WHERE clause to SELECT statements
Both database tables and intermediate
table variables are supported
Page 99
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 101
SQLScript Language Features Exception Handling
Allows developer to handle SQL errors gracefully
For example, handle duplicate insertion and pass message to caller
Page 100
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 102
SQLScript Language Features Cursors
Allows developers to iterate over a result set and perform row-based processing and calculations.
Page 101
User Defined Functions(UDF)
Page 102
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 104
User Defined Functions Overview
Language used within the body is SQLScript, no other languages are supported
Functions are read-only, side effect free
Two types:
Table User Defined Function
Scalar User Defined Function
Page 103
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 105
New repository artifact(.hdbtablefunction) and wizard
Currently a simple text editor, more robust editor features are planned for a future support package
User Defined Functions Table UDF
Page 104
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 106
User Defined Functions Table UDF
Can have any number of input
parameters
Returns exactly one table
Table operations are allowed within
the body
Consumed in the FROM clause of a
SELECT statement
Page 105
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 107
New repository artifact(.hdbscalarfunction) and wizard
Currently a simple text editor, more robust editor features are planned for a future support package
User Defined Functions Scalar UDF
Page 106
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 108
User Defined Functions Scalar UDF
Can have any number of input
parameters
Can return multiple values
Expressions are allowed within the
body
No table operations such as
CURSOR, CE functions or Array
operations
Input parameters can not be table type
Consumed from the field list or the
WHERE clause of the SELECT
statement
Page 108
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 110
Triggers Overview
Special type of stored procedure that
automatically executes when an event
occurs in the database server, for
example upon INSERT of a table
Management of objects can only be done
via SQL Console. Support for storing the
artifacts in the repository is coming in a
future support package
Page 109
R Language Integration
Page 110
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 112
An open source software language and environment for
statistical computing and graphics with over 3000 add-on
packages. http://www.r-project.org/
The packages cover wide range topics - Cluster Analysis & Finite Mixture Models
Probability Distributions
Computational Econometrics
Empirical Finance
Statistical Genetics
Graphic Displays, Dynamic Graphics, Graphic Devices
& Visualisation
Machine Learning & Statistical Learning
Medical Image Analysis
Multivariate Statistics
Natural Language Processing
Statistics for the Social Sciences
Time Series Analysis
R Language What is Open Source R
Page 111
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 113
Join
OP
ROP
OLAP
OP
Calc. Engine
R External
Packages (Forecasting,
Parallelism,
statistics, etc.)
RClient
SAP RHANA
Package
Send data
and R script
NewDB Space OpenSource R Space
1
3
NewDB R Integration Open Source R
2 Run the R scripts
Get back the
result from R to
SAP HANA
R Language Integration with HANA Database
Page 112
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 114
Development model
Repository Representation
of Catalog Objects
• Schemas: HDBSchema
• Tables: HDBTable
• Views: HDBView
• Structures: HDBStructure
• Sequences: HDBSequence
• Roles: HDBRole
SAPUI5
UIS
XSJS XSODATA
SINA
XSXMLA
CDS/HDBDD
SQLScript
SQL
Views
AFL
HDBTable HDBRole
Page 113
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 115
Development model
CDS – Core Data Services
• Data Definition Language
• Query Language
• Expression Language
SAPUI5
UIS
XSJS XSODATA
SINA
XSXMLA
CDS/HDBDD
SQLScript
SQL
Views
AFL
HDBTable HDBRole
Page 114
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 116
CDS/HDBDD Syntax Changes - Associations
• Associations define
relationships between
Entities (tables)
• Not yet integrated into the
database/SQL but can be
referenced when defining
views within the same CDS
object
Page 115
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 117
CDS/HDBDD Syntax Changes - Views
• CDS syntax expands to
include the definition of
views
• Views can utilize the defined
associations between
entities
Page 116
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 118
CDS/HDBDD Graphical Editor
• Added graphical
representation of the
HDBDD Entities and their
associations
• Graphical mode is ready
only. All changes made to
the source code editor
• Navigation into the source
editor from the graphical
display
Page 117
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 119
Development model
XSODATA
• Low coding OData REST
service generation framework
• based upon existing tables and
views
• Create/Update/Deletion
operations support added in
SPS 06
SAPUI5
UIS
XSJS XSODATA
SINA
XSXMLA
CDS/HDBDD
SQLScript
SQL
Views
AFL
HDBTable HDBRole
Page 118
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 120
OData JavaScript Exits – New in SPS 07
• Processing exits can reference xsjslib
files and specific JavaScript functions
• The database connection and
temporary tables with the before and
after values are passed to this
function
• Particularly useful for server-side
validations (but open for other use
cases too)
Page 119
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 121
Development model
Server Side JavaScript
(XSJS)
• Light weight procedural logic
• Openness
• Reuse
• One Language – Client and
Server Side
• Widespread Knowledge
SAPUI5
UIS
XSJS XSODATA
SINA
XSXMLA
CDS/HDBDD
SQLScript
SQL
Views
AFL
HDBTable HDBRole
Page 120
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 122
SAPUI5
• Enterprise-Ready HTML5 Rendering
Library
• Completely client-side UI
• Open and flexible
• Web development skills (HTML, CSS3,
JavaScript)
• Extensibility and Theming
• 3rd Party JavaScript Integration
• Targets Multiple Devices
• Smartphone, Table, Desktop
Page 121
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 123
Introduction Demand and requirement
Growing demand for
business insight everywhere on any device
business UIs following known End User Paradigms
applications with native look & feel
high client side interactivity and performance
seemless integration of modern web standards and functionality (Social media, web 2.0, …)
Page 122
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 124
Introduction HTML5 definition versus common understanding
The official definition of HTML5
is a markup language for structuring and presenting content for the World
Wide Web, …. It is the fifth revision of the HTML standard (created in 1990
and standardized as HTML4 as of 1997)
The commonly used definition
Integrated Multimedia support
Graphics and Charts (Canvas / SVG)
• New JavaScript APIs (e.g. Web SQL, Web Storage, Web Workers, …)
ARIA (accessibility)
• OpenAJAX (interoperability)
• JIT JavaScript compilation
• CSS3
Page 123
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 125
Key capabilities Features and benefits
Eclipse-Based Designtime
Enterprise Readiness
Well known and easy to learn Timeless SAP Data Consumption
Great Productivity
Unmatched Extensibility
Powerful Theming & Branding
Any Screen on Any Device
Cutting-Edge Controls
Based on STANDARDS Foster INNOVATION Delight USERS
Openess & Flexibility Fast Release Cycles Efficiency & Performance
Page 124
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 126
Key capabilities Features and benefits
Runs on Various SAP and Non-SAP Platforms
SAP HANA XS
SAP NetWeaver AS ABAP
Open Source Platforms
SAP NetWeaver Cloud
SAP NetWeaver AS Java Sybase Unwired Platform
Built with Leading Web Technologies
jQuery CSS3 OData LESS D3.js ARIA OpenAJAX HTML5
Page 125
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 127
Key capabilities Development environment
Homogeneous Set of Eclipse Tools and Editors
Small learning curve for web developer
UI Screen & Application development
HTML5 templates support
Shipped via SAP release train for Eclipse (SRTE)
NWDS support
Outlook:
− WYSIWYG Design of HTML5 Applications
− Web based IDE
Page 126
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 128
Architecture overview SAPUI5 components
Controls
jQuery.UI
SAPUI5
Libraries
SAPUI5
Core
jQuery
(Static) Web Server
SAP jQuery Plug-ins
Event Resources Device Logger Utils
UI
Data
Binding
Control
Base
Render
Manager
Themes Mobile Desktop
Mobile Desktop
Resource Handler (optional)
Optional server component
Core JS Framework including jQuery
Extension libraries
– Controls
– Themes
“Helper” assets like e.g.
– Less
– Code minimizer jQuery Mobile
Page 127
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 129
The SAP HANA repository
• Object management, versioning and transport
• Software component delivery and patching
• Built-in support for translatable texts
• Support for server based development
Page 128
Introducing SAP River
TechEd CD103, 2013
Page 129
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 131
Creating an application
T1 T2 T3
Page 130
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 132
Creating an application
T1 T2 T3
V1
V2
cv
Page 131
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 133
Creating an application
T1 T2 T3
V1
V2
data
model
(DB)
cv
sp
trigger
Page 132
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 134
business
logic (MVC)
Creating an application
T1 T2 T3
V1
V2
data
model
(DB)
cv
sp
control
trigger
Page 133
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 135
business
logic (MVC)
Creating an application
T1 T2 T3
V1
V2
data
model
(DB)
cv
sp
control
trigger
access control (RBAC)
Page 134
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 136
business
logic (MVC)
Creating an application
data model
T1 T2 T3
V1
V2
data
model
(DB)
cv
sp
control
trigger
SQL over xDBC
access control (RBAC)
Page 135
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 137
business
logic (MVC)
Creating an application
data model
T1 T2 T3
V1
V2
data
model
(DB)
cv
sp
control
view
trigger
OData over HTTP
SQL over xDBC
access control (RBAC)
Page 136
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 138
business
logic (MVC)
Creating an application
data model
T1 T2 T3
V1
V2
data
model
(DB)
app
mob
app
cv
sp
control
view
trigger
client
OData over HTTP
SQL over xDBC
access control (RBAC)
Page 137
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 139
Creating an application, using SAP River
T1 T2 T3
V1
V2 data model
River
cv
sp
business
logic
trigger
app
mob
app
client
OData over HTTP
access control
Fiori, UI5
Page 138
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 140
SAP River
• A development environment for rapidly building complete SAP HANA native applications
– Professional Developers (initial focus)
– Casual Developers
Integrated program specification of the data model, business code and access control
enables accelerated development
River interoperates and cross-compiles into native HANA objects
(tables, views, procedures …)
The data model only exists in the data-base,
no ODBC-like connection, data copying or ORM
Page 139
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 141
HANA XS development model
1. Develop & Share
2. Activate & Test
3. Deploy
HANA DB
activate
Activation
DB objects
SScript
OData
Auth
XSJS
roles
River
compiler
stored
procedures
tables
views
package & deploy
studio River Editor
(on-premise)
browser River web
Editor
(Cloud)
browser
Studio
Repository
.rdl
business app
developers
.rdl
workspace,
save
HANA based development
Object management & versioning
Delivery and patching
Page 140
The SAP River Language
Page 141
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 143
Demo scenario: "River Airlines"
River Airlines Reservation System
List all flights
Book a seat
…
Implementation
Flight
flight id, from/to,
list of seats
Passenger
passenger details,
flight & seat reservation
Seat
status
City
Page 142
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 144
Entities and associations: the data model
entity Flight { key element flightId: String(8); element flightNum: String (3); element cityFrom: association to City; element cityTo: association to City; element depDate: LocalDate; element depTime: LocalTime; element flightSeats: association[0..*] to Seat via backlink flight; } entity Seat { key element flight: association to Flight; element id: SeatNum; element isExitRow: Boolean default false; element Status: enum {free; reserved;}; }
Primitive types,
enumerations,
structured types
keys
Associations
Default and
calculated values
Use "E/R modeling" to define your data model
– Entities correspond to database tables
– Associations describe relations between tables
Page 143
Image: iStockPhoto, licensed
Demo: Entities
Page 144
146 © 2013 SAP AG or an SAP affiliate company. All rights reserved.
https://3im.asia.sap-river.com/river/
@OData application MyFirstRiverApp {
// ----------------------------------------------- Data model
// Flights travel between cities and have seats
// Passengers book seats on flights
entity Flight {
key flightId: String(8);
flightNum: String(3);
opened: Boolean default false;
depCity: association to City;
arrCity: association to City;
depDate: UTCTimestamp;
depTime: LocalTime;
planeCode: String(10);
seatList: association[0..*] to Seat via backlink flight;
}
entity Seat {
flight: association to Flight;
rowNum: Integer;
seatType: SeatType;
seatLetter: String(1);
isExitRow: Boolean default false;
seatStatus: SeatStatus;
}
entity Passenger {
flight: association to Flight;
passengerName: String(35);
passengermail: String(35);
assignedSeat: association to Seat;
}
entity City {
cityCode: String(3);
cityName: String(35);
}
type SeatType: String(6) enum {
window = 'Window';
middle = 'Middle';
aisle = 'Aisle';
}
type SeatStatus: String (15) enum { free; reserved; };
} // riverflights
Page 145
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 147
Actions: the business logic
entity Seat { flight: Association to Flight; seatNum: SeatNum; isExitRow: Boolean default false; seatStatus: SeatStatus; } entity Flight { … flightSeats: Association[0..*] to Seat via backlink flight; action GetEmptySeats() : Seat [] { return select * from this.flightSeats where Seat.seatStatus = SeatStatus.free; } }
this
Actions describe the application's business logic
– Local variables (scalar, streams)
– Control statements (if, foreach, apply…)
– Integrated SQL queries
Page 146
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 148
Extended queries
entity Seat { flight: Association to Flight; seatNum: SeatNum; isExitRow: Boolean default false; seatStatus: SeatStatus; } entity Flight { … flightSeats: Association[0..*] to Seat via backlink flight; action GetEmptySeats() : Seat [] { return select * from this.flightSeats where Seat.Status = SeatStatus.free; } }
– Use entity associations naturally in queries:
extending SQL!
=
__temp16 = select T1. … from Flights as T0
inner join "flights.Seat" as T1
on (T0."flightId" = "T0:flightSeats"."flight.flightId")
where "FlightId" = 12345;
__retval__ = select T2. … from :__temp16 as T2 where T2."seatStatus" = 'free';
__FlightId Status
FlightId SeatNum
id
Flight
temp16
Seat
Page 147
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 149
Access control
role Dispatcher; entity Flight { key flightId: String(8); flightNum: String (3); cityFrom: Association to City; cityTo: Association to City; depDate: LocalDate; depTime: LocalTime; flightSeats : Association[0..*] to Seat via backlink flight; } action OpenNewFlight() accessible by Dispatcher { … } entity Seat { …… action save() accessible by Flight; …
Define roles
CRUD and call access privileges
Assign run-time users to roles
Page 148
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 150
Interoperability
entity employee {
action is_legal_SAP_email(hdr: String): Boolean as HANAJS {%
var re = /^\S+@sap.(com|corp)$/;
return re.test(v_hdr);
%}
}
entity Company as alias to sap.hana.catalog.ExtTable.T001;
view Company as SELECT FROM sap.hana.catalog.ExtTable.T001 {
BUKRS as companyCode, BUTXT as companyName
}
let StockQuotes: StockQuote[] = sap.hana.repository.XSStock.fetcher.getQuotes('http://www.nasdaq.com/quotes');
breakouts: inline
JavaScript or
SQlScript
alias
abstraction view
Call XS JS directly
Page 150
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 152
The SAP HANA Programming Model
1. SAP UI5-based design language and tools for clients
2. OData: universal, standard web-based data interface
3. SAP River: new XS native application development
environment: use a single integrated language for data
modeling, business logic and access control
oEliminates data model duplication – no ORM
o Interoperates with and compiles into other SAP HANA
native development objects for ultimate flexibility / reuse
mobile
Entity
Data
Model
HANA
SAP River
browsers client apps
OData
Page 151
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 153
More About River
SAP River is part of SAP HANA SPS7
To learn more, or to participate in the
SAP River Early Adoption Program:
Please contact [email protected]
Check out SAP River at http://SAP-River.com
Thank you!
Page 153
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 155
Page 154
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 156
Further Information
SAP Education and Certification Opportunities
HANA Academy
openSAP Course
Watch SAP TechEd Online
www.sapteched.com/online
SAP Public Web
SAP HANA
SAP HANA Developer Center
SAP HANA Developer Online Help
Page 155
Appendix: SAP HANA UI Integration
Services Overview and roadmap
Page 156
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 158
Agenda
SAP HANA UI Integration Services
Using SAP HANA UI Integration Services
Roadmap
Summary
Page 157
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 159
Trends and expectations in the market
User Experience
Demand for attractive user experience
Responsive design and high interaction
High user productivity
Real-time access to critical information
Analytical applications
Web and native applications on any device
Global trends
Cloud
Mobile
Social
Information (big data)
Development
Emergence of SAP HANA platform for in-
memory, high-performance applications
Agility, fast innovation cycles
Developer efficiency and reduced TCD
Consistency across applications
Open standards and open source
Page 158
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 160
Business perspective Addressing the needs of various business roles
Launch sites and overview dashboards with analytics or business applications
to quickly analyze business data in a central, personalized work environment
Drill down into details if needed
Structure business content and make applications, reports and information
available to end users based on their business role
Enrich standalone business applications with contextual information & services
Efficiently develop high-performance, interactive applications based on SAP
HANA leveraging core services
End user
Designer
Developer
Use &
personalize
Configure &
enhance
Develop
Page 159
SAP HANA UI Integration Services
Overview
Page 160
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 162
SAP HANA UI Integration Services
Value Proposition
With SAP HANA UI Integration Services, developers and designers can easily create and design application sites
based on HANA applications through efficient development using standardized services and consistent UI
patterns to support end-to-end business scenarios with harmonized user experience across applications.
Provides end users a state-of-the-art user experience and
access to seamlessly integrated HANA native applications
Enables designers to easily organize applications and
widgets into sites via intuitive design environment
Gives developers a simple way to use standardized services
for creating application sites and integrating widgets within
their familiar SAP HANA studio environment
Page 161
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 163
Benefits
Consistent user interface and state-of-the-art user experience
Unified access point to assigned sites and applications
Options to personalize preferences
Quickly compose and configure application sites via site designer
Aligned user experience by using same paradigms for widget configuration
Allow easy extensibility of custom-build or partner applications
Simple way to use standardized services as part of HANA native (XS) development
environment for creating well-performing, two-tier applications
Easily build and reuse HTML5-based applications using widgets
Design the application UI with the design environment embedded in SAP HANA studio
Create and manage all artifacts directly from SAP HANA studio and repository
Allow the business developer to focus on the business apps
End user
Developer
Designer
Page 162
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 164
SAP HANA UI Integration Services - overview
Sites and page building: state-of-the-art design environment of
for managing sites, page navigation, layout and content
Property persistence: widget can define properties that are
persisted via customization
Personalization: persistency of widget properties on user level
Publish-Subscribe: eventing mechanism allowing data
interchange between widgets (mashups)
Context: properties can be reflected in the URL allowing
bookmarking and sharing
OpenSocial: integration of OpenSocial-compliant widgets SAP HANA Platform
UI Integration Services
Sites &
navigation Properties
Personali-
zation
Eventing Context Widget
catalog
Detailed information about the UI services and APIs are described in the “SAP HANA Developer Guide” (http://help.sap.com/hana_platform)
Page 163
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 165
End user perspective Quick access to interactive application sites
Native HANA
application
wrapped as
widget
Application site
with interactive
widgets
Full flexible
page layout
Flexible
navigation
based on the
user’s roles
Page 164
SAP HANA UI Integration Services End-to-end scenario for using UI Services
Page 165
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 167
Creating a native SAP HANA (XS) application and application site Development process overview
Developer Designer End User
Develop and enrich
native applications
leveraging UI services
Create application site
in HANA studio with full
support of the lifecycle
Adjust application site
provided by a developer
Change site layout, add
widgets and configure
properties
Optimize the site to
match end user needs
Assign end users who
are allowed to access
the site
Use application site
Personalize the site
Page 166
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 168
SAP HANA native applications development flow
Detailed information for developers is available in the “SAP HANA Developer Guide” via http://help.sap.com/hana_platform
• DB tables
• Analytical objects
• Data restriction
1. Define data artifacts
• Control flow logic
• Data services
• Calculation logic
2. Implement business logic • Shell
• Navigation
• Theming
• …
3. Implement user interface
Page 167
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 169
Development environment
SAP HANA UI Integration Services provide tools
and client-side APIs for development of widgets
and integration into application sites:
UI integration services as dedicated delivery unit
SAP Hana repository plug-ins
Wizards for SAP HANA studio
How can developers integrate an existing HANA
application as widget into an application site?
1) Wrap the application as an OpenSocial component
2) Use wizard to turn it into a widget
3) Create an application site object
4) Open the application site in the design environment
and add a widget
Page 168
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 170
Developer perspective Integrated development environment in SAP HANA studio
Creation wizard for
application sites
and widgets
Application site
Widget
Editor for using UI
services API in
your code
Page 169
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 171
Designer perspective Intuitive design environment for managing application sites
Web-based editor for creating and organizing application sites and content
Widget catalog
Standalone
native
application
wrapped as
widget
Application site
Full flexible page
layout
Manage site
layout
Manage
navigation
structure
Manage site
properties
Adding widgets
to the site
Page 170
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 172
Step-by-step
Begin the UI implementation with a UX wireframe describing the entire application and site structure
Should include all required screens and the entire interaction flow
Define UX mockup Put it all together
and launch!
Design complete
application site
Import or develop
widgets
Identify UI
components
Page 171
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 173
Step-by-step
Break down the mockup to identify distinct UI components (building blocks)
Can either be simple controls or more complex elements
Different components should be loosely coupled
Define UX mockup Put it all together
and launch!
Design complete
application site
Import or develop
widgets
Identify UI
components
Search box widget
Table Widget
Details Widget Pie Chart
Widget
Navigation Bar (Shell) Navigation Bar (Shell)
Exact Parameter Selector Widget
Bar Chart Widget
Page 172
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 174
Step-by-step
Build UI components as widgets directly from the HANA native IDE (HANA studio)
Use third party widgets for selected components
Define widget customizable properties to allow optimal flexibility and reusability
Define widget personalizable properties to allow end users to persist preferences
Define events widgets can publish or subscribe to allowing widget communication
Define application context attributes reflected in the URL
Define UX mockup Put it all together
and launch!
Design complete
application site
Import or develop
widgets
Identify UI
components
Page 173
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 175
Step-by-step
Define UX mockup Put it all together
and launch!
Design complete
application site
Import or develop
widgets
Identify UI
components
Table Widget
Details Widget
Search box widget
Pie Chart
Widget
Exact Parameter Selector Widget
Bar Chart Widget
Personalizable
attributes
Context
attributes in URL
Widget
interaction
3rd party widget
Widget
interaction
Customizable
widget
properties
Page 174
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 176
Step-by-step
Create the application site directly from SAP HANA studio as the application shell
Edit the application site using the design environment
Add, rename, reorder and manipulate sites to define the application site hierarchy
Add widgets to pages and customize them
Reposition and resize widgets and refine the layout to reach a pixel perfect experience
Define UX mockup Put it all together
and launch!
Design complete
application site
Import or develop
widgets
Identify UI
components
Page 175
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 177
Step-by-step
Define UX mockup Put it all together
and launch!
Design complete
application site
Import or develop
widgets
Identify UI
components
Adjust site
hierarchy and
manage pages
Add widgets from
gallery
Pixel perfect layout
definition
Customize widgets
(width, properties)
Page 176
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 178
Step-by-step
Refine and iterate as needed
Activate the application site from SAP HANA studio
Provide the link to your end users to access the site
Define UX mockup Put it all together
and launch!
Design complete
application site
Import or develop
widgets
Identify UI
components
Page 177
SAP HANA UI Integration Services
Roadmap
Page 178
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 180
Planned Innovations Today Future Direction
SAP HANA UI Integration Services Roadmap
End user
Easy access to and navigation
between (native) applications
Designer
Embedded WYSIWYG design
environment to organize application
sites and widgets
Manage site layout, hierarchy and
properties
Developer
Integrated development
environment in SAP HANA studio
Wizards for creating artifacts such
as application sites and widgets
Public APIs for consistent UIs
Core Services
Additional services supporting
developer scenarios, e.g.
navigation, branding, layout
personalization in the shell
Shell
Support of additional shell(s)
Support of catalogs from different
sources
Widgets
Re-useable templates for widgets
to support common requirements
e.g. responsive tables
Future enhancements
Extension of the developer story to
an integration point for end users
on SAP HANA stack
Integration of SAP HANA and non-
HANA applications
Service integration with other SAP
solutions, e.g. SAP JAM
Usage of smart, contextual services
to provide the right content in the
right context to end users
This is the current state of planning and may be changed by SAP at any time.
This presentation and SAP‘s strategy and possible future developments are subject to change and may be changed by SAP at any time for any reason without notice. This document is provided without a warranty of any kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement
SAP HANA SP6
Page 179
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 181
SAP HANA UI Integration Services
What’s new in SAP HANA SPS7
Enhanced Catalog Services allowing to retrieve
non-widget content
Widget Directory leveraging the new catalog
service enhancements
New permissions mechanism on Application Sites
Introduction of a new navigation service
Supporting the Golden Reflection Theme and the
new Blue Crystal Theme
Demo content available as part of the SHINE
demo package
Page 181
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 183
Summary
With SAP HANA UI Integration Services, developers and designers can easily create and design application
sites based on HANA applications through efficient development using standardized services and consistent
UI patterns to support end-to-end business scenarios with harmonized user experience across applications.
SAP HANA XS
UI Integration Services
Page
building Properties
Personali-
zation
Eventing Context Widget
catalog
Provides end users a state-of-the-art user experience and
access to seamlessly integrated HANA native applications
Enables designers to easily organize applications and
widgets into sites via intuitive design environment
Gives developers a simple way to use standardized services
for creating application sites and integrating widgets within
their familiar SAP HANA studio environment
Page 182
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 184
5 easy steps to quickly get started
1) Watch the tutorial videos on SAP HANA Academy
2) Download SAP HANA developer edition
3) Join OpenSAP course to learn more and run the exercises
4) Learn more by reading the comprehensive developer guide and latest enhancements
5) Share your feedback with the SAP HANA developer community
Page 183
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 185
Further Information
Overview
Experience SAP HANA http://www.saphana.com/welcome
SAP HANA In Memory http://scn.sap.com/community/hana-in-memory
HANA Startup Focus Program http://www.experiencesaphana.com/docs/DOC-1781
Twitter @SapDevs, #sapdevcenter
Developer Information
SAP HANA Developer Center http://scn.sap.com/community/developer-center/hana and
http://developers.sap.com/hana
SAP HANA Help Center http://http://help.sap.com/hana_platform (Release Notes, Developer Guide)
SAP HANA Academy http://academy.saphana.com / http://www.saphana.com/docs/DOC-3123
SAP HANA Developer Edition http://scn.sap.com/docs/DOC-31722
OpenSAP courses https://open.sap.com
Page 184
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 186
SAP and SUSE
15 successful years of co-innovation
asdf
The recommended and supported OS
for SAP HANA
Reliability Scalability Performance Security
Page 185
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 187
Agenda
SAP HANA Development: Overview
Platform
SAP HANA Extended Application Services (XS)
SAP HANA XS Technical Architecture
SAP HANA Studio Development Perspective
Browser Based Development Tools
SAP HANA Native Development Model
Introducing River (time permitting)
SUSE Technology Overview
Advantages for partners (as part of SAP PartnerEdge program for Application Development )
Questions & answers
Page 186
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 188
SUSE Portfolio
Page 187
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 189
SUSE Linux Enterprise Server
What Do You Need to Deliver IT as a Service?
Page 188
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 190
Key Features and Benefits
SUSE Linux Enterprise Server
Page 189
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 191
Large Ecosystem, More Choices
SUSE Linux Enterprise Server
Available on Five Different Architectures
Intel64/AMD64, IA-32, IBM POWER, IBM System z and Itanium
More Applications, More Hardware
11,400+ ISV applications
13,500+ hardware devices certified and supported
Most Up-to-date Drivers and Comprehensive Tools
The SUSE SolidDriver Program: deploy necessary third-party kernel drivers with confidence
SDK: IDE and popular programming languages
Resource:
www.suse.com/susepsc/home
www.suse.com/yessearch/search.jsp
http://drivers.suse.com
Page 190
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 192
SUSE Linux Enterprise Server
Includes ~ 3000 applications and libraries
Page 191
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 193
Optimized Linux for SAP
SUSE Linux Enterprise Server for SAP Applications
Page Cache Limit
Clam SAP 18 Months SP Overlap
SAP Installation Wizard
High Availability Extension
SUSE Linux Enterprise Server
SAP specific update channel
Priority Support for SAP
Priority Support for SAP
Page 192
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 194
Join PartnerNet Program (free)
Gain free access to
sales and technical training
access to software for testing, demonstrations, evaluations, etc.
inclusion in the Partner Locator
Complete the online application
www.partnernetprogram.com
Click “Join PartnerNet”
Please note: if you do not have a login account you will need to create one and then complete the application
Enter “SAP” in promotion field on the application
PartnerNet Help Desk available to assist with questions
https://www.partnernetprogram.com/helpdesk.html
Page 193
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 195
SUSE Developer Resources
Page 194
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 196
Agenda
SAP HANA Development: Overview
Platform
SAP HANA Extended Application Services (XS)
SAP HANA XS Technical Architecture
SAP HANA Studio Development Perspective
Browser Based Development Tools
SAP HANA Native Development Model
Introducing River (time permitting)
SUSE Technology Overview
Advantages for partners (as part of SAP PartnerEdge program for Application Development )
Questions & answers
Page 195
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 197
Investment
First pack*: €2500 p.a.
Single, global eContract
Set app price to bundle with runtime licenses**
Benefits
25 developer licenses, including enablement
Market your platform applications: SAP Store
Six Innovation Packs: SAP HANA, SAP HANA Cloud,
Mobile, Business Intelligence, SAP Business One, SAP
Business Suite
Partners
New and existing
All companies (SI, VAR, OEM, ISV, …) interested in
creating and selling business applications utilizing SAP’s
market leading platforms
A New Way to Partner With SAP The SAP PartnerEdge Program for Application Development
All information:
www.sapadpc.com
*Each additional pack: €500. SAP HANA Cloud : 3500€/1500€ ** for select Innovation Packs
Page 196
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 198
Announcement 2014 SAP PartnerEdge Program for Application
Development Challenges
How can you participate? Publish an application on the SAP Store between April 1st and August 31st and register through
either of these three links: SAP HANA, SAP HANA Cloud or Mobile*
Three Challenge Categories
SAP HANA
Mobile
SAP HANA Cloud
What can you win? Join an Award Session to receive your Finalist Trophy. Have your app publicized through SAP‘s
social media channels, SAP Store, newsletters, videos & press releases and/or reference slides. Winners and finalists will
be considered for the coveted SAP Pinnacle Award and will benefit from demand-generation activities.
2013 Trophies 2012 Award Session at SapphireNow
Clemens
Page 197
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 199
More SAP and SUSE Technical Trainings
Register or access the recordings HERE
Page 198
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 200
Call to Action
Familiarize yourself with the SAP PartnerEdge
program for Application Development and sign up
Learn about SUSE solutions for SAP
(www.suse.com/sap) and PartnerNet program for
SUSE partners
Join the Campaign Jam Group HERE
Page 199
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 201
Questions & Answers
&
Page 200
© 2013 SAP AG or an SAP affiliate company. All rights reserved. 202
Call to Action
Familiarize yourself with the SAP PartnerEdge
program for Application Development and sign up
Learn about SUSE solutions for SAP
(www.suse.com/sap) and PartnerNet program for
SUSE partners
Join the Campaign Jam Group HERE