Inhalt Einleitung .................................................................................. 1 SAP HANA als Entwicklungsplattform ................... 21 1.1 1.2 1.3 1.4 1.5 1.6 1.7 2 13 Die Revolution der In-Memory-Technologie ........... Komponenten der SAP-HANA-Plattform ................. 1.2.1 SAP HANA als vollständige Datenbank ...... 1.2.2 SQL-Schnittstelle ....................................... 1.2.3 Business Function Library und Predictive Analysis Library ......................................... 1.2.4 Multiple In-Memory-Speicher ................... 1.2.5 Effiziente Datenspeicherung ...................... 1.2.6 Parallele Verarbeitung ............................... 1.2.7 SAP HANA Extended Application Services ..................................................... Anwendungsgebiete für native SAP-HANAAnwendungen ........................................................ Programmiermodelle für SAP HANA ....................... 1.4.1 Native Anwendungsentwicklung ................ 1.4.2 Nicht native Anwendungsentwicklung ....... SAP HANA Cloud Platform ..................................... 1.5.1 Architektur, Entwicklungsmodelle und Werkzeuge ................................................ 1.5.2 Benutzerkonto für die SAP HANA Cloud Platform anlegen ....................................... 1.5.3 SAP-HANA-Instanz anlegen ....................... SAP HANA Studio ................................................... Webbasierte Entwicklung ....................................... 1.7.1 SAP Web IDE ............................................ 1.7.2 SAP HANA Web-based Development Workbench ............................................... 21 25 26 26 27 28 29 35 36 38 40 40 41 42 42 46 49 51 53 53 57 Struktur einer nativen SAP-HANA-Anwendung ..... 61 2.1 2.2 Architektur und Programmiermodell der SAP-HANA-Plattform .............................................. Ihre erste Anwendung erstellen .............................. 2.2.1 Repository Workspace erstellen ................. 62 64 66 7 Inhalt Inhalt 2.3 2.4 2.5 3 3.3 3.4 3.5 3.6 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 97 98 99 102 105 111 112 115 118 120 125 SAP HANA Information Views im SAP HANA Studio ................................................... Attribute Views erstellen ......................................... Analytic Views erstellen ........................................... Calculation Views erstellen ...................................... Hierarchien .............................................................. Berechnete Spalten ................................................. Variablen und Filter ................................................. Analytic Privileges definieren ................................... Information Views lesen .......................................... 131 137 142 150 162 164 166 168 169 Anwendungsentwicklung mit der SAP HANA XS Engine .............................................. 171 5.1 5.2 8 Beispielmodell zur Sensordatenspeicherung ............. Datenmodell mit Core Data Services definieren ....... 3.2.1 CDS-Dokument anlegen ............................. 3.2.2 Datentypen definieren ............................... 3.2.3 Entitäten und Assoziationen definieren ...... 3.2.4 Views definieren ........................................ 3.2.5 CDS-Annotationen definieren .................... Daten mit CDS-Tabellenimport importieren ............. CDS-Objekte ändern ............................................... Datenmodell mit HDBTable definieren .................... SAP HANA Smart Data Access (SDA) ....................... Echtzeitauswertung mit Information Views ........... 129 4.1 5 67 71 78 82 87 Definition des Datenmodells .................................. 91 3.1 3.2 4 2.2.2 Neues XS-Projekt anlegen .......................... 2.2.3 Serverseitiges JavaScript ............................. Anwendungssicherheit ............................................ Verwaltung von Anwendungsobjekten .................... Spezielle Objekte der SAP HANA Cloud Platform .... Programmiermodell der XS Engine .......................... Serverseitiges JavaScript .......................................... 5.2.1 Objekte ...................................................... 5.2.2 Variablen ................................................... 172 175 176 177 5.2.3 Funktionen ................................................ 5.2.4 Kontrollstrukturen ..................................... 5.3 JavaScript-Bibliotheken ........................................... 5.4 JavaScript-API ......................................................... 5.5 XS-Request-Verarbeitung ........................................ 5.5.1 HTTP-Protokoll .......................................... 5.5.2 Request-Processing-API ............................. 5.6 Integration von externen HTTP-Services .................. 5.6.1 Syntax der XS-Destination-Datei ................ 5.6.2 Eine XS-Destination-Datei erstellen ........... 5.6.3 Erweiterung der XS-Destination ................. 5.6.4 XSJS-Outbound-API .................................. 5.6.5 Onlineabfrage der Wetterdaten ................. 5.6.6 Sichere HTTP-Services aufrufen .................. 5.7 XSJS-Outbound-API ................................................ 5.7.1 SMTP-Konfiguration erstellen .................... 5.7.2 E-Mail versenden ...................................... 5.8 Datenbankzugriff mit der XS Engine ........................ 5.8.1 Verwendung der Legacy Database-API ...... 5.8.2 SAP HANA Spatial Engine .......................... 5.8.3 Verwendung der neuen Database-API ....... 5.8.4 XS SQL Connection ................................... 5.9 XS-Jobs einplanen ................................................... 5.9.1 JavaScript-Datei erstellen .......................... 5.9.2 XS-Job anlegen und konfigurieren ............. 5.9.3 XS-Job verwalten ....................................... 5.9.4 Jobsteuerung zur Laufzeit .......................... 5.10 Sicherheit von nativen Anwendungen ..................... 5.10.1 Injection Flaws .......................................... 5.10.2 Cross-Site Scripting (XSS) ........................... 5.10.3 Cross-Site Request Forgery ........................ 5.10.4 Unzulässige Authentifizierungen und Sessions ..................................................... 5.10.5 Manipulation der XML-Verarbeitung ......... 5.11 Tracing von XS-JavaScript-Anwendungen ................ 5.11.1 Konfiguration im SAP HANA Studio .......... 5.11.2 Konfiguration in der SAP HANA Web-based Development Workbench ....... 178 180 181 183 185 186 187 190 192 196 199 201 201 204 206 207 209 210 212 217 221 226 231 233 234 239 240 241 241 243 243 244 244 246 247 248 9 Inhalt Inhalt 6 6.1 6.2 6.3 7 7.3 8.2 8.3 Architektur von SAPUI5 ........................................... Konzepte einer SAPUI5-Anwendung ....................... 7.2.1 Model View Controller ............................... 7.2.2 Data Binding .............................................. 7.2.3 Navigation und Routing ............................. Entwicklung einer SAPUI5-Anwendung ................... 7.3.1 SAP Web IDE starten und aufsetzen ........... 7.3.2 Projekt anlegen .......................................... 7.3.3 Auf die Wetterdaten zugreifen ................... 7.3.4 Darstellung der Wetterdaten ...................... 7.3.5 Darstellung der Wetterstationen ................ Verarbeitung textbasierter Daten ............................. 8.1.1 Volltextindex definieren ............................. 8.1.2 Volltextsuche implementieren .................... 8.1.3 Textanalyse ................................................ Verarbeitung räumlicher Daten ................................ Data Mining und prädiktive Analysen ...................... 9.3 9.4 9.5 SQLScript-Prozedur testen ......................... Tabellentypen für Eingabe- oder Ausgabeparameter definieren .................... Templates für SQLScript-Prozeduren erstellen ......... Debugging von SQLScript-Prozeduren .................... Benutzerdefinierte Funktionen ................................ 9.5.1 Skalarwertfunktionen ................................. 9.5.2 Tabellenwertfunktionen ............................. 356 357 361 366 372 373 377 10 Webbasierter Datenzugriff ..................................... 383 259 260 266 267 267 272 277 282 283 284 296 304 306 322 322 328 331 334 340 SQLScript ................................................................. 347 9.1 9.2 10 250 251 251 252 253 254 Verarbeitung räumlicher und unstrukturierter Daten ............................................ 321 8.1 9 Vorbereitung der SAP HANA XS Data Services ......... CDS-Entitäten als JavaScript-Objekte importieren .... 6.2.1 Erweiterung des Datenmodells ................... 6.2.2 Laufzeitverbesserung .................................. Mit dem Datenmodell arbeiten ............................... 6.3.1 Im verwalteten Modus arbeiten ................. 6.3.2 Entitäten im verwalteten Modus verwalten ................................................... 6.3.3 Im unverwalteten Modus arbeiten ............. Entwicklung von Benutzeroberflächen ................... 265 7.1 7.2 8 9.2.1 9.2.2 Erweitertes Programmiermodell mit den SAP HANA XS Data Services ................................... 249 Werkzeuge zur Arbeit mit SQLScript ........................ 348 Eine SQLScript-Prozedur erstellen ........................... 350 10.1 Datenbankzugriff mit OData ................................... 10.1.1 OData und die SAP HANA XS Engine ........ 10.1.2 OData-Service erstellen ............................. 10.1.3 OData-Services definieren ......................... 10.1.4 Lesende Zugriffe mittels OData-Services .... 10.1.5 Abfrageoptionen ....................................... 10.1.6 Besonderheiten bei der OData-ServiceDefinition .................................................. 10.1.7 Schreibende Zugriffe mittels OData-Services .......................................... 10.2 Datenbankzugriff mit XMLA ................................... 10.2.1 MDX Query Language ............................... 10.2.2 XML for Analysis (XMLA) .......................... 10.2.3 XMLA-Service-Definition ........................... 384 387 390 394 396 399 402 410 416 416 418 419 11 Native SAP-HANA-Anwendungen debuggen und testen .............................................. 421 11.1 Debugging von XS-JavaScript-Dateien .................... 11.1.1 Debugging auf einer On-PremiseSAP-HANA-Plattform ................................ 11.1.2 Debugging in der SAP-HANA-TrialInstanz ...................................................... 11.2 Automatisierte Tests mit XSUnit ............................. 11.2.1 XSUnit-Syntax ........................................... 11.2.2 Datenbankverbindung ............................... 11.2.3 Test Suite mit XSUnit anlegen .................... 11.2.4 Test Suites ausführen ................................. 11.3 Mocking von Testdaten .......................................... 11.3.1 Initialisierung von Mockstar ....................... 422 423 426 429 431 434 435 437 439 441 11 Inhalt 11.3.2 Definition von Testdaten ............................ 443 11.3.3 Integration der Testdaten in XSUnit ........... 445 11.4 HTTP-Services mit XSUnit testen ............................. 446 12 Lebenszyklus einer nativen SAP-HANAAnwendung verwalten ............................................ 449 12.1 Lebenszyklusphasen einer nativen SAP-HANAAnwendung ............................................................. 12.2 SAP HANA Lifecycle Management ........................... 12.3 Änderungsaufzeichnung .......................................... 12.4 Delivery Units verwalten ......................................... 12.5 Definition des Transports ......................................... 450 452 456 461 465 13 SAP HANA Extended Application Services Advanced und weitere neue Konzepte ................... 471 13.1 13.2 13.3 13.4 Neuerungen in der SAP HANA XS Engine ................ Neuerungen in der Anwendungsentwicklung ........... Neues Entwicklungswerkzeug .................................. Neuerungen bei der Definition des Datenmodells .... 472 476 478 479 Anhang ............................................................................ 483 A Abkürzungsverzeichnis ....................................................... 485 B Weiterführende Informationsquellen ................................. 487 C Die Autoren ....................................................................... 491 Index ......................................................................................... 493 12