More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via...
Transcript of More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via...
![Page 1: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/1.jpg)
![Page 2: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/2.jpg)
M O R E T H A N C O D E
![Page 3: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/3.jpg)
P R O F I L E C O N T A C T
BridgingIT GmbH | UI5Con 2019 3
Me
• Fiori
• Cloud
• Portal
• Mobile
• Architect & Developer
• Twitter: @tobiashofmann
• E-Mail: [email protected]
Tobias Hofmann
Senior Consultant
![Page 4: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/4.jpg)
BridgingIT GmbH | UI5Con 2019
bridgingIT
4
nah unabhängig nachhaltig
Seit 2008Gründung der BridgingIT GmbH Anfang 2008 als IT-Beratungsunternehmen
Über 520 MitarbeiterKundennähe durch ausgeprägten regionalen Fokus. Standorte: Mannheim, Karlsruhe, Frankfurt, Stuttgart, Köln, München, Zug (CH), Nürnberg und Berlin
ErfolgUnabhängigkeit und Stabilität durch Eigen-finanzierung und durchgängigen wirtschaftlichen Erfolg
CraftingITGründung der Tochter CraftingIT GmbH Anfang 2014 als IT-Service Unternehmen in Magdeburg
BeratungspartnerNeutral, ohne Produkt- oder Vertriebsbindung
NetzwerkGut ausgebautes Netzwerk aus Applikations- und Technologiepartnern
Preis-/LeistungAttraktives Preis-/Leistungsverhältnis durch geringen Overhead, komfortable Mitarbeiter-Self-Services und konsequentes Outsourcing bei Support Prozessen
QualitätFokus auf Qualität und Nachhaltigkeit durch hohe Beteiligung der Mitarbeiter an der Unternehmensentwicklung
![Page 5: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/5.jpg)
Wir übernehmen Verantwortungaufmerksam – positiv – zeitgemäß
BridgingIT GmbH | UI5Con 2019 5
Nachhaltige KundenbindungProdukt Lebenszyklus
QualifizierungCoaching und Mentoring
Full Service AnspruchInnovationsmanagement
Im Projekt
In der Zusammenarbeit
Für die Qualität
Im Portfolio
„in time and budget“Project Service
HR PackageErfolgsbeteiligung
Für die Mitarbeiter
Fair Trade und UmweltSoziales Engagement
Für die Umwelt
![Page 6: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/6.jpg)
PortfolioUnser Full-Service-Ansatz
BridgingIT GmbH | UI5Con 2019 6
BetriebBeratung Sourcing
Lösungen
Project Services
Lösungen
Umsetzung von fachlichen und technischen Anforderungen unserer Kunden in bedarfsgerechte, kosteneffiziente und langfristig stabile Lösungen auf der Basis von Standardtechnologien- und Produkten
Betrieb
Dienstleistungen rund um den Betrieb von IT-Systemen und Anwendungen wie Betriebsprozesse, operative Betriebsführung, Beratung zu Fragen der Betriebssicherheit und Wartung
Beratung
Beratung von der Strategie über die Gestaltung von Geschäftsprozessen bis hin zur Bewertung und Einführung von neuen IT-Systemen und -Anwendungen
Sourcing
Unterstützung von der Bereitstellung und Ergänzung von Projektteams über die Beratung in Near-/Offshore-Vorhaben bis hin zum umfassenden Lieferantenmanagement durch CraftingIT GmbH
Project
ServicesUnterstützung und Projektsupport bei der Gestaltung von Projekten über den gesamten Lebenszyklus durch Anforderungs-, Projekt- und Testmanagement
![Page 7: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/7.jpg)
BridgingIT GmbH | UI5Con 2019 7
Kunden, Mitglied-schaften, Partner
(* ein Auszug)
Partner *Mitgliedschaften *Kunden *
![Page 8: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/8.jpg)
Agenda
ONINIT()
01
RTFM
02
DESIGNER TEMPLATES
03
APPLICATION DESCRIPTOR
04
ENTERPRISE READY
05
BridgingIT GmbH | UI5Con 2019 8
TESTING
06
![Page 9: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/9.jpg)
ON IN I T ( )
![Page 10: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/10.jpg)
More than code
BridgingIT GmbH | UI5Con 2019 10
Learn how to code§ https://www.openui5.org/§ Documentation, Samples, API§ Write apps, practice
More than code§ Lessons learned§ Glue between code and experience§ Battle proven
5 yearslater
Senior UI5 developerNice portfolio and backlogLinkedIn / Xing “head hunter“ requests
I have a bad feeling about thisKnow how to pick your battles [1]Sarcasm
[1] https://zef.me/pick-your-battles-a5fa1025cb3e
![Page 11: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/11.jpg)
APP !== APP
BridgingIT GmbH | UI5Con 2019 11
Minimum viable product
Just enough featuresIt works and gets the job doneEarly adopters / users
Minimum lovable product
Focus on the features that matterPurpose drivenSmall group that loves your product
http://www.bawarchi.com/recipe/lychee-sponge-cake-oetnMcjgaedij.html https://www.momlovesbaking.com/kit-kat-cake/
DESIGN THIN
KING
![Page 12: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/12.jpg)
BridgingIT GmbH | UI5Con 2019 12
https://logosbynick.com/fast-good-cheap-pick-two/
![Page 13: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/13.jpg)
There is more than code
13
Start
Concept
PrototypeSetup
Dev
Tests
TransportsPerformance
PackageShipping
You, developing
E2E Process
BridgingIT GmbH | UI5Con 2019
![Page 14: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/14.jpg)
There is more than code
BridgingIT GmbH | UI5Con 2019 14
Start
Concept
PrototypeSetup
Dev
Tests
TransportsPerformance
PackageShipping
E2E Process
![Page 15: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/15.jpg)
RT FM
![Page 16: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/16.jpg)
UI5 documentation is your best friend
Copy&Paste with Brain
18
https://twitter.com/PR0GRAMMERHUM0R/status/1142356585022230529
BridgingIT GmbH | UI5Con 2019
![Page 17: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/17.jpg)
Object Page Layout
19
21
Example: SimpleForm
Label:Empty:Columns:
322
BridgingIT GmbH | UI5Con 2019
![Page 18: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/18.jpg)
Object Page Layout
20BridgingIT GmbH | UI5Con 2019
![Page 19: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/19.jpg)
Object Page Layout
21
321
Copy&Paste Form content
BridgingIT GmbH | UI5Con 2019
![Page 20: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/20.jpg)
Object Page Layout
22
Behaviour is exactly as written in the manual: Fiori Design Guidelines
”If you are using the object page without object page blocks, you can use the column layout for forms, which automatically distributes form groups across the columns in the object page.”
<form:FormBlock id="formBlock" columnLayout=“3"/>
BridgingIT GmbH | UI5Con 2019
![Page 21: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/21.jpg)
Object Page Layout
23BridgingIT GmbH | UI5Con 2019
![Page 22: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/22.jpg)
Odata v4
24
OData operations executed via binding: Model does not support the method callFunction.
The model does not support the methods getData, getObject, getOriginalProperty, getProperty. For data access, use the context API instead of methods on the model.
No CRUD methods on model: Model does not support the methods create, read, remove, update.
No metadata access via model: Model does not supportmethods getServiceAnnotations,getServiceMetadata, refreshMetadata as well as methods corresponding to theevents metadataFailed, metadataLoaded.
BridgingIT GmbH | UI5Con 2019
![Page 23: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/23.jpg)
25
NOT SUPPORTED
BridgingIT GmbH | UI5Con 2019
![Page 24: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/24.jpg)
Odata v4
26
https://openui5.hana.ondemand.com/#/api/sap.ui.model.odata.v4.ODataModelhttps://openui5.hana.ondemand.com/#/topic/abd4d7c7548d4c29ab8364d3904a6d74.html
Goal
Simplification
Access data via bindings & controls
Incompatibility
Going from Odata v2 to v4 breaks code
Limitations for established patterns
Odata v2 !== Odata v4
Do NOT use Odata v4 in UI5 app if you can avoid it
BridgingIT GmbH | UI5Con 2019
![Page 25: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/25.jpg)
API Management
BridgingIT GmbH | UI5Con 2019 27
AppRe
vers
e Pr
oxy
/service1
/service2
/service3/v2
/v3/service3
App API
M
anag
emen
t
/service1
/service2
/service3/v2
/v3/service3
Bundle APIs into a productManage & control access
Make APIs available
APIKey in HTTP HeaderAlter requestsTransform API into a service
Not with Odata v4!
![Page 26: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/26.jpg)
BridgingIT GmbH | UI5Con 2019 28
API Management
![Page 27: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/27.jpg)
UI5 documentation
Amazing set of resources made availableTutorials, Best Practices, Samples, Demo Apps, Icons, etc.
29
Read | Try | Understand | Repeat
BridgingIT GmbH | UI5Con 2019
![Page 28: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/28.jpg)
Continously integration: continously test your pipeline
30
Day 1: set up pipeline...Day 8: working pipeline
§ Build§ Test§ Analyze§ Package§ Deliver
BridgingIT GmbH | UI5Con 2019
![Page 29: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/29.jpg)
Continously integration: continously test your pipeline
31
Your pipeline will breakTry to minimize frustration levelRun your pipeline continously to see when it breaks
Day 45: Last run: successfullDay 145: Next run: broken build
BridgingIT GmbH | UI5Con 2019
![Page 30: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/30.jpg)
Continously integration: continously test your pipeline
32
A lot can happen in 100 days§ Updated NPM packages§ Updated CI tool§ Updated Infrastructure§ Supported à Deprecated à Ignored
Fitness program for CI§ Run pipeline daily§ Monitor output
Cannot run pipeline continously? You do not have continuous integration
BridgingIT GmbH | UI5Con 2019
![Page 31: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/31.jpg)
Use UI5 tools & features
BridgingIT GmbH | UI5Con 2019 33
UI5 Evolution§ NPM§ Async§ Web Components§ Typescript?Reverse Proxy§ Ui5 tooling includes basic Reverse Proxy
"mainService": {"uri":
"http://localhost:8080/proxy/http/localhost:4004/store/","type": "OData","settings": {"odataVersion": "4.0“
}}
![Page 32: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/32.jpg)
DES I GNER T EMPLAT E S
![Page 33: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/33.jpg)
Designers are not a developers best friend
37
Font type and size?Colors?Spacing and Margins?Button color changes?Icons? Where to get them?Mobile and Desktop Design?
Do NEVER accept§ Design handed over as PDF or Image§ Material forwarded via e-mail§ Without documentation
Forrest Gump Design
BridgingIT GmbH | UI5Con 2019
![Page 34: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/34.jpg)
Design specifications
38
https://www.laderach.com/shop/en/48-assorted-chocolates.html https://smile.amazon.de/Lindt-Spr%C3%BCngli-Geburtstags-Pralines-Pack/dp/B009O8MEKS
Designer & Customers: From generic box of chocoloate to a detailed specification
BridgingIT GmbH | UI5Con 2019
![Page 35: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/35.jpg)
Good Design
39
SAP provides tools that should be used for designsRule #1: Use the provided toolsRule #2: See #1
ToolsFiori design guidelinesDesign stencilsSAP BuildWebIDE
Designers: use UI5 based designs• Use standard UI5 controls• Sweet spot for UI5: business apps
BridgingIT GmbH | UI5Con 2019
![Page 36: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/36.jpg)
Don‘t try this with UI5
40
https://www.lingscars.com/
BridgingIT GmbH | UI5Con 2019
![Page 37: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/37.jpg)
APP L I C A T I ON DESCR I P TOR
![Page 38: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/38.jpg)
42
Metainformationfor project
Find out early where the app is going to life
LaunchpadMobile app Standalone
Native features
Offline
Single Sign-On
Security
Performance
PWA?
Cordova?
Web Components?
NetWeaver / SCP
SAPUI5
Version
Theme
Navigation
BridgingIT GmbH | UI5Con 2019
![Page 39: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/39.jpg)
43
Metainformationfor project
Solve basic problems before start coding
§ Who is doing what?
§ Who are these people?
§ How to onboard new members?
§ Communicate real project dates.
§ Documentation: Wiki, Issue Tracker, README.md, Architecture. Make it your singlesource of truth.
§ Review regularly quality of information provided by single source of truth.
§ JIRA => Waterfall in Jira is still waterfall.
§ Test data provider & quality.
§ Bus factor.
§ Be honest.
BridgingIT GmbH | UI5Con 2019
![Page 40: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/40.jpg)
44
Every App deserves a documen-tation
Documentation is part of the app
Repository must include all documentation needed to develop, test & run app
External Wiki / Issue Tracker: for additional, project relevant information
Reference: Why
Document: How
Do Don‘t
README.md Link to internal documentation needed tobuild & run app
Markdown Documentation in issue ticket
List dependencies: UI, frontend, DB, etc. Don‘t include code or text as image
Include basic architecture information Secure documentation with additional access restrictions
Additional documentation: doc folder Works on my machine
Update on regular basis
BridgingIT GmbH | UI5Con 2019
![Page 41: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/41.jpg)
45
Pictures help
graph LRiOS-- HTTPS ---SCPSCP-- HTTPS --- SAP
graph TBsubgraph MicrosoftCustomVisionBingMaps
endsubgraph SAPAPIManagement-->CAPMAPIManagement-->S4HANAAPIManagement-->CustomVisionAPIManagement-->BingMaps
endsubgraph iOS AppiOS-->APIManagementiOS-->CoreML
end
graph LRA[Inform amount]-->B[Take picture]B --> D{Is Fruit}D -->|Yes| E[CustomVision]D -->|No| BE --> F{Is Ripe}F -->|Yes| G[Show orders]F -->|No| B
sequenceDiagramUser->>App: Check fuitsApp->>+AI: AnalyzeNote right of AI: CustomVisionAI->>-User: Fruit is ripeUser->>SAP: Process order
BridgingIT GmbH | UI5Con 2019
![Page 42: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/42.jpg)
46
Start Project execution Maintenance Support
https://www.themarysue.com/wtftransmet/
Team evolution
BridgingIT GmbH | UI5Con 2019
![Page 43: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/43.jpg)
Documentation
47BridgingIT GmbH | UI5Con 2019
![Page 44: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/44.jpg)
E N T E R P R I S E R E A D Y
![Page 45: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/45.jpg)
49
Semanticversioning
1.66.1
│ │ └───────── Patch Level
│ └─────────── Minor Release
└──────────── Major Release
https://semver.org/spec/v2.0.0.html
Patch version MUST be incremented if only backwards compatible bug fixes are introduced.
Minor version MUST be incremented if new, backwards compatible functionality is introduced to the public API.
Major version MUST be incremented if any backwards incompatible changes are introduced to the public API.
Good news: Current UI5 is backwards compatible with 5+ year old code
BridgingIT GmbH | UI5Con 2019
![Page 46: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/46.jpg)
53
UI5 is Enterprise Ready
BridgingIT GmbH | UI5Con 2019
![Page 47: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/47.jpg)
Semantic versioning
54
OpenUI5 sample app https://github.com/SAP/openui5-sample-app
Component.js
1st commit
The dark ages
Once there was a time before manifest.json [1]
No UI5 Inspector or OPA
No Walkthroughs and Tutorials
[1] https://openui5.hana.ondemand.com/1.26.1/#docs/guide/0187ea5e2eff4166b0453b9dcc8fc64f.html
BridgingIT GmbH | UI5Con 2019
![Page 48: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/48.jpg)
55BridgingIT GmbH | UI5Con 2019
![Page 49: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/49.jpg)
58
Enterprise Ready
Putting an app into a box does not make it enterprise ready
§ Documentation
§ Tests
§ Support
§ Logs and measures
§ ...
Logs
this._oLogger = Log.getLogger("de.bit.ui5con.Talk");
this._oLogger.trace(“Pressing button for starting presentation");
this._oLogger.info("I am presenting");
this._oLogger.error(“Presentation is not working");
Measures
http://hooli.xyz/
BridgingIT GmbH | UI5Con 2019
![Page 50: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/50.jpg)
59
Enterprise Ready
Know if the app meets user expectation
Can the app help the user to perform a given task?
Based on numbers and real data
Important: faster is not a number
Example: Distributed tracing with Elastic APM
Transaction: Navigate to a page
Tasks: Load page, load data, update table data
BridgingIT GmbH | UI5Con 2019
![Page 51: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/51.jpg)
60
FruitChecker
Example: Fruit Checker App
ML enhanced order processing: iOS (native) and web (UI5)
Backend: CAPM on K8S
iOS App Build: Microsoft AppCenter
100% Cloud App
iOS App
Fiori for iOS
CoreML
UI5 App
Integrated in Fiori Launchpad
GeoMap
BridgingIT GmbH | UI5Con 2019
![Page 52: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/52.jpg)
Connect / Deploy
Connect / Deploy
61
FruitCheckerCAPM
VM
Frontend
Backend
Classic
VM
Frontend
VM
Frontend
VM
Backend
VM
Backend
Classic cluster
VM
Docker
Container
Frontend
Container
Backend
VM
Docker
Container
Frontend
Container
Backend
Learning Docker
SAP
S/4HANA
HANA
SCP
K8S
VM
VM
VM
VM
At scale
Docker
Docker
Docker
Docker
BridgingIT GmbH | UI5Con 2019
![Page 53: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/53.jpg)
62
FruitCheckerMulti cloud
Leverage multi cloud
Deploy & Run in Container on K8S
Select container runtime of your choice
Example: Azure K8S
BridgingIT GmbH | UI5Con 2019
![Page 54: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/54.jpg)
63
Multicloudon API Level
Use what serves best your needs
Need to calculate route for a truck? Microsoft Bing Maps offers a Truck API
Need to use Machine Learning? Azure CustomVision, Google AI or Leonardo
Text analytics? Azure Cognitive Services, SAP Translation Hub
...
Glue to combine services is API Management
§ Document your API
§ Version your API
§ Control access
§ Meassure usage
§ Analyze impact
BridgingIT GmbH | UI5Con 2019
![Page 55: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/55.jpg)
T E S T I NG
![Page 56: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/56.jpg)
65BridgingIT GmbH | UI5Con 2019
![Page 57: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/57.jpg)
66
Tests Rules
#1 Just do it!!!
#2 You will always meet at least 2 times.
#3 Just like with documentation, you write tests for your future self.
#4 Testing is not free. 100%+ time effort is not unrealistic. Learn how to write testable code.
#5 No excuses: If you do not write tests, it‘s because of you.
#6 Something is better than nothing.
#7 Unit tests are not enough
UI5 apps support qunit, OPA5, Istanbul, Karma, mocha, chais, selenium, etc.
Tests can be written and run using a wide range of tools
Transparent reporting of test runs and results
BridgingIT GmbH | UI5Con 2019
![Page 58: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/58.jpg)
67
Tests withwdio
OPA5 is fine
Consider an alternative
Selenium is widely adopted. There is a reason to it.
Try to use it
Try webdriver.io
You can too!
BridgingIT GmbH | UI5Con 2019
![Page 59: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/59.jpg)
68
Tests withwdio
Combination of integration tests with code coverage
Cover possible paths
Find not covered user interactions
Free extra: go to 100% code coverage
100% does not mean an app is bug free
§ Useless code
§ If / else
§ Exception
§ Combination(search)
§ Navigation path
§ Interaction
Code Coverage
100%
Not covered:Scenario
Not covered:User Interaction
Yeah, sure, you aresafe
YesNo
§ Refactoring
§ Regression
§ Nice reports
BridgingIT GmbH | UI5Con 2019
![Page 60: More than code - Tobias Hofmann - UI5Con 2019 ext · Odatav4 24 OData operations executed via binding: Model does not support the methodcallFunction. The model does not support the](https://reader033.fdokument.com/reader033/viewer/2022042310/5ed785467bbb9f68866aa98f/html5/thumbnails/60.jpg)
69
Wir freuen uns auf Sie!
N7, 5-6 68161 Mannheim
Rüppurrer Str. 476137 Karlsruhe
Solmsstraße 460486 Frankfurt
Marienstraße 1770178 Stuttgart
Martinstraße 350667 Köln
Riesstraße 1280992 München
Mannheim Karlsruhe Frankfurt
Stuttgart Köln München
Baarerstraße 14CH-6300 Zug
Königstorgraben 1190402 Nürnberg
Friedrichstr. 6810117 Berlin
Zug (CH) Nürnberg Berlin
BridgingIT GmbH | UI5Con 2019