Business Server Pages
Sicherheitsaspekte für BSP
Sicherheitsrisiko-Liste
URL-Generierung in einer AS-ABAP - Web Dispatcher Konfiguration
Host-Header
Absolute URL-Generierung
Konfigurationstabelle HTTPURLLOC
Programmierschnittstelle
Szenario 1: Direkte Browser - AS-ABAP Kommunikation
Szenario 2: Browser - AS-ABAP Kommunikation via reversen Proxy
Szenario 3: Kommunikation direkt und über reversen Proxy
Szenario 4: Kommunikation mit Protokollwechsel via reversen Prox
Spezialfall: Kombination mit der ICFX-Anmelde-Anwendung
Benutzerkonzepte
Systemanmeldung (ICFX)
Voraussetzungen
Sicherheits-Einstellungen testen
Konfigurationseinstellungen
Szenarien zur Kennwortänderung
Kennwortänderung bei Basic Authentication vornehmen
Kennwortänderungen im SSO-Umfeld
Benutzerspezifische Änderungen
Beispiel
URL-Generierung in einer AS-ABAP - Web Dispatcher Konfiguration
Einsatz eines Default-Benutzers für BSP-Applikationen
Anlegen eines Default-Benutzers
Einsatz eines Internet-Benutzers für BSP-Applikationen
Beispiel-BSP-Applikation für die Verwendung von Internet-Usern
Anmeldung als Internet-User
Anlegen neuer User
Programmiermodell
Was ist eine BSP-Applikation?
Aufbau einer BSP-Applikation
Zugriff auf eine BSP-Applikation
Neustarten und Beenden einer BSP-Applikation
Systemspezifische URL-Parameter
Verarbeitung einer BSP-Applikation
Erstellung einer BSP-Applikation
Applikationsklasse einer BSP-Applikation
Bestandteile einer BSP
Eigenschaften
Layout
Eventhandler
OnCreate
OnRequest
OnInitialization
OnInputProcessing
OnManipulation
OnDestroy
Seitenattribute
Typdefinitionen
BSP-Direktiven
Seitendirektive
Inline Code
Kommentar
Include-Direktive
OTR-Direktiven
Extension-Direktive
Variablenübergabe
Klassen und Interfaces
Klasse CL_BSP_APPLICATION
Klasse CL_BSP_MESSAGES
Klasse CL_BSP_SERVER_SIDE_COOKIE
Klasse CL_BSP_GET_TEXT_BY_ALIAS
Klasse CL_BSP_CONTROLLER2
Interface IF_BSP_APPLICATION
Interface IF_BSP_APPLICATION_EVENTS
Interface IF_BSP_NAVIGATION
Interface IF_BSP_PAGE
Interface IF_BSP_RUNTIME
Interface IF_BSP_PAGE_CONTEXT
Iterator: Interface IF_HTMLB_TABLEVIEW_ITERATOR
Interface IF_CLIENT_INFO
Globale Objekte
Objekt application
Objekt navigation
Objekt runtime
Objekt request
Objekt response
Objekt messages
Objekt page
Objekt page_context
BSP-Extensions
Button
TableView
Eigene BSP-Extension definieren
BSP-Extension Framework
BSP-Extensions anlegen
BSP-Elemente definieren
Element-Inhalt festlegen
Benutzerdefinierte Validierung
Iteration über Element-Inhalt
Manipulation des Element-Inhalts
Referenzübergabe bei Attributen
BSP-Extension aktivieren
Elementhandler-Klassen implementieren
Generierte Klassen und Klassenhierarchie
Die Basisklasse CL_BSP_ELEMENT
Dokumentation erfassen
BSP-Elemente verwenden
Beispiel: Verwenden von Extensions in BSP-Seiten
Komposit-Elemente
Seite before.htm erstellen
Design-Lösung
Neue BSP-Extension mit Elementen erstellen
Seite after.htm erstellen
Dynamische Verarbeitung von BSP-Elementen
Neue BSP-Extension mit Komposit-Elementen erstellen
Schritt 1 a) Implementierung von <sf:SimpleFormItem>
Schritt 1 b) Verwendung von <htmlb:SimpleFormItem>
Schritt 2: Erstellen von <sf:SimpleForm>
Schritt 3: Änderungen am Look & Feel
Model-View-Controller (MVC)
MVC Design Pattern
Einsatz von MVC für BSP
Controller anlegen
View anlegen
Controller testen
(Sub-)Controller aufrufen
View aufrufen
Fehlerseiten anlegen
Von Seiten zu Controllern
Aufruf-Möglichkeiten von BSP-Bestandteilen
Navigation
Lebensdauer
Datenbindung
Aufruf der Model-Klasse durch den Controller
Komponenten
Verarbeitungsablauf
Erstellen eigener Komponenten
Obersten Controller anlegen
Komponente anlegen
Komponente aufrufen
Eingabeverarbeitung festlegen
Klasse CL_BSP_CONTROLLER2
Architekturbeispiele
BSP-Applikation mit Controllern und Views
BSP-Applikation mit mehreren Views pro Controller
Kombination der vorigen Beispiele
Aufruf von Controllern anderer Anwendungen
Aufruf mehrerer Controller aus einem View
Model-View-Controller Tutorial
Controller anlegen
View anlegen
Controller aufrufen
Session-Handling
Stateful BSP-Applikationen
Session-Cookie
Stateless BSP-Applikationen
Persistenz von Daten durch Server-seitige Cookies
Mischformen
Einstellung als stateful oder stateless
Stateful oder stateless programmieren?
Eine kleine Beispiel-BSP-Applikation
Kontrollfluss von BSPs
BSP nur mit Layout
BSP mit Layout und Initialisierung
BSPs mit Layout, Initialisierung und Navigation
BSPs mit Layout, Initialisierung und Eingabeverarbeitung
Caching von BSPs
Seitengestaltung
Barrierefreiheit
Programmierumfeld
Empfohlene Browser-Einstellungen
Debugging
Breakpoints für BSP-Seitenfragmente
ICM-Tracing
HTTP-Browser-Tracing
HTTP-Proxy
Internationalisierung und Übersetzung
OTR-Aliastext anlegen
OTR-Langtext anlegen
OTR-Texte im ABAP
Werkzeuge zur BSP-Entwicklung
MIME Repository
Unterstützte MIME-Kategorien
MIMEs importieren
Upload und Download von MIMEs
Ordner anlegen
MIMEs in BSPs umwandeln
MIMEs oder Verzeichnisse löschen
Namensraumordner anlegen
MIMEs als übersetzungsrelevant kennzeichnen
Weitere Funktionen
Pretty Printer im Web Application Builder
Externe Tools mit WebDAV einsetzen
Tag Browser
Transformation Editor
BAPI-Browser
Online Text Repository
Ausgabeaufbereitung
Stylesheets
Setzen von Stylesheets für HTMLB, XHTMLB und PHTMLB
File-Upload in BSP-Applikationen
File-Upload und Manipulation des Content
Behandlung von Fehleingaben
Fehlermeldungen von Auto-Seitenattributen ausgeben
Seitenattribute anlegen
Initialisierung vornehmen
Layout festlegen
Objekt messages einsetzen
Alternative Fehlerausgabe kodieren
Fehlermeldungen selbst hinzufügen
Versendung von Mails aus BSP-Applikationen
Bestellseite anlegen
Applikationsklasse anlegen
Attribute der Klasse
Methoden der Klasse
Methode SET_ADDRESS
Methode SET_TIME
Methode SEND
Aufruf der Mail-Klasse
MIME-Types einer Seite
Mobile Erweiterungen des SAP Web Application Server
Unterschiede zwischen mobilen Geräten
Auswirkungen von Unterschieden bei WAP-Browsern
Geräteerkennungsprozeß
Interface IF_CLIENT_INFO
Methode GET_ACCEPT
Methode GET_BACK_HARD_WIRED
Methode GET_BACK_LABEL
Methode GET_CHAR_HEIGHT
Methode GET_BREAKING_SPACE
Methode GET_BROWSER_CATEGORY
Methode GET_BROWSER_NAME
Methode GET_BROWSER_OS
Methode GET_CHAR_WIDTH
Methode GET_COOKIES_SUPPORTED
Methode GET_CSS_SUPPORTED
Methode GET_DEFAULT_ACTION_DESIGN
Methode GET_DEFAULT_BLOCK_SEPARATOR
Methode GET_DEFAULT_BULLET
Methode GET_DEFAULT_FORM_STYLE
Methode GET_DEFAULT_MENU_STYLE
Methode GET_DEVICE_CATEGORY
Methode GET_DEVICE_NAME
Methode GET_FIELDSET_LAYOUT
Methode GET_FIELDSET_TITLE_VISIBLE
Methode GET_FORM_FACTOR
Methode GET_FORM_MENU_SUPPORTED
Methode GET_FRAMES_SUPPORTED
Methode GET_HREF_WITH_PARAMS_SUPPORTED
Methode GET_IMAGE_LINKS_SUPPORTED
Methode GET_INPUT_SHOWN_WITH_CAPTION
Methode GET_LINKS_SEPARATED
Methode GET_LINK_DECORATION
Methode GET_LINK_TEXT_WIDTH
Methode GET_MARQUEE_LINK_SUPPORTED
Methode GET_MARQUEE_TEXT_SUPPORTED
Methode GET_MAX_LINK_LENGTH
Methode GET_MEDIA_FORMATS
Methode GET_NEWLINE_AFTER_IMAGE
Methode GET_NBSP_SUPPORTED
Methode GET_NESTED_TABLES_SUPPORTED
Methode GET_NEWLINE_AFTER_INPUT
Methode GET_NEWLINE_BEFORE_IMAGE
Methode GET_NEWLINE_BEFORE_INPUT
Methode GET_NEWLINE_BEFORE_LINK
Methode GET_NEWLINE_BETWEEN_IMAGES
Methode GET_NEWLINE_BETWEEN_LINKS
Methode GET_NEWLINE_BETW_LINK_AND_TAG
Methode GET_PAGE_SIZE_MAX
Methode GET_PIXEL_HEIGHT
Methode GET_PIXEL_WIDTH
Methode GET_REDIR_RELATIVE_SUPPORTED
Methode GET_SELECTION_MENU_SUPPORTED
Methode GET_SKIPPING_TO_INPUT
Methode GET_SOFTKEY_NUM
Methode GET_SOFTKEY_STYLE1
Methode GET_SOFTKEY_STYLE2
Methode GET_SOFTKEY_TITLE_WIDTH
Methode GET_SCRIPT_SUPPORTED
Methode GET_SUB_CATEGORY
Methode GET_TABLE_HAS_BORDERS
Methode GET_TABLE_SUPPORTED
Methode GET_TELEPHONY_LINKS_SUPPORTED
Methode GET_TEXT_STYLES_SUPPORTED
Methode GET_TITLE_SUPPORTED
Methode GET_TITLE_WIDTH
Methode GET_USER_AGENT
Administrationsleitfaden zur Geräteerkennung
Datenhaltung zur Geräteerkennung
Geräteeigenschaften modifizieren
Zusätzliche mobile Endgeräte integrieren
DDIC-Services für BSP-Anwendungen
Überblick über Typeigenschaften
Technische Eigenschaften
Ausgabeeigenschaften
Sprachabhängige Texte
Services und Runtime-Objekt
GET_FIELD_LABEL
GET_QUICKINFO
GET_DAY_COLLECTION
GET_MONTH_COLLECTION
GET_HISTORY_ID
GET_LOCAL_HISTORY_ID
GET_SIMPLE_HELPVALUES
Verwendung in BSP-Applikationen
Hilfe zur Anwendung
Feld-Label
Feld-History
Kalender
Wertehilfe
SAP Enterprise Portal
Session-Management des Portals und BSPs
Domain-Relaxing
Session-Handling ohne Cookies
Business Server Pages Administration
Anmeldeticket-Cache
HTTP-Browser-Tracing
HTTP-Proxy
ICM-Tracing
Konfiguration für voll qualifizierte Domänen- und Hostnamen
BSP-Tutorials
Erste Schritte mit Business Server Pages…
Voraussetzungen für das Erstellen von Web-Applikationen
Die erste BSP-Applikation
BSP-Applikation anlegen
BSP anlegen
BSP-Layout festlegen
Die Seitendirektive
Scripting
Bild einfügen
BSP und BSP-Applikation aktivieren
BSP-Applikation aufrufen
MIME-Objekt aus dem MIME-Repository importieren
Eine kleine BSP-Applikation
Eine Online-Bücherauskunft mit Benutzer-Interaktion
Verarbeitungsablauf
BSP-Applikation und Seiten anlegen
Einstiegsseite
Layout für die Einstiegsseite festlegen
Seitenattribute für die Einstiegsseite festlegen
Eventhandler für die Einstiegsseite festlegen
Navigationsstruktur festlegen
Autorenliste
Layout für die Autorenliste festlegen
Eventhandler für die Autorenliste festlegen
Seitenattribute für die Autorenliste festlegen
Ergebnisliste
Layout für die Ergebnisliste festlegen
Eventhandler für die Ergebnisliste festlegen
Seitenattribute für die Ergebnisliste festlegen
Eine kleine BSP-Applikation mit HTMLB
Online-Bücherauskunft
BSP-Applikation und Seiten anlegen
Einstiegsseite
Layout für die Einstiegsseite festlegen
Eventhandler für die Einstiegsseite festlegen
Autorenliste
Layout für die Autorenliste festlegen
Ergebnisliste
Layout für die Ergebnisliste festlegen
Unser erster Online-Buchladen
Online-Buchladen
Verarbeitungsablauf
Trennung von Datenbeschaffung, -auswertung und -ausgabe
Datenmodell für die Bookshop-Tutorials
BSP-Applikation und Seiten anlegen
Wozu und wie erstellen Sie Seitenfragmente?
Wie sieht das Layout für Ihre Einstiegsseite aus?
Wie sieht das Layout für Ihre Info-Seite aus?
Suchseite
Wie sieht das Layout für Ihre Suchseite aus?
Wie sehen die Seitenattribute für Ihre Suchseite aus?
Wie sehen die Eventhandler für Ihre Suchseite aus?
Wie sieht das Layout für die Seite der falschen ISBN aus?
Ergebnisseite
Wie sieht das Layout für Ihre Ergebnisseite aus?
Wie sehen die Seitenattribute für Ihre Ergebnisseite aus?
Wie sehen die Eventhandler für Ihre Ergebnisseite aus?
Buchseite
Wie sieht das Layout für Ihre Buchseite aus?
Wie sehen die Seitenattribute für Ihre Buchseite aus?
Wie sehen die Eventhandler für Ihre Buchseite aus?
Wie sieht das Layout für Ihre Fehlerseite aus?
Wie sieht das Layout für Ihre Bestätigungsseite aus?
Wie sieht Ihre Navigationsstruktur aus?
Weiterentwicklung des Buchladens
Was kommt neu hinzu?
Erweiterung des Online-Buchladens
Verarbeitungsablauf
Die Applikationsklasse
BSP-Applikation und Seiten anlegen
Einkaufskorb-Seite
Layout
Seitenattribute
Eventhandler
OnRequest
OnInitialization
OnInputProcessing
Bestellseite
Layout
Seitenattribute
Eventhandler
Registrierungsseite
Layout
Seitenfragment zur Eingabe der Benutzerdaten
Seitenattribute
Eventhandler
Layout für die Bestätigungsseite für die Registrierung
Änderung der Einstiegsseite
Änderung der Ergebnisseite
Änderung der Suchseite
Änderung der Titelleiste
Änderung der Auftragsbestätigungsseite
Model-View-Controller Tutorial
Controller anlegen
View anlegen
Controller aufrufen
Unser kleiner Online-Buchladen mit Verwendung von MVC und HTMLB
Struktur des Buchladens
BSP-Applikation, Controller und Views anlegen
Haupt-Controller bookshop.do anlegen
Haupt-View default.htm anlegen
Seitenfragment head.htm anlegen
Controller search.do für die Suche anlegen
View search.htm für die Suche anlegen
Controller result.do für die Ergebnisliste anlegen
Custom-Rendering für die Autorenspalte erarbeiten
Iterator: Interface IF_HTMLB_TABLEVIEW_ITERATOR
View result.htm für die Ergebnisliste anlegen
Controller detail.do für die Detailanzeige anlegen
View detail.htm für die Detailanzeige anlegen
View about.htm für die Detailanzeige anlegen
Seite mit Ablauflogik corder.htm anlegen
FAQ
Was ist das Internet Communication Framework?
Was ist die BSP-Laufzeitumgebung?
Kann ich per HTTP auf einen Webserver zugreifen?
Gibt es einen Server-Cache, der Web-Seiten speichert?
Wie nehme ich die SSL-Konfiguration vor?
Wird SSO für den SAP Web Application Server unterstützt?
Kann ich BSPs dynamisch generieren?
Wie gehe ich vor, um eine erste BSP-Applikation zu erstellen?
Was ist eine Applikationsklasse?
Wie kann ich Daten zwischen einem View und einer Page übergeben?
Was sind BSP-Direktiven und welche gibt es?
Wo kann ich meine Bilder ablegen?
Kann ich ganze Tabellen als Seitenattribute übergeben?
Wie kann ich den URL-Pfad für meine BSP feststellen?
Wie kann ich Sprache oder Mandant in der URL übergeben?
Wie kann ich Datenstrukturen von einem anderen System verwenden?
Wie bekomme ich mit dem Iterator eine leere Zelle?
Was mache ich bei einem Protokollkonflikt?
Wie kann ich einstellen, dass meine Anwendung ohne Login läuft?
Kann ich für meine BSP-Anwendung einen User-Switch durchführen?
Wie bekomme ich eine BSP in eine Portal-Umgebung?
Kann ich BSP-Applikationen für mobile Endgeräte erstellen?
Wie wird die Anzeigesprache festgelegt?
Wie kann ich für lang laufende Prozesse einen Timeout abfangen?
Wie kann ich die Performanz meiner BSP-Applikation untersuchen?