sap web client - s3-eu-west-1.amazonaws.com genil-komponenten ... 9.7 neuerungen mit sap crm 7.0...

46
Bonn Boston Tim Back, Michael Füchsle, Uwe Reimitz SAP ® Web Client Das umfassende Handbuch für Entwickler

Upload: trinhtu

Post on 15-Apr-2018

237 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

Bonn � Boston

Tim Back, Michael Füchsle, Uwe Reimitz

SAP® Web ClientDas umfassende Handbuch für Entwickler

1509.book Seite 3 Samstag, 7. August 2010 3:18 15

Page 2: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

Auf einen Blick

1 Einleitung .................................................................. 23

2 Grundlagen ................................................................ 27

3 Unterschiede in der Entwicklung von Web Dynpro (ABAP) und Web Client ........................ 47

4 Generic Interaction Layer .......................................... 65

5 Business Object Layer ............................................... 85

6 Werkzeuge ................................................................. 125

7 Bausteine der UI-Implementierung ........................... 175

8 Generische Anwendungsdienste ............................... 247

9 Design Layer .............................................................. 299

10 Anpassung von Benutzeroberflächen ........................ 317

11 Delta-Handling und fortgeschrittene Anpassungen der Benutzeroberfläche ....................... 383

12 Flash Islands und andere aktive Inhalte .................... 443

13 Das grafische Modellierungswerkzeug Nexus .......... 465

14 Session-Verwaltung und Proxy-Server ...................... 479

15 Web-2.0-Features im Web Client ............................. 501

16 Erweiterungskonzepte ............................................... 519

17 Tipps und Hinweise für die Entwicklung ................... 563

18 Hinweise zur Performanceoptimierung ..................... 585

19 Kochrezepte für die Praxis ........................................ 597

1509.book Seite 5 Samstag, 7. August 2010 3:18 15

Page 3: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

7

Inhalt

Vorwort ....................................................................................... 17

1 Einleitung ................................................................. 23

1.1 Historie des Frameworks ............................................. 231.2 Ausblick ...................................................................... 26

2 Grundlagen ............................................................... 27

2.1 Architekturüberblick ................................................... 282.2 BSP-Programmiermodelle ........................................... 302.3 Web Client Framework ............................................... 342.4 Tag-Bibliotheken ........................................................ 372.5 Web-Client-Komponenten ......................................... 402.6 Anwendungsrahmen ................................................... 442.7 Switch Framework und Erweiterungspakete ................ 45

3 Unterschiede in der Entwicklung von Web Dynpro (ABAP) und Web Client ............................................ 47

3.1 Unterschiede im Design .............................................. 473.2 Werkzeuge ................................................................. 503.3 Unterstützung durch Code-Generierung ...................... 523.4 Darstellung der UI-Komponenten ............................... 533.5 UI-Designer und Konfigurationstool ........................... 543.6 Kontext und Kontextknoten ....................................... 583.7 Controller und deren Methoden ................................. 623.8 Komponentennavigation ............................................ 63

4 Generic Interaction Layer ......................................... 65

4.1 Architekturübersicht ................................................... 654.2 Objektmodell ............................................................. 67

4.2.1 Allgemeine Definitionen ................................ 674.2.2 Objekte .......................................................... 674.2.3 Relationen ..................................................... 69

4.3 Unterstützte Operationen ........................................... 704.4 Datencontainer ........................................................... 734.5 Meldungskonzept ....................................................... 754.6 GenIL-Komponenten .................................................. 77

1509.book Seite 7 Samstag, 7. August 2010 3:18 15

Page 4: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

Inhalt

8

4.6.1 Komponentendefinition und Komponentensets ......................................... 78

4.6.2 Anforderungen an das Verhalten einer Komponente ................................................. 80

4.7 Verwendung des GenILs ............................................ 814.8 Beispielkomponente SAMPLE .................................... 82

5 Business Object Layer .............................................. 85

5.1 BOL-API .................................................................... 865.2 BOL-Core ................................................................... 88

5.2.1 Initialisierung ................................................ 885.2.2 Erweitern des Objektmodells ......................... 895.2.3 Sammelmethoden ......................................... 90

5.3 Such-Services ............................................................. 915.3.1 Einfache Suchen ............................................ 915.3.2 Dynamische Suchen ...................................... 92

5.4 Traversieren durch Objekthierarchien ......................... 935.4.1 Lesen von Daten ........................................... 935.4.2 Verfolgen von Relationen .............................. 955.4.3 Parent- und Root-Beziehung ......................... 96

5.5 Objektbearbeitung ..................................................... 975.5.1 Anlegen und Löschen von Wurzelobjekten .... 975.5.2 Ändern von Attributen .................................. 985.5.3 Anlegen und Löschen von Unterobjekten ...... 995.5.4 Objektmethoden ........................................... 1005.5.5 Dynamische Objekteigenschaften .................. 1015.5.6 Zustände von BOL-Entitäten ......................... 1015.5.7 Meldungen ................................................... 102

5.6 Transaktionsverwaltung ............................................. 1045.6.1 Transaktionszyklus ......................................... 1045.6.2 Transaktionskontexte .................................... 106

5.7 Collections ................................................................. 1075.7.1 Grundfunktionen ........................................... 1075.7.2 Einzel- und Mehrfachselektion ...................... 1085.7.3 Iteratoren ...................................................... 1095.7.4 Sortieren und Filtern ..................................... 1105.7.5 Spezielle Collections ...................................... 112

5.8 BPath ......................................................................... 1135.8.1 Gemeinsamkeiten und Unterschiede zu

XPath ............................................................ 1145.8.2 Integration in die BOL-API ............................ 115

1509.book Seite 8 Samstag, 7. August 2010 3:18 15

Page 5: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

Inhalt

9

5.8.3 Erste Schritte mit BPath ................................. 1165.8.4 Ergebnisdefinition .......................................... 1185.8.5 Fortgeschrittene Funktionen .......................... 1205.8.6 Modellprüfung ............................................... 121

5.9 Integration ins UI-Framework ..................................... 122

6 Werkzeuge ............................................................... 125

6.1 Komponenten-Workbench ......................................... 1266.1.1 Komponentenstruktur-Browser ...................... 1296.1.2 Detailstruktur-Anzeige ................................... 1316.1.3 Runtime-Repository-Details ........................... 1356.1.4 Konfiguration ................................................. 1366.1.5 Runtime Repository Editor ............................. 1466.1.6 BOL-Modell-Browser ..................................... 1516.1.7 Assistenten .................................................... 152

6.2 GenIL-Modell-Browser ............................................... 1546.3 GenIL-Modellierungseditor ......................................... 1586.4 BOL-Browser .............................................................. 1596.5 Upgrade-Support und Prüfwerkzeuge ......................... 164

6.5.1 Zentrales Prüfwerkzeug .................................. 1656.5.2 Abgleich von Runtime Repositorys ................. 169

7 Bausteine der UI-Implementierung ......................... 175

7.1 Views und Controller .................................................. 1757.1.1 Controller und Kontext .................................. 1757.1.2 Event Handler ................................................ 1777.1.3 Plugs .............................................................. 1787.1.4 Kontext .......................................................... 1817.1.5 View-Kontext ................................................. 1917.1.6 View-Layout .................................................. 196

7.2 UI-Komponenten ........................................................ 1977.2.1 Controller-Typen ............................................ 1977.2.2 Runtime Repository ....................................... 2007.2.3 Kontextknotenbindung .................................. 2037.2.4 Navigation ..................................................... 206

7.3 Zusammengesetzte Anwendungen .............................. 2147.3.1 Komponentenschnittstelle ............................. 2157.3.2 Verwendung von UI-Komponenten ................ 217

7.4 View-Typen ................................................................ 2217.4.1 Formular-View ............................................... 221

1509.book Seite 9 Samstag, 7. August 2010 3:18 15

Page 6: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

Inhalt

10

7.4.2 Tabellen-View ............................................... 2257.4.3 Baumstruktur-View ....................................... 2277.4.4 Viewset ......................................................... 230

7.5 Seitentypen ................................................................ 2327.5.1 Suchseiten ..................................................... 2327.5.2 Übersichtsseiten ............................................ 2377.5.3 Bereichsstartseiten ........................................ 2417.5.4 Geführte Aktivitäten ...................................... 242

8 Generische Anwendungsdienste .............................. 247

8.1 Komponentenübergreifende Navigation ..................... 2478.2 Konzept: Führende Entität ......................................... 2528.3 Meldungsausgabe ...................................................... 253

8.3.1 Einstellungen zur Meldungsleiste ................... 2558.3.2 Ausgabe einer Meldung in der

Meldungsleiste .............................................. 2578.3.3 Meldungsfilter ............................................... 2608.3.4 Meldungsersetzung ....................................... 2628.3.5 Meldungen mit Feldbezug ............................. 263

8.4 Viewgruppen-Kontext ................................................ 2658.5 Breadcrumbs .............................................................. 272

8.5.1 Funktionsweise der Navigationshistorie ......... 2728.5.2 Arten der Aufzeichnung ................................. 2768.5.3 Historientypen .............................................. 2778.5.4 Systemeinstellungen ...................................... 279

8.6 Generische Mussfeld-Prüfung ..................................... 2798.7 Pop-up-Dialogfenster ................................................. 281

8.7.1 Pop-up für Abfragen ...................................... 2828.7.2 Pop-up zur View-Darstellung ........................ 284

8.8 Data-Loss-Popup ....................................................... 2868.9 Schaltflächen ............................................................. 290

8.9.1 Schaltflächen in der Arbeitsbereichsfunktionsleiste ....................... 290

8.9.2 Schaltflächen in Zuordnungsblöcken .............. 2938.9.3 Tag »THTMLB:Button« ................................... 295

8.10 Internationalisierung .................................................. 2958.10.1 Online Text Repository .................................. 2968.10.2 Setzen von Arbeitstiteln ................................ 297

1509.book Seite 10 Samstag, 7. August 2010 3:18 15

Page 7: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

Inhalt

11

9 Design Layer ............................................................. 299

9.1 Architekturübersicht ................................................... 3009.1.1 Designzeit ...................................................... 3019.1.2 Laufzeit .......................................................... 302

9.2 Definitionen ............................................................... 3029.2.1 UI-Objekttypen .............................................. 3029.2.2 Designobjekte ................................................ 3039.2.3 Designs .......................................................... 3049.2.4 Generische Objekttypen ................................. 3069.2.5 Referenz-Designobjekte ................................. 306

9.3 Zuordnung von Design-Layer-Definitionen ................. 3079.4 Laufzeitverhalten ........................................................ 3109.5 Anwendung des Design Layers zur UI-Anpassung ....... 313

9.5.1 Zentrale Änderung von Feldbezeichnern oder Ausblenden von Feldern ........................ 313

9.5.2 Einsatz des Design Layers bei Objekterweiterungen ..................................... 314

9.6 Weiterführende Themen ............................................. 3149.6.1 Speicheroptimierung beim Einsatz des

Design Layers ................................................. 3159.6.2 Hilfe bei der Fehleranalyse ............................. 315

9.7 Neuerungen mit SAP CRM 7.0 EHP1 .......................... 316

10 Anpassung von Benutzeroberflächen ....................... 317

10.1 Tags ............................................................................ 31810.2 Verwendung von Tags auf BSP-Views ......................... 32010.3 Datenbindung ............................................................ 32510.4 THTMLB-Tag-Bibliothek ............................................. 328

10.4.1 inputField .................................................... 32910.4.2 textView ...................................................... 33110.4.3 textArea ....................................................... 33310.4.4 label ............................................................ 33410.4.5 image ........................................................... 33510.4.6 checkbox ..................................................... 33610.4.7 dropdownListBox ......................................... 33710.4.8 button ......................................................... 33810.4.9 link .............................................................. 33910.4.10 cellerator ..................................................... 34010.4.11 tableview ..................................................... 34610.4.12 tree .............................................................. 347

1509.book Seite 11 Samstag, 7. August 2010 3:18 15

Page 8: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

Inhalt

12

