200
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.

SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

Embed Size (px)

DESCRIPTION

Agenda: SAP HANA Development Overview SAP HANA XS Technical Services (XS) SAP HANA Studio Development Perspective Browser Based Development Tools SAP HANA Native Development Model Introducing River SUSE Technology Overview SAP PartnerEdge for Application Development Q&A

Citation preview

Page 1: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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 5: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

What is SAP HANA?

Page 6: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

SAP HANA Application

Services Architecture

Page 20: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 2013 SAP AG or an SAP affiliate company. All rights reserved. 22

Lightweight architecture

Page 21: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 2013 SAP AG or an SAP affiliate company. All rights reserved. 23

Architecture in more detail: SAP HANA XS Engine Process

Page 22: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 2013 SAP AG or an SAP affiliate company. All rights reserved. 24

End to end architecture

Page 23: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

SAP HANA Studio Development

Perspective

Page 34: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

SAP HANA Studio Development

Perspective Workflow

Page 39: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 2013 SAP AG or an SAP affiliate company. All rights reserved. 41

Create a new Eclipse Project from within SAP HANA Studio

Page 40: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 2013 SAP AG or an SAP affiliate company. All rights reserved. 43

The project is then linked to the SAP HANA Repository

Page 42: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

SAP HANA Browser Based

Development Tools

Page 52: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

SAP HANA Web-based

Development Workbench

Editor

Page 54: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

SAP HANA Web-based

Development Workbench

Catalog

Page 62: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

SAP HANA Web-based

Development Workbench

Security

Page 64: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

SAP HANA Web-based

Development Workbench

Trace

Page 66: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

SAP HANA Native Development

Model

Page 68: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

Wizard, Editor & Viewer

Page 78: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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 88: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

Debugger

Page 89: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 2013 SAP AG or an SAP affiliate company. All rights reserved. 93

Debug with input parameters

Debugger Debug Configuration

Page 92: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

SQLScript Language Features

Page 95: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

User Defined Functions(UDF)

Page 102: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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 107: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

Triggers

Page 108: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

R Language Integration

Page 110: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

Introducing SAP River

TechEd CD103, 2013

Page 129: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 2013 SAP AG or an SAP affiliate company. All rights reserved. 131

Creating an application

T1 T2 T3

Page 130: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 2013 SAP AG or an SAP affiliate company. All rights reserved. 132

Creating an application

T1 T2 T3

V1

V2

cv

Page 131: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

The SAP River Language

Page 141: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

Image: iStockPhoto, licensed

Demo: Entities

Page 144: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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 149: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

In Summary

Page 150: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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 152: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

Wrap Up

Page 153: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 2013 SAP AG or an SAP affiliate company. All rights reserved. 155

Page 154: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

Appendix: SAP HANA UI Integration

Services Overview and roadmap

Page 156: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

SAP HANA UI Integration Services

Overview

Page 160: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

SAP HANA UI Integration Services End-to-end scenario for using UI Services

Page 165: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

SAP HANA UI Integration Services

Roadmap

Page 178: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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 180: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

Summary

Roadmap

Page 181: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 2013 SAP AG or an SAP affiliate company. All rights reserved. 188

SUSE Portfolio

Page 187: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 2013 SAP AG or an SAP affiliate company. All rights reserved. 190

Key Features and Benefits

SUSE Linux Enterprise Server

Page 189: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 2013 SAP AG or an SAP affiliate company. All rights reserved. 192

SUSE Linux Enterprise Server

Includes ~ 3000 applications and libraries

Page 191: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 2013 SAP AG or an SAP affiliate company. All rights reserved. 195

SUSE Developer Resources

Page 194: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 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 199: SUSE Technical Webinar: Build HANA Apps in the Framework of the SAP and SUSE Campaign

© 2013 SAP AG or an SAP affiliate company. All rights reserved. 201

Questions & Answers

&