Leseprobe

Transcription

Leseprobe
Wissen aus erster Hand.
Leseprobe
Webentwicklung auf dem SAP NetWeaver AS ABAP – da müssen
bereits die ersten Schritte passen. Miroslav Antolovic zeigt Ihnen
anschaulich, wie Sie die SAPUI5-Bibliothek auf dem Backend installieren und die Entwicklungsumgebung auf dem Frontend einrichten.
Kapitel 4: »Erste Schritte in SAPUI5«
Inhaltsverzeichnis
Index
Der Autor
Miroslav Antolovic
Einführung in SAPUI5
446 Seiten, gebunden, März 2014
69,90 Euro, 978-3-8362-2753-7
www.sap-press.de/3533
In diesem Kapitel lernen Sie den SAP NetWeaver Application Server ABAP kennen. Sie installieren die SAPUI5-Bibliothek und richten die Entwicklungsumgebung ein.
4
Erste Schritte in SAPUI5
In diesem Kapitel lernen Sie die Grundlagen der Webentwicklung auf
dem SAP NetWeaver Application Server ABAP (SAP NetWeaver AS
ABAP) kennen. Ich zeige Ihnen, wie Sie die SAPUI5-Bibliothek auf
dem Backend installieren und wie Sie die Entwicklungsumgebung auf
dem Frontend einrichten.
Checkliste
Was Sie für dieses Kapitel brauchen:
왘
S-User für den SAP Service Marketplace
왘
Zugang zu einem ERP- und zu einem SAP-Solution-Manager-System
Für die Entwicklung von Anwendungen in SAPUI5 benötigen Sie
zwei Dinge:
왘
installierte SAPUI5-Bibliothek im SAP-Backend
왘
eingerichtete Entwicklungsumgebung auf dem Frontend-PC
Sollten Sie über kein SAP-Backend-System verfügen, können Sie Ihre
Anwendungen auch auf einen lokalen Webserver, z. B. einen ApacheHTTPD-Server (als Download von der Homepage Apache.org), deployen. Sollten Sie keinen Zugang zum SAP Service Marketplace haben, können Sie die benötigten SAPUI5-Dateien unter https://
tools.hana.ondemand.com/ herunterladen.
Für die ersten Gehversuche ist es auch ausreichend, wenn Sie lediglich Eclipse und die SAPUI5-Frontend-Tools installieren. In diesem
Szenario können Sie die Vorschaufunktion in Eclipse nutzen und sich
das Ergebnis dort anzeigen lassen. In diesem Fall können Sie
Abschnitt 4.1, »Installation der SAPUI5-Bibliothek in der SAP Business Suite«, überspringen und direkt mit Abschnitt 4.2, »Einrichten
103
Lokaler Webserver
4
Erste Schritte in SAPUI5
Installation der SAPUI5-Bibliothek in der SAP Business Suite
der Entwicklungsumgebung«, fortfahren. Für diese lokalen Entwicklungen benötigen Sie die beiden Komponenten ABAP in Eclipse und
SAPUI5 Team Provider nicht.
Zunächst widmen wir uns der Installation der SAPUI5-Bibliothek auf
dem ABAP-Stack des SAP-Systems.
4.1
Download der
Komponenten
Installation der SAPUI5-Bibliothek in der
SAP Business Suite
Verzeichnis, und installieren Sie die Pakete mit dem SAP Add-On
Installation Tool (Transaktion SAINT), bzw. führen Sie ein Update
(Transaktion SPAM) durch. Eine ausführliche Installationsanleitung
finden Sie im SAP-Hinweis 1747308 (Installat.Leitf.: UI Development
Toolkit for HTML5 (SAPUI5)).
Ob die Installation erfolgreich war, können Sie durch den Aufruf der
URL http://<HOSTNAME>:<SERVICE>/sap/public/bc/ui5_ui5 überprüfen, wobei Sie <HOSTNAME> und <SERVICE> durch die Werte Ihres
SAP-Systems ersetzen. Ihnen sollte als Ergebnis das UI Development
Toolkit for HTML 5 angezeigt werden (siehe Abbildung 4.2).
UI Development
Toolkit for HTML5
SAPUI5 ist als Add-on in die SAP Business Suite integriert. Die Installationspakete finden Sie im SAP Software Download Center (http://
service.sap.com/swdc) unter Installations and Upgrades 폷 A-Z-Index
폷 N 폷 UI Add-On for NetWeaver 폷 <Entsprechendes EHP/ERP
Release> 폷 Installation. Die dazugehörigen Support Packages finden
Sie unter Support Packages and Patches 폷 A-Z-Index 폷 N 폷 UI AddOn for NetWeaver 폷 <Entsprechendes EHP/ERP Release>.
Starten Sie im SAP Solution Manager den Maintenance Optimizer,
und wählen Sie als Produktversion UI ADD-ON 1.0 FOR NW (Abbildung 4.1).
Abbildung 4.2 UI Development Toolkit for HTML 5
Sollten Sie ein anderes Ergebnis erhalten, prüfen Sie, ob der entsprechende Service aktiv ist. Gehen Sie dazu in die Transaktion SICF, und
aktivieren Sie gegebenenfalls den Service default_host/sap/public/bc/
ui5_ui5/ (siehe Abbildung 4.3).
Abbildung 4.1 Maintenance Optimizer im SAP Solution Manager
Installation
Laden Sie die berechneten Support Packages und das Stack-XML herunter. Entpacken Sie anschließend die Support Packages in das EPS-
104
4.1
Die in diesem Buch gezeigten Beispiele basieren auf der zum Zeitpunkt des Schreibens aktuellen Version SAPUI5 1.00 SP6. Prüfen Sie
daher mithilfe der Product Availability Matrix (PAM), die unter http://
service.sap.com/pam erreichbar ist, die jeweils aktuelle unterstützte
Version, und installieren Sie diese.
105
ICF-Service
aktivieren
4
Erste Schritte in SAPUI5
Einrichten der Entwicklungsumgebung
4.2
die installierte Java-Runtime-Version mindestens in der Version JRE
1.6 vorliegt, und führen Sie gegebenenfalls vor der Installation eine
Aktualisierung des Java Runtime Environments durch. Öffnen Sie
unter Start 폷 Systemsteuerung 폷 Programme 폷 Java das Java Control
Panel. Über den Button Info wird Ihnen die entsprechende JRE-Version angezeigt. Sollte die Version unter 1.6 liegen, führen Sie
zunächst ein Update der JRE-Version durch.
4.2.2
Installation
Grundsätzlich unterstützt SAPUI5 die Eclipse-Versionen Indigo 3.7,
Juno 3.8 und Juno 4.2. Im Folgenden wird die zum jetzigen Zeitpunkt aktuelle Version Juno 4.2 installiert. Verwenden Sie auch hier
stets die aktuelle, von SAP freigegebene Version.
Abbildung 4.3 Service aktivieren
Laden Sie als Erstes Eclipse IDE for Java EE Developers unter
www.eclipse.org/downloads herunter. Da der SAPUI5 Team Provider
nur mit der 32-Bit-Version funktioniert, laden Sie die 32-Bit-Version
herunter. Nach dem Entpacken der ZIP-Datei können Sie Eclipse
direkt durch einen Doppelklick auf eclipse.exe starten; Eclipse läuft im
Arbeitsspeicher und muss daher nicht installiert werden. In der
Eclipse-Oberfläche können Sie über den Menüpfad Help 폷 Install
New Software die zusätzlichen Komponenten installieren (siehe
Abbildung 4.4).
Nach der erfolgreichen Installation der Backend-Komponente widmen wir uns nun der Installation der SAPUI5-Frontend-Tools.
4.2
Eclipse
Die UI-Entwicklungstools sind Teil der SAPUI5-Bibliothek. Es handelt
sich dabei um eine Reihe von Eclipse-basierten Tools und Editoren,
die Sie bei der Entwicklung von SAPUI5-Anwendungen unterstützen.
Die SAPUI5-Team-Provider-Funktionalität unterstützt Sie beim Einchecken der in Eclipse entwickelten Anwendungen in ein ABAPBackend-System.
4.2.1
JRE
Einrichten der Entwicklungsumgebung
Installationsvoraussetzungen
Abbildung 4.4 Plug-in-Komponenten installieren
Die Entwicklerwerkzeuge für SAPUI5 müssen separat als EclipsePlug-in installiert werden. Prüfen Sie vor der Eclipse-Installation, ob
106
107
Eclipse IDE for Java
EE Developers
4
Erste Schritte in SAPUI5
Installieren Sie zunächst die notwendigen Standard-Plug-ins und
anschließend die SAPUI5-Tools.
Standard-Plug-ins
Deutsches
Sprachpaket
Installieren Sie als Erstes das deutsche Sprachpaket für Eclipse. Die
Download-URL für die Sprachdateien der jeweiligen Eclipse-Versionen finden Sie unter http://eclipse.org/babel/downloads.php. Dort finden Sie im Bereich Babel Language Pack Zips and Update Sites 폷
Babel Language Pack Zips die entsprechende URL, z. B. http://download.eclipse.org/technology/babel/update-site/<AKTUELLES RELEASE>/
juno.
Starten Sie über den Menüpfad Help 폷 Install New Software den
Installations-Wizard, und geben Sie unter work with die UpdateSeite für Ihre Eclipse-Version ein, in unserem Beispiel in Abbildung
4.5 http://download.eclipse.org/technology/babel/update-site/R0.11.0/
juno. Wählen Sie nun aus der Liste im mittleren Bildschirmbereich
die Option Babel Language Packs in German aus, und bestätigen
Sie Ihre Auswahl mit Next.
Einrichten der Entwicklungsumgebung
Im Folgebild sehen Sie die Komponenten, die in diesem Schritt installiert werden. Bestätigen Sie Ihre Auswahl mit Next, akzeptieren Sie
im Folgebild die Lizenzvereinbarungen, und starten Sie über den Button Finish die Installation. Bei manchen Komponenten kommt ein
Warnhinweis, dass Sie unsignierte Komponenten installieren würden. Bestätigen Sie das entsprechende Pop-up-Fenster mit OK (siehe
Abbildung 4.6), und fahren Sie mit der Installation fort.
Komponentenauswahl
Abbildung 4.6 Sicherheitswarnung
Nach der Installation werden Sie dazu aufgefordert, Eclipse neu zu
starten. Bestätigen Sie dieses Pop-up-Fenster mit Yes (siehe Abbildung 4.7).
Abbildung 4.7 Neustart von Eclipse
Nach dem Neustart von Eclipse ist die Oberfläche deutschsprachig.
Als nächsten Schritt müssen weitere Standard-Plug-ins installiert werden. Das Plug-in ABAP in Eclipse setzt einige Standard-Plug-ins voraus. Im nächsten Schritt installieren Sie diese Pakete. Die hier aufgeführte Liste bezieht sich auf die Version ABAP in Eclipse 2.16;
überprüfen Sie daher in den unten genannten SAP-Hinweisen, welche Installationsvoraussetzungen für Ihre Version gelten.
Abbildung 4.5 Sprachpaket für Deutsch auswählen
108
Starten Sie den Installations-Wizard über den Menüpfad Hilfe 폷 Neue
Software installieren, und geben Sie unter work with die UpdateSeite Ihrer Eclipse-Installation an (in diesem Beispiel die Juno-
109
Notwendige
Plug-ins
4.2
4
Erste Schritte in SAPUI5
Einrichten der Entwicklungsumgebung
Update-Seite http://download.eclipse.org/releases/juno). Wählen Sie
nun aus der Liste im mittleren Bildschirmbereich die folgenden Komponenten aus:
load Center nach »ABAP in Eclipse« suchen. Fügen Sie auch diese
Datei Ihrem Download-Basket hinzu. Laden Sie im Anschluss die drei
ZIP-Dateien mithilfe des SAP Download Managers herunter.
왘
EclipseRT Target Platform Components 폷 EMF – Eclipse Modeling Framework
왘
EclipseRT Target Platform Components 폷 Jetty Target Components
왘
Modeling 폷 EMF – Eclipse Modeling Framework SDK
왘
Modeling 폷 EMF Compare SDK
왘
Modeling 폷 EMF Validation Framework SDK
Nachdem Sie die Dateien aus dem SAP Service Marketplace heruntergeladen haben, können Sie diese in Eclipse installieren. Da die
SAPUI5-Tools lokal auf Ihrer Festplatte gespeichert wurden, müssen
Sie diese manuell in den Installations-Wizard einbinden. Klicken Sie
hierzu neben dem Work-with-Eingabefenster work with auf den
Button Hinzufügen, und wählen Sie im folgenden Pop-up-Fenster
über den Button Archiv den Pfad zu der heruntergeladenen ZIPDatei aus (siehe Abbildung 4.8).
왘
Modeling 폷 EMF Model Query SDK
왘
Modeling 폷 EMF Model Transaction
왘
Modeling 폷 Graphiti SDK (Incubation)
Folgen Sie dem Installations-Wizard analog der Installation der
Sprachdateien. Nach dem Neustart von Eclipse können Sie mit der
Installation der SAPUI5-Tools fortfahren.
SAPUI5-Tools
SAPUI5Komponenten
Nachdem Sie die notwendigen Standardkomponenten installiert
haben, können Sie nun die SAPUI5-Tools installieren. Für die Entwicklung benötigen Sie die folgenden drei Komponenten, die Sie in
der folgenden Reihenfolge installieren:
왘
ABAP IN ECLIPSE
왘
SAPUI5 TOOLS IDE PLUGIN
왘
SAPUI5 TEAM PROV IDE
Laden Sie aus dem SAP Service Marketplace zunächst die beiden
benötigten SAPUI5-Komponenten SAPUI5 TOOLS IDE PLUGIN 1.00
und SAPUI5 TEAM PROV IDE 1.00 herunter. Sie finden die Dateien
im SAP Service Marketplace unter Support Packages and Patches 폷
A-Z-Index 폷 N 폷 UI Add-On for NetWeaver 폷 <Entsprechendes EHP /
ERP Release>. Fügen Sie die jeweils aktuelle Version der beiden
Komponenten über den Button Zum Download Basket hinzufügen
zu Ihrem Download-Basket hinzu. Für den SAPUI5 Team Provider
benötigen Sie zusätzlich noch das Plug-in für ABAP in Eclipse 2.16.
Dieses finden Sie am einfachsten, indem Sie im SAP Software Down-
110
Abbildung 4.8 SAPUI5-Tools auswählen
Bestätigen Sie Ihre Auswahl mit OK (siehe Abbildung 4.9).
Abbildung 4.9 SAPUI5-Komponente installieren
Folgen Sie erneut dem Installations-Wizard, wie es bereits beschrieben wurde, und wiederholen Sie den Vorgang für die beiden verbleibenden Komponenten. Damit ist die Installation von Eclipse IDE for
Java EE Developers abgeschlossen.
111
4.2
SAPUI5-Plug-ins
installieren
4
Erste Schritte in SAPUI5
SAP-Hinweise
Die zu diesem Zeitpunkt aktuelle Version SAPUI5 1.00 SP06 setzt
z. B. ABAP in Eclipse in der Version 2.16 voraus. Welche Versionen
Sie installieren müssen, entnehmen Sie den folgenden SAP-Hinweisen:
왘
Hinweis 1747308 (Installat.Leitf.: UI Development Toolkit for
HTML5 (SAPUI5))
왘
Hinweis 1718399 (ABAP-Entwicklerwerkzeuge für SAP NetWeaver)
4.2.3
Installierte
Komponenten
SAPUI5-Entwicklungsszenarien
Update der Komponenten
Es wird empfohlen, die Eclipse-Komponente Eclipse IDE for Java EE
Developer zu aktualisieren. Diese Komponente beinhaltet die Codevervollständigung, die in niedrigeren Versionen für Abstürze der
Anwendung sorgen kann. Um eine Komponente zu aktualisieren,
rufen Sie über den Menüpfad Hilfe 폷 Info über Eclipse die Übersicht
der installierten Komponenten auf (siehe Abbildung 4.10).
Abbildung 4.11 Installierte Komponenten
Abbildung 4.10 Info über Eclipse
Über den Button Installationsdetails können Sie sich die Versionen der installierten Komponenten anzeigen lassen (siehe Abbildung
4.11).
Update der
installierten
Komponenten
Um ein Update durchzuführen, markieren Sie die entsprechende
Komponente und klicken auf den Button Aktualisieren. Es erscheint
nun ein Pop-up-Fenster mit den verfügbaren Updates. Bestätigen Sie
die Installation mit Weiter, akzeptieren Sie die Lizenzvereinbarungen, und starten Sie die Installation mit Installieren.
112
Bevor wir die erste SAPUI5-Seite anlegen, möchte ich Ihnen die möglichen Entwicklungsszenarien und die Kommunikation zwischen
dem Browser und dem SAP-Backend näher erläutern. Im Anschluss
daran lernen Sie noch das Model-View-Controller-Architekturmuster
(MVC) kennen und sind damit bestens gerüstet, um mit der Entwicklung von Anwendungen in SAPUI5 zu starten.
4.3
SAPUI5-Entwicklungsszenarien
SAPUI5 bietet im Vergleich zu klassischen SAP-GUI-Anwendungen
viele Vor-, aber auch einige Nachteile. Dadurch, dass SAP sich bei der
SAPUI5-Bibliothek auf die Standards HTML5, CSS3, AJAX und die
weit verbreitete Bibliothek jQuery bezieht, können mit SAPUI5
schnelle und flexible Anwendungen entwickelt werden, die sehr
113
Plattformen
4.3
4
Erste Schritte in SAPUI5
leicht auf andere Plattformen portiert werden können. So laufen
bereits heute SAPUI5-Anwendungen auf den unterschiedlichsten
Plattformen:
왘
SAP NetWeaver Cloud
왘
Sybase Unwired Platform
왘
SAP HANA XS
왘
SAP NetWeaver AS ABAP
왘
SAP NetWeaver AS JAVA
왘
Open-Source-Plattformen
HTML wird fast von jedem modernen Endgerät »verstanden«, sodass
Sie ohne große Aufwände Anwendungen für Desktop-PCs, Tablets
oder Smartphones entwickeln können.
Eclipse
Corporate Design
und Styleguide
Ein weiterer, wesentlicher Vorteil ist, dass die Entwicklung in Eclipse
stattfindet und somit aus Entwicklersicht nicht mehr zwischen verschiedenen Entwicklungsumgebungen gewechselt werden muss,
sondern jegliche Entwicklung zentral auf einer Plattform stattfinden
kann. In letzter Konsequenz ist es nun auch seit SAP NetWeaver 7.4
möglich, ABAP in Eclipse zu entwickeln.
Durch CSS3 können die Oberflächen sehr leicht an die Anforderungen eines Unternehmens, z. B. hinsichtlich des Corporate Designs,
angepasst werden. Genau diese Flexibilität wird bei den Anwendern
allerdings oft als Nachteil empfunden. Eine SAP GUI sieht immer
mehr oder weniger gleich aus, wohingegen CSS dem Entwickler die
Möglichkeit gibt, seiner Kreativität und seinen Designideen freien
Lauf zu lassen. So bekommt jede Seite sehr schnell eine persönliche
Note. Durch diesen »Wildwuchs« muss sich der Anwender jedoch auf
jeder Seite neu orientieren. Deshalb sollten Sie vor der Entwicklung
von SAPUI5-Seiten ein einheitliches Corporate Design festlegen und
einen unternehmensweit gültigen Styleguide etablieren.
Der einzige, und oft auch gravierende Nachteil ist die Performance.
Wie ich Ihnen später zeigen werde, kann dieser Geschwindigkeitsnachteil zwar minimiert werden, aber dennoch wird eine HTMLSeite meistens langsamer gerendert als eine SAP-GUI-Anwendung.
In Kapitel 9, »SAP HANA«, gehe ich noch auf die Entwicklung in der
Cloud bzw. auf SAP HANA ein. Der Hauptteil des Buches beschäftigt
sich mit der Entwicklung in der SAP Business Suite.
114
SAPUI5-Entwicklungsszenarien
4.3.1
4.3
Entwicklung auf dem SAP NetWeaver Application
Server ABAP
Das hauptsächliche Entwicklungsszenario ist die Entwicklung von
Desktop-Anwendungen mit einem SAP-NetWeaver-AS-ABAP-Backend. Bevor wir uns der Implementierung der ersten SAPUI5-Anwendung widmen, muss noch die Frage geklärt werden, wie der ABAPServer Anfragen aus dem Internet entgegennimmt und verarbeitet.
Unsere bisherigen Beispiele aus den einführenden Kapiteln wurden
von der lokalen Festplatte aus ausgeführt. Im SAP-Kontext kommen
die Daten aus einem SAP-System und müssen im Frontend-Browser
angezeigt werden. Wenn Sie eine Internetseite aufrufen, wird die
angefragte Seite von einem Server abgeholt, in Ihrem Browser gerendert und dargestellt. Im SAP-Kontext ist dieser Webserver der SAP
NetWeaver AS, alsTeil des SAP-NetWeaver-Stacks.
Wie wird diese Browseranfrage auf dem SAP NetWeaver AS verarbeitet? Der SAP NetWeaver AS stellt die Infrastruktur zur Entwicklung
und den Einsatz von Webanwendungen zur Verfügung. Er nimmt die
HTTP-Anfragen (Requests) entgegen, verarbeitet diese und gibt das
Ergebnis im HTTP-Strom (Response) zurück. In Abbildung 4.12 ist
dieser sogenannte Roundtrip dargestellt.
/Webbrowser
/SAP NetWeaver
Application Server
ABAP
/Datenbank
HTTP-Anfrage (Request)
Datenbeschaffung
Selektionsergebnis
HTTP-Antwort (Response)
Abbildung 4.12 SAP NetWeaver Application Server ABAP
115
SAP NetWeaver
Application Server
ABAP
4
Erste Schritte in SAPUI5
Internet
Communication
Manager
SAPUI5-Entwicklungsszenarien
Der Internet Communication Manager (ICM) gewährleistet die Kommunikation zwischen SAP NetWeaver AS und Webbrowser (siehe
Abbildung 4.13). Streng genommen handelt es sich nicht um eine
reine HTTP-Kommunikationskomponente, sondern der ICM beinhaltet die TCP/IP-Grundfunktionen, sodass neben der reinen HTTP-/
HTTPS-Kommunikation auch eine SMTP-Kommunikation mit dem
SAP NetWeaver AS möglich ist. Der ICM ist ein eigener Dienst innerhalb des SAP NetWeaver AS und wird vom Dispatcher gestartet und
überwacht.
Webbrowser
Request
Response
SAP NetWeaver Application Server ABAP
ABAP-Internet-Communication-Manager
Internet Communication Framework
ICF-Controller
Server-Roundtrip. Anhand der URL wird der eigentliche HTTPRequest-Handler ermittelt und die Anfrage an den Handler weitergeleitet. An diesem Handler findet die Authentifizierung gegenüber
dem SAP-System statt. Nach der erfolgreichen Authentifizierung wird
durch den Aufruf der Methode HANDLE_REQUEST die Anfrage an die
Applikation weitergegeben. In der Applikation wird die Anfrage verarbeitet und das Ergebnis im HTTP-Strom wieder an die Anwendung
zurückgegeben.
Wenn Sie sich bisher mit der Webentwicklung innerhalb des SAPSystems (Web Dynpro oder BSP) beschäftigt haben, wurde Ihnen
diese Funktionalität von der entsprechenden Laufzeitumgebung
bereitgestellt, und Sie mussten sich als Entwickler keine Gedanken
über die Funktionsweise des ICF machen. Bei der Generierung der
Web-Dynpro-Applikation wurde die entsprechende URL in die administrativen Daten geschrieben, und die Web-Dynpro-Anwendung
war über diese URL erreichbar. Wenn Sie nun eigene Anwendungen
schreiben, stellt sich die Frage, wie der SAP NetWeaver AS von
außen, also aus dem Internet erreicht werden kann. Die Antwort auf
diese Frage finden wir in der Transaktion SICF. Starten Sie nun die
Transaktion SICF, und führen Sie diese mit den Voreinstellungen aus.
In Abbildung 4.14 finden Sie über das Menü Springen 폷 Port-Informationen die notwendigen Informationen.
ICF-Manager (IF HTTP SERVER)
HTTP-Request-Handler (IF HTTP EXTENSION)
Applikation
Abbildung 4.13 ICM – Internet Communication Manager
HTTP-Request
Der HTTP-Request wird vom ICM entgegengenommen. Der Task
Handler startet den ICF-Controller; dieser ist als Funktionsbaustein
HTTP_DISPATCH_REQUEST realisiert. Der ICF-Controller erzeugt ein
Objekt der Klasse CL_HTTP_SERVER (Serverkontrollblock). Dieses
Objekt beinhaltet alle notwendigen Informationen aus dem Client-
116
4.3
Abbildung 4.14 Transaktion SICF
117
Port-Information
4
Erste Schritte in SAPUI5
ICF-Pfad
Im Pop-up-Fenster finden Sie zum einen den Hostnamen und zum
anderen den Service (Port) des entsprechenden Systems. Die URL
setzt sich aus http(s)://<HOSTNAME>:<SERVICE>/ und der Rest der
URL aus dem entsprechenden ICF-Pfad zusammen (siehe Abbildung
4.15).
SAPUI5-Entwicklungsszenarien
4.3.2
4.3
Eigenen Service anlegen
Im nächsten Schritt möchten wir einen eigenen Service anlegen und
diesen testen. Legen Sie dazu in der Transaktion SE24 die Klasse
ZUI5_HTTP_HANDLER an, und implementieren Sie das Interface IF_
HTTP_EXTENSION (siehe Abbildung 4.16).
Abbildung 4.16 HTTP-Handler-Klasse
Das Interface implementiert die Methode HANDLE_REQUEST; diese
wird bei einer Anfrage an den entsprechenden ICF-Knoten ausgeführt. Momentan möchten wir nur den HTTP-Status setzen; diesen
Handler werden wir im Verlauf dieses Buches sukzessive ausbauen
(siehe Abbildung 4.17). Fügen Sie in der Methode HANDLE_REQUEST
der Klasse ZUI5_HTTP_HANDLER die folgende Codezeile hinzu:
server->response->set_status( code = 200 reason = 'OK' ).
Abbildung 4.15 ICF-Pfad
Der in Abbildung 4.15 markierte Pfad ist also unter der URL http://
<HOSTNAME>:<SERVICE>/sap/public/bc/ui5_ui5/ erreichbar, wobei
Sie <HOSTNAME> und <SERVICE> durch die entsprechenden Werte
des SAP-Systems ersetzen müssen. Hinter diesem Pfad verbirgt sich
das SAPUI Development Toolkit.
118
Abbildung 4.17 Methode HANDLE_REQUEST
119
Methode
HANDLE_REQUEST
4
Erste Schritte in SAPUI5
Speichern und aktivieren Sie die Klasse. Damit Sie den Service besser
testen können, setzen Sie auf die eingetragene Zeile einen externen
Breakpoint. (Achtung, ein Session Breakpoint ist an dieser Stelle wirkungslos!)
Service anlegen
SAPUI5-Entwicklungsszenarien
Geben Sie im Folgebild eine Beschreibung ein, und tragen Sie in der
Registerkarte Handler-Liste die zuvor angelegte Klasse ZUI5_HTTP_
HANDLER ein (siehe Abbildung 4.20).
4.3
HTTP-Handler
Im nächsten Schritt legen Sie einen ICF-Knoten in der Transaktion
SICF an. In diesem Beispiel legen Sie den Knoten direkt unter dem
default_host-Knoten an. Markieren Sie den Knoten, und wählen Sie
über das Kontextmenü den Eintrag Neues Subelement (siehe Abbildung 4.18).
Abbildung 4.20 HTTP-Handler am Service
Abbildung 4.18 ICF-Service anlegen
Service-Name
Tragen Sie einen Namen ein (in unserem Beispiel in Abbildung 4.19
»ui5«), und wählen Sie die Option Eigenständiger Service.
Speichern Sie den Service ab, und verlassen Sie über zurück das Pflegebild. Als letzten Schritt müssen Sie den Service aktivieren. Setzen
Sie dazu den Cursor auf den angelegten Service, und wählen Sie im
Kontextmenü Service aktivieren (siehe Abbildung 4.21).
Abbildung 4.21 Service aktivieren
Abbildung 4.19 Service anlegen
120
Starten Sie nun Ihren Browser, und geben Sie die URL nach dem
Schema http://<HOSTNAME>:<SERVICE>/ui5/ ein, wobei Sie den
Hostnamen und den Service Ihres SAP-Systems eintragen. Wenn der
121
Service aktivieren
4
Erste Schritte in SAPUI5
Model-View-Controller-Architekturmuster
Service erreichbar ist, erscheint ein Pop-up-Fenster, in dem Sie Ihren
SAP-Benutzernamen und das Passwort für das System eingeben müssen. Nach der erfolgreichen Anmeldung bleibt der Aufruf am gesetzten externen Breakpoint stehen (siehe Abbildung 4.22).
nen die einzelnen Komponenten leichter erweitert, ausgetauscht
oder wiederverwendet werden. Abbildung 4.23 zeigt dieses Architekturmuster.
Model
Controller 2
Controller 2
View 1
View 2
Abbildung 4.23 Model-View-Controller-Architekturmuster
Abbildung 4.22 HTTP-Handler im Debugger
Fehlersuche
4.4.1
Sollte der Service nicht erreichbar sein, kann dies viele Ursachen haben.
Die häufigsten Fehler sind ein inaktivierter Service (im ICF-Baum grau dargestellt), eine fehlerhafte Konfiguration des ICF oder gesperrte Ports in der
Firewall. Eine gute Ausgangsbasis für die Fehleranalyse ist der ICM-Monitor (Transaktion SMICM). Dort können Sie über den Menüpfad Springen
폷 Trace-Datei 폷 Alles anzeigen das ICM-Trace aufrufen.
Das Model repräsentiert die Schicht des Datenmodells und hält die
Applikationsdaten bereit. Auch repräsentiert und koordiniert es die
Zugriffe auf die Datenbank. Oft beinhaltet das Model auch die dazugehörige Geschäftslogik. Die relevanten Daten werden vom Model
bereitgestellt; aus diesem Grund wird das Model auch oft Publisher,
also Veröffentlicher genannt.
4.4
MVC
Durch diese Trennung können z. B. zwei verschiedene Endgeräte das
gleiche Model verwenden; der View wird z. B. einmal für die Desktop-Anwendung und einmal für das mobile Endgerät implementiert.
Model-View-Controller-Architekturmuster
Das Model-View-Controller-Architekturmuster strukturiert die Softwareentwicklung in die drei Einheiten Datenmodell (Model), Präsentation (View) und Steuerung (Controller). Durch diese Trennung kön-
122
4.4.2
Model
View
Die Präsentationsschicht ist für die Darstellung auf dem Endgerät
zuständig. Der View nimmt die Benutzeraktionen entgegen, verarbeitet diese aber nicht, sondern gibt sie an den Controller weiter.
123
Publisher
4.4
4
Erste Schritte in SAPUI5
4.4.3
Model-View-Controller-Architekturmuster
Controller
Der Controller verwaltet einen oder mehrere Views, nimmt von
ihnen Benutzeraktionen entgegen und wertet diese aus. Zu jedem
View existiert ein Controller. Sollte es bei einer Benutzeraktion zu
einer Datenänderung kommen, übernimmt der Controller die Kommunikation zum Model.
4.4.4
MVC-Muster
Zusammenspiel bei der Webentwicklung
Bei Webanwendungen erstreckt sich das MVC-Muster über Server
und Browser und ist damit etwas komplexer als das klassische MVCMuster. Der Browser stellt den View als grafisches Element dar, und
der Controller ist meistens JavaScript-Code und verarbeitet die
Benutzeraktionen und gibt diese gegebenenfalls an das Model weiter.
Controller
Update
Benachrichtigung
Model
(JSON, XML, OData)
Abbildung 4.25 SAPUI5-Anwendungsprojekt
Benutzerinteraktion
Update
Wenn Sie nun im Folgebild die Option Legen Sie eine initiale View
an auswählen, wird das Projekt im MVC-Muster angelegt (siehe
Abbildung 4.26).
View
SAP-Bibliotheken
Abbildung 4.24 MVC-Architekturmuster
4.4.5
SAPUI5-Projekt
anlegen
MVC in SAPUI5
Das MVC ist ein wesentlicher Bestandteil der SAPUI5-Entwicklung.
Bereits beim Anlegen eines SAPUI5-Anwendungsprojekts müssen Sie
entscheiden, ob Sie die Seite nach dem MVC-Muster anlegen möchten. Um ein neues Projekt in Eclipse anzulegen, wählen Sie im Menü
Datei 폷 Neu 폷 Projekt, und es öffnet sich ein Assistent zum Anlegen
eines neuen Projekts (siehe Abbildung 4.25). Wählen Sie im Assistenten SAPUI5-Anwendungsentwicklung 폷 Anwendungsprojekt aus,
und bestätigen Sie Ihre Auswahl mit dem Button Weiter.
Abbildung 4.26 SAPUI5-Projekt nach dem MVC-Muster
124
125
4.4
4
Erste Schritte in SAPUI5
Entwicklungsmodell
Wenn Sie diese Option wählen, werden Sie im Folgebild gefragt, welches Entwicklungsmodell Sie verwenden möchten (siehe Abbildung
4.27). Mit dem Entwicklungsmodell legen Sie fest, in welchem Format der View implementiert werden soll. Sie haben dabei die Wahl
zwischen den folgenden Optionen:
왘
XML mit HTML – sap.ui.core.mvc.XMLView
왘
JavaScript – sap.ui.core.mvc.JSView
왘
JSON – sap.ui.core.mvc.JSONView
왘
HTML – sap.ui.core.mvc.HTMLView
Model-View-Controller-Architekturmuster
4.4
<template data-controller-name="html.HTML">
</template>
Listing 4.1 SAPUI5-Rumpf – HTML-View
Wenn Sie sich für das Entwicklungsmodell XML entscheiden, wird
der Rumpf aus Listing 4.2 generiert:
XML-View
<core:View xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.m
vc" xmlns="sap.ui.commons"
controllerName="xml.XML"
xmlns:html="http://www.w3.org/1999/xhtml">
</core:View>
Listing 4.2 SAPUI5-Rumpf – XML-View
Das am häufigsten verwendete Entwicklungsmodell ist JavaScript
(siehe Listing 4.3). Alle Beispiele aus diesem Buch basieren auf diesem Modell:
sap.ui.jsview("js.JS", {
/** Specifies the Controller belonging to this View.
* In the case that it is not implemented, or that "null" is
returned, this View does not have a Controller.
* @memberOf js.JS
*/
getControllerName : function() {
return "js.JS";
},
Abbildung 4.27 Entwicklungsmodell wählen
HTML-View
Je nach Auswahl generiert die Entwicklungsumgebung einen entsprechenden Rumpf der Seite. Wenn Sie sich für das Entwicklungsmodell HTML entscheiden, generiert der Wizard das Template aus
Listing 4.1:
/
** Is initially called once after the Controller has been in
stantiated. It is the place where the UI is constructed.
* Since the Controller is given to this method, its event ha
ndlers can be attached right away.
* @memberOf js.JS
*/
createContent : function(oController) {
}
});
Listing 4.3 SAPUI5-Rumpf – JavaScript-View
126
127
JavaScript-View
4
Erste Schritte in SAPUI5
JSON-View
Wenn Sie sich für das Entwicklungsmodell JSON entscheiden, wird
ein Seitenrumpf gemäß Listing 4.4 erzeugt:
{
"Type":"sap.ui.core.mvc.JSONView",
"controllerName":"json.JSON",
"content": [{
}]
}
Listing 4.4 SAPUI5-Rumpf – JSON-View
Neben dem passenden Seitenrumpf wird auch eine Controller-Datei
angelegt; diese enthält bereits vier vordefinierte Ereignisse:
Erstes Beispiel
4.5
Erstes Beispiel
Wir beginnen mit einer Seite, die nicht nach dem MVC-Muster angelegt ist. Wählen Sie hierzu in Eclipse den Menüpfad Datei 폷 Neu 폷
Projekt. Wählen Sie dann im Projekt-Wizard SAPUI5-Anwendungsentwicklung 폷 Anwendungsobjekt aus, und klicken Sie auf Weiter.
Geben Sie dem Projekt anschließend einen passenden Namen (in diesem Beispiel ZUI5_OHNE MVC), wählen Sie Desktop als Zielgerät,
und entfernen Sie gegebenenfalls den Haken vor der Option Legen
Sie eine initiale View an – dadurch wird das Projekt nicht nach dem
MVC-Muster angelegt –, und klicken Sie auf Fertigstellen. Nun wird
in Eclipse ein Projekt mit dem folgenden Aufbau (siehe Abbildung
4.28) angelegt:
왘
onInit – bei der Initialisierung
1 Bibliotheken
왘
onBeforeRendering – vor dem Rendern der Seite
2 Content
왘
onAfterRendering – nach dem Rendern der Seite
3 Bootstrap
왘
onExit – wenn der Controller zerstört wird, z. B. beim Schließen
der Seite
4 Applikation
5 UI-Bereich
Doch was bedeutet nun diese Trennung? Durch die strikte Verwendung des MVC-Musters können Sie einzelne Views auch als Fragmente implementieren und sie sehr einfach in anderen Seiten
wiederverwenden. Alle Ereignisse der Seite werden in der entsprechenden Controller-Datei behandelt, und die Reaktion auf ein Ereignis muss bei einer Änderung nicht mühevoll an mehreren Stellen
angepasst werden. Die beiden Dateien View und Controller bilden
eine lose Einheit, und Sie sollten zu jedem View einen eigenen Controller anlegen. Auch wenn dies nicht zwingend notwendig ist, ist es
durch diese Trennung leichter möglich, einen View mit dem korrespondierenden Controller auszutauschen.
Jetzt ist es an der Zeit, die Theorie in die Praxis umzusetzen. Zum
Abschluss dieses Kapitels legen Sie nun Ihre ersten beiden SAPUI5Anwendungen an, einmal ohne das MVC-Architekturmuster und einmal nach dem MVC-Muster.
Abbildung 4.28 SAPUI5-Projekt ohne MVC-Muster
128
4.5
129
SAPUI5 ohne MVC
4
Erste Schritte in SAPUI5
Auf die einzelnen Bereiche werden wir im nächsten Kapitel noch
genauer eingehen. Momentan ist es ausreichend zu wissen, dass Sie
in diesem Szenario, also ohne MVC, Ihre Anwendung im zweiten
Skriptblock (in Abbildung 4.28 als Application bezeichnet) implementieren.
SAPUI5-Demo-Kit
In unserem einfachen Fall möchten wir einen Button implementieren, der nach dem Anklicken ein alert-Pop-up-Fenster ausgibt. Öffnen Sie dazu zunächst einmal die API-Dokumentation, die Sie auf
dem Backend unter http://<HOSTNAME>:<SERVICE>/sap/public/bc/
ui5_ui5/demokit/ bzw. ab Version 1.18 unter http://<HOSTNAME>:
<SERVICE>/sap/bc/ui5_demokit/ finden, wobei Sie <HOSTNAME>
und <SERVICE> durch die Werte Ihres SAP Systems ersetzen. Alternativ dazu finden Sie das Demo Kit auch im Internet, unter https://
sapui5.netweaver.ondemand.com/sdk/.
API-Referenz
Wechseln Sie im Demo Kit auf den Bereich API-Reference, und
suchen Sie nach dem passenden Control für einen einfachen Button
(sap.ui.commons.Button), wie es in Abbildung 4.29 gezeigt wird.
Erstes Beispiel
Nach der Auswahl des entsprechenden Controls werden Ihnen im
rechten Bereich die Konstruktorfunktion sowie (falls vorhanden) die
Events und die verfügbaren Methoden zu diesem Control angezeigt.
Klicken Sie auf die Konstruktorfunktion, und es werden Ihnen die
möglichen Parameter angezeigt (siehe Abbildung 4.30).
Konstruktorfunktion
Abbildung 4.30 Der Konstruktor sap.ui.commons.Button
Wenn Sie sich nach einer Weile gut in der SAPUI5-Bibliothek auskennen, können Sie gänzlich auf die API-Dokumentation verzichten. Über
die Tastenkombination (Strg) + (Leertaste) wird Ihnen die Dokumentation auch in Eclipse angezeigt. Mit einem Doppelklick wird das entsprechende Codemuster eingefügt (siehe Abbildung 4.31).
Abbildung 4.29 Button-Control in SAPUI5
130
131
Codevervollständigung
4.5
4
Erste Schritte in SAPUI5
Erstes Beispiel
4.5
Abbildung 4.31 Dokumentation der SAPUI5-Klassen in Eclipse
Für unser einfaches Beispiel benötigen wir lediglich einen Text und
einen Event Listener für das Event press. Daraus ergibt sich für den
Button der Inhalt von Listing 4.5:
Abbildung 4.32 placeAt-Funktion
var oButton = new sap.ui.commons.Button({
text : "Drück mich",
press : handleButtonClicked
});
Achten Sie darauf, dass Sie der placeAt-Funktion die Bezeichnung für
das <div>-Element aus dem <body>-Bereich mitgeben müssen (in Listing 4.7 content).
Listing 4.5 Button
Event Listener
Aus dem Button-Event press haben wir den Event Listener handleButtonClicked registriert; diese Funktion soll lediglich ein alertFenster ausgeben (siehe Listing 4.6):
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
Listing 4.6 Event Handler
<script src="resources/sap-ui-core.js"
id="sap-ui-bootstrap"
data-sap-ui-libs="sap.ui.commons"
data-sap-ui-theme="sap_goldreflection">
</script>
Im letzten Schritt müssen wir nun noch unsere Anwendung an den
UI-Bereich übergeben, damit diese auch angezeigt werden kann. Dies
erreichen wir in diesem Fall durch die placeAt-Funktion aus der
Klasse sap.ui.core.Control (siehe Abbildung 4.32).
<script>
var oButton = new sap.ui.commons.Button({
text : "Drück mich",
press : handleButtonClicked
});
function handleButtonClicked() {
alert("Gedrückt");
};
function handleButtonClicked() {
alert("Gedrückt");
132
133
placeAt-Funktion
4
Erste Schritte in SAPUI5
Erstes Beispiel
};
oButton.placeAt("content");
</script>
</head>
<body class="sapUiBody" role="application">
<div id="content"></div>
</body>
</html>
Listing 4.7 Button in SAPUI5
Vorschaufunktion
Speichern Sie die Anwendung ab, und betrachten Sie das Ergebnis in
der Vorschaufunktion. Wählen Sie hierzu im Projekt die Kontextmenüoption Ausführen als 폷 Vorschau von Webanwendung. Im
mittleren Teil öffnet sich eine neue Registerkarte mit einem integrierten Webbrowser, in dem die Seite angezeigt wird. Jetzt können Sie
auf den Button klicken, und es sollte sich die entsprechende alertMeldung »Gedrückt« öffnen (siehe Abbildung 4.33).
im Konstruktor mit der JSON-Notation deklariert. Selbstverständlich
können Sie den Konstruktor auch leer aufrufen und dann die entsprechenden GET- und SET-Methoden des Controls verwenden. In Listing
4.8 sind die beiden Möglichkeiten dargestellt:
// JSON Notation
var oButton = new sap.ui.commons.Button({
text : "Drück mich",
press : handleButtonClicked
});
// Alternativ: Getter- und Setter-Funktionen
var oButton = new sap.ui.commons.Button();
oButton.setText("Drück mich");
oButton.attachPress(handleButtonClicked);
Listing 4.8 Alternative Schreibweisen
Letztlich müssen Sie selbst entscheiden, welche Schreibweise Ihnen
besser gefällt; beide Schreibweisen haben Vor- und Nachteile. Gerade
am Anfang empfehle ich Ihnen die Verwendung der Getter und Setter, da dadurch der Quellcode leichter lesbar ist; die JSON-artige
Notation wird aufgrund der vielen Klammern schnell unübersichtlich.
Nun legen wir dieses Beispiel erneut an; diesmal nach dem MVCMuster.
Legen Sie das SAPUI5-Anwendungsprojekt ZUI5_MIT_MVC an, setzen Sie den Haken bei der Option Legen Sie eine initiale View an,
und bestätigen Sie Ihre Auswahl mit Weiter. Im Folgebild müssen Sie
einen Namen für den View angeben und sich für ein Entwicklungsmodell entscheiden (siehe Abbildung 4.34). Geben Sie als ViewNamen »main« an, und wählen Sie das Entwicklungsmodell JavaScript aus. Bestätigen Sie Ihre Eingaben mit Fertigstellen.
Abbildung 4.33 Erstes Anwendungsbeispiel in der Vorschau
Herzlichen Glückwunsch, Sie haben soeben Ihre erste SAPUI5-Anwendung implementiert!
Schreibweisen
Navigieren Sie nun auf der linken Seite im Explorer zu ZUI5_MIT_
MVC 폷 WebContent 폷 zui5_mit_mvc. Hier finden Sie die drei Dateien
für die eigentliche HTML-Seite, den View und den Controller (siehe
Abbildung 4.35).
Noch ein paar Worte zur allgemeinen Schreibweise: In diesem Beispiel haben wir die notwendigen Attribute und Eigenschaften bereits
134
135
SAPUI5 in MVC
4.5
4
Erste Schritte in SAPUI5
Erstes Beispiel
<script>
sap.ui.localResources("zui5_mit_mvc");
var view = sap.ui.view({
id
:"idmain1",
viewName :"zui5_mit_mvc.main",
type
:sap.ui.core.mvc.ViewType.JS
});
view.placeAt("content");
/script>
Listing 4.9 Generiertes Skript zum Aufrufen des Views
In der View-Datei (main.view.js) wird automatisch die Funktion
createContent angelegt. Innerhalb dieser Funktion definieren Sie die
entsprechenden UI-Elemente. Im Controller werden, wie bereits
beschrieben, die vier Standardereignisse angelegt. In unserem Beispiel müssen Sie zusätzlich die Funktion handleButtonClicked implementieren. Den Unterschied zwischen den beiden Entwicklungsansätzen veranschaulicht Abbildung 4.36.
View
View
Abbildung 4.34 View anlegen
Ohne MVC-Muster
var oButton = new sap.ui.commons.Button();
myButton.setText("Drück mich");
<script>
var oButton = new sap.ui.commons.Button();
oButton.attachPress(oController.
handleButtonClicked);
oButton.setText("Drück mich");
return oButton;
oButton.attachPress(function() {
alert("Gedrückt");
});
myButton.placeAt("content");
</script>
Controller
handleButtonClicked: function() {
alert("Gedrückt");
}
Abbildung 4.36 Vergleich – mit MVC und ohne MVC
Um nun das MVC-Beispiel zu vervollständigen, ergänzen Sie den
View (Datei main.view.js) innerhalb der createContent-Funktion mit
dem Quelltext aus Listing 4.10:
createContent : function(oController) {
Abbildung 4.35 Angelegte Dateien einer SAPUI5-Anwendung
Dadurch, dass Sie das MVC-Muster gewählt haben, wird in der
index.html-Datei bereits das passende Skript automatisch generiert
(siehe Listing 4.9):
136
var oButton = new sap.ui.commons.Button();
oButton.setText("Drück mich");
oButton.attachPress(oController.handleButtonClicked);
137
4.5
4
Erste Schritte in SAPUI5
Erstes Beispiel
return oButton;
}
Listing 4.10 view.js
In unserem Beispiel ohne MVC hatten Sie den Button mit der placeAt-Funktion der eigentlichen UI-Seite hinzugefügt. Im MVC-Muster
müssen Sie dies nicht mehr tun, sondern die fertige Seitendefinition
als return-Wert aus der createContent-Funktion zurückgeben.
Controller
Im Controller müssen Sie nun nur noch die Funktion handleButtonClicked für das Event press einbinden. Fügen Sie im Controller
(Datei main.controller.js) unterhalb der generierten Funktionen das
folgende Listing hinzu:
handleButtonClicked: function() {
alert("Gedrückt");
}
Speichern Sie die beiden Dateien über das Diskettensymbol ab (mit
dem Mehrfachdiskettensymbol können Sie alle geänderten Dateien
auf einmal speichern). In diesem Beispiel muss die HTML-Seite (Datei
index.html) nicht verändert werden. Kontrollieren Sie das Ergebnis,
indem Sie sich die Seite in der Vorschau anzeigen lassen – es sollte
dem Ergebnis in Abbildung 4.33 entsprechen.
Es kann durchaus vorkommen, dass Umlaute nicht korrekt dargestellt
werden. Fügen Sie in diesem Fall im <head>-Bereich das bereits
bekannte <meta charset="UTF-8"> ein, dadurch wird die Zeichencodierung auf UTF-8 gesetzt.
SAPUI5 Team
Provider
Abbildung 4.37 Projekt teilen
Sie haben soeben Ihre erste SAPUI5-Anwendung nach dem MVCMuster implementiert! Als letzter Schritt bleibt nur noch die Aufgabe, die erstellte Seite im ABAP-Backend einzuchecken. Auch diese
Aufgabe ist durch die Unterstützung des SAPUI5 Team Providers
denkbar einfach. Öffnen Sie im Project Explorer das Kontextmenü
des Projekts, und wählen Sie Team 폷 Projekt gemeinsam anwenden
aus (siehe Abbildung 4.37).
Wählen Sie im Wizard SAPUI5-ABAP-Repository, und betätigen Sie
den Button Weiter (siehe Abbildung 4.38).
Abbildung 4.38 SAPUI5-ABAP-Repository
138
139
4.5
4
Erste Schritte in SAPUI5
Systemauswahl
Klicken Sie im Folgebild neben dem Feld Connection auf Browse,
wählen Sie das gewünschte System aus, und klicken Sie auf OK (siehe
Abbildung 4.39). Die Informationen bezieht der SAPUI5 Team Provider aus der SAP-GUI-Installation.
Erstes Beispiel
Geben Sie im Folgebild die Anmeldedaten für das entsprechende System ein, und klicken Sie auf Weiter (siehe Abbildung 4.41).
Abbildung 4.41 Anmeldedaten
Geben Sie im Folgebild einen Namen, eine Beschreibung für die
BSP-Seite und ein Paket (wie in diesem Beispiel $TMP für lokales
Objekt) ein, und bestätigen Sie Ihre Eingaben mit Weiter (siehe
Abbildung 4.42).
Abbildung 4.39 Systemauswahl
Die Systemdaten werden im Wizard übernommen (siehe Abbildung
4.40). Bestätigen Sie Ihre Auswahl mit Weiter.
Abbildung 4.40 SAP-System auswählen
140
Abbildung 4.42 BSP-Anwendung anlegen
141
Lokales Objekt
4.5
4
Erste Schritte in SAPUI5
Erstes Beispiel
Bei lokalen Entwicklungen (Paket $TMP) müssen Sie im Folgebild
keinen Transportauftrag angeben. Bei transportierbaren Objekten
wählen Sie entweder einen vorhandenen Transportauftrag aus, oder
Sie legen einen neuen Transportauftrag an (siehe Abbildung 4.43).
Abbildung 4.44 Zu sendende Ressourcen auswählen
Abbildung 4.43 Transportauftrag auswählen
Systemverbindung
Bestätigen Sie Ihre Auswahl mit Fertigstellen. Eclipse stellt nun eine
Verbindung zum SAP-System her, und im Project Explorer wird
Ihnen in eckigen Klammern die System-ID, der Benutzername, die
Sprache und der BSP-Seitenname angezeigt.
Nun können Sie die Dateien in das SAP-Backend einchecken. Gehen
Sie dazu im Explorer wieder auf das Projekt, und wählen Sie im Kontextmenü Team 폷 Senden. Es öffnet sich nun ein Fenster, in dem Sie
die zu sendenden Ressourcen auswählen können (siehe Abbildung
4.44). Standardmäßig werden alle geänderten Objekte seit dem letzten Einchecken übernommen.
Bestätigen Sie Ihre Auswahl mit Fertigstellen. Im Backend werden
nun zwei wesentliche Komponenten angelegt. Zum einen wird unter
den Pfad /sap/bc/ui5_ui5/sap/<BSP-Anwendungsname>/ ein Service
im ICF angelegt, und zum anderen wird eine BSP-Anwendung generiert, die die SAPUI5-Seite beinhaltet.
Versionsprüfung
Wenn die Version der Bibliothek in Ihrer Eclipse-Version nicht mit
der Version im SAP-Backend übereinstimmt, erhalten Sie eine entsprechende Warnmeldung, siehe Abbildung 4.45.
142
Abbildung 4.45 Versionsprüfung
In diesem Fall sollten Sie Ihre Anwendung auf dem SAP-Server ausgiebig testen und die beiden Versionen durch ein entsprechendes
Upgrade harmonisieren.
Nach dem Hochladen in das SAP-Backend ist die Anwendung über
die URL http://<HOSTNAME>:<SERVICE>/sap/bc/ui5_ui5/sap/<BSPAnwendungsname>/ erreichbar. Nach der Anmeldung am System sollten Sie das folgende Ergebnis erhalten (siehe Abbildung 4.46).
143
4.5
4
Erste Schritte in SAPUI5
Abbildung 4.46 Erste SAPUI5-Anwendung im SAP-Backend
Herzlichen Glückwunsch, Sie haben soeben Ihre erste SAPUI5Anwendung im SAP-Backend aufgerufen!
Im folgenden Kapitel 5, »SAPUI5-Laufzeitumgebung«, gehe ich detailliert auf die wichtigsten Komponenten und Controls der SAPUI5Bibliothek ein.
144
Inhalt
Inhalt
Einleitung ..................................................................................... 11
1
HTML5 und CSS3 ..................................................... 17
1.1
1.2
2
Einführung in HTML5 .................................................
1.1.1 Dokument-Grundgerüst .................................
1.1.2 Wichtige Sprachelemente ...............................
Einführung in CSS .......................................................
1.2.1 Allgemeiner Aufbau .......................................
1.2.2 CSS in HTML einbinden .................................
1.2.3 Selektoren ......................................................
1.2.4 Beispiel ..........................................................
18
18
23
34
34
35
38
41
JavaScript ................................................................. 45
2.1
2.2
2.3
2.4
2.5
Grundlagen .................................................................
2.1.1 Protokollierung ..............................................
2.1.2 Positionierung von JavaScript-Code ................
2.1.3 Kommentare ..................................................
2.1.4 Funktionen ....................................................
2.1.5 Objekte ..........................................................
Variablen ....................................................................
Operatoren .................................................................
2.3.1 Rechenoperatoren ..........................................
2.3.2 Inkrement- und Dekrementoperatoren ...........
2.3.3 Zuweisungsoperatoren ...................................
2.3.4 Vergleichsoperatoren .....................................
2.3.5 Der typeof-Operator ......................................
2.3.6 Logische Operatoren ......................................
Kontrollstrukturen – Bedingungen und Schleifen .........
2.4.1 Die if-Anweisung ...........................................
2.4.2 Die switch-Anweisung ...................................
2.4.3 Die for-Schleife ..............................................
2.4.4 Die while-Schleife ..........................................
2.4.5 Die do-while-Schleife .....................................
2.4.6 Die for-in-Schleife ..........................................
Document Object Model ............................................
2.5.1 Der DOM-Baum ............................................
45
46
47
48
48
51
54
58
58
58
59
59
60
60
61
61
62
65
67
69
69
71
72
7
Inhalt
Inhalt
2.6
3
3.3
3.4
4.2
4.3
4.4
4.5
Grundlagen ................................................................
Selektoren und Ereignisse ..........................................
3.2.1 Selektoren .....................................................
3.2.2 Ereignisse ......................................................
DOM-Manipulation ...................................................
AJAX ..........................................................................
83
85
85
89
91
95
Installation der SAPUI5-Bibliothek in der
SAP Business Suite .....................................................
Einrichten der Entwicklungsumgebung .......................
4.2.1 Installationsvoraussetzungen .........................
4.2.2 Installation ....................................................
4.2.3 Update der Komponenten .............................
SAPUI5-Entwicklungsszenarien ..................................
4.3.1 Entwicklung auf dem SAP NetWeaver
Application Server ABAP ...............................
4.3.2 Eigenen Service anlegen ................................
Model-View-Controller-Architekturmuster .................
4.4.1 Model ...........................................................
4.4.2 View .............................................................
4.4.3 Controller ......................................................
4.4.4 Zusammenspiel bei der Webentwicklung .......
4.4.5 MVC in SAPUI5 .............................................
Erstes Beispiel ............................................................
5.5
104
106
106
107
112
113
5.2
Initialisierung der Anwendung ...................................
5.1.1 SAPUI5-Ressourcen .......................................
5.1.2 Controls ........................................................
5.1.3 SAPUI5-Theming ...........................................
Models der Datenbindung .........................................
5.2.1 JSON Model ..................................................
5.2.2 XML Model ...................................................
5.6
6
146
147
150
151
156
157
164
6.3
6.4
6.5
6.6
6.7
6.8
7
5.2.3 Resource Model .............................................
5.2.4 OData Model .................................................
5.2.5 Binding-Möglichkeiten ...................................
Mehrsprachige Anwendungen ....................................
SAPUI5-Datentypisierung ...........................................
5.4.1 Ganze Zahlen .................................................
5.4.2 Gleitkommazahlen .........................................
5.4.3 Zeichenketten ................................................
5.4.4 Boolesche Variable .........................................
5.4.5 Datum ...........................................................
5.4.6 Uhrzeit ...........................................................
5.4.7 Datum und Uhrzeit ........................................
5.4.8 Formatter-Klassen ..........................................
5.4.9 Eigene Typen .................................................
Layout-Anpassung über eigene CSS ............................
5.5.1 CSS anpassen .................................................
5.5.2 Theme Designer .............................................
Kommunikation mit dem SAP-Backend ......................
165
168
170
180
185
186
187
187
188
188
190
190
190
190
192
193
197
205
SAPUI5-Controls ...................................................... 213
6.1
6.2
115
119
122
123
123
124
124
124
129
SAPUI5-Laufzeitumgebung ...................................... 145
5.1
8
5.3
5.4
Erste Schritte in SAPUI5 .......................................... 103
4.1
5
72
74
79
jQuery ....................................................................... 83
3.1
3.2
4
2.5.2 Elemente ansprechen ....................................
2.5.3 DOM-Manipulation ......................................
Ereignisse ...................................................................
API-Referenz ..............................................................
Common-Controls (sap.ui.commons) ..........................
6.2.1 Layout ............................................................
6.2.2 UI-Controls ....................................................
UX3-Controls (sap.ui.ux3) ...........................................
Table-Control (sap.ui.table) ........................................
Charts (sap.viz) ...........................................................
Controls für mobile Anwendungen .............................
Suite-Controls (sap.suite.) ...........................................
Eigene Controls ..........................................................
214
218
218
246
266
267
268
268
269
270
Beispielentwicklung einer Anwendung ................... 275
7.1
Das UI-Design ............................................................
7.1.1 Startseite ........................................................
7.1.2 Zeiterfassung ..................................................
7.1.3 Urlaubsantrag ................................................
7.1.4 Mitarbeiterverzeichnis ....................................
7.1.5 Routenplanung ..............................................
7.1.6 Meine Daten ..................................................
275
276
276
277
278
279
280
9
Inhalt
7.2
8
280
281
287
293
298
305
315
331
SAP NetWeaver Gateway ........................................ 343
8.1
8.2
8.3
8.4
8.5
9
Implementierung .......................................................
7.2.1 Grundsätzlicher Aufbau .................................
7.2.2 Mitarbeiterverzeichnis ...................................
7.2.3 Routenplanung ..............................................
7.2.4 Meine Daten .................................................
7.2.5 Aufgaben ......................................................
7.2.6 Zeiterfassung .................................................
7.2.7 Urlaubsantrag ................................................
Grundlagen von SAP NetWeaver Gateway .................
Installation .................................................................
Konfiguration .............................................................
OData-Service implementieren ..................................
OData-Service konsumieren .......................................
343
345
346
348
364
SAP HANA ................................................................ 369
9.1
9.2
9.3
XS Engine .................................................................. 370
HANA-Zugang ........................................................... 371
Implementierung der Beispielanwendung .................. 377
10 Mobile Anwendungen .............................................. 391
10.1
10.2
10.3
10.4
Installation .................................................................
Einführung in SAPUI5 for Mobile ...............................
Mobile Lösungen mit SAPUI5 entwickeln ...................
10.3.1 Seitenaufbau von mobilen Anwendungen ......
10.3.2 Seitennavigation ............................................
10.3.3 Wo bin ich? ...................................................
10.3.4 SplitApp-Control ...........................................
10.3.5 Ereignisse auf mobilen Geräten .....................
Anwendungsbeispiel ..................................................
10.4.1 Backend-Implementierung ............................
10.4.2 Frontend-Implementierung ...........................
393
394
395
395
399
402
403
405
405
405
413
Anhang ........................................................................... 435
A
B
Weiterführende Informationsquellen .......................... 435
Über den Autor .......................................................... 437
Index .......................................................................................... 439
10
Index
$expand 358
$filter 358
$format 358
$orderby 358
$select 358
$skip 358
$top 358
.properties-Datei 166
.xsaccess 377
.xsapp 377
<body> 19
<div>-Tag 26
<footer>-Tag 23
<form>-Tag 31
<head> 19
<header>-Tag 23
<html> 19
<section>-Tag 23
A
ABAP in Eclipse 109, 110
AbsoluteLayout-Control 219
Accordion 262
Accordion-Control 331, 333
Accordion-Section 333
addStyleClass 193
Aggregation Binding 170, 171, 332
AJAX 95, 205, 238
asynchrone Verarbeitung 97
Parameterübergabe 209
readyState 97
SAP-Backend 240
send() 98
synchrone Verarbeitung 97
AJAX()-Objekt 99
AJAX-Call 240
AJAX-Parameter 208
alert 51
Analytic View 370, 387
analytische Berechtigung 383
Anker 28
Anmeldesprache 168
Anwendung, mobile 268
API-Dokumentation 130, 213
API-Referenz 215
ApplicationHeader 262
ApplicationHeader-Control 262
Architekturmuster 123
Array 72
Asynchronous JavaScript and XML 씮
AJAX
Attribute View 370
Ausgabeformat, Datum 189
AutoComplete 252, 253
B
Basis-Theme 198
Berechtigung vergeben 384
Binding 165, 170
Binding im DOM 164
bindListData 417, 428
Blockelement 26
Blue Crystal 151, 394
boolesche Werte 57
Bootstrap 145, 146
BorderLayout-Control 227
break 64
Browser 17
Browserentwicklertools 46, 193, 288
Browserspezifika 42
BSP-Anwendung 142
BusinessCard-Control 269
Button 247, 248
C
Calculation View 370, 380, 381, 386
Calendar-Control 269, 331
CalendarLegend-Control 331
Call by Reference 52
Call by Value 52
Carousel 262
Cascading Style Sheet 씮 CSS
Chart-Controls 269
Checkbox 252, 257, 309, 319
CL_HTTP_SERVER 116
ComboBox 252, 253, 254
Complex Binding 179
439
Index
Index
Control 213
eigenes 270
Controller 122, 124
Corporate Design 114
createContent 137
CRUD-Operation 168, 344
CSS 34, 192
anpassen 193
Reihenfolge 195
CSS-Deklaration 34
CSS-Hierarchie 35, 38
CSS-Parameter 192
CSS-Regel-Spezifität 39
CSS-Selektor 39
Custom-Control 315, 322
CustomData-Attribut 321
D
Data Binding 156
JSON Model 156
OData Model 156
Resource Model 156
XML Model 156
Data-Binding-Muster 156
Datejs 317
Datenbanktunnel 374
Datenmodell 349
Daten-Provider-Klasse 348
Datentyp 185
Datentyp Integer 186
Datentypisierung 185
Datenübertragung 238
Datenvorschau 386
DatePicker 252, 254
DatePicker-Control 322
Datum formatieren 305
Datumsfelder 308
DB-Tunnel 373, 374
Deklaration (CSS) 34
Demo Kit 105, 130, 213
Detail-Sektion 403
DHTML 45
Diagramm 268
DialogBox-Control 282
document 71
Document Object Model 57, 71
Dokumentkompatibilitätsmodus 22
Dokumentkörper 22
440
DOM 57, 71
DOM-Baum 72
DOMContentLoaded 85
DOM-Eigenschaft 73
DOM-Manipulation 74, 91
DropdownBox 252
DropdownBox-Control 254
Drop-down-Liste 253
E
Eclipse 106
Codemuster 131
Download 107
Komponente installieren 108
Project Explorer 142
Projekt anlegen 124
Vorschaufunktion 134
ECMAScript 46
EDMX-Datei 349
eigenes Control 270
Element Binding 170, 174
Entitätenmenge 348, 352
Entitätstyp 348, 350, 351, 352
Entity Data Model 351
EPM-Demoszenario 380
Ereignis 79, 89
DOMContentLoaded 85
onAfterRendering 128
onBeforeRendering 128
onExit 128
onInit 128
Event Handler 80
Event Listener 80, 85, 132
EventBus 420
Event-Objekt 79
Events 216
Extended Application Service 씮 XS
Extended Data Binding 178
extend-Methode 270
externe Ressource 318
F
Factory-Funktion 85
fakeOS 395
Feldattribut 351
FileUpload 252
FileUploader 301
FileUploader-Control 255
Firebug 75
for 65
Formatierungsoption 186
FormattedTextView 247, 248
Formatter 190
Formatter-Klasse 190
Form-Container 230
Form-Control 230
FormElement 230
Formular 31, 230, 322
for-Schleife 320
Funktion JavaScript 48
G
Gateway aktivieren 347
Gateway-Service
aktivieren 354
Fehlerprotokoll 360
generieren 353
implementieren 359
Query-Option 357
Query-Parameter testen 358
testen 354
URL-Parameter 357
GET 32, 98
get_form_fields 208
GetEntitySet 358
GET-Methode 33
Gold Reflection 151
Google Maps 293
Google-API 293
Grid-Layout 231
singleColumn 232
GUID 180
GW_CORE 343
H
HANDLE_REQUEST 117, 119, 206
High Contrast Black 151
HorizontalLayout-Control 223
HTML 17
Dokumentkörper 19
Dokumenttypdeklaration 18
Element 18
Kopfbereich 19
Textabsatz 24
HTML (Forts.)
Textauszeichnung 27
Überschriften-Tag 23
Zeichenkodierung 19
HTML5 18
HTML-Control 247, 248
HTML-View 126
HTTP_DISPATCH_REQUEST 116
HTTP-Anfrage 115
HTTP-Handler 121, 206
HTTP-Kommunikation 205
HTTP-Statuscode 98
Hybrid-Web-Container 392
Hyperlink 28
Hypertext Markup Language 씮 HTML
I
i18n 166
ICF-Controller 116
ICF-Knoten 119, 206, 239, 306
ICF-Knoten anlegen 120
ICF-Service 105
ICM 116
ICM-Monitor 122
ID-Selektor 39
IF_HTTP_EXTENSION 119
if-Abfrage 60
Ikone 306
Image-Control 247, 248
ImageMap 247
ImageMap-Control 248
innerHTML 74
Installation SAPUI5 104
Installationsanleitung SAPUI5 105
Installationspaket SAPUI5 104
Internationalisierung 166
Internet Communication Manager
씮 ICM
IW_BEP 343
IW_FND 343
J
Java Runtime-Version
JRE 107
JavaScript 45
Ablauflogik 49
Argument 50
441
Index
Index
JavaScript (Forts.)
do-while-Schleife 69
for-in-Schleife 69
for-Schleife 65
Funktion 48
if 61
Kommentar 48
Konstruktor 51
Objekt 51
Punktnotation 52
return 50
Rückgabe 50
Sichtbarkeit von Variablen 55
switch 63
this 53
typeof 60
Variablendeklaration 54
Variablentyp 54
while 67
JavaScript-Code einbinden 47
JavaScript-Ereignis 80
JavaScript-View 126
JDBC 168
Join-Knoten 382
jQuery 83
AJAX()-Objekt 99
DOM-Manipulation 91
Ereignis 89
Factory-Funktion 85
hasAttribute-Selektor 86
Methoden verketten 88
Objekt 85
Punktnotation 88
ready-Funktion 85
Selektor 85, 86
jQuery einbinden 84
jQuery.device.is.desktop 403
jQuery.device.is.phone 403, 426
jQuery.device.is.tablet 403
jQuery.support.touch 403
jQuery-Bibliothek 83
jQuery-DOM-Funktion 93
jQuery-DOM-Manipulation 씮 DOMManipulation
jQuery-Ereignis
.bind 91
.blur 91
.change 91
.click 91
442
jQuery-Ereignis (Forts.)
.dbclick 91
.hover 91
.keypress 91
.keyup 91
.mousemove 91
.on 91
JScript 45
JSON 53, 157, 290
relativer Pfad 158
JSON in ABAP 208
JSON Model 157, 238, 253
JSON-Notation 54, 135
JSON-Response ABAP 206
JSON-View 126
K
Klassenselektor 39
Kommentar JavaScript 48
Konsole 46
Konstruktor 135, 216
Konstruktorfunktion 131
Kopfbereich HTML-Dokument 22
L
Label 247
Label-Control 249
Laufzeitumgebung 145
Laufzeitversion 150
Layout 192, 218
LDML 188
LESS 192
Link 247
Link-Control 249
ListBox 252
ListBox-Control 255
lokale Entwicklung 142
Loose Typing 56
M
Master-Sektion 403
MatrixLayout-Control 224, 247
MenuBar 262, 263
Methode 216
MIME-Repository 261, 307
mobile Anwendung 268
Mobile Visual Identity 151, 394
Model 122, 123
Model-Provider-Klasse 348
Model-View-Control 씮 MVC
Model-View-Control-Architekturmuster 씮 MVC-Architekturmuster
Multipart-Segment 258, 261
MVC 113, 122
Controller 124
Model 123
Muster 124
View 123
MVC-Architekturmuster 113, 122,
123, 128, 281
parseFloat 306, 309
PasswordField 252
PasswordField-Control 256
PhoneGap 395
placeAt 132
Platinum 151
Plattform SAPUI5 114
Port-Information 117
POST 32, 98
http 208
Property Binding 170
Protokollierung 46
Punktesystem, CSS-Gewichtung 39
Punktnotation 52, 88
N
R
Nachfahrselektor 39
Named Binding 177
NaN 57
NavContainer 399
navigate-Event 399
Negationsoperator 60
Nicht-Operator 304
NoteTaker-Control 269
NotificationBar 267
Notifier-Control 304
null 57
RadioButton 252, 256
Registerkarte 244
renderer-Methode 271
RenderManager 271
Representational State Transfer 343
Request 115
Request-Objekt 208
rerender-Funktion 301
Resource Model 165
Response 115
Responsive-Layout 234
Gewichtung 234
Ressource, externe 318
REST-Architektur 343
Ripple Emulator 393
RoadMap-Control 265
RowRepeater 262
RowRepeater-Control 288, 290
O
Objekt, transportierbares 142
OData 168, 343
OData Channel 343
OData-Bibliothek 343
OData-Filter 364
OData-Service 169, 343, 386
ODBC 168
oder-Operator 60
onAfterRendering 295
onBeforeFirstShow 417
Open Data 343
Open Data Protocol 168
P
Pane 242
Panel-Control 241
Parent-Child-Binding 174
S
SAP Fiori 245, 392
SAP HANA 369
Aggregation-Knoten 383
hdbrole 387
OData-Service 388
Repository Package 379
Repository-Zugriff 376
SQL Console 384
SAP HANA Client 373
SAP HANA Cloud Platform
Cockpit 371
443
Index
Index
SAP HANA Developer Studio 373
SAP HANA Repository Workspace
378
SAP HANA Studio 373
SAP NetWeaver Application Server
ABAP 103, 115
SAP NetWeaver Gateway 169, 343,
345
Datenmodell 349
SAP NetWeaver Gateway Developer
Guide 348
SAP NetWeaver Gateway Service
Builder 345, 348
sap.m 268, 394
sap.m.App 396, 397, 400
sap.m.Bar 426
sap.m.Button 401
sap.m.Carousel 425
sap.m.List 419, 425
sap.m.Page 397, 400, 419, 426
sap.m.Slider 401
sap.m.SplitApp 414
sap.m.Text 400
sap.makit 268
sap.me 268
sap.me.Calendar 332, 424
sap.me.CalendarEventType 336
sap.me.CalendarLegend 333
sap.suite 269
sap.ui.commons 218, 246
sap.ui.commons.Accordion 333
sap.ui.commons.AccordionSection
333
sap.ui.commons.Button 294, 301,
302, 325, 334, 338
sap.ui.commons.ComboBox 316,
323, 337
sap.ui.commons.DatePicker 313, 322
sap.ui.commons.Dialog 337
sap.ui.commons.FileUploader 302
sap.ui.commons.form.SimpleForm
313
sap.ui.commons.form.SimpleFormLayout.GridLayout 313
sap.ui.commons.Image 301
sap.ui.commons.Label 289, 290, 294,
300, 338
sap.ui.commons.layout.HorizontalLayout 289, 337, 338
444
sap.ui.commons.layout.MatrixLayout 289, 290, 300, 307, 331
sap.ui.commons.layout.MatrixLayoutCell 290, 300
sap.ui.commons.layout.MatrixLayoutRow 290
sap.ui.commons.layout.VerticalLayout 285, 295, 333, 337
sap.ui.commons.MessageBox 339
sap.ui.commons.RadioButton 324
sap.ui.commons.RatingIndicator 309
sap.ui.commons.RowRepeater 290
sap.ui.commons.TextArea 324, 337
sap.ui.commons.TextField 289, 294,
300
sap.ui.commons.TextView 289, 300,
307, 309, 331, 332
sap.ui.commons.Toolbar 308, 334
sap.ui.core.Control.extend 316
sap.ui.core.CustomData 426
sap.ui.core.EventBus 420
sap.ui.core.HTML 294
sap.ui.core.ListItem 323, 337
sap.ui.layout.VerticalLayout 302
sap.ui.model.Filter 289, 321, 323,
333, 427
sap.ui.model.FilterOperator 322, 323
sap.ui.model.json.JSONModel 287,
312, 327
sap.ui.model.odata.Filter 364
sap.ui.model.odata.ODataModel 364
sap.ui.model.type.DateTime 308,
319, 332
sap.ui.model.type.Time 319
sap.ui.table 267, 305
sap.ui.table.Column 308, 309, 319
sap.ui.table.Table 308, 319
sap.ui.ux3 266
sap.ui.ux3.NotificationBar 286
sap.ui.ux3.Notifier 286
sap.ui.ux3.OverlayDialog 284
sap.ui.ux3.Shell 282
sap.ui.ux3.ToolPopup 314
sap.ui-Klasse 216
sap.viz 268, 305
sap.viz.ui5.data.FlattenedDataset
310, 326
sap.viz.ui5.Donut 310
sap.viz.ui5.Line 326
SAP-Hinweis 112
SAP-Standardsymbol 306
SAPUI5
addStyleClass 193
Aggregation Binding 171
Anwendungsobjekt 129
Anwendungsprojekt 124
API-Dokumentation 130
Bibliothek einbinden 150
bindAggregation 172
bindProperty 171
boolesche Variable (Datentyp) 188
Bootstrap 146
Complex Binding 179
createContent 137
Custom-Control 315
Data Binding 156
Datentyp 185
Datum (Datentyp) 188
Debug-Modus 150
Demo Kit 130
eigener Typ 190
einchecken 142
Element Binding 174
Event Listener 132
Extended Data Binding 178
ganze Zahl (Datentyp) 186
Gleitkommazahl (Datentyp) 187
HTML-View 126
Installation 104
JavaScript-View 126
JSON-View 126
Klasse 150
Laufzeitversion 150
loadData 205
MVC 135
Named Binding 177
Namensraum 150, 214
placeAt 132
Property Binding 170
renderer 317
Ressource 148
Ressourcenpfad 149
Schreibweise 134
Seitenrumpf 128
setModel 170
sprachabhängige Datei 165
Sprache ermitteln 168
Team Provider 107, 110, 138
SAPUI5 (Forts.)
Theme 151
Übersetzung 180
Uhrzeit (Datentyp) 190
Versionsprüfung 142
vordefiniertes Ereignis 128
XML View 126
Zeichenkette (Datentyp) 187
SAPUI5-Bibliothek 106
SAPUI5-Komponente Tools IDE Plugin
110
SAPUI5-Plug-ins installieren 111
screen 71
SE63 183
SearchField 252
SearchField-Control 256
SegmentedButton 263
SEGW 348
Selektor 34, 38
Semantische Trennung 23
Service aktivieren 121
Service anlegen 120
Service ICF 119
Service Marketplace 110
Service-Katalog 354
Shell 266, 281
content 282
designType 286
headerItem 281
Suchfunktion 291
WorksetItem 281
Shell-Control 281
SimpleForm-Container 237
singleColumn 233
SMTP 116
SplitApp-Control 403, 414
Splitter-Control 씮 splitterOrientation
splitterOrientation 242
Sprachdatei 166
Standard-Plug-ins 109
stateful 210
stateless 210, 343
Styleguide 114
Support Packages SAPUI5 104
switch 62
Systemalias 347
445
Index
T
Tabellenelement 30
Table-Control 267
TabStrip-Control 244
Task Handler 116
TCP/IP 116
Team Provider 110, 138
Team-Provider-Funktionalität 106
Template 171
TextArea 252, 257
Textelement 182
TextField 252
liveChange 289
Texttyp 180
TextView 247, 249
Theme 151, 198
Theme anpassen 200
Theme Designer 196, 197
Basis Theme 198
Bearbeitungsmodus 200
Theme anpassen 200
Vorschaufunktion 199
Theme einbinden 204
Theme herunterladen 203
Theming 192
this 53
ToggleButton 247, 249
ToolBar 263
ToolPopup-Control 313
Transaktion SICF 105, 117, 120
Transaktion SMICM 122
Trennung, semantische 23
Typkonvertierung 59
Typselektor 39
U
Übersetzungsobjekttypen 180
Übersetzungswerkzeug 168
UI Development Toolkit 118
UI Development Toolkit for HTML 5
105
446
UI-Controls 150
undefined 57
und-Operator 60
Universalselektor 39
User Experience Guideline 266
UX3-Controls 266
V
ValueHelpField 252, 257
var 55
Vererbung 216
Vergleichsoperator 59
VerticalLayout-Control 222
View 122, 123
initialer 125
Vorschaufunktion 199
W
W3C-Standard 79
Webentwicklertools 37
Webkonsole 163
Wertehilfe 257
window 51, 71
X
XML Model 164
XMLHttpRequest 97
XML-View 126
XS 370
XS-Projekt 377
Z
Zeichenverkettung 58
Zielgerät Desktop 129
zustandsbehaftet 210
zustandslos 210, 343
Zuweisungsoperator 59
Wissen aus erster Hand.
Miroslav Antolovic ist bei der bsc solutions GmbH & Co. KG als SAPEntwickler und -Trainer tätig. 1999 begann er als Anwendungsentwickler bei der SAP AG im Product Lifecycle Management, und 2004 wechselte er zu REALTECH AG, bei der er SAP-Add-on-Produkte entwickelte.
Ab 2007 war er als Leiter der SAP-Entwicklung bei der SEEBURGER AG
tätig, bis er schließlich 2010 zu bsc solutions wechselte.
Miroslav Antolovic
Einführung in SAPUI5
446 Seiten, gebunden, März 2014
69,90 Euro, 978-3-8362-2753-7
www.sap-press.de/3533
Wir hoffen sehr, dass Ihnen diese Leseprobe gefallen hat. Gerne dürfen Sie
diese Leseprobe empfehlen und weitergeben, allerdings nur vollständig mit
allen Seiten. Die vorliegende Leseprobe ist in all ihren Teilen urheberrechtlich geschützt. Alle Nutzungs- und Verwertungsrechte liegen beim Autor
und beim Verlag.
Teilen Sie Ihre Leseerfahrung mit uns!