10.5 Wichtige CHTMLB-Tags ............................................. 34910.5.1 config ............................................................ 35210.5.2 configCellerator ............................................. 35310.5.3 configTable ................................................... 35510.5.4 configTree ..................................................... 355

10.6 Einbindung von HTML und JavaScript ........................ 35510.7 Browserbesonderheiten ............................................. 35710.8 JavaScript-Funktionen des Web Clients ...................... 36110.9 Cascading Style Sheets und Motive ............................ 363

10.9.1 Struktur der Motiv-CSS-Dateien .................... 36610.9.2 Kopieren und Anpassen von CSS-Dateien ...... 37210.9.3 Motivanpassungen in EHP1 ........................... 37410.9.4 Beispiele für CSS-Anpassungen ...................... 379

11 Delta-Handling und fortgeschrittene Anpassungen der Benutzeroberfläche ..................... 383

11.1 HTTP-Kommunikation und Seitenanpassung in Webapplikationen ..................................................... 383

11.2 Automatisches Delta-Handling ................................... 38611.3 Techniken zum Einsatz der AJAX-Methodik im Web

Client ......................................................................... 39211.4 Zugriff auf Objekte des Web Client UIs mittels

JavaScript ................................................................... 39611.5 Effiziente Einbindung von JavaScript .......................... 40011.6 Entwicklung neuer Tag-Bibliotheken .......................... 406

11.6.1 Anlegen einer Testkomponente für das neue Tag ................................................................ 408

11.6.2 Anlegen einer neuen BSP-Extension .............. 40911.6.3 Anlegen eines neuen BSP-Elements ............... 41011.6.4 Element-Handler-Klasse ................................ 41211.6.5 Elementare Programmierung der Element-

Handler-Klasse .............................................. 41611.6.6 Tag-Programmierung mit Datenbindung ........ 41811.6.7 Zusammengesetzte BSP-Elemente

(Composite Tags) ........................................... 42211.6.8 Komplexe Tags .............................................. 42611.6.9 Tipps zur Tag-Entwicklung ............................. 439

12 Flash Islands und andere aktive Inhalte .................. 443

12.1 Flash Islands .............................................................. 446

1509.book Seite 12 Samstag, 7. August 2010 3:18 15

Page 9: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

Inhalt

13

12.2 THTMLB:flashIsland .................................................... 44912.3 THTMLB:flashIslandDatasource ................................... 45112.4 THTMLBX:flashIslandProperty ..................................... 45212.5 Ereignisse mit dem Tag »THTMLB:flashIslandEvent« .... 45312.6 Erstellen einer Flash-Islands-Komponente ................... 45612.7 Tipps zum Einbinden aktiver Inhalte ........................... 461

13 Das grafische Modellierungswerkzeug Nexus ......... 465

14 Session-Verwaltung und Proxy-Server .................... 479

14.1 Start der Session ......................................................... 48114.2 Ende der Session ........................................................ 48414.3 Neustart von Sessions ................................................. 48614.4 Verwendung von Proxys ............................................. 48714.5 URL-Generierung in einer AS-ABAP-/

Web-Dispatcher-Konfiguration ................................... 49214.6 Konfiguration der Systemanmeldung .......................... 496

15 Web-2.0-Features im Web Client ........................... 501

15.1 Mash-ups ................................................................... 50115.2 Feeds .......................................................................... 509

16 Erweiterungskonzepte ............................................. 519

16.1 Application Enhancement Tool ................................... 51916.1.1 Architekturübersicht ...................................... 52016.1.2 Umfang der Erweiterung ................................ 52216.1.3 Systemeinstellungen vor dem Einsatz des

AET ................................................................ 52316.1.4 Hinzufügen neuer Felder ................................ 52516.1.5 Berechnete Felder und

Anwendungsreferenzen .................................. 52916.1.6 Hinzufügen neuer Tabellen ............................. 53116.1.7 Application Enhancement Tool und Easy

Enhancement Workbench .............................. 53416.2 Rapid Applications ...................................................... 537

16.2.1 Datenbanktabellen-basierte Rapid Applications ................................................... 538

16.2.2 Webservice-basierte Rapid Applications ......... 54316.2.3 Einbettung in Übersichtsseiten ....................... 545

1509.book Seite 13 Samstag, 7. August 2010 3:18 15

Page 10: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

Inhalt

14

16.3 UI-Komponenten ....................................................... 54816.3.1 Erweiterungsset ............................................. 55016.3.2 Erweiterung von UI-Komponenten ................ 55216.3.3 Erweiterung von Controllern und Views ........ 55416.3.4 Erweiterung von Controller-Kontexten .......... 55716.3.5 Löschen von Erweiterungen ........................... 559

17 Tipps und Hinweise für die Entwicklung ................. 563

17.1 Häufige Fehlersituationen .......................................... 56317.1.1 Probleme beim Laden von Runtime

Repositorys ................................................... 56317.1.2 Exception-Anzeige ........................................ 56617.1.3 Exception-Meldung im Plug-in-Modus .......... 568

17.2 Hilfe bei der Programmanalyse ................................... 57017.2.1 Pop-up »System Information« ........................ 57117.2.2 Pop-ups »View-Lokation« und »View-

Hierarchie« .................................................... 57217.2.3 Conditional Breakpoints ................................ 57317.2.4 Wichtige Checkpoint-Gruppen ...................... 57617.2.5 Anzeige »not bound« ..................................... 577

17.3 Systemoptimierung .................................................... 57817.3.1 Vorgenerieren von Laufzeit-Objekten ............ 57817.3.2 GenIL-Modelldaten im Shared-Objects-

Speicher ........................................................ 58017.4 Verschiedenes ............................................................ 583

18 Hinweise zur Performanceoptimierung ................... 585

18.1 Performance Tracker .................................................. 58518.2 Schnelle Erzeugung neuer Tabellenzeilen ................... 58718.3 Zeilenselektion ohne Serverereignis ........................... 592

19 Kochrezepte für die Praxis ....................................... 597

19.1 Erstellen eines GenIL-Wurzelobjekts .......................... 59719.1.1 Data Dictionary ............................................. 59819.1.2 Komponentenklasse ...................................... 59919.1.3 Wurzel-Behandlerklasse ................................ 60619.1.4 Wurzelobjektklasse ....................................... 60619.1.5 Wurzelobjekt-API .......................................... 61319.1.6 Abschlussarbeiten ......................................... 618

1509.book Seite 14 Samstag, 7. August 2010 3:18 15

Page 11: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

Inhalt

15

19.2 Anlegen einer neuen Entität mit dem BOL .................. 61919.3 Ausführen einer BOL-Suchanfrage .............................. 62019.4 Anlegen einer neuen Komponente mithilfe eines

Assistenten ................................................................. 62119.5 Arbeit mit Wertknoten ............................................... 62619.6 Arbeit mit Mixed Nodes ............................................. 63319.7 Erstellen einer Wertehilfe ........................................... 63419.8 Erstellen einer Auswahlliste ........................................ 63919.9 Erstellen eines Event Handlers .................................... 64319.10 Dynamische Navigation .............................................. 64519.11 Navigation zwischen zwei Views einer

UI-Komponente .......................................................... 64719.12 Erstellen eines Viewsets .............................................. 65419.13 Erstellen eines Baumstruktur-Views ............................ 65719.14 Erstellen einer neuen Tabellen-Action ......................... 66519.15 Erstellen einer One-Click Action ................................. 66819.16 Erstellen von Tabellen mit Iterator-Objekt .................. 670

19.16.1 Komponente mit konfigurierbarer Tabelle und Iterator erzeugen .................................. 672

19.16.2 Komponente mit nicht konfigurierbarer Tabelle und Iterator erzeugen ...................... 685

19.17 Erstellen von Formularen mit Iterator-Objekt .............. 68919.18 Zuordnung eines Views zu einem Window .................. 69419.19 Erweiterung einer Standard-UI-Komponente .............. 69619.20 Erweiterung einer UI-Komponente entfernen ............. 69819.21 Einbinden einer UI-Komponente in die

Navigationsleiste ........................................................ 700

A Die Autoren .............................................................. 703

Index ........................................................................................... 705

1509.book Seite 15 Samstag, 7. August 2010 3:18 15

Page 12: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

23

1 Einleitung

Das Web Client UI Framework ist ein offenes Framework zur Ent-wicklung serverbasierter Webanwendungen. Auf der Grundlage vonBusiness Server Pages (BSP) als Technologie zur Abwicklung derHTTP-Kommunikation hat das Framework über die Jahre einen gro-ßen Funktionsumfang erreicht. Anwendungen werden aus modula-ren, wiederverwendbaren Komponenten zusammengestellt, undauch bei der Kommunikation mit dem Internetbrowser kommt nichtnur der klassische HTTP-Request-Response-Zyklus, sondern auch derdynamische Seitenaufbau mit AJAX (Asynchronous JavaScript andXML) zum Einsatz. Benutzeroberflächen sind konfigurier- und perso-nalisierbar.

Flexibilität und Offenheit

Die hohe Flexibilität und Offenheit des Frameworks erlauben seinenflächendeckenden Einsatz ohne separate Speziallösungen fürbestimmte Anwendungen. So ist es möglich, die gesamte SAP CRM-Lösung mit einem einheitlichen UI-Framework (User Interface) umzu-setzen. Kontrollierte Abweichungen vom Standard, etwa mithilfe vonaktiven Inhalten, speziellen UI-Controls oder durch die direkte Ver-wendung von nativem HTML, CSS (Cascading Style Sheets) und Java-Script, sind dabei jederzeit ohne die Notwendigkeit möglich, denGesamtrahmen zu verlassen.

UI-unabhängige Services

Das Web Client UI Framework ist jedoch nicht auf die Erstellung vonBenutzeroberflächen beschränkt. Es umfasst eine Vielzahl von Ser-vices und Werkzeugen rund um die Benutzeroberfläche bis hin zueiner einheitlichen Objektschicht für den uniformen Zugriff aufGeschäftsobjekte.

1.1 Historie des Frameworks

Vor etwa zehn Jahren begannen die ersten Arbeiten an einer neuenbrowserbasierten IC-Lösung (Interaction Center) innerhalb von SAPCRM. Die erste Version des IC WebClients wurde mit SAP CRM 3.1zeitgleich mit dem ebenfalls neuen browserbasierten People-Centric

1509.book Seite 23 Samstag, 7. August 2010 3:18 15

Page 13: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

24

Einleitung1

UI ausgeliefert. Bis einschließlich SAP CRM 5.0 wurden so innerhalbvon SAP CRM zwei UI-Frameworks parallel entwickelt. Zusätzlichwurden aber auch die alten SAP-GUI-Transaktionen weiterentwi-ckelt.

Verfügbarkeit desFrameworks undSoftwarelogistik

Nach SAP CRM 5.0 beschloss SAP, ihre CRM-Lösung mit einem ein-heitlichen UI weiterzuführen – dem Web Client UI, das auf einer Wei-terentwicklung des IC WebClient Frameworks basierte. Nach zweiZwischenreleases mit begrenzter Verfügbarkeit, SAP CRM 5.1 undSAP CRM 2006s, war SAP CRM 2007 das erste allgemein verfügbareCRM-Release, das das neue Web Client UI verwendete.

Das zentrale Release, das als Grundlage für dieses Buch dient, ist SAPCRM 7.0, das seit dem Frühjahr 2009 allgemein verfügbar ist. ImLaufe des Jahres 2010 wird das erste Erweiterungspaket, EHP1 fürSAP CRM 7.0, mit weiteren wesentlichen Verbesserungen und Wei-terentwicklungen erscheinen. Einige davon behandeln wir auch indiesem Buch (an den entsprechenden Stellen verweisen wir dabeiexplizit auf »EHP1«). Das Web Client UI Framework hat auch soft-warelogistisch eine bewegte Vergangenheit. Tabelle 1.1 gibt dazueinen Überblick.

Seit SAP CRM 5.0 ist das Framework formal unabhängig vom CRM-System, doch erst mit SAP CRM 7.0 ist es als eigenständige Software-komponente WEBCUIF verfügbar. Damit ist die Voraussetzung gege-ben, das Framework auch außerhalb von SAP CRM einzusetzen. In

