BEST BUILD OWN SAP FIORI APPS [email protected]

dinsdag november 2015 © 2014 17 NL for Business. All rights reserved.

© NL for Business 2014. All rights reserved.

1

My profile

My relation with SAP

SAP Trainer for

Founded in 2001 Certified Consultants Located in The Netherlands

SAP Mentor SAP Expert Innojam Speaker at TechEd Member of UI5 Team

UI5 GateWay/OData Fiori

My Focus on User Experience

My Focus on Integration

SAP Fiori SAP Personas Business Client

© 2014 NL for Business. All rights reserved.

Gateway Cloud Integration Process Orchestration

My Developer skills UI5 HANA ABAP

My Profile

Robert Eijpe User Experience Architect Fiori Consultant SAP Consultant since 1996

2

Type of Applications

Pixel Perfect External Facing Web Application

UI5 Web App

Fiori like Web App

SAP Specific Fiori Launchpad Web Application

Fiori Web App

Fiori Mobile App

© 2014 NL for Business. All rights reserved.

Internal Facing Standalone Web Application

Non-Fiori Apps

Device specific Mobile Application Fiori Apps

3

What are Fiori Apps?

© 2014 NL for Business. All rights reserved.

4

Standard versus Component based UI5 Application Controls

View

Controls

View

View

View Controllers

View Controllers

Controls

Fragments

Controls

View

UI5 Core

DOM

Fragments

View

View

View Controllers

View Controllers

Fiori App

Component Controller

Component Container

DOM

App Descriptor

UI5 Core

UI5 App

Fiori Launch Pad

Standard UI5 Application

Models

Models

Models

Component based UI5 Application Fiori app must be component based to run in the Fiori Launchpad

© 2014 NL for Business. All rights reserved.

5

EasyBuild Design Phases – Extended versus New

Standard available

Fit requirements

Fit requirements with extensions

Standard App © 2014 NL for Business. All rights reserved.

Extended App

New App 6

10 Golden Rules for Fiori Development by Robert Eijpe    

     

SAP Fiori apps follow the SAP Design Guidelines (GR-01) SAP Fiori Apps always exists of a UI part and OData part which must be defined in different software components (GR-02) SAP Fiori UIs are built on top of SAPUI5 framework with a restricted set of the UI5 Controls and written in AMD syntax (GR-03) It is recommended to built SAP Fiori app with SAP Web IDE, based on the new Fiori templates (GR-04) Every SAP Fiori app must built as a component and defined by a set of metadata, so it can run in a container as a standalone web app, in the Fiori Launch Pad and as a native mobile App (GR-05) SAP Fiori UI Views are always build as XML views and Extension points need to be implemented (GR-06) Always use intent-based navigation to navigate within a app and between apps (GR-07) Use only the newest UI5 OData Model (v2) to access one OData Service node of the backend (GR-08) Bounded UI5 control must be typed and for OData Models bounded with OData annotations (GR-09) Use predefined UI5 style elements and change the look & feel with Theme Designer (GR-10)

© 2014 NL for Business. All rights reserved.

7

SAP Fiori Design Guidelines

(GR-01)

SAP Fiori apps follow the SAP Design Guidelines

http://experience.sap.com/fiori-guidelines/ © 2014 NL for Business. All rights reserved.

8

(GR-01)

Fiori Applications SAP Fiori apps follow the SAP Design Guidelines

Role-based © 2014 NL for Business. All rights reserved.

Responsive

Simple

Coherent

Delightful 9

Fiori Applications

(GR-01)

SAP Fiori apps follow the SAP Design Guidelines

80/20 rule: SAPGui versus Fiori App © 2014 NL for Business. All rights reserved.

10

(GR-02)

SAP New Platform Technology

SAP Fiori Apps exists of a UI part and OData part which must be defined in different software components FIORI for (re)new business applications UI5 as uniform and open UI technology ODATA for Uniform Data Access ASP.NET Web API 2

Apache Olingo

ABAP

JAVA

JAVA

.NET

HANA ODBC

NetWeaver Gateway

XS2 ABAP

NodeJS

J2EE



DB Application logic Views

© 2014 NL for Business. All rights reserved.

XS

Procedures

datastore

11

(GR-03)

UI5 SDK