SAP CRM-Release Softwarekomponente des Frameworks

3.1 BBPCRM 3.1

4.0 BBPCRM 4.0

4.0 CRMIS 4.0 (CRM Add-on)

5.0 SAPABA 7.0

5.1 CRMUIF 5.1 (ABA Add-on)

2006s CRMUIF 5.2 (ABA Add-on)

2007 CRMUIF 6.0 (ABA Add-on)

7.0 WEBCUIF 7.0

7.01 WEBCUIF 7.01

Tabelle 1.1 Softwarekomponentenzugehörigkeit des Frameworks

1509.book Seite 24 Samstag, 7. August 2010 3:18 15

Page 14: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

25

Historie des Frameworks 1.1

der Tat ist die WEBCUIF-Komponente im kommenden Release SAPERP 6 EHP5 in fast allen Teilen der SAP Business Suite verfügbar.

Web Client UI und Web Dynpro

Bei der Betrachtung der zugrunde liegenden Architektur und derBegrifflichkeiten wird Ihnen eine gewisse Ähnlichkeit zu Web Dyn-pro nicht verborgen geblieben sein. Diese Ähnlichkeit ist keinesfallszufällig. Sie ist in den gemeinsamen Anfängen beider Frameworksbegründet. Allerdings waren die ersten Web-Dynpro-Versionen Java-Programmen vorbehalten, weshalb für die IC WebClient-Lösung inSAP CRM 3.1 ein eigenes BSP-basiertes UI-Framework entwickeltwurde. Diese Entwicklung wurde stark von den frühen Web-Dynpro-Versionen beeinflusst. Die aktuelle Lösung Web Dynpro für ABAPwurde erst später entwickelt und von einer weiter fortgeschrittenenVersion von Web Dynpro für Java abgeleitet. Zu diesem Zeitpunktwar das IC WebClient Framework schon vielfach im produktiven Ein-satz und eine Migration der Anwendungen auf Web Dynpro ABAPnicht mehr praktikabel.

Bei genauerer Betrachtung gibt es allerdings grundlegende Unter-schiede zwischen den beiden Frameworks. Die folgenden sind hier-bei besonders herauszustreichen:

� Das auf BSP basierende Web Client UI Framework ist ein sehr offe-nes Framework, das der Anwendung auch beliebige eigene Web-inhalte, z. B. ActiveX Controls oder Java-Plug-ins, sowie die Kom-munikation mit diesen erlaubt. Web Dynpro dagegen ist eingeschlossenes Framework mit einer starken Client-Abstraktion.

� Das Web Client UI nutzt Tags aus BSP-Tag-Bibliotheken zur HTML-Erzeugung. Dadurch ist es einfach, zusätzliche UI-Elemente überneue Tag-Bibliotheken hinzuzufügen. Der Umfang der UI-Ele-mente in Web Dynpro ist nicht erweiterbar.

� Die Konfiguration des User Interfaces erfolgt im Web Client UI aufView-Ebene. Web Dynpro nutzt hingegen konfigurierbare Kompo-nenten.

Weitere Framework-Teile

Innerhalb der Softwarekomponente WEBCUIF finden sich nebendem UI-Framework, den Tag-Bibliotheken, dem Anwendungsrah-men und der UI-Konfiguration weitere Teile ohne direkten UI-Bezug.Hier ist zunächst der Business Object Layer (BOL) im Verbund mit demGeneric Interaction Layer (GenIL) als Abstraktion der Business-Logikzu nennen. Mit dem direkten Anschluss an das UI-Framework und

1509.book Seite 25 Samstag, 7. August 2010 3:18 15

Page 15: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

26

Einleitung1

der darauf basierenden einheitlichen UI-Programmierung tragenbeide einen wesentlichen Teil zum Gesamtkonzept bei. Sie ermögli-chen aber auch eigenständige Werkzeuge, wie das Web Service Tooloder die Enterprise Search Workbench und nicht zu vergessen dasAnwendungserweiterungs-Tool AET (Application Enhancement Tool)mit seiner direkten UI-Framework-Integration.

1.2 Ausblick

Das Web Client UI Framework ist neben Web Dynpro ABAP undWeb Dynpro Java die einzige von SAP offiziell empfohlene UI-Tech-nologie. Neben dem durchgängigen Einsatz in SAP CRM kommt dasUI-Framework in immer stärkerem Maße auch in SAP ERP zum Ein-satz. Mit SAP ERP 6 EHP6 wird die Softwarekomponente WEBCUIFzu einer Voraussetzung für den SAP Business Suite Foundation Layer,Softwarekomponente BSFND, und damit in allen SAP ERP-Systemenverfügbar. Aufgrund der Anwendungshistorie in SAP ERP wird dasFramework aber nicht unbedingt vollständig wie in SAP CRM einge-setzt. Vielmehr werden Teile des Frameworks, wie der Generic Inter-action Layer, der Business Object Layer oder auch Tag-Bibliotheken,in bestehende ERP-Anwendungen integriert. Dank der Verfügbarkeitkönnen nun kundeneigene Anwendungen im ERP-System mit demFramework gebaut werden, die dann auch direkt auf die BOL-Ver-schalung der SAP-Standard-Geschäftsobjekte aufsetzen.

Interoperabilität Ein sehr wichtiges Thema ist auch die Interoperabilität der verschie-denen SAP-UI-Technologien. Hier bietet der Anwendungsrahmendes Web Client UI Frameworks schon heute die Option, das WebClient UI, Web Dynpro und SAP-GUI-Anwendungen (über den Inter-net Transaction Server, ITS) in einer Benutzerrolle zusammenzufassen.Hier wird es auch weitere Entwicklungen geben, um SAP-Anwendun-gen noch einfacher und besser miteinander zu verknüpfen.

Letztlich werden sogar die Werkzeuge des Web Client UI Frame-works, z. B. das UI-Konfigurationswerkzeug oder das AET, in anderenFrameworks wie dem Floorplan Manager (FPM) für Web DynproABAP genutzt werden. Das generelle Ziel ist eine möglichst großeVereinheitlichung und Synergie der Benutzeroberflächen in dergesamten SAP Business Suite ohne zu große, inkompatible Änderun-gen an bestehenden Anwendungen.

1509.book Seite 26 Samstag, 7. August 2010 3:18 15

Page 16: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

214

Bausteine der UI-Implementierung7

Abbildung 7.27 Komponente-zu-Komponente-Navigation

Outbound-Plug-Delegation

Bei einer mehrstufigen Einbettung von Komponenten kann es sein,dass das Outbound-Plug der eingebetteten Komponente B keineNavigation innerhalb der Komponente A anstoßen soll. In diesemFall kann das umschließende Window der Komponente A seinerseitsein Outbound-Plug »feuern«, um potenziellen Consumern eine Reak-tion zu ermöglichen. Hierfür bietet das Runtime Repository die Mög-lichkeit, eine Outbound-Plug-Delegation zu deklarieren. Abbildung7.28 zeigt ein Beispiel aus der Komponente BT116H_SRVO der Stan-dard-Auslieferung von SAP CRM 7.0.

Abbildung 7.28 Outbound-Plug-Delegation für eingebettete Interface-Views

7.3 Zusammengesetzte Anwendungen

UI-Komponenten sind kleine, wiederverwendbare Einheiten, ausdenen sich eine Anwendung orchestrieren lässt. Theoretisch könnteman auch eine Anwendung entwickeln, die auf nur einer UI-Kompo-nente basiert. Da aber in der Regel viele Views erstellt werden müs-sen, wäre diese UI-Komponente wohl schnell unübersichtlich und

Window

Window

UI-Komponente C

UI-Komponente A

Window

IN

UI-Komponente B

Window

ViewNavigations-

link ViewOUT OUTOUT INOUT

1509.book Seite 214 Samstag, 7. August 2010 3:18 15

Page 17: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

215

Zusammengesetzte Anwendungen 7.3

nicht mehr handhabbar. Die vernünftige Einteilung einer Anwen-dung in UI-Komponenten gehört also zu einem guten Anwendungs-design dazu.

Anlage und Suche eines Geschäfts-partners

Eine Vorgehensweise wäre, eine in sich geschlossene Funktionalitätinnerhalb einer UI-Komponente abzubilden. So könnte man bei-spielsweise eine UI-Komponente zur Anlage eines Geschäftspartnerserstellen, während eine andere UI-Komponente für die Suche nacheinem Geschäftspartner implementiert wird. Die UI-Komponente zurSuche nach Geschäftspartnern lässt sich dann auch in anderen UI-Komponenten wiederverwenden. Wie eine solche Wiederverwend-barkeit gewährleistet wird, erläutern wir im Folgenden.

7.3.1 Komponentenschnittstelle

Damit eine UI-Komponente wiederverwendet werden kann, muss sievon außen steuerbar sein bzw. andere UI-Komponenten über eineZustandsänderung informieren können. Außerdem muss ersichtlichsein, welche Einheiten einer UI-Komponente verwendet werdenkönnen. Eine UI-Komponente hält dafür ein probates Mittel bereit: Inder Komponentenschnittstelle (Component-Interface) wird definiert,welche Kontextknoten, Interface-Views (Windows) und Ereignissevon externen Consumern, also anderen UI-Komponenten, genutztwerden können. Selbstverständlich müssen Sie die Interface-Control-ler-Definition zuerst pflegen, indem Sie ihr die Kontextknoten, Inter-face-Views und Ereignisse hinzufügen. Die Pflege des Interface-Con-trollers findet im Runtime Repository Editor statt (siehe Abbildung7.29). In den folgenden Abschnitten betrachten wir die Bestandteiledes Interface-Controllers näher.

Abbildung 7.29 Component-Interface im Runtime Repository Editor

1509.book Seite 215 Samstag, 7. August 2010 3:18 15

Page 18: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

216

Bausteine der UI-Implementierung7

_$h_

Interface-Views im ComponentInterface

Jedes Window einer UI-Komponente kann seinem Interface-Control-ler zugeordnet werden und wird damit zu einem Interface-View. EinInterface-View kann in wiederverwendenden UI-Komponenten wieein normaler View genutzt und somit wiederverwendet werden. DieZuordnung eines Windows zum Interface-Controller nehmen Sie imRuntime Repository Editor vor. Wechseln Sie in den Änderungsmo-dus, und markieren Sie den Knoten ComponentInterface. WählenSie dann aus dem Kontextmenü die Aktion Interface-View hinzufü-

gen (siehe Abbildung 7.30).

Abbildung 7.30 Interface-View hinzufügen

Window wählen Im Pop-up wählen Sie mithilfe der Wertehilfe im Feld Zugeordnet

zu Window das Window aus, das Sie als Interface-View definierenmöchten (siehe Abbildung 7.31).

Abbildung 7.31 Interface-View definieren

Kontextknoten im Component-Interface

Kontextknotenveröffentlichen

Prinzipiell können dem Interface-Controller nur Kontextknoten desComponent-Controllers hinzugefügt und damit veröffentlicht wer-den. Dies erreichen Sie im Runtime Repository Editor durch die Mar-

Hinweis

Bitte denken Sie daran, im Runtime Repository Editor den Änderungsmo-dus zu aktivieren und Ihre Einstellungen zu speichern, sobald Sie fertigsind. Andernfalls gehen Ihre Änderungen verloren.

1509.book Seite 216 Samstag, 7. August 2010 3:18 15

Page 19: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

217

Zusammengesetzte Anwendungen 7.3

kierung des Knotens Context und die Auswahl der Aktion Kontext-

knoten hinzufügen im Kontextmenü (Abbildung 7.32).

Abbildung 7.32 Kontextknoten hinzufügen

Im Pop-up-Fenster wählen Sie den Kontextknoten des Component-Controllers aus der Auswahlliste und bestätigen mit der Enter-Taste((¢)).

Ereignisse im Component-Interface

Komponentenereignisse einer UI-Komponente sollten nicht mit Ereig-nissen im Kontext von ABAP Objects verwechselt werden, auch wenndie Wirkungsweise sich etwas ähnelt. Komponentenereignisse wer-den definiert, um andere UI-Komponenten über eine Zustandsände-rung zu informieren. Dazu müssen Komponenten diese Ereignisse ent-sprechend abonnieren. Sobald ein Komponentenereignis im RuntimeRepository einer UI-Komponente definiert ist, kann das Ereignis mitder Methode RAISE_COMPONENT_EVENT des Component-Controllers»gefeuert« werden. Der Methode übergeben Sie als Parameter denNamen des Ereignisses. Das Komponentenereignis kann mithilfe desUsage-Objekts abonniert werden (siehe folgenden Abschnitt 7.3.2).

7.3.2 Verwendung von UI-Komponenten

Damit eine UI-Komponente verwendet werden kann, muss sie ineine Consumer-Komponente quasi »eingebettet« werden. Dies errei-chen Sie mithilfe einer Komponentenverwendung.

Komponenten-verwendung erstellen

Um eine Komponentenverwendung zu erstellen, markieren Sie imRuntime Repository Editor den Knoten ComponentUsages, undwählen Sie aus dem Kontextmenü die Aktion Komponentenverwen-

dung hinzufügen aus (siehe Abbildung 7.33).

ID definierenIm Pop-up definieren Sie die ID der Komponentenverwendung undtragen im Feld Verwend. Komponente den Namen der zu verwen-denden Komponente ein.

1509.book Seite 217 Samstag, 7. August 2010 3:18 15

Page 20: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

218

Bausteine der UI-Implementierung7

Abbildung 7.33 Komponentenverwendung hinzufügen

Im Feld Interface-View tragen Sie mit der Wertehilfe den Namendes Interface-Views ein (siehe Abbildung 7.34). Alternativ können Siebei der Anlage einer Komponentenverwendung auf eine bereits vor-handene Komponentenverwendung referenzieren (Auf Verw. ver-

weisen).

Abbildung 7.34 Komponentenverwendung anlegen

Interface-Viewverwenden

Ein Interface-View wird wie ein gewöhnlicher View verwendet. EinInterface-View kann also auch als Zuordnungsblock in einer Über-sichtsseite oder Bereichsstartseite genutzt werden.

_$h_ Hinweis

Ein Interface-View darf wie ein gewöhnlicher View nur einmal im RuntimeRepository zugeordnet werden. Dies gilt natürlich pro Komponentenver-wendung. Sie können mehrere Verwendungen deklarieren und erhalten somehrere Instanzen der verwendeten Komponenten mit jeweils einer Inter-face-View-Instanz. Wenn Sie nur eine Instanz der verwendeten Kompo-nente brauchen, können Sie referenzierende Verwendungen deklarieren.

1509.book Seite 218 Samstag, 7. August 2010 3:18 15

Page 21: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

219

Zusammengesetzte Anwendungen 7.3

Zugriff auf Kontextknoten

Um auf Kontextknoten einer eingebetteten UI-Komponente zugrei-fen zu können, müssen Sie über Kontextknotenbindung einen Kon-textknoten im Component-Controller mit dem entsprechenden Kon-textknoten vom gleichen Typ der eingebetteten UI-Komponenteverbinden. Dies erreichen Sie mit dem Assistenten zur Kontextkno-tenbindung (siehe Abbildung 7.35 und Abschnitt 7.2.3).

Abbildung 7.35 Kontextknotenbindung zum Interface-Controller

Instanz der Komponentenverwendung

Usage-ObjektZur Laufzeit erhalten Sie eine Referenz (Usage-Objekt) auf eine Kom-ponentenverwendung durch den Aufruf der Methode GET_

COMPONENT_USAGE des Component-Controllers. Damit wird aber dieverwendete Komponente auch gleichzeitig geladen. Besser ist es, dasimplizite Laden der verwendeten Komponente, etwa durch die Navi-gation zu einem Interface-View, abzuwarten. Zu diesem Zweck ruftdas Framework bei der Erzeugung eines neuen Usage-Objekts dieMethode WD_USAGE_INITIALIZE (Parameter IV_USAGE) auf, die vomComponent-Controller bereitgestellt wird. In dieser Art Event Hand-ler können Sie dann noch rechtzeitig eine Bindung zum Interface-Controller herstellen. Das Usage-Objekt stellt einige Methodenbereit, von denen wir Ihnen die drei wichtigsten kurz vorstellen wol-len:

� GET_CONTEXT_NODELiefert eine Referenz auf einen öffentlichen Kontextknoten dereingebetteten Komponente zurück.

� SUBSCRIBE_EVENTErmöglicht das Abonnieren und Konsumieren eines Ereignisseseiner eingebetteten Komponente.

Auch damit kann ein Interface-View einmal pro Verwendung zugeordnetwerden. Es handelt sich aber immer um die gleiche Instanz!

1509.book Seite 219 Samstag, 7. August 2010 3:18 15

Page 22: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

220

Bausteine der UI-Implementierung7

� BIND_CONTEXT_NODEDient zur Kontextknotenbindung zwischen öffentlichen Kontext-knoten der eingebetteten Komponente und Kontextknoten derverwendeten Komponente.

Abonnieren eines Komponentenereignisses

Um ein Ereignis einer eingebetteten UI-Komponente abonnieren zukönnen, muss, wie bereits besprochen, die Methode SUBSCRIBE_EVENT des Usage-Objekts aufgerufen werden. Dem Methodenaufrufgeben Sie außerdem eine Referenz auf einen Event Handler mit, derdas Komponentenereignis entsprechend verarbeiten kann. Der EventHandler muss das Interface IF_BSP_WD_EVENT_HANDLER implementie-ren. Ein Beispiel für einen Aufruf der Methode SUBSCRIBE_EVENTsehen Sie in Listing 7.8.

CASE iv_usage->usage_name.WHEN '<VERWENDUNG_ID>'.

iv_usage->subscribe_event(iv_event_name = '<EREIGNIS_DER_SENDENDEN_KOMPONENTE>'iv_handler = lr_event_handler ).

ENDCASE.

Listing 7.8 Aufruf der Methode SUBSCRIBE_EVENT

MethodeHANDLE_EVENT

Das Interface IF_BSP_WD_EVENT_HANDLER stellt mit der MethodeHANDLE_EVENT ein Instrument zur Verfügung, um das Ereignis ent-sprechend abfangen und behandeln zu können.

Delegation von Outbound-Plugs eingebetteter UI-Komponenten

Mit der Delegation von Outbound-Plugs eingebetteter Komponentenan Outbound-Plugs von verwendenden Komponenten kann eineNavigation aus einer eingebetteten Komponente heraus erfolgen.Hierzu markieren Sie im Runtime Repository Editor der verwenden-den Komponente ein Outbound-Plug eines Interface-Views und wäh-len aus dem Kontextmenü die Aktion An Window-Outbound-Plug

delegieren. Im Pop-up wählen Sie dann das Window-Outbound-Plugder einbettenden UI-Komponente, an den delegiert werden soll.

_$h_ Hinweis

Die Delegation kann nur an Outbound-Plugs von Windows erfolgen, dieden Interface-View verwenden.

1509.book Seite 220 Samstag, 7. August 2010 3:18 15

Page 23: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

383

11 Delta-Handling und fort-geschrittene Anpassungen der Benutzeroberfläche

In diesem Kapitel wenden wir uns fortgeschrittenen Themen derArchitektur und der Programmierung des Web Clients zu. Wenn Siesich mit der Programmierung von eigenen Tags oder der Anpassungvon Views mit JavaScript beschäftigen wollen, vermittelt Ihnen die-ses Kapitel wertvolle Einblicke. Zunächst befassen wir uns mit der Artund Weise, wie der Web Client mit dem ABAP-Server kommuniziertund den Bildschirminhalt effizient anpasst.

11.1 HTTP-Kommunikation und Seitenanpassung in Webapplikationen

Klassische Client-Server-Kommunikation

In klassischen Webseiten und -anwendungen führen Benutzeraktio-nen wie das Klicken auf einen Link oder eine Schaltfläche zu einerAnfrage an den Server nach einer neuen HTML-Seite. Der Browserschickt dabei eine HTTP-Anfrage (auch HTTP-Request genannt), dieeventuell vorhandene Formulardaten der Seite enthält, und wartetauf die Antwort des Servers. Sobald die Antwort in Form einer HTTP-Response vom Server zurückkommt, entlädt der Browser die alte Seiteund erzeugt aus dem in der Response enthaltenen HTML eine neueSeite. Nach dem Entladen der Seite zeigt der Browser meist für einenkurzen Zeitraum einen weißen Hintergrund an, bis er die neueHTML-Seite erzeugt hat.

Zeitrahmen der Client-Server-Kommunikation

Der Zeitraum, in dem ein Benutzer warten muss, bis er das Ergebnisseiner Aktion in Form einer neuen Seite sieht und bearbeiten kann,setzt sich daher wie folgt zusammen:

1. Verarbeitung der Aktion im Browser bis zum Senden eines HTTP-Requests

2. Senden des Requests zum Server

1509.book Seite 383 Samstag, 7. August 2010 3:18 15

Page 24: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

384

Delta-Handling und fortgeschrittene Anpassungen der Benutzeroberfläche11

3. Verarbeitung des Requests am Server und Erstellung einer Re-sponse in Form einer HTML-Seite

4. Senden der Response zum Browser

5. Erstellung der neuen Seite im Browser

Wenn Sie lediglich im Internet surfen, erfüllt diese einfache Methodebestens ihren Zweck, da Sie sich meist per Navigation von einer Seitezu einer anderen Seite fortbewegen. In diesem Fall weist die vom Ser-ver verschickte Seite meist kaum Gemeinsamkeiten mit ihrem Vor-gänger auf, und damit ist das komplette Entladen und Wiedererzeu-gen des Browserinhalts eine ausreichende Lösung.

Webapplikationen In Webapplikationen sieht das allerdings anders aus: Nehmen Sie bei-spielsweise eine Online-E-Mail-Applikation, in der Sie mehrereAktionen ausführen. Während Sie die E-Mail schreiben, laden Siemöglicherweise Anhänge hoch, schlagen Adressen nach oder fügenBilder in den Text ein. In den meisten Fällen lösen diese Aktioneneine HTTP-Kommunikation mit einem Server aus. Im Zentrum derAktionen und des Bildschirms wird während dieser Aktionen immerdie E-Mail und vor allem der E-Mail-Text stehen, der sich durch man-che Aktionen wie das Hinzufügen neuer Empfängeradressen garnicht verändert. Es wäre für den Browser unnötiger Aufwand, nachjeder dieser Aktionen die Bildschirmbereiche, die nach der HTTP-Kommunikation gleich geblieben sind, wieder neu zu erzeugen. DerZeitraum, den der Browser für das neuerliche Erstellen dieser Bild-schirminhalte aufwendet, wird dadurch länger, als wenn lediglich dieBildschirmbereiche neu erzeugt würden, die sich geändert haben.Zusätzlich stört der kurzzeitige weiße Bildschirmhintergrund, dersich dem Benutzer als Flackern des Bildschirms darstellt.