SAP Fiori UIs are built on top of SAPUI5 framework with a restricted set of the UI5 Controls in AMD syntax

UI5 Libraries

Theme

Theme Library

Control

Control Libraries

Base Control

Data Binding

Render Manager

UI

UI5 Core

Event

Resources

Device

Utils

Logger

SAP jQuery Plug-ins

jQuery

© 2014 NL for Business. All rights reserved.

12

(GR-03)

Fiori Control Library

SAP Fiori UIs are built on top of SAPUI5 framework with a restricted set of the UI5 Controls in AMD syntax SplitContainer control (sap.m)

MasterPage control (sap.m.semantic) List control (sap.m)

DetailPage control (sap.m.semantic) ObjectHeader control (sap.m)

IconTabBar control (sap.m) SimpleForm control (sap.ui.layout.form) ProgressIndicator control (sap.m) VerticalLayout control (sap.ui.layout) Table control (sap.m)

Fiori Control Library of SAPUI Explored Section © 2014 NL for Business. All rights reserved.

13

Asynchronous Module Definition Syntax for Optimized Loading of Modules

(GR-03)

SAP Fiori UIs are built on top of SAPUI5 framework with a restricted set of the UI5 Controls in AMD syntax sap.ui.define(['sap/ui/core/mvc/Controller', "sap/m/MessageToast"], function(Controller, MessageToast) { "use strict"; return Controller.extend("sap.ui5.training.controller.myViewController",{ // onInit: function(e){}, // onBeforRendering: function(e){}, // onAfterRendering: function(e){}, // onExit: function(e){}, onPress: function(oEvent){ MessageToast.show("clicked button: " + oEvent.getSource().getId()); } }); });

Controller – AMD Syntax

© 2014 NL for Business. All rights reserved.

Controller sdk < 1.28

jQuery.sap.require("sap.m.MessageToast"); sap.ui.controller("sap.ui5.training.controller.myViewControllerNoAMD", { // onInit: function(e){}, // onBeforRendering:function(e){}, // onAfterRendering:function(e){}, // onExit: function(e){}, onPress : function(oEvent){ sap.m.MessageToast.show("clicked button: " + oEvent.getSource().getId()); } }); 15

(GR-04)

SAP Web IDE App Development Tool It is recommended to built SAP Fiori app with SAP Web IDE, based on the new Fiori templates Menu bar

User name

Toolbar  Save  Create file  Create folder  Delete  Undo  Redo  Run

Search  Find in files (file name or content)

Development view

User preferences

Editor  SAPUI5 code editor

 Code completion © 2014 NL for Business. All rights reserved.

Git  Manage your development objects in your Git repository History  Tag, cherry-pick, revert Collaboration  Integration with SAP Jam  Collaborate with project members API reference  Context-sensitive  Dynamic support 17

New Fiori Freestyle Templates in SAP Web IDE

(GR-04)

It is recommended to built SAP Fiori app with SAP Web IDE, based on the new Fiori templates

State of the art UI5 freestyle applications  Worklists  Master Detail Applications Include best practices  App Descriptor  Controls that adhere to responsive design  Internationalization files  Routing for inner app navigation  App state in URL bookmarks  Local testing via Quint and OPA5 test

© 2014 NL for Business. All rights reserved.

18

(GR-05)

Fiori Apps as UI5 Component

Every SAP Fiori app must built as a component and defined by a set of metadata, so it can run in a container Fiori App

Controls

Controls

Fragments

Component Container UI5 Core

View

View

View

HTML Page

Standalone Fiori app View Controllers

View Controllers Component Container

Kapsel

app descriptor

Component Container

Component Controller

UI5 Core

UI5 Core

FLP App

Hybrid Container

Fiori Launch Pad © 2014 NL for Business. All rights reserved.

Models

Models

Models

Fiori Mobile App 19

App Descriptor

(GR-05)

Every SAP Fiori app must built as a component and defined by a set of metadata, so it can run in a container App Descriptor  Descriptor for Applications, Components, and Libraries  File called manifest.json, defined as metadata of the Component  Contains all global application settings and parameters e.g. the app ID, name, version, used data sources and SAPUI5 dependencies  Created with the application at development, delivered within the application and read-only after delivery

 Part of the Fiori Guidelines © 2014 NL for Business. All rights reserved.

sap.ui.define([ 'sap/ui/core/UIComponent' ], function(UIComponent) { "use strict"; return UIComponent.extend("samples.project.Component", { metadata: { manifest: "json" }, /** * The component is initialized by UI5 during the startup of the app and * once. The resource and application models to be set and the router to * @public * @override */ init: function() { // call the base component's init function UIComponent.prototype.init.apply(this, arguments); // put your code here }, /** * In this function, the rootView is initialized and stored. * @public * @override * @returns {sap.ui.mvc.View} the root view of the component */ createContent: function() { // call the base component's createContent function 20 var oRootView = UIComponent.prototype.createContent.apply(this, argu

Call the Component

(GR-05)

Every SAP Fiori app must built as a component and defined by a set of metadata, so it can run in a container

// get reference to the UI component in controller code var myOwnerComponent = this.getOwnerComponent(); // get Component metadata var oMetadata = this.getOwnerComponent().getMetadata(); // get Configuration var oConfig = oMetadata.getConfig(); // get entry in app descriptor var sNamespace = oMetadata.getManifestEntry("sap.app").id; © 2014 NL for Business. All rights reserved.

To accesses the component use the helper method getOwnerComponent() of the controller.

To accesses the component configuration use helper method of the component getMetdata() 21

(GR-05)

Access of Fiori Apps

Every SAP Fiori app must built as a component and defined by a set of metadata, so it can run in a container

NWBC for Fiori

Outlook planned: • Integration of SAP Fiori Apps in NWBC index page

Fiori Web

• •

Fiori Launch Pad as browser page No installation required

Fiori Client

• • 

Fiori Launch Pad as mobile app Improved performance Support iOS, Android & Windows

Fiori Mobile

• • • •

Outlook future: • SAP FLP with SAP Gui native experience • SAP FLP configuration only Remark: Windows only

© 2014 NL for Business. All rights reserved.

Outlook future: • Replacement of SAP portal



Fiori App as mobile app Native device integration Automatic Logon support Push Notifications Offline application data synchronization

User Device Support 22

(GR-06)

UI5 View Types SAP Fiori UI Views are always build as XML views and Extension points need to be implemented

View Types

Javascript

JSON

XML

HTML

Template

ViewType.JS

ViewType.JSON

ViewType.XML

ViewType.HTML

ViewType.Template

Declarative View

Fiori Apps must be built on XML views only

© 2014 NL for Business. All rights reserved.

23

Extend Fiori Apps

(GR-06)

SAP Fiori UI Views are always build as XML views and Extension points need to be implemented The wizards for adding extensions guide the user through a step-by-step process All extension options of the SAPUI5 extensibility concept are provided in the wizards:  Create extension project  Hide a control  Extend a view  Replace a view  Extend a controller  Replace a service  i18n resource text customization  Add new views to existing project

© 2014 NL for Business. All rights reserved.

24

(GR-06)

Extend Fiori Apps with Extension Points SAP Fiori UI Views are always build as XML views and Extension points need to be implemented Standard coding

Extensions only Enhanced Fiori App Component JS

Standard Fiori App XML View

Manifest .json

Resources

Controller JS Component JS

CSS

Mimes

Additional XML View Additional Controller JS

i18n texts

Additional Resources

App Catalog

Manifest.json

Loading Fiori Foundation (controls, utilities,..) SAPUI5 Mobile Library

Parent App © 2014 NL for Business. All rights reserved.

Extension App 25

Intent-based navigation

(GR-07)

Always use intent-based navigation to navigate within a app and between apps •

Intent-based navigation supports inner-app navigation and navigation between apps using the url of an application



Fiori app must supports inner-app router navigation based on routes and target configuration in the app descriptor. In this case the Fiori Launchpad can supports intent-based navigation within and between apps. © 2014 NL for Business. All rights reserved.

26

(GR-07)

Intent-based navigation in Fiori App development Always use intent-based navigation to navigate within a app and between apps  sap.m.routing.Router - SAPUI5 router class to load the pages and update the URL (change/replace hash)  Routing configuration in the app descriptor  Navigation events  Animation between pages (show, slide, fade, flip)

WorkList.view.xml

NotFound.view.xml

Object.view.xml

ObjectNotFound.view.xml

sap.m.Page

sap.m.Page

sap.m.Page

sap.m.Page

create

create

create

index.html

Browser

hash

App.view.xml

sap.m.routing. Router

Component Container

Fiori Launchpad © 2014 NL for Business. All rights reserved.

sap.m.App

add created page

change/replace

init

Fiori App

Component.js create

App Descriptor "routing" : { // The default values for every route "config" : { ... }, // Define routes and pattern "routes" : { ... }, // Define which view to load "targets" : { ... }, } }

27

(GR-08)

OData Model in SAPUI5 Use only the newest UI5 OData Model (v2) to access one OData Service node of the backend

 The OData model enables binding of control properties and aggregations to data from a remote server  The complete dataset is stored on the server and only the requested fields are transferred to the client  SAPUI5 supports multiple OData models, but the Fiori Guidelines state you should use OData V2 Model sap.ui.model.odata.v2.ODataModel  All SAPUI5 OData models are currently based on OData specification version 2.0 (with support of annotations from OData specification version 4.0)

UI5 Component

View

Server-Side Model

Controllers

Data Engine

OData specification version 2.0. See http://www.odata.org/documentation/odata-version-2-0/ © 2014 NL for Business. All rights reserved.

DB Data 29

(GR-08)

OData Simple Query Language Use only the newest UI5 OData Model (v2) to access one OData Service node of the backend

/iwfnd/USERSERVICE/UserCollection? Resource path

Service Root URI

 OData specifies a simple yet powerful query language that allows a client to request arbitrary operations to serverside datasets

 The names of all query string parameters defined by OData are prefixed with a $ character

Query options

Operation

Query Option

SQL Equivalent

Filtering

$filter

Where clause

Projecting

$select

Field selection

Sorting

$orderby

Sort

Paging

$top

Up to .. rows

$skip

-

Inlining

$expand

Innerjoin

Count

$count

Count(..)

$innercount

List of (most important) Query options

© 2014 NL for Business. All rights reserved.

30

(GR-08)

Batch Operator Use only the newest UI5 OData Model (v2) to access one OData Service node of the backend /IWFND/CATALOGSERVICE;v=2/$batch

Service Root URI

Resource path



The batch operator is used to bundle a collection of single OData requests and sent them together as one batch request call.



All single request will be handled by the OData server and all results will be combined in one batch response



The collection of single OData request will be sent in the payload of the HTTP call. This makes it possible to protect data, like query strings and header information, which is normally visible in normal OData call

© 2014 NL for Business. All rights reserved.

31

(GR-08)

UI5 OData binding behavior Use only the newest UI5 OData Model (v2) to access one OData Service node of the backend

Default v1 Auto Submit

Default v2 No batchGroupId

Grouping

Auto Submit

Batch Group Id: myGroupId_1 Batch Group Id: myGroupId_2 Deferred Batch Groups

2-way binding

Batch Group Id: myGroupId_1

ODATA SERVER

Auto Submit

Submit All Deferred Groups

Submit one Deferred Groups

Batch Group Id: myGroupId_2 © 2014 NL for Business. All rights reserved.

32

(GR-08)

OData Model Operation Modes Use only the newest UI5 OData Model (v2) to access one OData Service node of the backend

Client OperationMode

sap.ui.model.OperationMode.Client

Server OperationMode

sap.ui.model.OperationMode.Server

var oModel = new sap.ui.model.odata.v2.ODataModel({ serviceUrl: "/sap/opu/odata/iwfnd/USERSERVICE/", defaultOperationMode: sap.ui.model.OperationMode.Client });

© 2014 NL for Business. All rights reserved.

33

(GR-09)

Primitive Data Types Bounded UI5 control must be typed and for OData Models bounded with OData annotations

SAP delivers out-of-the box the following primitive types •

sap.ui.model.type.Boolean



sap.ui.model.type.Currency



sap.ui.model.type.Date



sap.ui.model.type.DateTime



sap.ui.model.type.FileSize

• • • •

sap.ui.model.type.Float sap.ui.model.type.Integer sap.ui.model.type.String sap.ui.model.type.Time

Primitive types are based on the core model types: • sap.ui.model.SimpleType • sap.ui.model.CompositeType You can create your own Data Types by extending the core model type of one of the existing Primitive Data Types © 2014 NL for Business. All rights reserved.

34

(GR-09)

Data Typing Process Every SAP Fiori app UI control binding must be typed

 Data typing is important because the internal SAPUI5 model data format doesn’t have to be the same format in the back-end system as the data format you want to present on the UI.  Data binding supports the definition of types which can be handed over when binding properties. Bound properties with a defined type will automatically be formatted when displayed on the UI, input values in UI controls are parsed and converted back to the defined type in the model. Format

01.05.2015

01-05-2015

20150501 Parse

n/a BACK-END FORMAT © 2014 NL for Business. All rights reserved.

Validate SAPUI5 MODEL FORMAT

DISPLAY FORMAT 35

(GR-09)

Data Typing Declaration and Event Handlers

SAPTECHED 2015 EMEA - Building Fiori Apps.pdf

My relation. with SAP. Founded in 2001. Certified Consultants. Located in. The Netherlands. UI5. GateWay/OData. Fiori. SAP Trainer. for. My Profile. My profile. Robert Eijpe. User Experience Architect. Fiori Consultant. SAP Consultant. since 1996. SAP Mentor. SAP Expert Innojam. Speaker at TechEd. Member of UI5 Team.

3MB Sizes 2 Downloads 163 Views

Recommend Documents

SAPTECHED 2015 EMEA - Building Fiori Apps.pdf
There was a problem previewing this document. Retrying... Download. Connect more apps... Try one of the apps below to open or edit this item. SAPTECHED ...

Solution Selling in EMEA
Dec 6, 2009 - To understand the role of Pc City's paid and owned media (website) in driving sales. • To optimise the marketing and media mix to generate greater revenue from ..... 20. Drivers of Branded search queries. In addition to driving web tr

Solution Selling in EMEA
Possibility to differentiate advertising stimuli from market to market in order to isolate the specific impact of your media campaign on in-store sales. O2S. Geo Lab.

Google Business Intern EMEA 2016/17
We offer a range of internships across EMEA and durations and start dates vary according to project and location. Our internships expose students to the ...

fiori gialli.pdf
Page 1 of 4. beagle. B. B. B. B. B. B. B. B. B. B. B. J. G. J. A. J. C. J. J. E. G. B. D. G. I. J. C. B. B. C. J. G. A. G. J. B. B. B. B. B. B. B. B. B. B. B. B. J. G. G. G. G. G. D. D. J. G. J. H. J. I. A. J. E. G. G. J. G. A. G. B. B. B. B. B. B. B

BOLD Immersion EMEA 2018 FAQs Services
Mar 19, 2018 - In addition, Google will reimburse qualifying successful applicants reasonable meals and social event expenses related to the BOLD Immersion program, subject to a cap as notified to applicants by Google. For the avoidance of doubt succ

BOLD Immersion EMEA 2018 FAQs - Services
to get a rare glimpse into the business side of the technology industry, a chance to grow your peer network, and exposure and insight ... with the Criteria by an internal panel of Google team members and the best 65 applications (as assessed by the .

201708 SRECon EMEA 2017- Monitoring Cloudflare's planet-scale ...
201708 SRECon EMEA 2017- Monitoring Cloudflare's planet-scale edge network with Prometheus.pdf. 201708 SRECon EMEA 2017- Monitoring Cloudflare's ...

201708 SRECon EMEA 2017- Monitoring Cloudflare's planet-scale ...
201708 SRECon EMEA 2017- Monitoring Cloudflare's planet-scale edge network with Prometheus.pdf. 201708 SRECon EMEA 2017- Monitoring Cloudflare's ...

Ivan Zoratti Systems Engineering Manager, EMEA
New Load Testing Utility. MyISAM Memory Option. New Process/SQL Diagnostics. 5.1. 5. SQL Mode. Triggers. Views. Precision Math. Distributed Transactions ...... Customizable rules-based monitoring and alerts. • Identifies problems before they occur.

201708 SRECon EMEA 2017- Monitoring Cloudflare's planet-scale ...
Page 1 of 76. Page 2 of 76. @mattbostock. Platform Operations. Page 2 of 76 .... 2017- Monitoring Cloudflare's planet-scale edge network with Prometheus.pdf.