AJAX Derartige Probleme machten Webanwendungen noch vor ein paarJahren anwenderunfreundlich, und sie waren Desktop-Applikatio-nen in ihrer Handhabbarkeit unterlegen. Spätestens seit Jesse JamesGarrett im Jahr 2005 den Begriff AJAX (Asynchronous JavaScript andXML) geprägt hat (http://www.adaptivepath.com/ideas/essays/archi-ves/000385.php [26.05.2010]), ändert sich dieses Bild zunehmend.AJAX ist ein wichtiger Bestandteil sogenannter Web-2.0-Applikatio-nen, die zu einer veränderten Wahrnehmung von Internetanwendun-gen führten (siehe Abbildung 11.1).

1509.book Seite 384 Samstag, 7. August 2010 3:18 15

Page 25: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

385

HTTP-Kommunikation und Seitenanpassung in Webapplikationen 11.1

Abbildung 11.1 Vergleich einer klassischen mit einer AJAX-basierten Webapplikation

Ablauf einer AJAX-basierten Kommunikation

Mithilfe von AJAX führen Nutzeraktionen nicht mehr zwangsläufigzu einer Anfrage nach einer kompletten Webseite. Stattdessen kannein HTTP-Request nun von JavaScript aus abgeschickt werden. DieResponse des Servers wird von einer JavaScript-Behandler-Funktionentgegengenommen. Diese JavaScript-Funktion ist für die weitereVerarbeitung zuständig. Die Antwort des Servers auf eine AJAX-Anfrage muss daher nicht zwangsläufig HTML beinhalten, stattdes-sen werden meist nur Daten in der HTTP-Response transportiert.Dies kann mittels XML – wie das X in AJAX andeutet – oder mit einerbeliebigen anderen Darstellung von Daten wie JSON (JavaScriptObject Notation) geschehen. Die JavaScript-Behandler-Funktion wer-tet im Allgemeinen die Datenstruktur aus und passt dynamisch diebestehende HTML-Struktur der aktuellen Seite an. Sie erweitert oderersetzt dabei Teile des HTMLs und mischt die neuen Daten aus derServerantwort in das neue HTML.

Browser

Datenbank

Benutzeroberfläche

Webserver

HTTP-Request

HTTP -Responsemit HTML, CSS

und JavaScript für diegesamte Seite

Browser

Datenbank

Benutzeroberfläche

Webserver

HTTP -RequestHTTP-Responsemit XML, JSONoder JavaScript

AJAX-Engine

JavaScript-Aufruf

HTML,CSS, JavaScriptfür Seitenfragment

Klassische Webapplikation AJAX-basierte Webapplikation

1509.book Seite 385 Samstag, 7. August 2010 3:18 15

Page 26: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

386

Delta-Handling und fortgeschrittene Anpassungen der Benutzeroberfläche11

Erhöhung derBenutzerfreund-

lichkeit durch AJAX

Im besten Falle lassen sich mit dieser Technik nun nach einer Benut-zeraktion fast alle Bestandteile der Server-Browser-Kommunikationabkürzen:

� Nur unmittelbar zur Aktion benötigte Formulardaten müssen inden HTTP-Request gepackt werden. Er kann dadurch schlankerwerden und so den Weg zum Server schneller zurücklegen.

� Der Server kann die Anfrage spezifischer durchführen. Er musssich möglicherweise nicht mehr mit der Neuerstellung von HTMLfür Bildschirmbereiche beschäftigen, die durch die Aktion nichtbeeinflusst sind.

� Die HTTP-Response enthält vor allem Daten und nicht wie in klas-sischem HTML ein Gemisch aus Layout und Daten. Daher ist sieschlanker und kann den Weg zum Browser schneller zurücklegen.

� Der Browser muss nicht mehr die gesamte Seite neu aufbauen. DieJavaScript-Behandler-Funktion wird ihn lediglich dazu veranlas-sen, bestimmte Bildschirmbereiche neu aufzubereiten.

Somit lässt sich für bestimmte Aktionen eine drastisch veränderteWartezeit und damit einhergehend eine stark verbesserte Benutzer-freundlichkeit einer Applikation erreichen.

AutomatischesDelta-Handling

Wie wirkt sich nun aber die AJAX-Methodik auf den Web Client aus?Zum einen ist da das Automatische Delta-Handling (ADH), das dafürsorgt, dass nach einer Benutzeraktion lediglich die Bildschirmbereichevom Browser neu erzeugt werden, die sich nach der Kommunikationmit dem Server verändert haben. Neben dem Delta-Handling, das einautomatischer Bestandteil aller Standard-SAP-Applikationen und aucheigenentwickelter Applikationen im Web Client ist, gibt das WebClient Framework Entwicklern weitere Werkzeuge zur Eigenentwick-lung von AJAX-Funktionalitäten und dynamischer Bildschirm-anpassung an die Hand. Zunächst wenden wir uns jedoch dem Delta-Handling und seiner Funktionsweise zu.

11.2 Automatisches Delta-Handling

Veränderung vonBildschirm-

bereichen imWeb Client

Der Anteil von Bildschirmbereichen im Web Client, die nach einerBenutzeraktion unverändert bleiben, ist unter Umständen sehr groß.Betrachten wir zum Beispiel eine Overview Page (Übersichtsseite) derApplikation Accounts, wie in Abbildung 11.2 dargestellt.

1509.book Seite 386 Samstag, 7. August 2010 3:18 15

Page 27: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

578

Tipps und Hinweise für die Entwicklung17

not bound

oder

<AttributeName> not bound

und generierte Get-Methoden einen Text der Form

<EntityName> not bound

oder

<EntityName>/<EntityAttribute> not bound

Da die fehlende Bindung zwar ein Indiz, aber nicht unbedingt einFehler ist, werden diese Feldwerte nur in Entwicklungsmandantenangezeigt. Zusätzlich muss der Benutzer über eine Debugging-Berech-tigung verfügen.

_$h_

17.3 Systemoptimierung

In diesem Abschnitt geben wir Ihnen Tipps, wie Sie Ihr System inBezug auf Laufzeit- und Speicherverbrauchsverhalten optimierenkönnen.

17.3.1 Vorgenerieren von Laufzeit-Objekten

Laufzeit-Objekte Die im SAP-Umfeld vorherrschende Programmiersprache ABAP isteine interpretierende Sprache. Für eine optimale Abarbeitung wer-den Programmobjekte aber vorgeneriert und als Laufzeit-Objektebzw. Load in der Datenbank abgelegt. Die Generierung der Laufzeit-Objekte wird bei Bedarf durchgeführt, also in der Regel vor der ers-ten Benutzung.

Eine Web-Client-UI-Anwendung besteht aus zahlreichen Klassen. Soführt der erste Start zur Generierung einer Vielzahl von Laufzeit-Objekten, die den Start der Anwendung so stark verzögern kann, dassgegebenenfalls der Timeout einsetzt, bevor die Generierung abge-schlossen ist. Auch wenn die Startseite der Anwendung erscheint,

Hinweis

Mit SAP-Hinweis 1310136 wird der Set/Get-Parameter BSPWD_SHOW_NOT_BOUND eingeführt. Über ihn lässt sich die Anzeige der Information notbound benutzerspezifisch explizit steuern.

1509.book Seite 578 Samstag, 7. August 2010 3:18 15

Page 28: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

579

Systemoptimierung 17.3

führt jeder Seitenwechsel aus genannten Gründen erneut zu langenWartezeiten.

Sind die Laufzeit-Objekte einmal generiert und in der Datenbankabgelegt, stehen sie allen Applikationsservern des gleichen Maschi-nentyps zur Verfügung. Gibt es allerdings Änderungen an einem Pro-grammobjekt, muss das zugehörige Laufzeit-Objekt neu generiertwerden. Bei Abhängigkeiten zwischen Programmobjekten kann diesauch eine Vielzahl von Laufzeit-Objekten betreffen. Daraus resultiertin der Regel eine erneute schlechte Systemperformance nach demEinspielen von Transporten mit Programmänderungen. Noch stärkerist der Effekt beim Einspielen von Support Packages (SPs).

BSP-Seiten-Compiler

Neben der Generierung von Laufzeit-Objekten tritt bei BSP-Anwen-dungen noch eine weitere Verzögerung auf, denn für BSP-Seiten und-Views generiert der BSP-Seiten-Compiler vor der ersten Verwen-dung zunächst eine systemlokale ABAP-OO-Klasse. Für diese wirddann wieder ein Laufzeit-Objekt generiert.

Transaktion SGENFür eine bessere Systemperformance nach dem Einspielen von Trans-porten oder Support Packages gibt es die Option der Vorgenerierungder Laufzeit-Objekte mit der Transaktion SGEN. Diese Transaktionkann sowohl Laufzeit-Objekte im großen Stil generieren als auch dieErzeugung lokaler Klassen für BSP-Seiten und -Views forcieren. Dafür die lokalen Klassen auch Laufzeit-Objekte generiert werden müs-sen, sollten Sie mit der Option Generierung von BSP-Applikation

beginnen.

Vorgenerieren von BSP-Seiten

Nach Auswahl einer Generierungsaufgabe beim Start der Transak-tion SGEN erhalten Sie eine Auswahlliste aller installierten Software-komponenten. Wählen Sie hier in jedem Fall die Komponente WEB-CUIF für das Web Client Framework und die Softwarekomponentender Anwendung, z. B. BBPCRM für die SAP CRM-Lösung. Sollten Siein Ihrem System über mehr als einen Applikationsserver verfügen,können Sie anschließend festlegen, auf welchem Server parallel gene-riert werden soll. Danach wird die zu generierende Objektmengebestimmt, und die Generierung kann beginnen. Die Generierungselbst läuft als Batch-Job, und Sie haben die Wahl, den Job direkt zustarten oder ihn einzuplanen. Letzteres bietet sich bei periodischenImporten an. Dann kann ebenfalls periodisch nachgeneriert werden.

1509.book Seite 579 Samstag, 7. August 2010 3:18 15

Page 29: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

580

Tipps und Hinweise für die Entwicklung17

_$h_

Laufzeit-Objektevorgenerieren

Sind die BSP-Objekte generiert, können die Laufzeit-Objekte gene-riert werden. Dazu bietet die Transaktion SGEN mehrere Generie-rungsaufgaben an. Ist das System bereits im Einsatz gewesen und solllediglich nachgeneriert werden, empfiehlt sich die Auswahl derOption Neugenerierung von vorhandenen Loads und im folgen-den Pop-up-Dialog die Auswahl von nur Objekte mit invalidierter

Load generieren. Mit dieser Auswahl werden nur bereits vorhan-dene, aber invalidierte Laufzeit-Objekte neu generiert. Dies sorgt füreine optimale Menge zu generierender Objekte und für kürzere Lauf-zeiten. Je nach Einsatzszenario, etwa wenn das System ganz neuinstalliert wurde, können aber auch die anderen Optionen günstigersein. Nach Auswahl der Server für die Generierung erfolgt dieBestimmung der Objektmenge, was durchaus einige Zeit dauernkann. Abschließend können Sie die Generierung wieder direkt star-ten oder einplanen.

17.3.2 GenIL-Modelldaten im Shared-Objects-Speicher

Modelldaten-verwaltung

Standardmäßig werden die Modelldaten des Generic InteractionLayers (GenIL) in den Speicher der Benutzersitzung geladen. DasLaden erfolgt träge, d. h., es werden nur die Modelldaten der ange-forderten GenIL-Komponenten geladen. Bei komplexen Benutzerrol-len werden allerdings über die Zeit auch sehr viele GenIL-Komponen-ten geladen, sodass die Modelldaten einiges an Speicher belegen. Eintypischer Wert sind etwa 2 MB. Sind nun beispielsweise 100 Benut-zer an einem Applikationsserver angemeldet, benötigen die Modell-daten 200 MB, obwohl die Daten für jeden Benutzer ungefähr gleichsind. Daher liegt eine gemeinsame Nutzung der Modelldaten durchmehrere Benutzer nahe.

Die gemeinsame Nutzung von Modelldaten wird durch die Nutzungvon Shared Objects realisiert. Shared Objects sind ein Konzept zurbenutzerübergreifenden Bereitstellung von Datenobjekten in einemgesonderten Speicherbereich auf dem Applikationsserver. Eine

Hinweis

Während die Generierung läuft, können Sie die Transaktion SGEN auchbeenden. Dies hat keinen Einfluss auf die Generierung. Beim Neustart derTransaktion SGEN sehen Sie den Fortschritt der Generierung. Es kann nureine Generierung im System aktiv sein.

1509.book Seite 580 Samstag, 7. August 2010 3:18 15

Page 30: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

581

Systemoptimierung 17.3

Benutzersitzung kann sich mit diesem Speicherbereich verbindenund dann auf die Datenobjekte zugreifen.

Shared-Objects-Speicher

Der Shared-Objects-Speicher ist in Gebieten organisiert. Das Gebietfür die GenIL-Modelldaten heißt CL_CRM_GENIL_MODEL_SHM_AREA, wasgleichzeitig der Name der Gebietsklasse ist. Die Einstellungen zueinem Gebiet können Sie mit der Transaktion SHMA bearbeiten. VonInteresse ist hier vor allem der Wert für das Feld Lebensdauer. Die-ser Wert gibt letztlich vor, wie oft die Daten im Gebiet neu gelesenwerden.

Das Gebiet CL_CRM_GENIL_MODEL_SHM_AREA ist mandantenabhängigund so definiert, dass es bei einer Leseanfrage automatisch aufgebautwird. Da die Modelldaten in Entwicklungs- und Testsystemen häufi-gen Änderungen unterliegen, ist die Verwendung so programmiert,dass Daten aus dem Gebiet gelesen werden, wenn es bereits existiert;es wird aber kein automatischer Aufbau angestoßen. Letzteres wirdnur in Produktivmandanten getan. Damit ist die gemeinsame Nut-zung von Modelldaten in Produktivmandanten Standard, in allenanderen Mandanten kommt sie nur vor, wenn das Gebiet manuellgeladen wurde. Die Monitor-Transaktion SHMM erlaubt die Über-prüfung geladener Gebiete, und hier können Sie auch Gebiete manu-ell laden oder löschen.

Automatisches Laden des Gebiets

Wie bereits erwähnt, wird in Produktivmandanten der Gebietsaufbauautomatisch angestoßen. Der Aufbau selbst läuft asynchron in einemparallelen Prozess. Daher wartet die Benutzersitzung ein paar Sekun-den und versucht dann erneut, auf das Gebiet zuzugreifen.

_$h_

Auch in Produktivmandanten können sich die Modelldaten durchden Import von Transporten ändern. In diesem Fall benutzt dieAnwendung bis zum Gebietsneuaufbau weiterhin die alten Modell-

Hinweis

In der Regel dauert der Aufbau des Gebiets CL_CRM_GENIL_MODEL_SHM_AREA etwa eine Sekunde, sodass die Verbindung zum Gebiet beim zweitenVersuch klappt. Kommt es aber beim Gebietsaufbau zu einem Fehler, wer-den weitere Versuche gestartet, bis die Benutzersitzung nach circa 30Sekunden aufgibt. Dieses Verhalten führt dann zu ungewöhnlich langenStartzeiten des Web Client UIs. In diesem Fall muss die Ursache für dasFehlschlagen des Gebietsaufbaus analysiert werden. Einer der häufigstenGründe ist dabei mangelnder Speicherplatz. Die für SAP CRM empfohleneGröße des Shared-Objects-Speichers liegt bei 250 MB.

1509.book Seite 581 Samstag, 7. August 2010 3:18 15

Page 31: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

582

Tipps und Hinweise für die Entwicklung17

daten, was zu Fehlverhalten oder gar zum Programmabbruch führenkann. Daher sollten Sie nach dem Import von Transporten über dieTransaktion SHMM einen sofortigen Gebietsneuaufbau anstoßen.

Da das Konzept der Shared Objects primär für den lesenden Zugriffausgelegt ist, können die Daten im Gebiet nicht ständig verändertwerden. Dies schließt auch ein Nachladen von Modelldaten beimLaden einzelner GenIL-Komponenten aus. Daher gilt es, eine sinn-volle Vorauswahl an Komponenten zu treffen, deren Daten in dasGebiet CL_CRM_GENIL_MODEL_SHM_AREA geladen werden. Modelldatenvon Komponenten, die nicht im Gebiet vorhanden sind, werden inden Speicher der Benutzersitzung geladen. Daher bestimmt die Kom-ponentenvorauswahl die Effizienz der gemeinsamen Speichernut-zung. Die zu ladenden Komponenten sind dem GenIL-Komponenten-set SHMSET zugeordnet.

Anpassung derDaten im Shared-Objects-Speicher

Um eine möglichst optimale Abdeckung der Modelldaten durch dasShared-Objects-Gebiet zu erreichen, wurde die Anbindung in Erwei-terungspaket 1 (EHP1) überarbeitet. Das Ziel war eine automatischeAnpassung der geladenen Modelldaten an die Nutzungsanforderungder Anwendung. Dazu wurde das zusätzliche Gebiet CL_CRM_GENIL_MODEL_SHM_AREA2 eingeführt. Dieses Gebiet enthält eine Benutzungs-statistik, d. h. eine Aufzählung aller benutzten GenIL-Komponenten.Wird nun in einer beliebigen Benutzersitzung eine GenIL-Kompo-nente angefordert, deren Modelldaten nicht im Gebiet vorhandensind, so wird sie in die Liste des zweiten Gebiets eingetragen, und einGebietsneuaufbau wird angestoßen. Der Eintrag behält dabei 24Stunden lang seine Gültigkeit. Wird die Komponente nach Ablaufdieser Zeit nicht mehr benutzt, wird sie wieder aussortiert. Zur Über-prüfen des Adaptionsverhaltens können Sie das Programm GENIL_SHM_MONITOR einsetzen (siehe Abbildung 17.9).

Abbildung 17.9 Monitor-Programm für GenIL-Modelldaten im Shared-Objects-Gebiet

1509.book Seite 582 Samstag, 7. August 2010 3:18 15

Page 32: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

583

Verschiedenes 17.4

Überwachung der Anpassung

Wurde das Monitor-Programm einmal gestartet, wird zusätzlich dasGebiet CL_GENIL_MODEL_SHM_AREA_OBSERV geladen. In diesem Gebietwird alle 15 Minuten ein Datensatz entsprechend der Tabelle des Pro-gramms abgelegt. Dazu werden die aktuellen Daten des Gebiets CL_CRM_GENIL_MODEL_SHM_AREA2 ausgewertet.

Über die Schaltfläche Aktualisieren können Sie einen aktuellenDatensatz hinzufügen. Ist die Anzahl der geladenen Komponenten –1, ist das Gebiet CL_CRM_GENIL_MODEL_SHM_AREA nicht aktiv. Über dieSchaltfläche Neu aufbauen können Sie den Neuaufbau des GebietsCL_CRM_GENIL_MODEL_SHM_AREA anstoßen. Ist bisher keine Gebietsin-stanz vorhanden, werden Sie gefragt, ob Sie eine erzeugen möchten.

17.4 Verschiedenes

Invalidierung des BOL-Puffers

Der Puffer des Business Object Layers (BOL) ist so ausgelegt, dass eineInvalidierung nur seitens der GenIL-Komponenten erfolgen kann,aber nicht durch den Consumer. Lediglich das Nachlesen von Objek-ten und Relationen unter Umgehung des Puffers ist möglich. Für dasAuffrischen ganzer Objekthierarchien ist dies aber wenig praktikabel.

Wird der Datenbestand aber über alternative Wege zum BOL verän-dert, ist eine Aktualisierung des BOL-Puffers zwingend nötig. Ausdiesem Grund wurde mit Erweiterungspaket 1 (EHP1) bzw. SAP-Hin-weis 1456256 die Möglichkeit geschaffen, Aggregationshierarchienrekursiv zu invalidieren. Dazu wurde der Funktionsumfang derMethode REREAD der Klasse CL_CRM_BOL_ENTITY erweitert. Ein Aufrufmit rekursiver Invalidierung sieht wie folgt aus:

lv_entity->reread( IV_INVALIDATE_CHILDREN = ABAP_TRUE ).

Beispiel für eine Aktualisierungs-funktion

Damit wird die Entität erneut im GenIL nachgelesen, und alle gepuf-ferten aggregierten Kinder werden rekursiv als ungültig markiert. DieRekursion endet dabei an der Grenze des Geschäftsobjekts. Alle wei-teren Leseanfragen, wie etwa GET_RELATED_ENTITIES, lesen die Datendann automatisch über den Generic Interaction Layer nach. In einerWeb-Client-UI-Anwendung kann die Aktualisierung der Daten einerSeite im einfachsten Fall wie in Listing 17.3 realisiert werden.

method EH_REFRESH.data: lv_entity type ref to cl_crm_bol_entity.lv_entity =

1509.book Seite 583 Samstag, 7. August 2010 3:18 15

Page 33: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

694

Kochrezepte für die Praxis19

Abbildung 19.84 View-Layout des Formulars

<%cl_chtmlb_config=>set_iterator( partner ).

%>

Listing 19.55 Setzen des Formular-Iterator-Objekts

Nun haben Sie es geschafft! Sie können die Komponente aus derWorkbench mit der Schaltfläche Testen starten. Das Ergebnis sehenSie in Abbildung 19.85: Das Formularfeld First name enthält einenText in Fettschrift.

Abbildung 19.85 Fertiges Formular mit Iterator-Objekt

19.18 Zuordnung eines Views zu einem Window

Views müssen einem Window zugeordnet werden, wenn sie darge-stellt werden sollen. Dieses Kochrezept vermittelt Ihnen die Kennt-nisse zur Zuordnung eines Views zu einem Window.

RuntimeRepository Editor

Öffnen Sie mithilfe der Komponenten-Workbench die UI-Kompo-nente, die den zuzuordnenden View enthält. Aktivieren Sie den Run-

1509.book Seite 694 Samstag, 7. August 2010 3:18 15

Page 34: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

695

Zuordnung eines Views zu einem Window 19.18

time Repository Editor, und wechseln Sie in den Änderungsmodus.Selektieren Sie als Nächstes das Window, das den View beinhaltensoll. Klicken Sie nun mit der rechten Maustaste, und wählen Sie dieAktion View hinzufügen (siehe Abbildung 19.86).

Abbildung 19.86 Selektion des Windows und Auswahl aus dem Kontextmenü

Pop-up »View zuordnen«

Es erscheint ein Pop-up-Fenster, in dem Sie den zuzuordnenden Vieweintragen können. Sie können die Wertehilfe verwenden, um die Ein-gabe zu erleichtern (siehe Abbildung 19.87). Wie Sie ebenfalls in derAbbildung erkennen können, ist zudem die Zuordnung eines leerenViews möglich.

Abbildung 19.87 Auswahl des zuzuordnenden Views

Speichern der Änderungen

Nachdem Sie Ihre Eingabe mit der Enter-Taste ((¢)) bestätigt haben,verschwindet das Pop-up-Fenster wieder, und ein neuer Knoten wird

1509.book Seite 695 Samstag, 7. August 2010 3:18 15

Page 35: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

696

Kochrezepte für die Praxis19

unterhalb des zuvor selektierten Windows sichtbar (siehe Abbildung19.88).

Abbildung 19.88 Einem Window zugeordneter View

Der View wurde dem Window erfolgreich zugeordnet. Speichern Sienun die Änderungen am Runtime Repository.

19.19 Erweiterung einer Standard-UI-Komponente

Dieses Kochrezept beschreibt die Erweiterung von SAP-Standard-UI-Komponenten. Legen Sie zuerst ein Erweiterungsset an. Dazu startenSie die Komponenten-Workbench mit der Transaktion BSP_WD_CMPWB und geben im Feld Erweiterungsset den Namen des Erwei-terungssets an (siehe Abbildung 19.89). Klicken Sie danach auf dieSchaltfläche Neu.

Abbildung 19.89 Anlegen eines Erweiterungssets

Im Pop-up geben Sie einen Beschreibungstext ein (siehe Abbildung19.90) und bestätigen ihn mit der Enter-Taste.

Abbildung 19.90 Erweiterungssets beschreiben

1509.book Seite 696 Samstag, 7. August 2010 3:18 15

Page 36: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

705

Index

A

ABAP 323, 578ABAP Objects 566ABAP Workbench 319, 459Abbruch-Event 280Abhängiges Objekt 68Accessibility 422AC-Getter 193, 196Action 54, 227, 665ActionScript 446, 456ActiveX 444, 462

Controls 25, 443ADH 37, 319, 386, 387, 461, 577

deaktivieren 391Adobe Flash Player 447AET 26, 281, 314, 519, 534

Architektur 521A-Getter 193, 195Aggregation 67, 69AJAX 23, 27, 357, 384, 389, 426,

443, 588Zugriff 493

Aktion 475Aktions-BOL-Relation 316Aktions-Provider 316Aktiver Inhalt 30, 443Aktivität, geführte 144, 242Aktivitäten-Seite 243, 244Alias, externer 497Änderungsmodus 265Animationseffekt 256Ankreuzfeld 31, 336Anmeldebildschirm 496Anwendung

zustandsbehaftete 479, 480zustandslose 479, 480

Anwendungsdienst, generischer 247Anwendungserweiterungstool � siehe

AETAnwendungsrahmen 45Anwendungsreferenzfeld 529, 537Anzeigemodus 265API 29, 502

Application Enhancement Tool � siehe AET

Application Log Framework 152Application Programming Interface

29, 502Arbeitsbereich 45, 388

Funktionsleiste 290Seite 276

Arbeitsbereichskomponente 37, 247Repository 248, 249

Arbeitstitel 295, 297Array 427ASCII-Zeichen 483, 494Assignment-Block 387Assoziation 67, 70Asynchronous JavaScript and XML �

siehe AJAXAtom 509Attribut 58

öffentliches 197Attribut-Tag 506

globales 530, 546Aufgaben-View 243, 244, 245Automatisches Delta-Handling � siehe

ADHAXT_RT_TABLES_API 524AXTSYS 523, 536

B

BAdIAXT_RT_TABLES_API 524COMPONENT_LOADING 551

Barrierefreiheit 422, 424, 444Base64 483Baumstruktur-View 227, 229BC_DATA_GEN 116BDFG 523Benutzeroberfläche, aufgaben-

basierte 144Benutzerrolle 514, 515Bereichsstartseite 241, 487Bezeichner 334Beziehung 157

Aggregation 69

1509.book Seite 705 Samstag, 7. August 2010 3:18 15

Page 37: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

706

Index

Beziehung (Forts.)Assoziation 70Komposition 70

BibliothekCHTMLB 318TAJAX 319THTMLB 318THTMLBX 319

Bild 335Bildschirmelement 30, 31BIND_CONTEXT_NODE 220Binding � siehe DatenbindungBinding-String 419, 451Block 143BOL 25, 29, 85, 201, 577, 633, 671

API 86, 577Browser 159Collection 87Core 87, 88Entität 29, 87, 101, 183, 252, 577,

588, 675Meldungskonzept 103Methodenimplementierung 163Modell-Browser 149, 151Modellknoten 502Objekt 506Vorlage-Objekt 589

BOL Entity Template 589BPath 113Breadcrumb 252, 272Breakpoint, bedingter 573BRFplus 530Browser 357, 443

Cookie 482, 484, 495BSP 23, 25, 30, 56, 317, 579

Controller 33, 132Extension 317, 356Framework 257MVC 32, 33Seite 30Typ 1 32Typ 2 32View 33, 223, 320

BSP_DLC_SDESIGN_DISP 304, 313BSP_WD_CMPWB 38, 50, 126, 221,

243, 307, 320, 404, 408, 459, 552, 643, 647, 665, 668, 673, 674, 696

BSP_WD_WORKBENCH 125Business Function 45

Business Object Layer � siehe BOLBusiness Server Pages � siehe BSP

C

Caching 489CALL_OUTBOUND_PLUG 213Callback-Methode 260, 272Camel Case 410Cascading Style Sheets 23, 366CCS 317CDB 523Checkbox 336Checkpoint-Gruppe 574, 576CHTMLB 37, 38, 39, 318CL_CRM_BOL_ENTITY 252CL_CRM_WEB_UTILITY 464CL_THTMLB_UTIL 338CL_WCF_XBCML 450Class Builder 131Client 479, 480, 482Collection 107, 678Collection Wrapper 122, 183Comma Separated Value 354COMPONENT_LOADING 551Component-Controller 35, 130, 199Component-Interface 41, 150, 202,

215Composite Tag 38, 423Conditional Breakpoint 573Consolidated Database 523Consumer 65Containerobjekt 74Controller 35, 175, 176

Ersetzung 555Klasse 35Methode 131Objekt 324Typ 35, 197, 204

Cookie 482, 484, 495Corporate Identity 318CRM 23CRMC_UI_NBLINKS 514, 700, 701CRMC_UI_PROFILE 514CSS 23, 366CSS3 445CSS-Selektor 382CSS-Styling 422CSV 354

1509.book Seite 706 Samstag, 7. August 2010 3:18 15

Page 38: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

707

Index

Custom-Controller 35, 130, 200Customer Relationship Management

23Customizing 506

D

Data Binding 408, 418Data Dictionary � siehe DDICData-Loss-Popup 286date_time_outbound 513Datenbindung 38, 325, 326, 451Datencontainer 75Datenmodell 36DDIC 58, 59, 598Delta-Flag 75Delta-Handling, automatisches 37,

319, 386Delta-Konzept 72, 74Design Layer 28, 299

Entitätendiagramm 301Desktop-Applikation 443Detailstruktur-Anzeige 131, 132Detailübersicht 129Direktive 321DO_HANDLE_EVENT 210Doctype 358Document-Object-Model (DOM) 359Drag & Drop 146, 354, 472Dropdown-Liste 337Dynamische Navigation 248, 250Dynamisches Suchobjekt 68

E

Easy Enhancement Workbench (EEW) 314, 519, 534

EEWC 536EHP 24EHP1 78, 95, 125, 134, 139, 144,

145, 146, 153, 156, 157, 158, 163, 170, 172, 203, 232, 253, 281, 313, 361, 465, 503, 520, 523, 529, 531, 536, 537, 568, 582, 583, 587, 588, 594, 595, 621, 689

EHP2 313Eingabebereitschaft 195Eingabefeld 31, 329, 333E-Mail 483

Enhancement Package � siehe EHPEnterprise Search Adapter 82Entität, führende 252, 261, 273, 287Entitäten-Container 245Entitätendiagramm 301Entity Factory 87, 97Entity Factory2 98Entity Template 99, 101Entwicklungsumgebung 126Erweiterung, modifikationsfreie 548Erweiterungspaket � siehe EHPErweiterungs-Registry 525Erweiterungsset 127, 549Erweiterungssicht 550eSID 483, 486Event 177, 200Event Handler 30, 54, 131, 590

erstellen 177Excel 353Exception 563

klassenbasierte 566Expander 341, 344extensible Business Client Markup

Language � siehe xBCMLExtensible Markup Language � siehe

XMLExternal Interface Framework 522Externe Session-ID 483, 486

F

Feed 509Anbieter 514, 515Atom 509Gruppe 515ID 515Klasse 511Methode GET_ENTRIES_TABLE 512Reader 509, 510RSS 2.0 509

Feld, berechnetes 529Feldbezeichner 31Filter 353Filterung 112Firebug 380Firefox 517Firewall 488Flash Islands 443, 446, 465Flash Player 447

1509.book Seite 707 Samstag, 7. August 2010 3:18 15

Page 39: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

708

Index

Flex 443, 446Flex Builder 456Flickr 502Floorplan Manager 26, 48Folgenavigations-Link 212, 213Form 467Formeleditor 530Formular-View 221

erstellen 222konfigurierbarer 689statischer 222

FPM 26, 48Führende Entität 252, 261, 287Funktion thtmlRegisterOnLoad 391Funktionsprofil 516

G

GAF 48Generic Interaction Layer � siehe

GenILGenerischer Anwendungsdienst 247GenIL 25, 29, 65, 75, 85, 576, 580,

583Architektur 65Komponente 77Modell 673Objektmodell 67, 91

GENIL_BOL_BROWSER 159, 598GENIL_MODEL_BROWSER 152, 154GenIL-Modell-Browser 154, 158GenIL-Modellierungseditor 154, 158Geschäftslogik 29Geschäftsobjekt 67Geschäftsobjektkomponente 43Get-/Set-Methode 327, 557GET_BUTTON_EVENT_SCRIPT 463GET_BUTTONS 291GET_COMPONENT_USAGE 219GET_CONTEXT_NODE 219get_crm_link 513GET_ENTRIES_TABLE 512GET_FORM_FIELD 462GET_M 327Globale Tag-Tabelle 253Globaler Message-Service 258Globales Attribut-Tag 530, 546Google 502, 503

Grid 474Guided Activity Floorplan 48

H

HANDLE_EVENT 220Hintergrundfarbe 382Historienlogik, erweiterte 278Historienstapel, einfacher 278Hook-Methode 62Hover-Effekt 369, 370HTML 23, 30, 317, 356

dynamischer Austausch 389HTML5 445HTTP 23, 498

Kommunikation 384Request 383, 481Response 383

HTTPS 498Hypertext Markup Language � siehe

HTML

I

IC 23, 27, 481, 566IC WebClient 23, 27ICF 393, 564IF_BSP_WD_DATA_LOSS_HANDLER

289IF_BSP_WD_POPUP 285IFrame 502I-Getter 193, 195Implementierungsklasse 131Inbound-Plug 36, 63, 178, 180, 208Inhalt, aktiver 30, 443, 493Inline-Skript 389, 390Instanz 42Instanzmethode 62Interaction Center � siehe ICInterface

IF_BSP_WD_DATA_LOSS_HANDLER 289

IF_BSP_WD_POPUP 285IF_CHTMLB_FORM_ITERATOR

690, 692IF_HTMLB_TABLEVIEW_ITERATOR

671, 682, 686Interface-Controller 35, 199, 200Interface-View 42, 216, 218

1509.book Seite 708 Samstag, 7. August 2010 3:18 15

Page 40: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

709

Index

Interface-View-zu-Interface-View-Navigation 213

Internationalisierung 295Internationalized Resource Identifier

513Internet Communications Frame-

work 393, 564Internet Explorer 517

Developer Toolbar 380IRI 513Iterator 109, 341, 670, 671, 672

Objekt 682, 685ITS 26

J

Java-Applet 443Java-Plug-in 25JavaScript 23, 317, 357, 443, 502JavaScript Object Notation � siehe

JSONJavaX 443JIT 445JSON 385, 393, 427Just In Time 445

K

Kardinalität 70Klasse

CL_CRM_BOL_ENTITY 252CL_CRM_WEB_UTILITY 464CL_THTMLB_UTIL 338CL_WCF_XBCML 450SAP-Standard 548

Komponente 34, 685Arbeitsbereichskomponente 247

Komponentenereignis 217Komponentenschnittstelle 41, 150,

202, 215Komponentenset 47, 79, 674Komponentenstruktur-Browser 129,

677Komponentenstrukturübersicht 127Komponentenverwendung 150, 217

referenzieren 218Komponenten-Workbench 50, 126,

320, 459, 686, 692Komponentisierung 40, 125

Komposition 67, 70Konfiguration, Formular 691Konfigurationsart 241Konfigurationswerkzeug 350, 503,

504Konfigurierbare Tabelle 672Konfigurierbarer Formular-View 689Konstante Nexus 467Kontext 36, 41, 58, 175, 176, 197

effektiver 166Kontextknoten 36, 58, 131, 175, 176,

181, 419, 502, 691gemischter 182, 633strukturieren 185Zugriff 219

Kontextknotenbindung 199, 203Kontextmenü 132Konvertierungs-Exit 110Kopfkomponente 44Kopplung

enge 206lose 206, 247

L

Label 334Ladezeit 444, 461Langtext, dynamischer 259Laufzeit 461, 578Layout 30, 56, 175Lazy Load 239Left To Right 330Link 31Listenexport 353Load-Balancing 480, 488Logoff 486Logon 496LTR 330

M

Mangling 482, 484, 495Mantelkomponente 43Mash-up 501, 548Meldung 102, 103, 254Meldungs-Browser 161Meldungsersetzung 262Meldungsfilter 260Meldungslangtext, dynamischer 259

1509.book Seite 709 Samstag, 7. August 2010 3:18 15

Page 41: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

710

Index

Meldungslevel 254Memory Snapshot 587Message-Container, globaler 76Message-Container-Manager 103Message-Service 257

globaler 258Metadaten 327Methode

BIND_CONTEXT_NODE 220CALL_OUTBOUND_PLUG 213Callback 260CL_CRM_WEB_UTILITY=>CREATE_

SERVICE_SCRIPT 394CL_CRM_WEB_UTILITY=>CREATE_

SERVICE_URL 393date_time_outbound 513DO_HANDLE_EVENT 210DO_INIT_CONTEXT 678GET_BUTTON_EVENT_SCRIPT 463GET_BUTTONS 291GET_COLUMN_DEFINITIONS 682,

686GET_COMPONENT_USAGE 219GET_CONTEXT_NODE 219get_crm_link 513GET_ENTRIES_TABLE 512GET_FORM_FIELD 462GET_M 327GET_P 350GET_V 351HANDLE_EVENT 220PUBLISH_CURRENT 186redefinierte 199RENDER_CELL_START 682, 687RENDER_ROW_START 682RESET 270SUBSCRIBE_EVENT 219, 220

M-Getter 193, 195MIME-Repository 459Minimal XML � siehe MXMLMixed Node 182, 633Modell 419

Nexus 465Modellierungseditor 154, 158Modellierungskomponente 472Modellknoten 36, 59, 182, 675Model-View-Controller 32Motiv 318, 356, 363, 446, 498

Workbench 372

Mouseover 369Mussfeld 279MVC 27, 28, 33, 35, 58

Architekturkonzept 317MXML 446, 455, 456

N

Navigation 206, 586dynamische 36, 248, 250einfache 36Interface-View-zu-Interface-View

213komponentenübergreifende 36, 206,

247Phasen 209statische 248View-zu-Interface-View 212View-zu-View 210

Navigation Descriptor 250, 251Navigationsebene 473Navigationsleiste 388, 514Navigationslink 36, 150, 178, 202,

206, 207, 235Nexus

Ebene 473Formen 467Grid 474Konstante 467Modell 465Modellierungskomponente 472Toolbar 470Verbindung 469Zoom-Slider 472

O

Object Instance Floorplan 48Objekt 162

abhängiges 68Controller 324Methode 100obsoletes 553

Objektmodell 29, 67, 86, 89, 91, 185Zuordnung 149

Objektorientierung 85Objekttyp 67, 506

generischer 306OCA 31

1509.book Seite 710 Samstag, 7. August 2010 3:18 15

Page 42: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

711

Index

OIF 48OnClick-Ereignis 292, 294OnClientClick-Ereignis 328One-Click Action 227, 290, 668Online Text Repository 296, 297Orchestrierung 27OTR 296, 297Outbound-Plug 36, 63, 178, 220

Delegation 214FOLLOW_UP 180generische Zuordnung 249

Overhead 427Overview Page � siehe Übersichts-

seite

P

Pager 341, 342, 344PAI 586, 587Panel 142Parameter OUTBOUND_PLUG 208Parsing 427PBO 586, 587Performance Tracker 585Personalisierung 39

Feed 516Konfigurationsmodus 504

P-Getter 193, 194, 670, 672, 680, 689Plug 131, 206

anlegen 179inbound 36, 63, 178, 180, 208Methode 179outbound 36, 63, 178View 179Window 179

Pop-upData Loss 286Dialogfenster 281für Abfragen 282zur View-Darstellung 284

Positionskomponente 44Präsentationsschicht 28Process After Input 586, 587Process Before Output 586, 587Programmiermodell, seitenbasiertes

32Proxy 487PUBLISH_CURRENT 186Push-Mechanismus 509

Q

Query-Language 113Quirks Mode 358

R

Rahmenfarbe 382Rapid Applications 524, 537, 538Raster 474Refresh 484, 485, 486Regelwerk-Builder 465Relation � siehe BeziehungRelease Build 459Rendering-Engine 444Repository.xml 131Repository-View 202Request 462, 479RESET 270Reuse � siehe WiederverwendungReverse Proxy 488Rich Internet Applications (RIA) 443,

446Right To Left � siehe RTLRoot-Objekt 68, 597Roundtrip 28, 191Row Template 588, 589RSS 2.0 509RSS-Reader 509, 510RTL 264, 330, 370, 444Runtime Analysis 587Runtime Repository 135, 563Runtime Repository Editor 53, 146RZ11 486

S

S_MEMORY_INSPECTOR 587SAAB 567, 574, 576SAP CRM 23SAP NetWeaver Application Server

28SAP Web Dispatcher 489, 492SAP-Attribut-Tag 506SAT 587Scalable Vector Graphics 360Schaltfläche 31, 227, 290, 338, 470,

475, 665Schriftfarbe 382

1509.book Seite 711 Samstag, 7. August 2010 3:18 15

Page 43: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

712

Index

Schritt-View 243Screen-Reader-Programm 424Scrollbar 439SE11 598SE24 131, 288, 511, 597, 598, 599,

606, 614, 630, 635, 639, 645, 661, 662

SE38 377SE63 296, 535SE80 40, 50, 125, 126, 319, 367, 372,

375, 405, 409, 423, 456, 459, 556, 561, 598, 623

SE91 259Seitenattribut 323Seitenfragment 30Separator 290, 292Server-Roundtrip 28, 191Session 480, 481, 585

ID 482ID, externe � siehe eSIDNeustart 487

Set-Methode 327SFW5 46SGEN 579, 580Shared Memory 315, 377Shared Objects 315, 580SHMA 315, 581SHMM 315, 581, 582Shutdown 485SICF 493, 495, 496, 497Silverlight 443Sitzung � siehe SessionSkin � siehe MotivSLG1 152SM30 551SM31 392SM34 78, 304, 700Softwareschicht

Business Object Layer 29Design Layer 28Generic Interaction Layer 29Präsentationsschicht 28Programmlogik 29

SOTR_EDIT 296Speicher 487SPRO 372, 377, 402, 514SPROXY 544ST22 568, 576Standard-Konfiguration 137

Standard-View 149START_BSP 575State-Container 274Stateful 479, 480Stateless 479, 480Statische Navigation 248Strict Mode 358SU3 261SUBSCRIBE_EVENT 219, 220Suchergebnisobjekt 68Suchkomponente 44Suchobjekt 68, 91

dynamisches 68, 232Suchseite 232, 236Such-Service 87SVG 360Switch Framework 45Switch-ID 46Sync Point 272Systemanmeldung 496Systemstatus 571

T

Tabelle 670Erweiterung 524erzeugen 340Grafik 353HTTPURLLOC 491Konfiguration 672, 679Selektionsmethode 679Spalten 670

Tag 31, 37, 56, 317 462Attribut 31, 319, 322autoFill 407CHTMLB:config 690, 693CHTMLB:configCellerator 39, 670,

683Explorer 57hidden 440schachteln 426Tabelle, globale 253TAJAX:AREA 389TAJAX:area 462THTMLB:Button 295THTMLB:button 338THTMLB:cellerator 340, 670, 687THTMLB:checkbox 336

1509.book Seite 712 Samstag, 7. August 2010 3:18 15

Page 44: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

713

Index

Tag (Forts.)THTMLB:dropdownListBox 337THTMLB:image 335THTMLB:inputField 329THTMLB:label 334THTMLB:link 339THTMLB:tableView 346THTMLB:textArea 333THTMLB:textView 331, 672, 693

Tag-Bibliothek 31, 37CHTMLB 37, 38, 39CRMIC 37HTMLB 37THTMLB 37, 38, 318, 445THTMLBX 319

TAJAX 319Testrahmen, generischer 127Text 331THTMLB 37, 38, 318, 445THTMLBX 319Tile Layout 239Timeout 480, 484, 485, 486, 578Toolbar 470Transaktion 479

AXTSYS 523, 536BC_DATA_GEN 116BDFG 523BSP_DLC_SDESIGN_DISP 304, 313BSP_WD_CMPWB 38, 50, 126, 221,

243, 307, 320, 404, 408, 459, 552, 643, 647, 665, 668, 673, 674, 696

BSP_WD_WORKBENCH 125CRMC_UI_NBLINKS 514, 700, 701CRMC_UI_PROFILE 514EEWC 536GENIL_BOL_BROWSER 159, 598GENIL_MODEL_BROWSER 152,

154RZ11 486S_MEMORY_INSPECTOR 587SAAB 567, 574, 576SAT 587SE11 598SE24 131, 288, 511, 597, 598, 599,

606, 614, 630, 635, 639, 645, 661, 662

SE38 377SE63 296, 535

Transaktion (Forts.)SE80 40, 50, 125, 126, 319, 367,

372, 375, 405, 409, 423, 456, 459, 556, 561, 598, 623

SE91 259SFW5 46SGEN 579, 580SHMA 315, 581SHMM 315, 581, 582SICF 493, 495, 496, 497SLG1 152SM30 551SM31 392SM34 78, 304, 700SOTR_EDIT 296SPRO 372, 377, 402, 514SPROXY 544ST22 568, 576START_BSP 575SU3 261WCF_CC 165, 167, 169WCF_ICONS 338WCF_RT_COMP 170

Transaktionskontext 88, 104, 123Custom 106Einzelobjekt 106globaler 106

Transaktionszyklus 104Tree View � siehe Baumstruktur-ViewTRY-CATCH-Block 566

U

Überschrift 297Übersichtsseite 237, 386, 503

abhängige 270, 271konfigurieren 238

UI 23, 317UI Building Block 48UIBB 48UI-Element 317UI-Host-Page 481, 484UI-Komponente 40, 41, 43, 197, 206,

214eng gekoppelte 206erweitern 552Erweiterungskonzept 548generische 43, 247Geschäftsobjekt 43

1509.book Seite 713 Samstag, 7. August 2010 3:18 15

Page 45: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

714

Index

UI-Komponente (Forts.)lose gekoppelte 206, 247technische 43testen 127Typ 43

UI-Objekttyp 514URL

absolute 491Filterung 489Generierung 492Mangling 482, 495relative 490

Usage-Objekt 219User Interface � siehe UI

V

Variablenzuweisung 325Verbindung mit Nexus 469Verweis 339V-Getter 193, 672View 28, 34, 130, 388, 502, 572, 674

ABAP-Anweisung 323Aufgabe 243, 244, 245Baumstruktur-View 227Controller 35, 198Darstellung 284Formular 222Formular-View 221Instanz 199Kontext 191Layout 321Plug 179Schritt 243Typ 675

View Descriptor 300View-Area 230, 231Viewgruppe 267Viewgruppen-Kontext 265, 267Viewset 34, 49, 230View-zu-Interface-View-Navigation

212View-zu-View-Navigation 210Vorlage 472Vorwärtsnavigation 131, 151

W

WCF_CC 165, 167, 169WCF_ICONS 338WCF_RT_COMP 170Web 2.0 384, 501Web Application Builder 132Web Client Framework 34Web Client UI 24Web Dynpro 25, 40, 50, 446Web Service Tool 81Web Widget 501Webanwendung, klassische 383, 384Web-Client-Architekturmodell 28Web-Client-Session 481Webseite, klassische 383Wertknoten 36, 59, 182Wertzuweisung, direkte 325Widget 501Wiederverwendung 27, 40, 148Window 28, 34, 130, 671, 677

Controller 35, 199Plug 179

Work Area Component � siehe Arbeitsbereichskomponente

Work Center 241, 487Wurzel-Entität 252Wurzelobjekt 68, 597

X

xBCML 448, 450, 465XIF 522XML 30, 39, 509XML-String 466XPath 114

Y

Yahoo 502YouTube 502

Z

Zeichensatz 380Zeilen-Vorlage-Objekt 588, 589Zoom-Slider 472Zugriffsobjekt 68

1509.book Seite 714 Samstag, 7. August 2010 3:18 15

Page 46: SAP Web Client - s3-eu-west-1.amazonaws.com GenIL-Komponenten ... 9.7 Neuerungen mit SAP CRM 7.0 EHP1 ..... 316 10 Anpassung von Benutzeroberflächen ..... 317 10.1 Tags

715

Index

Zuordnungsblock 238, 242, 293, 503, 505, 507

Zustandsbehaftet 479, 480Zustandslos 479, 480

1509.book Seite 715 Samstag, 7. August 2010 3:18 15