Professional Documents
Culture Documents
Michael S. Umlauff
SAP R/3 –® ®
Übungsbuch
Programmierung von Internet-
Anwendungskomponenten
Herausgegeben von der
DEKRA Akademie GMBH
eBook
Die nicht autorisierte Weitergabe dieses eBooks
ist eine Verletzung des Urheberrechts!
10 9 8 7 6 5 4 3 2 1
04 03 02 01
ISBN 3-8273-1788-6
Das verwendete Papier ist aus chlorfrei gebleichten schützt. Alle Rechte vorbehalten. Kein Teil dieses Bu-
Rohstoffen hergestellt und alterungsbeständig. Die ches darf ohne schriftliche Genehmigung des Verlages
Produktion erfolgt mit Hilfe umweltschonender Tech- in irgendeiner Form durch Fotokopie, Mikrofilm oder
nologien und unter strengsten Auflagen in einem ge- andere Verfahren reproduziert oder in eine für Ma-
schlossenen Wasserkreislauf unter Wiederverwertung schinen, insbesondere Datenverarbeitungsanlagen,
unbedruckter, zurückgeführter Papiere. verwendbare Sprache übertragen werden. Auch die
Rechte der Wiedergabe durch Vortrag, Funk und
Text, Abbildungen und Programme wurden mit größ- Fernsehen sind vorbehalten.
ter Sorgfalt erarbeitet. Verlag, Übersetzer und Autoren
können jedoch für eventuell verbliebene fehlerhafte Die in diesem Buch erwähnten Software- und Hard-
Angaben und deren Folgen weder eine juristische Ver- warebezeichnungen sind in den meisten Fällen auch
antwortung noch irgendeine Haftung übernehmen. eingetragene Marken und unterliegen als solche den
Die vorliegende Publikation ist urheberrechtlich ge- gesetzlichen Bestimmungen.
Inhalt
Vorwort 7
Einführung 9
Kapitel 1
Installation R/3-Internet-Software 13
1.1 Internet: Browser, Webserver installieren 16
1.2 Internet Transaction Server installieren 25
1.3 SAP@Web Studio installieren 41
1.4 SELFHTML einrichten 43
1.5 Übungsszenario im Dictionary einrichten 45
Kapitel 2
Die erste Homepage im Intranet 59
2.1 Seiten gestalten: Head, Body, Texte 60
2.2 Graphiken einbinden 67
2.3 Tabellen anlegen 72
2.4 Hyperlinks und Aufzählungen nutzen 74
2.5 Seiten mit Frames gestalten 77
Kapitel 3
Entwurf WebTransaction: ABAP 81
3.1 Internetbenutzer und Kennwort-BAPI 83
3.2 Dynpro 100: Anmeldung 85
3.3 Pflegen des Internetbenutzers 98
3.4 Dynpro 200: Selektionen 101
3.5 Dynpro 300: Anzeige der Liste 109
3.6 Dynpro 400: Kaufen und verbuchen 118
3.6.1 Sperrobjekt anlegen 119
3.6.2 Verbuchungsfunktionsbaustein anlegen 119
3.6.3 Dynpro 400 anlegen 124
Kapitel 4
SAP@Web Studio und ITS 133
4.1 Projekt, Service und Theme 134
4.2 Templates aus Dynpros generieren 136
4.3 Website definieren und publizieren 144
4.4 Start der IAC über Hyperlink 147
4.5 Sprachunabhängigen Text integrieren 152
5
4.6 HTML-Eingabefelder im Formular 157
4.7 Auswahllistenfeld (HTML-Select) anlegen 160
4.8 Service beenden mit Drucktaste 162
4.9 Funktion wgateURL() in Hyperlinks 163
4.10 Erstes Template überspringen 165
4.11 Browser-Zurück-Taste synchronisieren 167
4.12 WebTransaction mit SAPGUI debuggen 170
4.13 Konkatenation und Stringoperatoren 176
4.14 Funktionen if() und mimeURL() 177
4.15 HTML-Select mit Daten aus R/3 181
Kapitel 5
WebRFC und WebReporting 185
5.1 WebRFC: WWW_HTML_ECHO() 186
5.2 WebReporting: WWW_GET_SELSCREEN() 188
5.3 Ausblick 195
Anhang A
Programmlistings 197
A.1 Die eigene Homepage 197
A.2 WebTransaction: Erste Fassung 207
A.3 Projekt wpbuchung: Erste Fassung 215
A.4 WebTransaction: Letzte Fassung 220
A.5 Projekt wpbuchung: Letzte Fassung 229
A.6 WebRFC und WebReporting 238
A.7 Heraufladen der Transportdateien 239
Anhang B
Transport 245
Stichwortverzeichnis 255
6
Vorwort
Vorwort
Der Herausgeber dieses Buches, die DEKRA Akademie GmbH, ist
Deutschlands größter privatwirtschaftlicher Anbieter für berufliche Aus-
und Weiterbildung. In bundesweit 120 Ausbildungszentren bereiten
sich pro Jahr über 100.000 Teilnehmer auf neue bzw. veränderte beruf-
lichen Aufgaben vor. Die angebotenen Qualifizierungen reichen vom
Tagesseminar bis zur mehrjährigen Berufsausbildung.
Als erstes Bildungsunternehmen schloss die DEKRA Akademie 1997
einen Partnervertrag mit der SAP AG. Die Kooperation beinhaltet die
Organisation und Durchführung von SAP-Qualifizierungen für Privat-
und Firmenkunden durch die DEKRA Akademie und die Nutzung der
original SAP-Schulungs-Infrastruktur, wie sie auch den Seminarkunden
der SAP in Walldorf zur Verfügung steht.
Einen wesentlichen Unterschied gibt es zum Walldorfer Ausbildungs-
konzept: Im Rahmen öffentlich geförderter Bildung haben die Teilneh-
mer der DEKRA Akademie den Vorteil einer etwa doppelt so langen
Ausbildungszeit gemessen an den SAP-Zeitvorgaben. Die Zusatzzeit
dient einem intensiveren Computertraining. Damit dieses Training
strukturiert abläuft, werden praxisbezogene Fallstudien bereitgestellt.
Das Fallstudienkonzept, das die DEKRA Akademie bei der Qualifizie-
rung von mehr als 2.000 SAP-Beratern erprobt hat, bildet die Grundlage
des Buchs.
Diese Trainingsunterlagen eignen sich als Unterrichtsmaterial ebenso
wie für das Selbststudium. In Praxisfällen werden realitätsnahe Szena-
rien und Lösungsansätze angeboten, die den Leser handlungsorientiert
Schritt für Schritt zum Trainingserfolg führen.
7
Vorwort
Walter Dirnhofer
8
Einführung
Einführung
Das vorliegende Werk will Sie anleiten, das Entwickeln von Internet-
Anwendungskomponenten (IAC=Internet Application Component) zu
erlernen. Es beinhaltet ein – weitgehend durchgängiges – Übungsbei-
spiel, mit dem Sie „von der Pike auf“ eine IAC mit ABAP und HTMLBusi-
ness
programmieren. Dieses handlungsorientierte Werk ist sowohl zum
Selbststudium als auch als Aufgabenbuch für Lehrgänge der beruflichen
Weiterbildung geeignet.
Der Mensch lernt am besten anhand von Beispielen, nicht anhand von
Definitionen, Klauseln oder Syntaxdiagrammen. Es ist daher nicht Ziel
dieses Werkes, eine komplette Einführung in HTML, HTMLBusiness oder
ABAP zu liefern. Diese gibt es bereits in ausreichender Zahl, auf sie wird
an den entsprechenden Stellen hingewiesen. Vielmehr soll der Leser an-
geleitet werden, eine Beispiel-IAC nach hinreichenden Erläuterungen
praktisch am System zu entwickeln.
9
Einführung
Weiterhin sollten Sie mit einem Browser (Internet Explorer) und natür-
lich generell mit dem Windows-Betriebssystem (Explorer, Notepad, Sys-
temsteuerung) umgehen können.
HTML-Kenntnisse schaden zwar nicht, werden aber soweit als notwen-
dig im Verlaufe des Lehrganges erworben.
10
Einführung
11
Installation R/3-Internet-Software 1
Kapitel 1
Installation R/3-Internet-
Software
Sie benötigen als zugrunde liegende IT-Ausstattung (IT = Informati- IT-Ausstattung
onstechnologie) ein funktionierendes Intranet mit einem R/3-Zugang
und installiertem SAPGUI. Für das vorliegende Werk wird das SAP R/3
Release 4.6B verwendet. Für den R/3-Account muss ein Entwickler-
schlüssel eingepflegt worden sein, diesen erhalten Sie über den Admi-
nistrator oder im Online-Service-System (OSS) von SAP.
Die Entwicklung der IAC erfolgt in diesem Buch auf einem lokal instal-
lierten Webserver und dem Internet Transaction Server (ITS) von SAP.
Als Betriebssystem wird für dieses Werk Windows 2000 verwendet, zu
Übungszwecken genügt die Professional-Version. Zum Produktivein-
satz allerdings sollte die Server-Version eingesetzt werden. Ebenso ist
Windows NT 4.0 (Workstation und Server) geeignet, allerdings sind ei-
nige Menüpfade hier anders.
IACs können Sie auch mit SAP R/3 Release 4.0 erstellen. Der Verfasser
empfiehlt in diesem Falle Windows NT 4.0 und ein ITS-Release ab 4.0
bis höchstens 4.5 (diese korrespondieren zu den R/3-Releases). Auf
Windows 2000 laufen nur neuere ITS-Releases ab 4.6, die in der Anbin-
dung mit SAP R/3 Release 4.0 dem Verfasser Probleme bereiteten.
Für den Fall, dass Ihr Administrator die Installationsdateien nicht oder Bezugsquellen
nur in veralteten Releases verfügbar hat, werden an entsprechender
Stelle jeweils Bezugsquellen als WWW-Adressen (WWW = World Wide
Web) zum Herunterladen angegeben. Diese können sich allerdings seit
Drucklegung geändert haben.
13
1 Installation R/3-Internet-Software
Die Anleitungen in diesem Buch beziehen sich auf die beim Verfassen
aktuellen Release-Stände. Inwieweit neuere Releases abwärtskompati-
bel sind, entnehmen Sie bitte den Hinweisen des jeweiligen Software-
herstellers.
Linux Test-Drive Falls Sie noch keinen R/3-Zugang haben, können Sie sich ein eigenes
Demo-R/3-System auf Linux zu Lern- und Testzwecken einrichten, das
SAP freundlicherweise kostenlos im SAP KNOWLEDGE SHOP seiner
Homepage anbietet.1
1. Es gibt neuerdings auch für Windows ein Demo R/3-System, dieses konnte aber
für das vorliegende Werk nicht mehr getestet werden.
14
Installation R/3-Internet-Software 1
betriebswirtschaftlichen Anwendungskomponenten, also Rechnungs-
wesen, Logistik und Personalwirtschaft sowie das IDES-Trainingssys-
tem.
Für den ABAP-Entwickler ist es jedoch ein geeignetes Werkzeug zum
Lernen und Testen. Während der Installation benötigt man einen Li-
zenzkey, der über http://www.sap.com/linux/evaluation.htm kosten-
los per E-Mail erhältlich ist. Nach 90 Tagen erlischt die Lizenz, sie kann
aber erneuert werden.
Die Lizenz des Linux Test-Drives gilt nur für interne Zwecke und
zur Verwendung für Evaluationen. Produktivbetrieb, die Vorbe-
reitung des Produktivbetriebs oder auch der Einsatz für Lehrgänge
ist mit dieser Lizenz nicht gestattet! Lesen Sie auf jeden Fall die
Lizenzbestimmungen in LIZENZ.TXT auf der CD und die License
Agreements auf der SAP-Webseite genau durch!
Sie benötigen einen Rechner mit mindestens einem Pentium II oder bes-
ser, mindestens 192 MB RAM (256 MB RAM empfohlen) und mindes-
tens 5 GB freier Festplattenkapazität. Mit Linux-Betriebssystem und
vorgeschriebenen 600 MB Linux-Swap-Space ergibt dies mindestens
7 GB. Optimiert ist das System für die Linux-Distribution Red Hat 6.1.
Dem Verfasser gelang eine Installation unter Red Hat 6.2, unter Suse
7.0 ist es deutlich schwieriger. Auf der CD befindet sich:
• der Anwendungsserver mySAP.com Basis Release 4.6B
• der Datenbankserver SAP DB, der von der Datenbank Adabas D der
Software AG abgeleitet und von SAP unabhängig weiterentwickelt
wurde
• der Präsentationsserver PlatinGUI (Platform Independent GUI) unter
Java und das zugehörige Java Runtime Environment
• Erweiterungen für Red Hat 6.1.
Der ITS oder das SAP@Web Studio sind auf der CD nicht enthalten.
Dennoch können Sie die Übungsaufgaben dieses Buches durcharbeiten,
wenn Sie mindestens folgendes Rechnernetzwerk aufbauen:
• Rechner 1: Linux Red Hat 6.1 mit mysap.com 4.6B R/3 Basis
• Rechner 2: Windows 2000/NT mit ITS Single-Host (WGate und
AGate) und dem Webserver IIS. Hier können Sie auch SAPGUI und
Browser installieren.
15
1 Installation R/3-Internet-Software
Konfiguration des Die Übungsbeispiele für dieses Buch wurden auf einem R/3-System Re-
Verfassers lease 4.6B unter Windows NT entwickelt. Sie funktionieren jedoch auch
auf den Releases 4.6A, 4.6C und 4.6D. Die Releases ab 4.6C bieten an-
stelle des SAP@Webstudios einen R/3-internen Internetservice an. Die
IDES-Modellfirma war auf diesem R/3-System installiert, sie wird jedoch
für die Übungsbeispiele nicht benötigt.
Die Programmcodes funktionieren weitgehend auch auf dem älteren
Release 4.0, allerdings hat das SAPGUI 4.0 ein ganz anderes Aussehen.
Das SAPGUI, der ITS und das SAP@Web Studio wurden auf einem Win-
dows 2000-Rechner installiert.
Sehr wahrscheinlich wurde der Internet Explorer bereits mit Ihrem Win-
dows-Betriebssystem installiert. Für die Übungsbeispiele in diesem Buch
genügt das Release 4.0 aufwärts. Sie müssen in den meisten Fällen den
Browser nicht neu installieren.
Falls Sie doch neu installieren möchten: Den Internet Explorer 5.5 er-
halten Sie am einfachsten auf jenen zahllosen, den IT-Periodika bei-
gelegten, CDs. Sie können ihn auch von http://www.micro-
soft.com/downloads/default.asp? herunterladen. Sie benötigen die
Datei ie5setup.exe.
16
Installation R/3-Internet-Software 1
Abbildung 1.1
Begrüßungsbildschirm
der Installation des
Internet Explorers
Klicken Sie auf die Schaltfläche WEITER. Sie müssen bei Installation in
Windows 2000, anders als in Windows NT 4.0, nichts einstellen.
Abbildung 1.2
Installation.
Anschließend erfolgt der
Neustart des Computers.
Die Installation des Webzuganges hängt sehr von Ihrem ISP (Internet Schritte
Service Provider) ab. Folgen Sie dessen Installationsanweisungen. In
den meisten Fällen werden Sie das DFÜ-Netzwerk von Windows NT
konfigurieren.
Einen Proxy-Server benötigen Sie, wenn Sie ein lokales Netzwerk ha-
ben, in dem nur ein Rechner über einen direkten Internetzugang, etwa
über eine ISDN-Karte, verfügt. Mittels eines Proxy-Servers gestattet
dieser den anderen Rechnern die Mitnutzung seines Internetzuganges.
So kann einem Entwicklerteam oder auch den Teilnehmern eines Lehr-
ganges von deren Arbeitsplatz aus Zugang zum Internet verschafft wer-
den.
Der Proxy wird auf dem Rechner, der den direkten Zugang z. B. über
eine ISDN-Karte herstellt, installiert. Windows 2000 verfügt über einen
integrierten Proxyserver, der nur noch aktiviert werden muss: SYSTEM-
18
Installation R/3-Internet-Software 1
prise Server 3.0 (mittlerweile: iPlanet Webserver 4.0), dem Apache
Webserver oder dem Sambar Webserver 4.4.
Wenn Sie Ihre fertige Entwicklung ins öffentliche WWW stellen wollen,
benötigen Sie einen Internet Service Provider (ISP), der Ihre Website auf
seinem Webserver aufnimmt.
Es gibt einen begrifflichen Unterschied zwischen Website und Web- Website vs.
seite. Unter Ersterem versteht man die gesamte Publikation eines Web- Webseite
servers, dessen Einstieg mit der Homepage beginnt, etwa
http://www.dekra-kl.de. Letzteres, eine Webseite, hingegen ist die
Darstellung einer HTML-Datei als Seite in einem Browser, etwa in-
halt.htm. Insofern ist sie von einem Webserver und damit von der Web-
site zumindest begrifflich unabhängig. Eine Website beinhaltet also viele
Webseiten.
Falls Sie mit Windows NT 4.0 arbeiten, können Sie den IIS 4.0 für
NT
NT Server oder die „Peer Web Services 3.0“ (= IIS 3.0) für NT Client
installieren. Spielen Sie dann das Servicepack SP 2 oder höher
wieder auf; Sie erhalten es im Download-Center der Microsoft
Homepage: http://www.microsoft.com/downloads/search.asp.
Der IIS 4.0 unterstützt auch virtuelle Webserver, ist jedoch Win-
dows NT Server vorbehalten.
In Windows 2000 installieren Sie den IIS 5.0 über die Systemsteuerung, Schritte
wie in Abbildung 1.3 gezeigt.
Abbildung 1.3
Starten Sie zur Installation
des IIS das Icon SOFTWARE.
Abbildung 1.4
Fügen Sie Windows-
Komponenten hinzu.
Abbildung 1.5
;
Aktivieren Sie
das Ankreuzkästchen
des IIS.
Nach dem Start der Installation des IIS müssen Sie die Windows 2000-
CD einlegen. Das Einrichten der Komponenten kann einige Minuten in
Anspruch nehmen.
Anschließend sollte der Webserver bereits aktiv sein. Sie können dies
nachsehen in der SYSTEMSTEUERUNG / VERWALTUNG, s. Abbildung 1.6.
bis Abbildung 1.8.
Abbildung 1.6
Öffnen Sie DIENSTE, dann
INTERNETDIENSTE-MANAGER.
20
Installation R/3-Internet-Software 1
Abbildung 1.7
Hier kontrollieren Sie, ob
der IIS gestartet ist.
Abbildung 1.8
Der Internetdienste-
Manager informiert über
wichtige Dateipfade.
Nun wird es Zeit, Ihre neu geschaffene Website im Browser zu betrach- Erläuterung
ten. Hierfür benötigen Sie die IP-Adresse2 Ihres Rechners. Sie können
Sie einfach herausfinden über die Eingabeaufforderung (DOS-Fenster)
2. Hierfür muss das TCP/IP-Protokoll auf Ihrem Rechner installiert sein. Falls nicht:
SYSTEMSTEUERUNG / NETZWERKEINSTELLUNG UND DFÜ-VERBINDUNG / LAN-VER-
BINDUNG / EIGENSCHAFTEN / INSTALLIEREN... / PROTOKOLL / TCP-IP-PROTOKOLL.
Vergeben Sie die IP-Nummer und Subnetzmaske ähnlich wie in Abbildung 1.9.
Konsultieren Sie hierzu in jedem Falle Ihren Administrator.
durch Eingabe von ipconfig, s. Abbildung 1.9. Ein anderer Weg hierfür
ist SYSTEMSTEUERUNG / NETZWERK- UND DFÜ-VERBINDUNGEN / LAN-
VERBINDUNG / EIGENSCHAFTEN / INTERNETPROTOKOLL TCP/IP / EIGEN-
SCHAFTEN.
Abbildung 1.9
Die IP-Adresse dieses
Rechners lautet
172.17.109.125.
Schritte Starten Sie Ihren Browser. Falls Ihr Webzugang über einen Proxy-Server
erfolgt, müssen Sie noch Ihre Proxy-Einstellung abändern. Ihr Webser-
ver ist nämlich nur im lokalen Netzwerk sichtbar. Ihr Proxy-Server aller-
dings sucht im globalen Internet, wo er Ihren Webserver nicht findet.
Deshalb müssen Sie dem Browser mitteilen, dass er Ihre Website direkt
und nicht über den Proxy aufsucht: EXTRAS / INTERNETOPTIONEN, s. Ab-
bildung 1.10 bis Abbildung 1.12. Bei dieser Gelegenheit können Sie
auch schon den gewünschten Namen Ihrer Website – hier: http://
www.dekra-kl.de – dem Browser als lokal bekannt geben.
Abbildung 1.10
So gelangen Sie zu den
Proxy-Einstellungen.
22
Installation R/3-Internet-Software 1
Abbildung 1.11
;
Aktivieren Sie das
Ankreuzkästchen
PROXYSERVER FÜR LOKALE
ADRESSEN UMGEHEN.
Abbildung 1.12
Dieser Rechner befindet
sich im lokalen Subnetz
172.17.109.*, ebenso der
Server www.dekra-kl.de.
Beide sollen nicht über
den Proxy gerufen
werden.
5. Rufen Sie nun vom Browser aus die Standardwebseite des soeben
installierten Webservers durch Angabe der IP-Adresse auf.
Tippen Sie nun die IP-Adresse in das Adressfeld des Browsers. Die Stan- Schritte
dardwebseite sollte nun sichtbar werden, s. Abbildung 1.13 bis Abbil-
dung 1.16.
Abbildung 1.13
Die Standardseite des IIS,
da noch keine eigene
angelegt ist.
Abbildung 1.14
Gleichzeitig startet auch
die Online-
Dokumentation des IIS.
Erläuterung Das Eintippen der IP-Adresse im Browser ist mühselig, man vergisst sie
auch leicht. Deshalb gibt es im Internet und großen Intranets spezielle
Server für das Domain Name System (DNS, auch Domain Name Ser-
vice), welche die Zuordnung eines Rechnernamens, wie www.dekra-
kl.de, zu einer IP-Adresse, wie 172.17.109.125, vornehmen.
Für den lokalen Rechner gibt es eine einfache lokale Namensauflösung
über die Datei hosts, die Sie nun verwenden, um dem eigenen Server
einen Namen zu geben.
Schritte Tragen Sie die IP-Nummer und den Namen Ihres Rechners (hier:
www.dekra-kl.de) in die Datei C:\Winnt\system32\drivers\etc\hosts
mittels eines Texteditors ein, s. Abbildung 1.15.
Abbildung 1.15
Die hosts-Datei dient als
lokaler „DNS-Server“.
Nun können Sie Ihre Website auch durch Eingabe des Servernamens als
URL im Browser aufrufen, s. Abbildung 1.16.
24
Installation R/3-Internet-Software 1
Abbildung 1.16
Aufruf der eigenen
Website über einen URL.
Von anderen Rechnern Ihres lokalen Netzwerkes aus können Sie über
die Pflege der hosts-Datei und der Proxy-Einstellungen diese Website
ebenfalls aufrufen, s. Abbildung 1.17. Dort wird allerdings nur eine
Seite „Under Construction“ zu sehen sein. In Kapitel 2 wird dann eine
eigene Homepage entworfen, die diese Standardseiten ersetzt.
Abbildung 1.17
Die Website, von einem
anderen Rechner im
lokalen Netzwerk aus
gesehen
Erläuterung Aus lizenzrechtlichen Gründen darf sich ein R/3-Benutzer nur einmal
am R/3-System anmelden. Versucht er es ein zweites Mal unter dersel-
ben Kennung, erfolgt ein Warnhinweis, s. Abbildung 1.18.
Abbildung 1.18
Diese Meldung erscheint
beim Anmelden an R/3,
wenn derselbe Benutzer
bereits angemeldet ist.
(© SAP AG)
26
Installation R/3-Internet-Software 1
Der Verfasser verwendet zum Anmelden über das SAPGUI die Kennung
UMLAUFF, zum Anmelden des ITS die Kennung ITSADM. Beide verfügen
über die Berechtigungsprofile SAP_ALL und SAP_NEW, die als Superuserpro-
file beim Entwickeln von Transaktionen die wenigsten Probleme berei-
ten. Für den Produktivbetrieb müssen allerdings aus Sicherheitsgründen
die Berechtigungen von ITSADM auf die benötigten Transaktionen be-
schränkt werden.
Das Anlegen von Benutzern ist exklusives Privileg des Administrators! Schritte
Folgende Schritte führen Sie bitte nur durch, wenn Ihnen dies der Admi-
nistrator erlaubt hat und Sie selbst die nötigen Berechtigungen haben.
Starten Sie Werkzeuge / Administration / Benutzerpflege / Benutzer
und pflegen Sie die Einstellungen entsprechend Abbildung 1.19 bis Ab-
bildung 1.23. Melden Sie sich mit dem SAPGUI neu an und vergeben
Sie das endgültige Kennwort.
Abbildung 1.19
So legt ein Administrator
einen Benutzer im R/3 an.
(© SAP AG)
Abbildung 1.20
Pflege der Adressdaten
des Benutzers ITSADM
(© SAP AG)
Abbildung 1.21
Eintragen eines
Initialkennworts
(© SAP AG)
Abbildung 1.22
Diese Superuserprofile
sorgen für problemlose
IAC-Entwicklung, sind
aber für Produktivzwecke
zu unsicher.
(© SAP AG)
Abbildung 1.23
Erstanmeldung: Dieses
Kennwort müssen Sie dem
ITS zur Benutzerkennung
ITSADM mitgeben.
(© SAP AG)
28
Installation R/3-Internet-Software 1
Abbildung 1.24
Hinzufügen eines
Benutzers
Abbildung 1.25
Informationen zum
Benutzer ITSadm
Abbildung 1.26
Vergeben des Kennwortes
Abbildung 1.27
Der ITSadm benötigt
Administrationsrechte zur
Installation
Abbildung 1.28
Anlegen einer
Benutzergruppe
Abbildung 1.29
Benutzergruppe ITSUSER
anlegen mit VORGANG /
NEUE GRUPPE...
Abbildung 1.30
Gruppenmitglieder haben
Zugriffsrecht auf die
Dateien des ITS.
30
Installation R/3-Internet-Software 1
Abbildung 1.31
Hinzufügen der
Gruppenmitglieder
Melden Sie sich ab mit START / BEENDEN / "[AKTUELLER BENUTZER]" AB- Schritte
MELDEN. Melden Sie sich nun als ITSADM mit dem vorhin gewählten
Kennwort an.
Starten Sie die aus dem WWW heruntergeladene Datei setupits46d_
325330.exe3 (oder die entsprechende Datei von der SAP-Präsentations-
CD) über START / AUSFÜHREN / DURCHSUCHEN..., s. Abbildung 1.32 bis
Abbildung 1.48.
3. Hier wird die Installation des ITS Release 4.6D gezeigt. Da dieses beim Verfasser
den Bug offenbarte, die Icon-Anzeige der SAPGUI 4.6B zu ruinieren, musste an-
schließend das etwas ältere ITS-Release 4.6B (Datei setupits46b_266017.exe)
verwendet werden. Hinsichtlich der Installationsschritte unterscheiden sich die
beiden Releases nicht.
Abbildung 1.32
Installation des ITS
(© SAP AG)
Abbildung 1.33
Single-Host: WGate und
AGate auf einem Rechner
(© SAP AG)
Abbildung 1.34
Empfehlung:
Programmpfad auf
deutschen Standard
setzen (© SAP AG)
32
Installation R/3-Internet-Software 1
~
Abbildung 1.35
Typical installiert
eine ITS-Instanz für
~
den Aufruf von IACs,
Administration in
einem zweiten Durchgang
das Administrationstool.
(© SAP AG)
Abbildung 1.36
Als Name des ITS
empfiehlt sich der Name
des R/3-Systems.
(© SAP AG)
Abbildung 1.37
Zuordnung der ITS-
Instanz zum IIS-
Webserver
(© SAP AG)
Abbildung 1.38
URL zur Homepage
des Webservers
(© SAP AG)
Abbildung 1.39
Auswahl des IAC-
Packages 46b_all.car mit
den Standard-IACs; das
IAC-Release muss mit
dem R/3-Release
übereinstimmen., s.
Aufgabe 7 (© SAP AG)
Abbildung 1.40
Diese Warnmeldung
erscheint auch bei der
Erstinstallation.
(© SAP AG)
Abbildung 1.41
Für Übungszwecke
genügt ein AGate.
Mehrere AGates können
zur Lastverteilung
eingesetzt werden.
(© SAP AG)
~Default configuration
Abbildung 1.42
MB RAM, ~Minimize
benötigt mindestens 128
memory usage
mindestens 32 MB RAM.
(© SAP AG)
Abbildung 1.43
Anbindung des ITS an das
R/3-System mit den
gleichen Anmeldedaten
wie bei dem SAPGUI
(© SAP AG)
34
Installation R/3-Internet-Software 1
Abbildung 1.44
Festlegen der Anmeldung
am R/3; hier direkt am
Anwendungsserver, ohne
Lastverteilung (© SAP AG)
Abbildung 1.45
Mittlere Sicherheit: Nur
Benutzer ITSADM und
Mitglieder von ITSUSER
haben Zugriff auf ITS-
Dateien (© SAP AG).
Abbildung 1.46
Account und Kennwort
des ITS-Administrators
und der ITS-
Benutzergruppe zur
Nutzung der Windows
NT-Sicherheitsmecha-
nismen (© SAP AG)
Abbildung 1.47
URL zum eigenen
Webserver (© SAP AG)
Abbildung 1.48
Anschließend beginnt die
Installation, sie dauert
einige Minuten.
(© SAP AG)
Nach erfolgter Installation können Sie noch die Release-Notes lesen, der
Rechner muss neu gestartet werden.
Erläuterung Ziel dieser Aufgabe ist es, einen ersten Überblick über die Funktion des
ITS zu erhalten. Hierzu wird eine Standard-IAC eingehend betrachtet.
Nach dem Durcharbeiten des vorliegenden Werkes sind Sie imstande,
derartige IACs selbst zu entwickeln.
Mit der Installation des ITS wurde eine Datei C:\Inetpub\wwwroot\de-
fault.htm angelegt; dies ist die Standardseite, die der Webserver liefert,
falls der URL keinen Dateipfad enthält. Sie ersetzt nun die Standardseite
des Webservers, dies waren localstart.asp respektive iisstart.asp. Sie fin-
den sie im Windows Explorer, s. Abbildung 1.49.
Abbildung 1.49
Standardwebseite
default.htm des
Webservers
36
Installation R/3-Internet-Software 1
Der ITS wurde als Dienst installiert: SYSTEMSTEUERUNG / VERWALTUNG / Schritte
DIENSTE, s. Abbildung 1.50.
Abbildung 1.50
Die ITS-Instanz ist
gestartet.
Starten Sie nun den Browser, und gehen Sie auf Ihre Website, s. Abbil-
dung 1.51 bis Abbildung 1.64. Die Transaktion WW20 (Online-Store) des
R/3-Standards muss implementiert sein – bei dem mysap.com 4.6B on
Linux Test-Drive, s. Abschnitt 1.5, ist dies nicht der Fall, da es sich nur
um eine reine R/3-Basis handelt. Die Daten für den Online-Store stam-
men aus dem IDES-System.
Abbildung 1.51
Nach Installation des ITS:
Homepage der Standard-
IACs (© SAP AG)
Abbildung 1.52
Deutsche Fassung der
IAC-Homepage: Zum
Online-Store (© SAP AG)
Abbildung 1.53
Start der Standard-IAC
Online-Store (© SAP AG)
Abbildung 1.54
Zum deutschen
Computer-Store
(© SAP AG)
Abbildung 1.55
Leider installiert der ITS
nicht alle benötigten
Bilder. (© SAP AG)
Abbildung 1.56
Nach der Auswahl von
Hardware weiter zu den
PC-Systemen (© SAP AG)
38
Installation R/3-Internet-Software 1
Abbildung 1.57
Füllen des
Einkaufskorbes; weiter
zum EINKAUFSKORB /
BESTELLEN. In diesem IDES-
System sind leider die
Preise nicht gepflegt.
(© SAP AG)
Abbildung 1.58
Der Online-Store
registriert seine Kunden
in R/3. (© SAP AG)
Abbildung 1.59
Die Registrierung erfolgt
beim ersten Einkauf.
(© SAP AG)
Abbildung 1.60
Erfassung der
Kundendaten
(© SAP AG)
Abbildung 1.61
Vergabe der
Kundennummer,
Festlegen des Kennwortes
(© SAP AG)
Abbildung 1.62
Merken Sie sich Ihre
Kundennummer!
(© SAP AG)
Abbildung 1.63
Absenden des fertigen
Bestellformulars
(© SAP AG)
40
Installation R/3-Internet-Software 1
Abbildung 1.64
Die Bestellung wurde in
R/3 generiert. Ihr R/3-
Administrator liefert sie
freundlicherweise frei
Haus ... (© SAP AG)
Das SAP@Web Studio – der HTMLBusiness-Editor von SAP – finden Sie im Erläuterung
WWW unter http://www.saplabs.com/its als Datei setupstudio46d_
314924.exe zum Herunterladen. Sie befindet sich auch auf der SAP
R/3-Präsentationsserver-CD. Ab Release 4.6C können Sie stattdessen
den R/3-internen Internetservice verwenden.
Starten Sie die aus dem WWW heruntergeladene Datei setupstudio- Schritte
46d_314924.exe (oder die entsprechende Datei von der SAP-Präsenta-
tionsserver-CD) über START / AUSFÜHREN / DURCHSUCHEN..., s. Abbil-
dung 1.65 bis Abbildung 1.67.
Abbildung 1.65
Installation des
SAP@Web Studios
(© SAP AG)
Abbildung 1.66
Auswahl des
Installationspfades
(© SAP AG)
Abbildung 1.67
Nach der Installation
erscheinen auch die
Release-Notes.
(© SAP AG)
Abbildung 1.68
SAP@Web Studio nach der
Installation, noch ohne
Projekt (© SAP AG)
42
Installation R/3-Internet-Software 1
Zum Dekomprimieren und Entpacken von Archiven können Sie – wie Erläuterung
hier gezeigt – die Shareware Winzip verwenden. Man benötigt ein der-
artiges Tool für die meisten heruntergeladenen Programme. Erhältlich ist
es unter http://www.winzip.de.
Schritte Entzippen Sie die Datei selfhtml.zip in einen neu anzulegenden Ordner,
z. B. nach C:\Selfhtml\ (siehe Abbildung 1.69).
Abbildung 1.69
Extrahieren von
selfhtml.zip mit Winzip
Abbildung 1.70
SELFHTML ist ein
umfassendes
Kompendium für
Webdesigner.
44
Installation R/3-Internet-Software 1
Abbildung 1.71
In diesem Kapitel ist alles
Wissenswerte zu HTML zu
finden.
Es lohnt sich, im Kapitel HTML zu stöbern. SELFHTML ist auch ein gutes
Nachschlagewerk, um die benötigten HTML-Tags (s. Kapitel 2) zu su-
chen oder um die Bedeutung unbekannter HTML-Tags zu finden.
Schritte Der Report ZDATINS ist, zusammen mit Beschreibungen der Dictionary-
Objekte, im Archiv abap.zip zum Herunterladen unter http://www.de-
kra-akademie.de/download erhältlich. Dort finden Sie auch, für die Al-
ternative B zur nachfolgenden Aufgabe, den Transport LNXK900006 sowie
die an anderen Stellen erwähnten Transporte.
Auswahl der Das Übungsszenario können Sie entweder eigenhändig im ABAP Dictio-
Alternative nary und mit dem ABAP Editor anlegen, dies wird in Alternative A der
Aufgabe gezeigt. Ein kürzerer, aber konfliktträchtigerer Weg ist die
Alternative B (s. Anhang B), die Objekte des Übungsszenarios per
Transport LNXK900006 anzulegen.
Wenn Sie den Umgang mit der ABAP Workbench trainieren wollen,
wählen Sie Alternative A. Sie legen dann die Entwicklungsklasse ZDEKRA
und die darin enthaltenen Domänen, Datenelemente, Tabellen und
Fremdschlüsselbeziehungen an. Schließlich legen Sie den Report ZDATINS
an und starten ihn.
Alternative B sollten Sie nur unter folgenden Voraussetzungen wählen:
1. Sie verfügen bereits über sehr gute Übung im Umgang mit ABAP
Dictionary und ABAP Editor.
2. Sie interessieren sich auch für Administrationsaufgaben und das
Transportwesen von R/3.
3. Sie haben einen im Transportwesen erfahrenen Administrator zur
Hand, der Ihnen bei Komplikationen zur Seite steht.
Schritte Starten Sie den Workbench Organizer vom SAP-Menü aus, und legen
Sie einen Änderungsauftrag an, s. Abbildung 1.72 bis Abbildung 1.75.
46
Installation R/3-Internet-Software 1
Abbildung 1.72
SAPGUI eines IDES-
Systems. Für die Übungen
genügt ein R/3-System
ohne IDES-Mandant und
dessen Beispieldaten und
-programme. (© SAP AG)
Abbildung 1.73
Anlegen eines
transportierbaren
Änderungsauftrages
(© SAP AG)
Abbildung 1.74
Eigenschaftspflege des
Änderungsauftrages
(© SAP AG)
Abbildung 1.75
Änderungsauftrag und
Aufgabe für den
Entwickler (© SAP AG)
Abbildung 1.76
Object Navigator zum
Anlegen von Objekten
(© SAP AG)
Abbildung 1.77
Anlegen einer
Entwicklungsklasse
(© SAP AG)
48
Installation R/3-Internet-Software 1
Abbildung 1.78
Eigenschaftspflege der
Entwicklungsklasse
(© SAP AG)
Sie starten wiederum mit dem Object Navigator der ABAP Workbench, Schritte
s. Abbildung 1.79 bis Abbildung 1.82. Mit dem Aktivieren ordnen Sie
die Domäne der Entwicklungsklasse ZDEKRA und Ihrem Änderungsauf-
trag zu.
Abbildung 1.79
Anlegen einer Domäne
(© SAP AG)
Abbildung 1.80
Beim erstmaligen
Anlegen eines
Entwicklungsobjektes
wird der
Entwicklerschlüssel
abgefragt.
(© SAP AG)
Abbildung 1.81
Pflege des Formats und
der Ausgabeeigen-
schaften der Domäne
(© SAP AG)
Abbildung 1.82
Aktivieren der Domäne
mit gleichzeitigem
Speichern (© SAP AG)
Z_NR NUMC 10 10
Z_NAME CHAR 15 15
Z_BESCHR CHAR 20 20
Z_DATUM DATS 8 10
Z_KURSWERT DEC 10 13
Z_DEPOTTYP CHAR 1 1
Schritte Legen Sie das Datenelement mit dem Object Navigator an, s. Abbildung
1.83 bis Abbildung 1.85. Mit dem Aktivieren ordnen Sie das Datenele-
ment der Entwicklungsklasse ZDEKRA und Ihrem Änderungsauftrag zu.
50
Installation R/3-Internet-Software 1
Abbildung 1.83
Anlegen eines
Datenelements
(© SAP AG)
Abbildung 1.84
Zuordnung einer Domäne
zum Datenelement
(© SAP AG)
Abbildung 1.85
Pflege der Feldbezeichner
des Datenelements
(© SAP AG)
Schritte Legen Sie die Datenbanktabelle mit dem Object Navigator an, s. Abbil-
dung 1.86 bis Abbildung 1.92. Mit dem Aktivieren ordnen Sie die Da-
tenbanktabelle der Entwicklungsklasse ZDEKRA und Ihrem Änderungsauf-
trag zu. Danach werden automatisch die technischen Eigenschaften
abgefragt.
Abbildung 1.86
Anlegen einer
Datenbanktabelle
(© SAP AG)
Abbildung 1.87
Pflege der
Tabelleneigenschaften
(© SAP AG)
Abbildung 1.88
Anlegen der
Tabellenfelder; Anlegen
eines Feldes als
Fremdschlüssel
(© SAP AG)
Abbildung 1.89
Mandantentabelle T000
wird als Prüftabelle
vorgeschlagen.
(© SAP AG)
52
Installation R/3-Internet-Software 1
Abbildung 1.90
Die vorgeschlagene
Fremdschlüsseldefinition
ist korrekt und kann
übernommen werden.
(© SAP AG)
Abbildung 1.91
Die aktivierte Tabelle mit
Fremdschlüssel
(© SAP AG)
Abbildung 1.92
Pflege der technischen
Einstellungen der Tabelle;
anschließend: Speichern
und zurück zum Object
Navigator (© SAP AG)
9. Legen Sie die Tabelle ZDEPOT an. Das Feld KUNDENNR ist ein Fremd-
schlüssel auf den Primärschlüssel der Prüftabelle ZKUNDEN
Legen Sie die Tabelle ZDEPOT ähnlich wie die Tabelle ZKUNDEN an, und er- Schritte
gänzen Sie in der Zeile KUNDENNR die Fremdschlüsselbeziehung, s. Abbil-
dung 1.93 bis Abbildung 1.96.
Abbildung 1.93
Tabelle ZDEPOT; Anlegen
Fremdschlüssel für ein
Feld (© SAP AG)
Abbildung 1.94
Prüftabelle angeben
(© SAP AG)
Abbildung 1.95
Der Vorschlag wird
aufgrund gleicher
Domänen der Felder
erstellt. (© SAP AG)
Abbildung 1.96
Dieser Vorschlag ist
korrekt und kann
übernommen werden.
(© SAP AG)
54
Installation R/3-Internet-Software 1
Das Übungsszenario benötigt folgende Tabellen: Schritte
Den Programmcode finden Sie in der Datei zdatins.txt aus dem Archiv Erläuterung
abap.zip. Öffnen Sie die Datei mit dem Windows-Editor, s. Abbildung
1.100.
Legen Sie den Report ZDATINS an, s. Abbildung 1.97 bis Abbildung Schritte
1.101. Der Report muss der Entwicklungsklasse ZDEKRA sowie dem Än-
derungsauftrag zugeordnet und schließlich aktiviert werden.
Abbildung 1.97
Anlegen des Reports
ZDATINS (© SAP AG)
Abbildung 1.98
Dieser Report bedarf
keiner Include-Technik.
(© SAP AG)
Abbildung 1.99
Eigenschaftspflege des
Reports (© SAP AG)
Abbildung 1.100
Markieren des
Programmcodes ab der
zweiten Zeile; mit
BEARBEITEN / KOPIEREN in die
Zwischenablage
(© SAP AG)
Abbildung 1.101
Einfügen des
Programmcodes in den
Report (© SAP AG)
Erläuterung Nach dem Anlegen aller Objekte – oder nach erfolgreichem Transport
LNXK900006 – sind alle Dictionary-Objekte und der Report ZDATINS der
Entwicklungsklasse ZDEKRA in der ABAP Workbench sichtbar: WERKZEUGE
/ ABAP WORKBENCH / ÜBERSICHT / OBJECT NAVIGATOR. Der Report
ZDATINS fügt in alle Tabellen eine große Anzahl an Beispieldaten ein.
Schritte Starten Sie den Report ZDATINS aus der Entwicklungsklasse ZDEKRA her-
aus: KONTEXTMENÜ REPORT ZDATINS / AUSFÜHREN / DIREKT, s. Abbil-
dung 1.102 bis Abbildung 1.105.
56
Installation R/3-Internet-Software 1
Abbildung 1.102
Entwicklungsklasse
ZDEKRA; Start des Reports
ZDATINS über das
Kontextmenü
(© SAP AG)
Abbildung 1.103
Komplettgenerierung der
Beispieldaten ohne
Parametereingabe
(© SAP AG)
Abbildung 1.104
Diese Liste darf keine
Fehlermeldungen
enthalten. Ursachen sind
dann meist fehlerhaft
angelegte Dictionary-
Objekte.
(© SAP AG)
Abbildung 1.105
Data Browser mit der
Tabelle ZKUNDEN
(© SAP AG)
Abbildung 1.106
Die Tabellen sind nun mit
Beispieldaten gefüllt.
(© SAP AG)
58
Die erste Homepage im Intranet 2
Kapitel 2
Die erste Homepage im
Intranet
In diesem Kapitel richten Sie sich Ihre erste eigene Website ein. Sie legen Vorbemerkung
HTML-Dateien an, die Sie auf Ihrem Webserver publizieren. Dies dient
dem Erlernen der Grundlagen von HTML und damit der Vorbereitung
auf den Umgang mit HTMLBusiness, der SAP-Erweiterung von HTML in
Kapitel 4. Ihre Website ist hier noch unabhängig vom R/3-System, des-
sen Anschluss über den ITS an Ihre Website erfolgt erst in besagtem Ka-
pitel 4.
Sie werden HTML nur so weit kennen lernen, wie dies zum Erstellen der
nachfolgenden IACs notwendig ist.
HTML ist – obwohl ähnlich aufgebaut – genau genommen keine Pro-
grammiersprache, sondern eine Beschreibungssprache für Webseiten.
Grundkonstruktion ist das so genannte Tag, das in spitzen Klammern
! geschrieben wird. Es gibt öffnende Tags – wie <html>, das einen
HTML-Text einleitet – und schließende Tags mit </ am Anfang – wie
</html>, das einen HTML-Text beendet. Die meisten, nicht alle, Tags
müssen abgeschlossen werden.
Die HTML-Tags werden kurz erläutert. Ausführliche Beschreibungen
finden Sie in SELFHTML, das Sie während der Arbeit stets in einem eige-
nen Browser-Fenster offen halten sollten, um das jeweilige Tag nachzu-
schlagen.
59
2 Die erste Homepage im Intranet
1. Erstellen Sie eine erste Homepage in HTML mit einer Seite für die
Firma Dekra Effekten Kontor, nach dem Muster von Abbildung 2.1.
Eröffnen Sie den Text mit <html>, und schließen Sie ihn mit </html>.
Gliedern Sie die HTML-Datei in <head> und <body>. Verwenden Sie
die Tags <title> (Titel), <h1> (Überschrift Größe 1), <h2> (Überschrift
Größe 2), <em> (kursiv). Setzen Sie auch einen (im Browser unsicht-
baren) Kommentar.
Erläuterung Über <html> und </html> hinaus verwenden Sie folgende Tags:
• <head> und </head> bilden den „Kopfteil“. Dieser ist zwar im Anzeige-
bereich des Browsers nicht direkt zu sehen. Dennoch ist er wichtig,
da er beschreibende Inhalte wie den Seitentitel, den verwendeten
Zeichensatz und Informationen, die von Suchmaschinen ausgewertet
werden, enthält.
• <title> und </title> legen den Seitentitel fest, den der Browser in
der Titelleiste anzeigt.
• <body> und </body> bilden den „Körperteil“, dessen Inhalte der Anzei-
gebereich des Browsers anzeigt und in dem Sie folgende Tags ver-
wenden können:
• Den Text zwischen <h1> und </h1> zeigt der Browser als Überschrift
der Größe 1 an. Wie groß diese ist, entscheidet allein der Browser.
• Den Text zwischen <h2> und </h2> zeigt der Browser als – etwas
kleinere – Überschrift der Größe 2 an.
• Den Text zwischen <em> und </em> zeigt der Browser als Kursivtext
an.
• Mit <!-- beginnt ein Kommentar im HTML-Code, der bis --> reicht.
60
Die erste Homepage im Intranet 2
Abbildung 2.1
Die erste eigene
Homepage im Browser,
geliefert vom Webserver
Abbildung 2.2
Anlegen der ersten
Homepage mit dem
Windows-Editor
<body>
<h1> Dekra Effekten Kontor </h1>
<h2> Herzlich Willkommen </h2>
Wir <!-- Kommentar, ist unsichtbar --> verwalten
<em> Ihre </em>
Schätze!
</body>
</html>
Schritte Zunächst sollten Sie die vom ITS vorinstallierte Datei C:\Inetpub\
wwwroot\default.htm umbenennen in default_ITS.htm, s. Abbildung
2.3. Die Datei default.htm spielt eine Sonderrolle, da dies die Standard-
webseite ist, die der IIS 5.0 anbietet, sofern im URL kein Dateipfad ent-
halten ist.
Abbildung 2.3
Umbenennen der
Standard-IAC-Seite im
Windows Explorer
Abbildung 2.4
Laden einer .htm-Datei in
den Editor mit der rechten
Maustaste
62
Die erste Homepage im Intranet 2
Natürlich dürfen Sie – anstelle des Windows-Editors – auch Ihren Lieb-
lings-HTML-Editor verwenden. Achten Sie jedoch darauf, dass Sie di-
rekt mit dem HTML-Code und nicht nur mit der WYSIWYG-Ansicht
(„What you see is what you get“) arbeiten. Schließlich wollen Sie HTML
als Vorbereitung auf HTMLBusiness erlernen.
Zu beachten ist jedoch, dass Sie dadurch den Webserver umgehen. Die
Datei wird rein lokal anzeigt, was im vorliegenden Kapitel noch keine
Rolle spielt. Diese Methode funktioniert jedoch dann nicht mehr, wenn
die Webseite dynamische Inhalte einer SAP R/3-Transaktion darstellen
soll. Der Kontakt zwischen R/3 und der Website erfolgt zwingend über
Webserver und Internet Transaction Server; der lokale Browser kann
dies nicht bewerkstelligen. Deshalb sollten Sie sich das lokale Öffnen
Ihrer Webseite default.htm vorerst nicht angewöhnen.
Abbildung 2.5
Lokales Anzeigen einer
HTML-Datei im Browser.
Dynamische Inhalte, die
auf R/3-Transaktionen
zugreifen, können so
nicht dargestellt werden.
4. Stellen Sie die Hintergrundfarbe sowie die Farben von Texten, Hy-
perlinks und besuchten Hyperlinks für den gesamten <body> nach
Ihrem Geschmack ein.
Erläuterung Das <body>-Tag erlaubt u. a. folgende Zusätze zum Festlegen von Far-
ben.
• bgcolor=[Farbe] legt die Hintergrundfarbe fest.
• text=[Farbe] legt die Farbe für Text fest.
• link=[Farbe] legt die Farbe für noch nicht besuchte Hyperlinks fest.
• vlink=[Farbe] legt die Farbe für bereits besuchte Hyperlinks fest.
Die Namen der 16 Grundfarben können Sie in SELFHTML nachschla-
gen, s. Abbildung 2.6. Es gibt darüber hinaus noch spezielle Farben, s.
Abbildung 2.7. Alternativ können Sie auch einen beliebigen RGB-Wert
(Rot-Grün-Blau) angeben.
64
Die erste Homepage im Intranet 2
Abbildung 2.6
Die 16 Grundfarben von
HTML
Abbildung 2.7
Speziellere Farben, die
der Browser interpretieren
kann
5. Fügen Sie eine kleine Überschrift der Größe <h5> ein. Verfassen Sie
einen kurzen Beschreibungstext. Verwenden Sie in diesem das Ab-
satztag <p>. Stellen Sie Schriftgröße und Farbe auf <font size="2"
color="red"> ein. Das Ergebnis sollte nach dem Speichern und Aktu-
alisieren im Browser Abbildung 2.8 ähneln.
Abbildung 2.8
Die Homepage mit Farben
und Schriften
66
Die erste Homepage im Intranet 2
Speichern Sie die Datei. Aktualisieren Sie im Browser Ihre Homepage, sie
sollte nun Abbildung 2.8 ähneln. Das schließende Tag </p> können Sie
übrigens auch weglassen.
Beim Entwickeln einer Homepage wollen Sie, dass der Browser stets die
aktuelle Fassung anzeigt. Um zu gewährleisten, dass dieser keine veral-
teten Inhalte – etwa Bilder – aus seinem Cache anzeigt, sondern stets
die aktuelle Fassung wählt, stellen Sie ihn bitte wie folgt ein: E XTRAS /
~
INTERNETOPTIONEN / ALLGEMEIN / EINSTELLUNGEN… Option BEI JEDEM
ZUGRIFF AUF DIE SEITE, s. Abbildung 2.9
Abbildung 2.9
Der Browser soll stets die
aktuellste Version
anzeigen.
Abbildung 2.10
Graphik in der Homepage
Die Angabe von Höhe und Breite der Graphik in Pixel mit den Zusätzen
height= und width= hat den Vorteil, dass der Browser den reinen Text be-
reits anzeigen kann, während die zugehörige Graphik noch geladen
wird, was oft länger dauert. Stattdessen erscheint vorübergehend ein
rechteckiger Platzhalter mit dem nach alt= angegebenen Alternativtext.
So vermeiden Sie, dass ungeduldige Besucher Ihre Seite vorzeitig verlas-
sen.
Schritte Graphiken können Sie selbst mit einem der zahlreichen Tools hierfür er-
stellen (Corel Draw, Photopaint, Photoshop etc.).
Mit einem Scanner können Sie sich auch Fotografien oder andere Vorla-
gen einscannen.
Beispiel Graphiken, die Sie auf einer anderen Webseite finden, können Sie her-
unterladen über das Kontextmenü der rechten Maustaste, so wie in Ab-
bildung 2.11 demonstriert. Die abgebildete Graphik finden Sie auf der
Website http://www.dekra-akademie.de. Speichern Sie sie als C:\Inet-
pub\wwwroot\dekra-logo.gif. Sie finden sie auch im Archiv abap.zip.
Abbildung 2.11
Graphik herunterladen
von der DEKRA-
Akademie-Homepage
Verwenden Sie bei der Vergabe von Dateinamen als Konvention stets
Kleinbuchstaben. Viele Webserver achten penibel auf Groß- und Klein-
schreibung1.
1. Diese Eigenschaft gilt vor allem für die UNIX-basierten Webserver, nicht jedoch für
den IIS auf Windows 2000/NT. Damit Ihr Webentwicklungsprojekt bei einem Pro-
viderwechsel immer noch funktioniert, empfiehlt es sich dennoch, besagte Kon-
vention zu beachten.
68
Die erste Homepage im Intranet 2
Wenn Sie in Ihrem HTML-Quellcode Dateinamen falsch schreiben, wer-
den die zugehörigen Graphiken nicht gefunden, so wie in Abbildung
2.12.
Abbildung 2.12
Ein falscher Dateiname im
HTML-Code führt zu
diesem Fehler.
Informieren Sie sich über die Größe Ihres Bildes in Pixel. Dies geht mit
den meisten gängigen Bildbearbeitungswerkzeugen. In Microsoft Pho-
toDraw etwa öffnen Sie die Datei, klicken KONTEXTMENÜ DER GRAPHIK /
BILDSETUP... und stellen Pixel ein. In Abbildung 2.13 sehen Sie, dass
diese Graphik 182 * 55 Pixel groß ist.
Abbildung 2.13
Ermitteln der Pixelgröße
einer Graphik mit
Microsoft PhotoDraw
Abbildung 2.14
Die zweite Webseite,
aufgerufen über Ihren
URL
70
Die erste Homepage im Intranet 2
<body>
<h1> Werden auch Sie reich mit einem <br>
Depot beim Dekra Effekten Kontor! </h1>
</body>
</html>
Laden Sie die Seite in den Browser mit dem URL http://www.dekra-
kl.de/vorzuege.htm, so wie es Abbildung 2.14 zeigt.
3. Beschaffen Sie eine zweite Graphik im .jpg- oder .gif- Format, und
speichern Sie diese im Veröffentlichungsordner. Sie sollte farblich
hell und zurückhaltend sein.
Abbildung 2.15
Die zweite Webseite, mit
einer Hintergrundgraphik
Kopieren Sie beispielsweise die Datei hintergrund.jpg aus dem Archiv Schritte
abap.zip nach C:\Inetpub\wwwroot\. Achten Sie auf die Groß-/Klein-
schreibung des Dateinamens.
Ergänzen Sie vorzuege.htm.
<body background="hintergrund.jpg">
<h1> Werden auch Sie reich mit einem <br>
Depot beim Dekra Effekten Kontor! </h1>
Ihr Browser sollte nun die zweite Webseite mit dem Hintergrundbild
darstellen, wie in Abbildung 2.15 gezeigt.
Die erste Zeile wird als Überschrift ausgelegt. Für deren Zellen ver-
wenden Sie <th>. Sie ist 40pt hoch, was Sie mit dem Zusatz-
height=[Höhe] einstellen. Der Text ist mittels des Zusatzes valign=bot-
tom zum unteren Rand hin ausgerichtet.
Die zweite und dritte Spalte der Tabelle wird von der gemeinsamen
Überschrift „Preis“ überspannt, was Sie mit dem Zusatz colspan=2
erreichen.
Ab der zweiten Zeile legen Sie die Zellen mit <td> statt <th> an.
Abbildung 2.16
Tabelle mit Überschrift,
Zeilen, Spalten und
Rahmenlinien
72
Die erste Homepage im Intranet 2
Ergänzen Sie default.htm. Schritte
<p><font size="2" color="red"> Damit Ihre Erben auch
was zu lachen haben!
</font></p>
<table border=1 width=40%>
<tr>
<th height=40pt valign=bottom>Sonderangebote
der
Woche </th>
<th colspan=2 valign=bottom>Preis</th>
</tr>
<tr>
<td>Whistler Corp.</td>
<td align=right>360 DM</td>
<td align=right>180$2</td>
</tr>
<tr>
<td>Stromberg Reed. </td>
<td align=right>764DM</td>
<td align=right> 382$</td>
</tr>
<tr>
<td>Zorin Industries </td>
<td align=right>2811DM</td>
<td align=right>1406$</td>
</tr>
</table>
</body>
2. Den fiktiven Wechselkurs DM/Dollar von 2:1 dürfen Sie gerne aktualisieren!
Abbildung 2.17
Hyperlink von der
Homepage zu
vorzuege.htm
Erläuterung Mittels eines Hyperlinks kann der Anwender zu einer anderen Webseite
verzweigen. Legen Sie sie nach dem Schema <a href="[Verweisziel]">
an. Das Verweisziel kann sich auf Dateien des eigenen Webservers oder
auch auf eine beliebige andere Ressource im Internet beziehen.
Es schließt sich der dem Anwender sichtbare Verweistext an. Sie müssen
den Hyperlink mit </a> abschließen.
74
Die erste Homepage im Intranet 2
Abbildung 2.18
Hyperlink von
vorzuege.htm zurück
zur Homepage
Abbildung 2.19
Hyperlinks zu anderen
Websites, als Text und
als Graphik
height=55></a></p>
<table border=1 width=40%>
Abbildung 2.20
Aufzählung in der
Webseite
Erläuterung Das Tag <ul> leitet eine Aufzählung (unsortierte Liste = unordered list)
ein. Mit <li> beginnt ein Listeneintrag (list item). Beide Tags werden wie
üblich abgeschlossen, bei <li> allerdings nicht zwingend.
76
Die erste Homepage im Intranet 2
Abbildung 2.21
Aufteilung in Frames,
links inhalt.htm, rechts
homepage.htm
Abbildung 2.22
Aufteilung in Frames,
links inhalt.htm, rechts
vorzuege.htm
Abbildung 2.23
Aufteilung in Frames,
links inhalt.htm, rechts
default_ITS.htm
Abbildung 2.24
Aufteilung in Frames,
links inhalt.htm, rechts
selfhtml.htm
78
Die erste Homepage im Intranet 2
Abbildung 2.25
Umbenennen und
Neuanlegen von
default.htm sowie
inhalt.htm
Abbildung 2.26
Verschieben von
SELFHTML auf den
Webserver
80
Entwurf WebTransaction: ABAP 3
Kapitel 3
Entwurf WebTransaction:
ABAP
Die Entwicklung einer Internet-Anwendungskomponente teilt sich auf Vorbemerkung
in:
• die Entwicklung einer WebTransaction in R/3 mit der Programmier-
sprache ABAP,
• auf Ersterem aufbauend mit der Entwicklung im SAP@Web Studio in
der HTML-Erweiterung HTMLBusiness.
Dieses Kapitel befasst sich mit Ersterem, also der WebTransaction in
ABAP.
Sie werden eine vollständige R/3-Transaktion als Modulpool mit vier
Dynpros anlegen. Für jedes Dynpro wird im folgenden Kapitel 4 ein so
genanntes „HTML-Template“ angelegt. Das HTML-Template wie-
derum enthält neben statischem HTML-Code Platzhalter in HTMLBusiness,
die vom AGate zur Laufzeit mit den Daten aus dem Dynpro in Form von
dynamisch generiertem HTML-Code gefüllt werden.
Die komplette betriebswirtschaftliche Ablauflogik und alle betriebswirt-
schaftlichen Daten verbleiben in R/3. Das HTML-Template bestimmt
nur das Erscheinungsbild im Browser und gewährleistet das Einsetzen
der Daten aus dem Dynpro.
Zu beachten ist, dass eine WebTransaction nur eingeschränkten Ge-
brauch von Dynpro-Objekten machen darf. So dürfen als Eingabefelder
nur Textfelder verwendet werden. Ankreuz- und Optionsfelder hingegen
81
3 Entwurf WebTransaction: ABAP
Alternative: Wenn Sie die Transaktion nicht eigenhändig mit den Werkzeugen der
Transport ABAP Workbench anlegen wollen, können Sie auch alternativ den
Transport T53K900013 einspielen, den Sie mit dem Archiv abap.zip von
http://www.dekra-akademie.de/download erhalten. Dort finden Sie
weitere Erläuterungen in der Datei IAC-Programmierung.rtf. Der Trans-
port beinhaltet den Entwicklungsstand zum Ende dieses Kapitels. Ihm
müssen noch einige IAC-spezifische Codeteile hinzugefügt werden, was
dann in Kapitel 4 erfolgt.
82
Entwurf WebTransaction: ABAP 3
Aufbauend auf der Entwicklungsklasse ZDEKRA enthält die Entwicklungs-
klasse ZIACMU, die dieser Transport beinhaltet, eine komplette Web-
Transaction, bestehend aus Programm, Dynpros, Transaktionscode,
View, Sperrobjekt und Verbuchungsfunktionsbaustein. Weitere Informa-
tionen erhalten Sie in der dem Transport beiliegenden Dokumentation.
Der Transport T53K900016 beinhaltet den abschließenden Entwicklungs-
stand von ZIACMU zum Ende dieses Buches, einschließlich der IAC-spezifi-
schen Codeteile des Kapitels 4 und des in Kapitel 5 anzulegenden
ABAP-Reports.
Die Datei ziacmu.txt, die ebenfalls im Archiv abap.zip zu finden ist, ent-
hält die Objektlisten beider Transporte.
Linux Test-Drive Wenn Sie mit einer Test-Drive-Installation auf Linux mysap.com 4.6B
Evaluation Demo arbeiten, fehlt das BAPI_EMPLOYEE_CHECKPASSWORD, da es
sich um eine reine Basis-Installation ohne betriebswirtschaftliche An-
wendungen, also auch ohne Business-Objekte, handelt. Allerdings kann
man sich selbst Business-Objekte mit WERKZEUGE / ABAP WORKBENCH /
ENTWICKLUNG / BUSINESS OBJECT BUILDER anlegen.
Der Verfasser empfiehlt dennoch, die Prüfung des Internetbenutzers
und dessen Kennwort in Dynpro 100 einfach wegzulassen. Weitere In-
formationen hierzu finden Sie in Abschnitt 3.3.
Abbildung 3.1
Mitarbeiter werden durch
ein Business-Objekt
repräsentiert.
(© SAP AG)
Abbildung 3.2
Die Methode
Checkpassword
(Kennwortprüfung) des
Business-Objekts
EmployeeAbstract
(Mitarbeiter) ist als BAPI
angelegt.
(© SAP AG)
Abbildung 3.3
Das BAPI seinerseits ist als
Funktionsbaustein
implementiert.
(© SAP AG)
84
Entwurf WebTransaction: ABAP 3
Beachten Sie die Importparameter BAPIEMPL-PERNR und BAPIUID-PASSWORD
an der Schnittstelle des Funktionsbausteins in Abbildung 3.3. Diese Fel-
der werden zur Identifikation und Authentisierung von Internetbenut-
zern, die dem Business-Objekt Mitarbeiter zugeordnet sind, verwendet.
Sie werden auf dem nachfolgend anzulegenden Dynpro 100 des eben-
falls noch anzulegenden Modulpools vom Benutzer abgefragt und dem
BAPI zur Prüfung übergeben.
Abbildung 3.4
Anlegen von Objekten
über den Object
Navigator (© SAP AG)
Abbildung 3.5
Anlegen einer
Entwicklungsklasse
(© SAP AG)
Abbildung 3.6
Eigenschaftspflege der
Entwicklungsklasse
(© SAP AG)
Abbildung 3.7
Das Anlegen der
Entwicklungsklasse
schließt mit dem
Objektkatalogeintrag und
der Zuordnung zum
Änderungsauftrag.
(© SAP AG)
86
Entwurf WebTransaction: ABAP 3
Abbildung 3.8
Anlegen eines Programms
im Kundennamensraum
„SAPMZ...“
(© SAP AG)
Abbildung 3.9
Ein größeres Programm
sollte die Include-Technik
verwenden.
(© SAP AG)
Abbildung 3.10
Automatisches Anlegen
des Top-Includes
(© SAP AG)
Abbildung 3.11
Anlegen des Programms
als Modulpool – kein
Report!
(© SAP AG)
2. Legen Sie das Dynpro 100 an. Der Screen enthält neben den Über-
schrift-Textfeldern „Dekra Effekten Kontor“ und „WebTransaction
Wertpapierdepotverbuchung“ die Felder BAPIEMPL-PERNR und BAPI-
UID-PASSWORD, wobei letzteres eine mit Sternen verdeckte Eingabe
aufweisen soll. Weiterhin enthält der Screen eine Drucktaste mit
der Aufschrift ANMELDEN.
Abbildung 3.12
Anlegen eines Dynpros
im Modulpool
(© SAP AG)
Abbildung 3.13
Pflege der Dynpro-
Eigenschaften
(© SAP AG)
Abbildung 3.14
Der graphische Screen
Painter, Überschriften
als Textfelder
(© SAP AG)
88
Entwurf WebTransaction: ABAP 3
Abbildung 3.15
Einfügen eines Feldes aus
dem Dictionary
(© SAP AG)
Abbildung 3.16
Einfügen des zweiten
Feldes aus dem Dictionary
(© SAP AG)
Abbildung 3.17
Eingabefelder auf dem
Screen, Einstellen der mit
Sternen verdeckten
Eingabe des Kennworts,
Anlegen der Drucktaste
ANMELDEN.
(© SAP AG)
Ordnen Sie der Drucktaste den Funktionscode LOGIN und dem OK-Code
das Feld OK_CODE zu, s. Abbildung 3.18.
Abbildung 3.18
Einstellen des
Funktionscodes der
Drucktaste sowie des OK-
Codes in der Elementliste
(© SAP AG)
Erläuterung Der Einfachheit halber werden an dieser Stelle bereits die meisten benö-
tigten Deklarationen von Datenobjekten im Top-Include abgedruckt.
Sie können sie in dieser Form direkt übernehmen. Vielleicht ziehen Sie
es aber auch vor, in den späteren Übungen die Deklarationen jeweils
nach Bedarf einzeln zu ergänzen.
90
Entwurf WebTransaction: ABAP 3
Im Linux Test-Drive mysap.com 4.6B Evaluation Demo fehlen die Ta- Linux Test-Drive
bellen BAPIEMPL und BAPIUID, da es sich um eine reine Basis-Installation
handelt. Der Verfasser empfiehlt, die Zeile
TABLES: bapiempl, bapiuid.
einfach wegzulassen.
4. Legen Sie einen GUI-Status an, der die ZURÜCK-Taste des SAPGUI
aktiviert. Legen Sie ebenso einen GUI-Titel an. Rufen Sie beide zu
PBO auf.
Abbildung 3.19
Ablauflogik des Dynpros,
Anlegen des PBO-Moduls
durch Vorwärts-
navigation
(© SAP AG)
Abbildung 3.20
Der Name des neuen
Includes wird
automatisch
vorgeschlagen; die
nötige Include-
Anweisung im
Rahmenprogramm wird
ergänzt.
(© SAP AG)
Abbildung 3.21
Anlegen des GUI-Status
(© SAP AG)
Abbildung 3.22
Zuordnen Funktionscode
zur ZURÜCK-Taste im GUI-
Status (© SAP AG)
Abbildung 3.23
Anlegen GUI-Titel
(© SAP AG)
5. Nach dem Klicken der Drucktaste ANMELDEN soll zu PAI mittels BA-
PI_EMPLOYEE_CHECKPASSWORD geprüft werden, ob der Anwender ein
eingetragener Internetbenutzer ist. Ist dies der Fall, soll zu Dynpro
200 verzweigt werden.
Ist dies nicht der Fall, soll über eine Fehlermessage der Anwender
auf Screen 100 verbleiben. Dabei sollen beide Eingabefelder einga-
bebereit bleiben.
92
Entwurf WebTransaction: ABAP 3
In der nachfolgenden Aufgabe wird ein eingetragener Internetbenutzer Erläuterung
angelegt.
Die CHAIN- und FIELD-Befehle sorgen dafür, dass die beiden Felder nach
einer Fehlermeldung eingabebereit bleiben.
Im Linux Test-Drive mysap.com 4.6B Evaluation Demo fehlen die Ta- Linux Test-Drive
bellen BAPIEMPL und BAPIUID, da es sich um eine reine Basis-Installation
handelt. Der Verfasser empfiehlt folgende reduzierte Ablauflogik.
PROCESS BEFORE OUTPUT.
MODULE status_0100.
*
PROCESS AFTER INPUT.
MODULE user_command_0100.
Abbildung 3.24
Der Name des neuen
Includes wird
automatisch
vorgeschlagen, die
nötige Include-
Anweisung im
Rahmenprogramm wird
ergänzt. (© SAP AG)
CASE save_ok.
WHEN 'LOGIN'.
CALL FUNCTION 'BAPI_EMPLOYEE_CHECKPASSWORD'
EXPORTING
number = bapiempl-pernr
password = bapiuid-password
IMPORTING
return = ret
EXCEPTIONS
OTHERS = 1.
IF ret-type IS INITIAL.
LEAVE TO SCREEN 200.
ELSE.
MESSAGE ID 'SU' TYPE ret-type NUMBER 000 WITH
ret-code ret-message.
ENDIF.
WHEN 'BACK'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE.
Linux Test-Drive Im Linux Test-Drive mysap.com 4.6B Evaluation Demo fehlt das
BAPI_EMPLOYEE_CHECKPASSWORD, da es sich um eine reine Basis-Installation
handelt. Der Verfasser empfiehlt folgenden reduzierten Programmcode.
MODULE user_command_0100 INPUT.
save_ok = ok_code.
CLEAR ok_code.
CASE save_ok.
WHEN 'LOGIN'.
LEAVE TO SCREEN 200.
94
Entwurf WebTransaction: ABAP 3
WHEN 'BACK'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE.
Legen Sie die Transaktion aus der Entwicklungsklasse ZIACnn heraus an, Schritte
s. Abbildung 3.25 bis Abbildung 3.27.
Abbildung 3.25
Anlegen einer
Transaktion
(© SAP AG)
1. Sollte die Nachrichtenklasse SU in Ihrem System fehlen, legen Sie bitte stattdessen
über den OBJECT NAVIGATOR / ANDERES OBJEKT / REGISTER WEITERE eine Kunden-
nachrichtenklasse Znn mit einer Nachricht 000 „& & & &“ an.
Abbildung 3.26
Pflege der
Transaktionsattribute
(© SAP AG)
Abbildung 3.27
Festlegen des von der
Transaktion zu startenden
Programms und des
Start-Dynpros
(© SAP AG)
Erläuterung Mittlerweile wurde eine Reihe von Objekten angelegt und gespeichert.
Damit sie von der Transaktion gestartet werden können, müssen sie
noch generiert werden.
Bislang wird nur die ZURÜCK-Taste des GUI-Status funktionieren, die
durch Auslösen des Funktionscodes BACK zum Programmende führt.
Eine Eingabe von Personalnummer und Kennwort wird, da noch kein
Internetbenutzer angelegt wurde, stets zur Fehlermeldung führen.
Schritte Aktivieren Sie den kompletten Modulpool, s. Abbildung 3.28 bis Abbil-
dung 3.29. Der Arbeitsvorrat wird alle zu aktivierenden Objekte anzei-
gen. Markieren Sie diese. Wenn Sie bisher stets Ihre Objekte geprüft ha-
ben, sollten nun keine Fehler mehr auftreten. Ansonsten müssen Sie die
Fehler korrigieren.
96
Entwurf WebTransaction: ABAP 3
Abbildung 3.28
Generieren aller Objekte
des Modulpools
(© SAP AG)
Abbildung 3.29
Arbeitsvorrat: Neu
angelegte, noch nicht
generierte Objekte
(© SAP AG)
Starten Sie nun die Transaktion, s. Abbildung 3.30 bis Abbildung 3.32.
Abbildung 3.30
Start der Transaktion
(© SAP AG)
Abbildung 3.31
Es ist noch kein
Internetbenutzer
angelegt.
(© SAP AG)
Abbildung 3.32
Der Funktionscode BACK
der ZURÜCK-Taste des GUI-
Status führt zum
Programmende.
(© SAP AG)
Linux Test-Drive Das in diesem Abschnitt gezeigte Verfahren ist mit der Test-Drive-Instal-
lation mysap.com 4.6B on Linux Evaluation Demo nicht durchführbar,
da dies eine reine Basis-Installation ist. Deshalb fehlen alle für Internet-
98
Entwurf WebTransaction: ABAP 3
benutzer geeigneten Business-Objekte, auch das hier verwendete
BUS1065 (Mitarbeiter).
Man kann sich zwar selbst ein Business-Objekt mit dem Business Ob-
ject Builder durch Bezug auf eine Datenbanktabelle – etwa einer hierfür
anzulegenden Tabelle ZPERSONAL – mit entsprechenden Attributen und
Methoden anlegen. Weiterhin kann man die Zuordnung von Internet-
benutzern zu diesem Business-Objekt durch Pflege der Datenbankta-
belle BFUSER_TYP ermöglichen.
Allerdings scheitert dann der Versuch, mit Bezug auf dieses Business-
Objekt einen Internetbenutzer anzulegen, an einem Programmierfehler
in einem Kernelmodul der R/3-Basis 4.6B, auf die Linux, wohl im Unter-
schied zum toleranteren Windows NT, unwirsch mit dem Abbruch des
betreffenden Dialog-Workprozesses reagiert.
Lesern, die dieses Übungsbeispiel mit der Test-Drive-Installation auf
Linux nachprogrammieren wollen, empfiehlt der Verfasser deshalb, die
Prüfung des Internetbenutzers im Programmcode einfach wegzulassen.
Der Verfasser hat dieses Problem dem SAP-Linux-Team mitgeteilt, in
künftigen Releases dürfte es wohl nicht mehr auftreten.
Abbildung 3.33
Suchen einer Personal-
nummer mit der F4-Hilfe
(© SAP AG)
Abbildung 3.34
Suchergebnis: Frau
Auermann hat
Personalnummer 1006.
(© SAP AG)
Abbildung 3.35
Internetbenutzer für die
ermittelte Personal-
nummer anlegen
(© SAP AG)
Abbildung 3.36
Leere Eingabe steht hier
für unbegrenzte
Gültigkeit (© SAP AG)
Abbildung 3.37
Ein seltsames Kennwort
wird generiert. Lesen Sie
es mal laut vor! (© SAP
AG)
10.Ändern Sie das schwer zu merkende Kennwort des soeben ange-
legten Internetbenutzers ab.
100
Entwurf WebTransaction: ABAP 3
Abbildung 3.38
Kennwort eines bereits
angelegten Internet-
benutzers ändern
(© SAP AG)
Abbildung 3.39
Eingeben des neuen,
leichter zu merkenden
Kennworts (© SAP AG)
Der View dient als Hilfsmittel zum Füllen der internen Tabelle mit
den Wertpapierpositionen und enthält: MANDT, WKN, TITEL, EMITTENT,
DEPOTNR, ANZAHL und die KUNDENNR.
Schritte
Abbildung 3.40
Anlegen eines Views
(© SAP AG)
Abbildung 3.41
Auswahl des Viewtyps
(© SAP AG)
Abbildung 3.42
Anlegen der Tabellen und
Joinbedingungen
(© SAP AG)
Abbildung 3.43
Joinbedingungen
ergeben sich aus den
Primär-/Fremdschlüssel-
beziehungen.
(© SAP AG)
Abbildung 3.44
Anlegen der Viewfelder
für Tabelle ZWPAPIER
(© SAP AG)
Abbildung 3.45
Auswahl der Felder aus
Tabelle ZWPAPIER
(© SAP AG)
102
Entwurf WebTransaction: ABAP 3
Abbildung 3.46
Auswahl der Felder aus
Tabelle ZDEPOTPSTN
(© SAP AG)
Abbildung 3.47
Auswahl der Felder aus
Tabelle ZDEPOT
(© SAP AG)
Abbildung 3.48
Alle Viewfelder des Views
ZDEPOT_PAPIERnn
(© SAP AG)
Abbildung 3.49
Aktivieren des Views
(© SAP AG)
2. Legen Sie Dynpro 200 an, s. Abbildung 3.50 bis Abbildung 3.54. Es
enthält ein Eingabefeld mit Dictionary-Bezug auf ZDEPOT-KUNDENNR
und die Drucktaste SELEKTIEREN. Über diese gelangt man zum Fol-
gedynpro 300.
Dynpro 300 wird eine Liste mit allen Wertpapierpositionen des Kun-
den als Steploop ausgeben. Zu dessen Vorbereitung soll zu PAI eine
interne Tabelle mit Daten aus dem soeben angelegten View
ZDEPOT_PAPIERnn gefüllt werden. Sie soll zu jeder Wertpapierposition
folgende Angaben enthalten: WKN, TITEL, EMITTENT, DEPOTNR, ANZAHL
und die KUNDENNR.
Schritte
Abbildung 3.50
Anlegen des Dynpros 200
(© SAP AG)
Abbildung 3.51
Pflege der Dynpro-
Eigenschaften
(© SAP AG)
Abbildung 3.52
Anlegen eines Textfeldes
als Überschrift sowie eines
Eingabefeldes
KUNDENNR aus ZDEPOT
(© SAP AG)
104
Entwurf WebTransaction: ABAP 3
Abbildung 3.53
Drucktaste SELEKTIEREN mit
Funktionscode SELECT
Abbildung 3.54
Einstellen des OK-Code-
Feldes in der Elementliste
(© SAP AG)
3. Der GUI-Status des Dynpro enthält den Funktionscode BACK für den
Rückwärtspfeil. Dieser soll zurück zu Dynpro 100 führen. Der GUI-
Titel enthält die Inschrift „Selektion Wertpapierkunde“.
Abbildung 3.55
Auswahl des PBO-
Includes (© SAP AG)
Abbildung 3.56
Zuordnen des
Funktionscodes zur
ZURÜCK-Taste im GUI-
Status (© SAP AG)
Abbildung 3.57
Anlegen des GUI-Titels
(© SAP AG)
106
Entwurf WebTransaction: ABAP 3
MODULE user_command_0200 INPUT.
save_ok = ok_code.
CLEAR ok_code.
CASE save_ok.
WHEN 'BACK'.
LEAVE TO SCREEN 100.
WHEN 'SELECT'.
erstezeile = 1.
SELECT * FROM zdepot_papiermu
INTO CORRESPONDING FIELDS OF TABLE it_kp
WHERE kundennr = zdepot-kundennr.
LEAVE TO SCREEN 300.
ENDCASE.
ENDMODULE. " USER_COMMAND_0200 INPUT
4. Aktivieren Sie alle bisher angelegten Objekte! Starten Sie die Trans-
aktion ZDEPOTnn, s. Abbildung 3.58 bis Abbildung 3.61. Es erscheint
Dynpro 100. Loggen Sie sich mit der in Abbildung 3.38 angelegten
Internetbenutzerkennung ein.
Schritte
Abbildung 3.58
Aktivieren der bisher
angelegten Objekte
(© SAP AG)
Abbildung 3.59
Start der Transaktion
(© SAP AG)
Abbildung 3.60
Dynpro 100:
Personalnummer und
Kennwort aus
Abschnitt 3.3
(© SAP AG)
Abbildung 3.61
Dynpro 200: Die F4-Hilfe
ist bereits verfügbar.
Meiden Sie die
SELEKTIEREN-Taste, da
zuvor Dynpro 300
angelegt werden muss!
(© SAP AG)
108
Entwurf WebTransaction: ABAP 3
Schritte
Abbildung 3.62
Anlegen Dynpro 300
(© SAP AG)
Abbildung 3.63
Pflege der Dynpro-
Eigenschaften
(© SAP AG)
Abbildung 3.64
Anlegen eines Textfeldes
als Überschrift sowie von
Eingabefeldern aus
ZKUNDEN
(© SAP AG)
Abbildung 3.65
Kundendaten sind reine
Ausgabefelder: Setzen
des Attributs
(© SAP AG)
Schritte
Abbildung 3.66
Einfügen eines im
Programm/Top-Include
deklarierten Feldes
(© SAP AG)
110
Entwurf WebTransaction: ABAP 3
Abbildung 3.67
Platzieren des Feldes POS,
Festlegen als reines
Ausgabefeld
(© SAP AG)
3. Fügen Sie die Felder WKN, TITEL, EMITTENT, DEPOTNR und ANZAHL aus
dem View ZDEPOT_PAPIERnn als reine Ausgabefelder ohne die zuge-
hörigen Textfelder in den Screen ein, s. Abbildung 3.68 bis Abbil-
dung 3.72. Sie bilden die restlichen Spalten des Steploops; ordnen
Sie sie auf dem Screen in Zeilenform an.
Markieren Sie die Ausgabefelder, und definieren Sie sie als Steploop
mit zehn Zeilen.
Schritte
Abbildung 3.68
Der View ZDEPOT_
PAPIERnn liefert die
Spalten des künftigen
Steploops. Fügen Sie sie
ohne Textfeld ein.
(© SAP AG)
Abbildung 3.69
Anordnung der
Ausgabefelder von links
nach rechts: POS, WKN,
TITEL, EMITTENT,
DEPOTNR, ANZAHL
(© SAP AG)
Abbildung 3.70
Ergänzen der
Spaltenüberschriften,
Markieren der Steploop-
Felder (© SAP AG)
Abbildung 3.71
Menü: BEARBEITEN /
GRUPPIERUNG / STEPLOOP /
DEFINIEREN (© SAP AG)
Abbildung 3.72
Vergrößern des Steploops
auf zehn Zeilen
(© SAP AG)
Erläuterung Mit diesen Feldern und der Drucktaste kann der Anwender der Web-
Transaction eine Wertpapierposition zum Kaufen/Verkaufen auswäh-
112
Entwurf WebTransaction: ABAP 3
len. In Dynpro 400 wird der Wertpapierkauf/-verkauf in der betreffen-
den Datenbanktabelle verbucht.
Schritte
Abbildung 3.73
Einfügen eines im
Programm/Top-Include
deklarierten Feldes
(© SAP AG)
Abbildung 3.74
Platzieren des Feldes
KAUFPOS, Anlegen
Textfeld „Pos“, Anlegen
Drucktaste KAUFEN mit
Funktionscode KAUFEN
(© SAP AG)
Abbildung 3.75
Pflege des OK-Code-
Feldes nicht vergessen!
(© SAP AG)
MODULE status_0300.
MODULE trans_to_0300.
PROCESS AFTER INPUT.
FIELD kaufpos MODULE user_command_0300.
LOOP.
ENDLOOP.
114
Entwurf WebTransaction: ABAP 3
Legen Sie den GUI-Status 300 als Dialogstatus an. Der Funktionscode
FIRST wird mit der Tastenkombination (ª)(F9) DOWN mit (ª)(F11) ver-
knüpft. Dies ist notwendig, da in der zur Laufzeit aus dem Dynpro resul-
tierenden Webseite der Steploop als vollständige Liste mit allen Zeilen
dargestellt werden wird. Hierzu wird das AGate beim Füllen des zuge-
hörigen Templates mit diesen Tastenkombinationen zum Anfang des
Steploops respektive jeweils eine Seite nach unten blättern. Die Stan-
dardbelegungen zu (Strg)(Bild½) und (Bild¼) müssen daher ausge-
tauscht werden (s. Abbildung 3.76).
Der Funktionscode UP wird vom AGate hingegen nicht benötigt und
kann daher auf der Belegung (Bild½) verbleiben.
Abbildung 3.76
GUI-Status 300 mit
Funktionscodes und
ausgetauschten
Funktionstasten zum
Blättern im Steploop
(© SAP AG)
Abbildung 3.77
GUI-Titel 300
(© SAP AG)
116
Entwurf WebTransaction: ABAP 3
10.Aktivieren Sie Dynpro 300 und alle sonstigen, noch nicht aktivierten
Objekte, s. Abbildung 3.78. Starten Sie die Transaktion, und gehen
Sie bis Dynpro 300. Drücken Sie aber nicht die Taste KAUFEN, da zu-
vor Dynpro 400 angelegt werden muss!
Schritte
Abbildung 3.78
Prüfen Sie sicherheits-
halber vor dem Aktivieren
die Syntax. (© SAP AG)
Starten Sie die Transaktion, s. Abbildung 3.79 bis Abbildung 3.81. Fül-
len Sie Dynpro 100 wie in Abbildung 3.60, Dynpro 200 wie in Abbildung
3.61 gezeigt aus. Betätigen Sie die Drucktaste SELEKTIEREN.
Abbildung 3.79
Transaktionsstart über
das Kontextmenü
(© SAP AG)
Abbildung 3.80
Dynpro 300 für Kunde
624456; Blättern in der
Liste (© SAP AG)
118
Entwurf WebTransaction: ABAP 3
Abbildung 3.81
Vorletzte Seite der Liste:
Kunde 624456, Jerome
Newton, hält insgesamt 21
Wertpapierpositionen.
(© SAP AG)
Abbildung 3.82
Dynpro 400 zum
Wertpapiere handeln
und verbuchen
(© SAP AG)
Schritte
Abbildung 3.83
Anlegen eines
Sperrobjekts mit dem
Object Navigator
(© SAP AG)
Abbildung 3.84
Zuordnen der Tabelle zum
Sperrobjekt. Die
Transaktion verwendet
Schreibsperren.
(© SAP AG)
120
Entwurf WebTransaction: ABAP 3
Abbildung 3.85
Anlegen der
Funktionsgruppe
(© SAP AG)
Abbildung 3.86
Eigenschaftspflege
Funktionsgruppe
(© SAP AG)
Abbildung 3.87
Anlegen eines
Funktionsbausteines
(© SAP AG)
Abbildung 3.88
Eigenschaftspflege
Funktionsbaustein
(© SAP AG)
Abbildung 3.89
Verbuchungsart V1
synchron sowie Zuordnen
der Anwendungsklasse
(© SAP AG)
Abbildung 3.90
Importparameter des
Funktionsbausteines
(© SAP AG)
Schritte
Abbildung 3.91
Ausnahmen (Exceptions)
des Funktionsbausteines
(© SAP AG)
122
Entwurf WebTransaction: ABAP 3
*"-------------------------------------------------
TABLES zdepotpstn.
DATA success LIKE sy-subrc.
SELECT SINGLE * FROM zdepotpstn
WHERE depotnr = depotnr
AND wkn = wkn.
IF sy-subrc NE 0.
RAISE not_found.
124
Entwurf WebTransaction: ABAP 3
3.6.3 Dynpro 400 anlegen
Das Dynpro 400 soll den ausgewählten Kunden mit den Feldern KUN-
DENNR, NAME, VORNAME und WOHNORT aus ZKUNDEN anzeigen. Weiterhin soll die
gewählte Wertpapierposition mit WKN, TITEL, EMITTENT, DEPOTNR und ANZAHL
zu sehen sein; sie wurde zu PAI von Dynpro 300 in die Feldleiste WA_KP
eingelesen.
8. Legen Sie Dynpro 400 an, s. Abbildung 3.92 bis Abbildung 3.93.
Schritte
Abbildung 3.92
Anlegen Dynpro 400
(© SAP AG)
Abbildung 3.93
Eigenschaftspflege
des Dynpros
(© SAP AG)
9. Fügen Sie die Felder KUNDENNR, NAME, VORNAME und WOHNORT aus der Da-
tenbanktabelle ZKUNDEN, als reine Ausgabefelder, dem Screen hinzu.
Setzen Sie die Überschrift „Wertpapiere zukaufen oder verkaufen“
als Textfeld ein, s. Abbildung 3.94 bis Abbildung 3.97.
Fügen Sie weiterhin aus dem Programm heraus die Felder WKN, TI-
TEL, EMITTENT, DEPOTNR und ANZAHL der Feldleiste WA_KP – als reine Aus-
gabefelder mit entsprechenden Textfeldern – hinzu.
Schritte
Abbildung 3.94
Einfügen Felder aus
dem Dictionary
(© SAP AG)
Abbildung 3.95
Platzieren der Felder,
Attribut setzen,
Überschrift
(© SAP AG)
Abbildung 3.96
Einfügen der Felder
einer Feldleiste aus
dem Programm
(© SAP AG)
Abbildung 3.97
Platzieren der Ausgabe-
felder, Ergänzen der
Textfelder
(© SAP AG)
10.Über ein Eingabefeld soll der Anwender die Anzahl der Stücke ein-
tragen. In einem weiteren Eingabefeld wird mit 'X' ein Zukauf oder
mit ' ' ein Verkauf ausgewählt. Fügen Sie hierzu die bereits im Top-
Include deklarierten Felder KAUFANZAHL und ZUKAUF aus dem
Programm heraus mit passenden Textfeldern in den Screen ein, s.
Abbildung 3.98 bis Abbildung 3.100.
126
Entwurf WebTransaction: ABAP 3
Schritte
Abbildung 3.98
KAUFANZAHL ist die
Anzahl der zu (ver-)
kaufenden Stücke.
(© SAP AG)
Abbildung 3.99
ZUKAUF entscheidet
zwischen Zukauf und
Verkauf der Stücke.
(© SAP AG)
Abbildung 3.100
Zuordnen Funktionscode
VERBUCH zur Drucktaste
(© SAP AG)
Abbildung 3.101
Zuordnen des Funktions-
codes zur ZURÜCK-Taste im
GUI-Status (© SAP AG)
Abbildung 3.102
Anlegen des GUI-Titels
(© SAP AG)
13.Zu PAI soll beim Funktionscode VERBUCH der in Aufgabe 3.6.2 pro-
grammierte Funktionsbaustein Z_DEPOTPSTNnn_ANZAHL gerufen wer-
den. Fehlerfälle, also Ausnahmen, sollen durch Ausgabe einer Er-
ror-Message behandelt werden.
128
Entwurf WebTransaction: ABAP 3
Ergänzen Sie das PAI-Modul USER_COMMAND_0400. Schritte
WHEN 'BACK'.
LEAVE TO SCREEN 300.
WHEN 'VERBUCH'.
IF zukauf = space.
wa_kp-anzahl = wa_kp-anzahl - kaufanzahl.
ELSE.
wa_kp-anzahl = wa_kp-anzahl + kaufanzahl.
ENDIF.
CALL FUNCTION 'Z_DEPOTPSTNMU_ANZAHL'
EXPORTING
depotnr = wa_kp-depotnr
wkn = wa_kp-wkn
anzahl = wa_kp-anzahl
EXCEPTIONS
not_found = 1
lock_error = 2
update_error = 3
OTHERS = 4.
CASE sy-subrc.
WHEN 0.
MESSAGE s000(su) WITH
'Wertpapierhandel wurde verbucht'.
erstezeile = 1.
SELECT * FROM zdepot_papiermu
INTO CORRESPONDING FIELDS OF TABLE it_kp
WHERE kundennr = zkunden-kundennr.
LEAVE TO SCREEN 300.
WHEN 1.
MESSAGE e000(su) WITH 'Datensatz nicht gefunden'.
WHEN 2.
MESSAGE e000(su) WITH 'Sperren fehlgeschlagen'.
WHEN 3.
MESSAGE e000(su) WITH 'Änderung fehlgeschlagen'.
WHEN 4.
Schritte
Abbildung 3.103
Mit Dynpro 400 werden
alle neu angelegten
Objekte aktiviert.
(© SAP AG)
Starten Sie die Transaktion ZDEPOTnn. Loggen Sie sich in Dynpro 100 als
Mitarbeiter 1006 ein. Wählen Sie in Dynpro 200 den Kunden 624456. In
Dynpro 300 entscheiden Sie sich für den Kauf der Position 13, s. Abbil-
dung 3.104 bis Abbildung 3.107.
Abbildung 3.104
Dynpro 300: Auswahl der
Wertpapierposition des
Kunden (© SAP AG)
130
Entwurf WebTransaction: ABAP 3
Abbildung 3.105
Zukauf von
Wertpapieren, Verbuchen
in der Datenbanktabelle
(© SAP AG)
Abbildung 3.106
Die Anzahl dieser
Wertpapiere hat sich um
42 Stück erhöht.
(© SAP AG)
Abbildung 3.107
Verkauf von
Wertpapieren
(© SAP AG)
Die bis hierhin erstellte Fassung der WebTransaction ist auch als Trans- Alternative:
port T53K900013 von http://www.dekra-akademie.de erhältlich. Dieser Transport
enthält die komplette Entwicklungsklasse ZIACMU, bestehend aus Pro-
gramm, Dynpros, Transaktion, View, Sperrobjekt und Verbuchungs-
funktionsbaustein. Er setzt sich zusammen aus den beiden Dateien
R900013.T53 und K900013.T53. Voraussetzung ist, dass die Entwick-
lungsklasse ZDEKRA komplett eingerichtet wurde, etwa über den Trans-
port LNXK90006.
Kapitel 4
SAP@Web Studio und ITS
Die bisher nur intern in R/3 verfügbare webfähige Transaktion wird in
diesem Kapitel mittels des SAP@Web Studios zu einem Webprojekt er-
weitert, aus dem eine komplette Internet-Anwendungskomponente
(IAC) der Kategorie WebTransaction resultiert. Daneben gibt es noch die
in Kapitel 5 behandelten IAC-Kategorien WebRFC und WebReporting.
Zunächst werden Projekt, Service und Theme angelegt. Anschließend
wird für jedes Dynpro ein HTML-Template automatisch durch Zugriff
auf die Dynpro-Definition in R/3 generiert. Nach dem Publizieren der
Templates auf den ITS ist die WebTransaction als IAC von einem beliebi-
gen Browser im Intranet aus aufrufbar.
133
4 SAP@Web Studio und ITS
1. Starten Sie das SAP@Web Studio. Legen Sie das Projekt wpdepot
im Pfad C:\Programme\SAP\Studio\2.0\bin\wpdepot.itsp an.
Schritte Starten Sie das SAP@Web Studio mit START / PROGRAMME / SAP@WEB
STUDIO / STUDIO 4.6D, s. Abbildung 1.62.
Legen Sie mit FILE / NEW... das Projekt im vorgeschlagenen Pfad an, s.
Abbildung 4.1.
Abbildung 4.1
Anlegen des Projektes
(© SAP AG)
Schritte Starten Sie im SAP@Web Studio den Service-Wizard mit PROJECT / ADD
TO PROJECT / NEW..., s. Abbildung 4.2 bis Abbildung 4.9. Die Anmelde-
daten wurden bereits bei der Installation des ITS eingegeben, sie befin-
den sich dort in der besonderen Servicedatei global.srvc, die global gül-
tige Einstellungen enthält. Diese können aber von Servicedateien der
einzelnen Services überschrieben werden.
Der Service ist anschließend noch nicht aufrufbar, es müssen erst noch
die HTML-Templates hinzugefügt werden.
134
SAP@Web Studio und ITS 4
Abbildung 4.2
Start des Sevice-Wizards
(© SAP AG)
Abbildung 4.3
Einstiegsseite des
Service-Wizards
(© SAP AG)
Abbildung 4.4
Benennen des Services
(© SAP AG)
Abbildung 4.5
Auswahl des R/3-Systems
(© SAP AG)
Abbildung 4.6
Übernahme Anmelde-
daten aus global.srvc
(© SAP AG)
Abbildung 4.7
Timeout in Minuten, nach
denen eine ITS-Session
beendet wird
(© SAP AG)
Abbildung 4.8
Zuordnung der
WebTransaction
zum Service
(© SAP AG)
Abbildung 4.9
Abschlussseite des
Service-Wizards
(© SAP AG)
Abbildung 4.10
Die automatisch
generierte Servicedatei
im SAP@Web Studio
(© SAP AG)
Schritte Markieren Sie im SAP@Web Studio den Service wpbuchung. Legen Sie
Thema 00 mit PROJECT / ADD TO PROJECT / THEME an.
Abbildung 4.11
Anlegen eines Themes
(© SAP AG)
136
SAP@Web Studio und ITS 4
Ein Template ist jeweils einem Dynpro der WebTransaction zugeordnet.
Die Platzhalter sind in HTMLBusiness formuliert und werden zur Laufzeit
vom AGate des ITS mit Daten aus dem jeweiligen Dynpro, mitunter
auch aus der Transaktion, ersetzt.
Das AGate tritt gegenüber dem R/3-System ähnlich wie ein interaktiver
SAPGUI-Benutzer auf. Der Benutzer jedoch sitzt an seinem Browser.
Das AGate
• empfängt ein Dynpro der laufenden Transaktion,
• wandelt es durch Ersetzen der Platzhalter des Templates in ein
HTML-Formular um,
• sendet dieses an das WGate, das es über den Webserver an den
Browser weiterleitet,
• empfängt die vom Benutzer ausgefüllten und zurückgelieferten For-
mulardaten über Webserver und WGate,
• füllt damit die entsprechenden Dynpro-Felder aus und sendet sie zu-
rück ans R/3.
HTMLBusiness-Code wird mit dem Zeichen ` („Backticks“) geklammert,
das in HTML ohne Bedeutung ist. Die Darstellung beispielsweise der
Nummer eines Wertpapierkunden kann so aussehen: `ZDEPOT-KUN-
DENNR.value`. Dies dient der Unterscheidung vom HTML-Code.
Der Template-Wizard kann aus den Dynpros einer WebTransaction her-
aus automatisch Templates generieren. Hierzu verbindet er sich mit dem
R/3-System und fragt die Dynpro-Definitionen ab. Die automatisch ge-
nerierten Templates sind äußerst karg und schnörkellos gehalten. Für
den Webdesigner dienen sie als Basis für weitergehende Gestaltung mit
HTML, Graphiken, JavaScript-Code etc.
1. Legen Sie Templates für die Dynpros 100, 200, 300 und 400 mittels
des Template-Wizards an, s. Abbildung 4.12 bis Abbildung 4.19.
Die Templates sollen zunächst für die Anmeldesprache Deutsch er-
stellt werden.
Abbildung 4.12
Start des Template-
Wizards zum Generieren
von Templates
(© SAP AG)
Abbildung 4.13
Einstiegsseite des
Template-Wizards
(© SAP AG)
Abbildung 4.14
Auswahl des R/3-Systems
mit der WebTransaction
(© SAP AG)
Abbildung 4.15
Der Template-Wizard
meldet sich wie ein
„normaler“ Benutzer,
allerdings über RFC, am
R/3 an. (© SAP AG)
Abbildung 4.16
Die Anmeldung des
Template-Wizards ist nun
auch in der Benutzerliste
zu sehen: Transaktion
SM04. (© SAP AG)
138
SAP@Web Studio und ITS 4
Abbildung 4.17
Programmname, alle
Dynpros, Theme,
deutsche Sprache
(© SAP AG)
Abbildung 4.18
Auslesen Dynpro-
Definitionen, Generierung
der Templates
(© SAP AG)
Abbildung 4.19
Anzeige der HTML-Source:
Für jedes Dynpro wurde
ein Template in
HTMLBusiness angelegt.
(© SAP AG)
In der Browser-Vorschau sehen Sie jeweils ein Formular mit Text- und Erläuterung
Eingabefeldern sowie einer Drucktaste zum Absenden. Die Darstellung
ist insofern unvollständig, als die HTMLBusiness-Platzhalter noch nicht er-
setzt wurden. Ferner ist die Drucktaste nicht funktionsfähig, dies wird
erst der Fall sein, wenn die Templates auf den ITS publiziert worden
sind.
Es wird der Standardbrowser für die Dateinamenserweiterung .html,
hier der Internet Explorer, verwendet.
Schritte
Abbildung 4.20
Browser-Vorschau:
Template zu Dynpro 100.
Das Kennwortfeld fehlt,
da es auskommentiert
angelegt wurde.
Schritte Öffnen Sie das Template 100, das in der Datei sapmzdepotnn_100_
de.html vorliegt, in der Ansicht HTML-SOURCE, s. Abbildung 4.19. Ent-
sprechend öffnen Sie Template 200. Sie finden den HTMLBusiness-Code
dieser Templates auch im Anhang 6.3.
HTML-Formulare Template 100 und 200 enthalten jeweils ein neues Tag <form me-
thod="post" action="...">. Es definiert ein Formular, das neben Textfel-
dern auch Eingabefelder – die der Benutzer bearbeiten kann – und eine
Drucktaste zum Versenden enthält, es ist in der Browser-Vorschau, s.
Abbildung 4.20, bereits erkennbar.
Die Auslassungen "..." beinhalten HTMLBusiness-Code, der vom AGate
durch HTML-Code ersetzt wird. Er wird anschließend erläutert.
Innerhalb des Formulars ist das Eingabefeld <input type=text name="..."
value="..." maxlength="008" size="008"> für Text definiert. Die maximale
Eingabelänge und die sichtbare Länge sind hier auf jeweils acht Zeichen
begrenzt. Der innerhalb von value="..." eingetragene Wert wird im For-
mular angezeigt und kann vom Benutzer verändert werden.
Am unteren Ende des Formulars befindet sich die mittels <input
type=submit name="~okcode=LOGIN" value="..."> definierte Drucktaste zum
Versenden des Formulars. Der innerhalb von value="..." angegebene
Text wird auf der Drucktaste angezeigt.
Das Drücken des Buttons bewirkt die Generierung eines URL, ähnlich
der des Hyperlinks, aus den Formulardaten. Über diesen URL wird das
Formular versendet, wobei die Inhalte der Eingabefelder mitgesendet
werden. Im Falle von <form method="get" ...> werden sie an den URL
angehängt, hier etwa würde der URL lauten:
http://www.dekra-kl.de/scripts/wgate/wpbuchung!?bapiempl-
pernr=1006&bapiuid-password=dekra&~okcode=LOGIN
140
SAP@Web Studio und ITS 4
In diesem URL erkennt man nach dem Pfad zur Website und dem Auf-
ruf des serverseitigen Programms WGate mit dem Service wpbuchung
drei Name/Wert-Paare, die dem Webserver übermittelt werden. Im
Falle von <form method="post" ...> werden die Name/Wert-Paare statt
im URL im HTTP-Header übermittelt:
Name Wert
bapiempl-pernr 1006
bapiuid-password dekra
~okcode LOGIN
Tabelle 4.1 : Name/Wert-Paare, die über das aus Template 100 resultierende Formular
im HTTP-Header versendet werden.
Die post-Methode hat gegenüber der get-Methode den Vorteil, dass die
zurückgelieferten Ergebnisse in keinem Cache gespeichert werden, was
bedeutet, dass stets ein aktuelles, vom zuständigen Webserver gesen-
detes, Formular übermittelt wird.
Die Name/Wert-Paare werden vom Webserver weitergeleitet an das
angegebene serverseitige Programm, hier an das WGate. Die Weiterlei-
tung erfolgt im Standard über die so genannte CGI-Schnittstelle (Com-
mon Gateway Interface), im Falle des IIS von Microsoft jedoch über die
ISAPI-Schnittstelle, die ähnlich funktioniert, aber laut Microsoft schnel-
ler ist. Das WGate wertet die Name/Wert-Paare aus und leitet sie an das
AGate weiter.
Durch Angabe von action="..." innerhalb von <form ...> wird festge-
legt, wohin das Formular geschickt werden soll. Eine Angabe wie etwa
<form method="post" action="/scripts/wgate/wpbu-
chung/~flN0YXRlPTEyMzgyLjAwMS4wMi4wMg==">
führt dazu, dass das Formular über den gleichen Webserver an das ser-
verseitige Programm WGate gesendet wird, das daraufhin den Service
wpbuchung startet. Hierzu verwendet der Webserver die CGI- respek-
tive ISAPI-Schnittstelle.
Der codierte Rest ~flN0YXRlPTEyMzgyLjAwMS4wMi4wMg== des URL wird im
folgenden Abschnitt zusammen mit `wgateurl()` – eine HTMLBusiness-
Funktion, die obigen URL generiert – erläutert.
HTMLBusiness Zwischen jeweils zwei Zeichen ` (Backticks) finden Sie folgenden HTML-
Business
-Code:
• `BAPIEMPL-PERNR.label`: Platzhalter für den Bezeichner eines Dynpro-
Feldes, hier: Personalnr.
• `BAPIEMPL-PERNR.name`: Platzhalter für den ABAP-Namen eines Dyn-
pro-Feldes, hier: BAPIEMPL-PERNR[1].
• `BAPIEMPL-PERNR.value`: Platzhalter für den angezeigten Wert eines
Dynpro-Feldes, hier ist es leer "", da dieses Feld im Dynpro zu PBO
nicht vorbelegt wurde; .value kann auch weggelassen werden.
• `wgateurl()`: Platzhalter für einen URL zum WGate, wie er etwa für
die Formulardefinition gebraucht wird. <form method="post"
action="`wgateurl()`"> resultiert in einem URL, wie er im vorherigen
Abschnitt beispielhaft angedeutet wurde.
Da mehrere Benutzer gleichzeitig verwaltet werden müssen, wird im
AGate – ähnlich der R/3-Basis mit ihren Rollbereichen – für jeden Be-
nutzer ein Sessionspeicher mit dem Benutzerkontext eingerichtet und
durch eine Session-ID identifiziert. Die Session-ID wird in dem co-
dierten Rest des URL nach der Angabe des Services wpbuchung er-
gänzt. Dieser Rest enthält darüber hinaus eine Synchronisationsinfor-
mation, die angibt, welches Formular der Benutzer gerade bearbeitet
hat, und einige weitere Angaben. Die Synchronisationsinformation
ist von Bedeutung für den Fall, dass der Anwender die ZURÜCK-Taste
des Browsers drückt, s. Abschnitt 4.11.
• `~windowtitle`: Platzhalter für den GUI-Titel des Dynpros, hier: Anmel-
dung Wertpapierdepotverwaltung.
• `~messageline`: Platzhalter für die Statuszeile des Dynpros, wichtig
zum Einsehen der Fehlermeldungen.
• `assert(BAPIEMPL-PERNR.name)`: Nach dem Auftreten eines Fehlers bei
der Dynpro-Eingabe ist das Feld, das den Fehler verursachte, hier
BAPIEMPL-PERNR, eingabebereit, die anderen nicht. Da in HTML einem
Feld die Eingabebereitschaft nicht genommen werden kann, wird
stattdessen neben dem betreffenden Feld eine standardisierte Fehler-
meldung angezeigt.
4. Sorgen Sie dafür, dass das Eingabefeld für das Kennwort in Tem-
plate 100 in der Browser-Vorschau sichtbar wird, s. Abbildung
4.21.
142
SAP@Web Studio und ITS 4
Der Template-Wizard hat zwar einen Code für das Kennwortfeld ange- Erläuterung
legt, ihn aber seltsamerweise mit den Zeichenfolgen <!-- und --> auskom-
mentiert. Der Verfasser hat allerdings beobachtet, dass das Kennwort in
früheren Versionen des SAP@Web Studios nicht auskommentiert wurde.
Abbildung 4.21
Kennwortfeld nach
Entfernen der
Kommentarzeichen
(© SAP AG)
In der globalen Servicedatei global.srvc des ITS ist das Theme 99 einge- Erläuterung
tragen. Um für den Service wpbuchung das Theme 00 einzustellen,
muss dies durch die lokale Servicedatei wpbuchung.srvc überschrieben
werden.
Doppelklicken Sie in die erste freie Zeile von wpbuchung.srvc, s. Abbil- Schritte
dung 4.22. Tragen Sie den Schlüssel ~theme = 00 ein. Das Eingabefenster
bestätigen Sie mit (¢)
Abbildung 4.22
Überschreiben des
Themes durch die
lokale Servicedatei
(© SAP AG)
Erläuterung Publizieren der Website bedeutet, die Dateien des Webprojektes – Ser-
vicedateien, HTML-Templates, Sprachressourcendateien etc. – vom
Dateisystem des SAP@Web Studios in das Dateisystem des AGates zu
kopieren. Hierzu können Windows-Ordnerfreigaben oder auch FTP-
Upload-Adressen verwendet werden.
Schritte Starten Sie PROJECT / SITE DEFINITION, s. Abbildung 4.23 bis Abbildung
4.30.
Abbildung 4.23
Definieren einer Website
im SAP@Web Studio
(© SAP AG)
Abbildung 4.24
Site-Wizard: Benennen
der Website
(© SAP AG)
Abbildung 4.25
Netzwerkverbindung
zum Webserver mit
dem WGate
(© SAP AG)
144
SAP@Web Studio und ITS 4
Abbildung 4.26
Netzwerkverbindung
zum AGate des ITS1
(© SAP AG)
Abbildung 4.27
Anstelle der Windows-
Ordnerfreigaben sind mit
CUSTOM statt ITS VIRTUAL
SHARES auch FTP-Adressen
zum Heraufladen der
Dateien möglich.
(© SAP AG)
Abbildung 4.28
Falls der Webserver einen
anderen Port als Port 80
abhört, muss dieses hier
eingetragen werden.
(© SAP AG)
Abbildung 4.29
Schlussseite des
Site-Wizards
(© SAP AG)
Abbildung 4.30
Site-Definition:
Freigegebene ITS-Ordner
zum Publizieren im Netz
(© SAP AG)
1. Wegen der Single-Host-Installation ist dies hier der Gleiche wie der Webserver mit dem WGate.
2. Publizieren Sie den Service und dessen Templates auf das AGate
des ITS.
Abbildung 4.31
Publizieren des Services
und der Templates
(© SAP AG)
Abbildung 4.32
Erfolgsmeldungen
des Publizierens im
unteren Teilfenster
(© SAP AG)
Abbildung 4.33
Kopie der Servicedatei im
Dateisystem des AGate
(© SAP AG)
Abbildung 4.34
Kopien der Templates im
Dateisystem des AGate
(© SAP AG)
146
SAP@Web Studio und ITS 4
Schritte
Abbildung 4.35
Browser: Eigene
Homepage mit
Standard-IACs
Abbildung 4.36
Start einer Standard-IAC
über einen Hyperlink
Abbildung 4.37
Erfolgreicher IAC-Start
Schritte
Abbildung 4.38
Der Script-Ordner des
Webservers IIS:
C:\\Inetpub\Scripts
Erläuterung Der IAC-Start erfolgt durch einen URL mit Start des Programms WGate
im Script-Ordner des IIS. Dessen virtueller Ordner /scripts findet sich im
Dateisystem als C:\Inetpub\scripts. Dem WGate wird im URL zunächst
der Name des Services wpbuchung übergeben, welcher dann im AGate
gestartet wird. Dem folgen im URL, nach den Trennzeichen "!?", wei-
tere Parameter als Name/Wert-Paare, etwa in der Form ~language=de,
wodurch die Sprache Deutsch eingestellt wird.
Aus der Servicedatei wpbuchung.srvc entnimmt das AGate, welche
Transaktion des R/3 zu starten ist.
Auf Webseite 300 wählen Sie das Papier Isar Amperwerke der
Emission-GmbH, WP-Kennnummer 504500, Depotnummer
937561. Beachten Sie die Nutzung der Blätterfunktion des Dynpro-
Steploops zur Ausgabe der gesamten Liste in der Webseite. Be-
trachten Sie auch die repeat-Schleife im HTMLBusiness-Code von
Template 300.
148
SAP@Web Studio und ITS 4
Schritte
Abbildung 4.39
Start des Services
wpbuchung mit Webseite
100 über einen Hyperlink,
Anmeldung als
Internetbenutzer mit
noch sichtbarem
Kennwort
Abbildung 4.40
Webseite 200: Eingabe
der Kundennummer
Abbildung 4.41
Webseite 300, obere
Hälfte
Listenausgabe Im Unterschied zum Steploop eines Dynpros, dessen Länge begrenzt ist
durch Blättern – hier auf zehn Zeilen pro Seite, kann eine HTML-Seite beliebig lange
Listen anzeigen. Deshalb blättert das AGate im Steploop, um so wie in
Webseite 300, s. Abbildung 4.42, die Liste Seite für Seite zusammenzu-
stellen. Hierzu verwendet das AGate die im GUI-Status 300, s. Abschnitt
3.5, festgelegten Tastenfunktionen (ª)(F9) für den Funktionscode FIRST
(zum Anfang blättern) und (ª)(F11) für den Funktionscode DOWN (nach
unten blättern).
Die Liste wird durch folgenden HTMLBusiness-Code in Template 300 an-
gezeigt:
<table>
<thead>
<tr>
<td>`'%#AUTOTEXT004'.label`</td>
<td>`'%#AUTOTEXT005'.label`</td>
<td>`'%#AUTOTEXT006'.label`</td>
<td>`'%#AUTOTEXT007'.label`</td>
<td>`'%#AUTOTEXT008'.label`</td>
<td>`'%#AUTOTEXT009'.label`</td>
</tr>
</thead>
<tbody>
`repeat with j from 1 to POS.max`
<tr>
<td>`POS[j].value`</td>
<td>`ZDEPOT_PAPIERMU-WKN[j].value`</td>
<td>`ZDEPOT_PAPIERMU-TITEL[j].value`</td>
<td>`ZDEPOT_PAPIERMU-EMITTENT[j].value`</td>
<td>`ZDEPOT_PAPIERMU-DEPOTNR[j].value`</td>
<td>`ZDEPOT_PAPIERMU-ANZAHL[j].value`</td>
</tr>
`end`
</tbody>
</table>
Mit den Tags <thead> und <tbody> werden der Kopfbereich und der Da-
tenbereich der Tabelle festgelegt. Die Bezeichner der Form %#AUTOTEXT004
wurden vom Screen Painter automatisch vergeben für Textfelder, für die
der Programmierer nicht selbst einen Bezeichner vergeben hatte.
150
SAP@Web Studio und ITS 4
Die HTMLBusiness-Schleife `repeat with j from 1 to POS.max` hat zur Folge,
dass der im Bereich bis `end` eingeschlossene Code solange in die resul-
tierende HTML-Seite eingesetzt wird, bis der Schleifenzähler – begin-
nend mit 1 – bis zu POS.max, dem größten Wert des Feldes POS, hochge-
zählt hat.
Im gezeigten Beispiel läuft j von 1 bis 21. Hat j beispielsweise derzeit
den Wert 5, dann wird in der fünften HTML-Listenzeile
`ZDEPOT_PAPIERnn-TITEL[j].value` ersetzt durch den Wert der Zelle in der
fünften Zeile der Spalte Wertpapiertitel des Steploops in Dynpro 300:
„Isar Amperwerke“.
Abbildung 4.42
Webseite 300, untere
Hälfte; Blätternfunktion
des Steploops (Seite 1:
Pos. 1 bis 10, Seite 2: 11 bis
20, Seite 3: Pos. 21)
Abbildung 4.43
Webseite 400: Kauf von 18
Wertpapieren
Abbildung 4.44
Webseite 300: Erhöhte
Anzahl an Wertpapieren
nach dem Kauf
Abbildung 4.45
Webseite 400: Verkauf
von Wertpapieren
152
SAP@Web Studio und ITS 4
Abbildung 4.46
Resource-Wizard zum
Anlegen einer
Sprachressourcendatei
(© SAP AG)
Abbildung 4.47
Einstiegsseite des
Resource-Wizards
(© SAP AG)
Abbildung 4.48
Zuordnung zu Service,
Theme und Sprache
Deutsch (© SAP AG)
Abbildung 4.49
Es gibt noch keine
Sprachressource für
Service und Theme
(© SAP AG)
Abbildung 4.50
Abschlussseite des
Resource-Wizards
(© SAP AG)
Abbildung 4.51
Anlegen des Sprach-
schlüssels welcome auf
Deutsch (© SAP AG)
Starten Sie den Resource-Wizard erneut für die Sprache Englisch, s. Ab-
bildung 4.52 bis Abbildung 4.54.
Abbildung 4.52
Anlegen der zweiten
Sprachressourcendatei
für Englisch (© SAP AG)
Abbildung 4.53
Bereits vorhandene
Sprachschlüssel aus der
deutschen Sprach-
ressource werden
übernommen.
(© SAP AG)
Abbildung 4.54
Pflege des Sprach-
schlüssels welcome
auf Englisch
(© SAP AG)
154
SAP@Web Studio und ITS 4
Schließen Sie alle Template-Fenster. Entfernen Sie an den Template-Da- Schritte
teinamen die Endung _de. Markieren Sie das Thema 00, und publizieren
Sie diese erneut mit PROJECT / PUBLISH FILES. Die deutschsprachigen
Templates zum Löschen finden Sie über den Explorer im Pfad
C:\Programme\SAP\ITS\2.0\<r3>\templates\wpbuchung\00, wobei
<r3> der Name Ihres R/3-Systems ist.
Abbildung 4.55
Umbenennen der
deutschsprachigen
Templates (© SAP AG)
Abbildung 4.56
Erneutes Publizieren
des Themes
(© SAP AG)
Abbildung 4.57
Löschen der
deutschsprachigen
Templates im AGate
(© SAP AG)
Abbildung 4.58
Start der WebTransaction
mit Anmeldesprache
Deutsch
Abbildung 4.59
Start der WebTransaction
mit Anmeldesprache
Englisch; einige
Textfelder und die
Drucktaste sind noch
nicht übersetzt.
Schritte Öffnen Sie Dynpro 100 SPRINGEN / ÜBERSETZUNG, s. Abbildung 4.60 bis
Abbildung 4.63. Speichern Sie die Übersetzungen, und aktivieren Sie
das Dynpro neu. Verfahren Sie entsprechend mit allen anderen Dyn-
pros. Starten Sie die IAC erneut.
Abbildung 4.60
Übersetzen der
Textelemente
des Dynpros
(© SAP AG)
156
SAP@Web Studio und ITS 4
Abbildung 4.61
Übersetzungen der
Textfelder und Druck-
tasten von Dynpro 100
(© SAP AG)
Abbildung 4.62
Übersetzung der
Kurzbeschreibung
(Dynpro-Eigenschaften)
(© SAP AG)
Abbildung 4.63
Übersetzungen der
Textfelder und Druck-
tasten von Dynpro 200
(© SAP AG)
Abbildung 4.64
Erneuter Start der IAC:
Alle Texte sind übersetzt.
Abbildung 4.65
Schutz der
Kennworteingabe vor
neugierigen Blicken
Schritte Ergänzen Sie Template 400, und kommentieren Sie das vorhandene
Eingabefeld aus.
<p>
<!--<input type=text name="`KAUFANZAHL.name`"
value="`KAUFANZAHL.value`" maxlength="010" size="010"> -->
<input type=radio name="`KAUFANZAHL.name`" value=1> 1 <br>
<input type=radio name="`KAUFANZAHL.name`" value=2> 2 <br>
<input type=radio name="`KAUFANZAHL.name`" value=5> 5 <br>
<input type=radio name="`KAUFANZAHL.name`" value=10> 10
<br>
<input type=radio name="`KAUFANZAHL.name`" value=20> 20
<br>
<input type=radio name="`KAUFANZAHL.name`" value=50> 50
<br>
158
SAP@Web Studio und ITS 4
<input type=radio name="`KAUFANZAHL.name`" value=100> 100
<br>
<input type=radio name="`KAUFANZAHL.name`" value=200> 200
<br>
<input type=radio name="`KAUFANZAHL.name`" value=500> 500
<br>
<input type=radio name="`KAUFANZAHL.name`" value=1000>
1000 <br>
`assert(KAUFANZAHL.name)`
`'%#AUTOTEXT007'.label`
Zu beachten ist beim Anlegen eines Ankreuzfeldes, dass es im URL nur Erläuterung
im angekreuzten Zustand als Name/Wert-Paar gesendet wird. Ist es
hingegen nicht angekreuzt, fehlt das Name/Wert-Paar. Deshalb sollte
man vor dem checkbox-Feld stets ein gleichnamiges verstecktes Feld
vom Eingabefeldtyp hidden vorsehen. Der URL sieht dann folgenderma-
ßen aus:
•
: ...&name=ZUKAUF&value=" "&...
• ;: ...&name=ZUKAUF&value=" "&name=ZUKAUF&value="X"...
Das zweite Name/Wert-Paar überschreibt das erste im Falle des ange-
kreuzten Feldes.
Ergänzen Sie Template 400, und kommentieren Sie das vorhandene Schritte
Eingabefeld aus.
<p>
<!-- <input type=text name="`ZUKAUF.name`"
value="`ZUKAUF.value`" maxlength="001" size="001"> -->
<input type=hidden name="`ZUKAUF.name`" value=" ">
<input type=checkbox name="`ZUKAUF.name`" value="X">
`assert(ZUKAUF.name)`
`'%#AUTOTEXT008'.label`
Schritte Publizieren Sie Template 400, und starten Sie das IAC neu. Wählen Sie
in Webseite 300 die Position 13.
Abbildung 4.66
Auswahlknöpfe und
Ankreuzfeld
160
SAP@Web Studio und ITS 4
Hier wird zunächst ein Auswahllistenfeld mit festen Werten, die im Tem- Anmerkung
plate gespeichert sind, angelegt. Besser wäre es jedoch, wenn das Aus-
wahllistenfeld aktuelle Werte aus der betreffenden R/3-Tabelle bezie-
hen würde. Dies wird in Abschnitt 4.15 behandelt: ABAP-Makros
senden diese Werte per RFC aus R/3 in den Benutzerkontext der
AGate-Session.
Ergänzen Sie Template 200, und kommentieren Sie das vorhandene Schritte
Eingabefeld aus. Publizieren Sie das Template.
`ZDEPOT-KUNDENNR.label`
<!-- <input type=text name="`ZDEPOT-KUNDENNR.name`"
value="`ZDEPOT-KUNDENNR.value`" maxlength="010"
size="010"> -->
<select name="`ZDEPOT-KUNDENNR.name`" size=4>
<option value="124456"> 124456
<option value="124457"> 124457
<option value="124458"> 124458
<option value="124459"> 124459
<option value="124460"> 124460
<option value="274067"> 274067
<option value="284104"> 284104
<option value="396710"> 396710
<option value="472016"> 472016
<option value="492569"> 492569
<option value="624456"> 624456
<option value="649912"> 649912
<option value="729461"> 729461
<option value="826452"> 826452
<option value="936294"> 936294
</select>
`assert(ZDEPOT-KUNDENNR.name)`
Abbildung 4.67
Webseite 200: HTML-
Select als Ersatz für
die F4-Hilfe
Abbildung 4.68
Webseite 300: Die
gewählte Kundennummer
wurde übernommen.
Erläuterung Der Service wird beendet durch Übermittlung des Funktionscodes /NEX
im Parameter ~OkCode. Der danach darzustellende URL wird in der Datei
mit den globalen Servicestellungen global.srvc des ITS im Parameter
~exiturl festgelegt.
162
SAP@Web Studio und ITS 4
Abbildung 4.69
Pflege der
Sprachressource ende
(© SAP AG)
Pflegen Sie mit dem Texteditor in der Datei global.srvc den Parameter
~exiturl mit dem URL der Datei homepage.htm des Webservers. Sie finden
sie im Pfad C:\Programme\ SAP\ITS\2.0\<r3>\services\global.srvc.
~urlmime /sap/its/mimes
~exiturl http://www.dekra-kl.de/homepage.htm
~clientcert 1
Abbildung 4.70
Drucktaste zum Beenden
der WebTransaction
Abbildung 4.71
Nach dem Senden von
~ ~ aOkCode=/NEX:zurück
zu homepage.htm
1. Fügen Sie in Template 200 einen Hyperlink ein, der direkt den OK-
Code SELECT und die Kundennummer 624456 des Stammkunden Je-
rome Newton übergibt, s. Abbildung 4.72 bis Abbildung 4.73.
164
SAP@Web Studio und ITS 4
Ergänzen und publizieren Sie Template 200. Schritte
<input type=submit name="~okcode=SELECT"
value="`BUTTON_SELECT.label`">
<p>
<a href="`wgateURL(~OKCode="SELECT",
zdepot-kundennr="624456")`"> Stammkunde Jerome Newton
</a>
</form></P>
Abbildung 4.72
Mit wgateurl()
dynamisch erzeugter
Hyperlink
Abbildung 4.73
Der Hyperlink führt direkt
von Webseite 200 nach
Webseite 300
Geben Sie wgateURL() die Parameter ~OkCode="KAUFEN" und KAUFPOS=j mit – Erläuterung
j ist der Schleifenzähler der repeat-Schleife, welche die Liste der Wert-
papierpositionen aufbaut.
Abbildung 4.74
Zeilenauswahl über
dynamische Hyperlinks
aus wgateURL()
Abbildung 4.75
Der Hyperlink führt von
Webseite 300 nach
Webseite 400.
Die Aufgabe dient nur dem Erlernen der Konstruktion von Hyperlinks
mit Parameterübergabe.
1. Legen Sie im linken Frame einen Hyperlink an, der die Anmeldung
des Internetbenutzers für den Mitarbeiter 1006 in Webseite 100
übernimmt und auf diese Weise direkt zu Webseite 200 verzweigt,
s. Abbildung 4.76 bis Abbildung 4.78.
Der Hyperlink enthält die Anmeldesprache ~language, den OK-Code
~okcode, die Personalnummer sowie das Kennwort des Internetbe-
nutzers. Ermitteln Sie zunächst die benötigten Feldnamen in der
Elementliste des Dynpros 100.
Ermitteln Sie den OK-Code, der zum Einloggen verwendet wird.
Legen Sie den Hyperlink im linken Frame an.
166
SAP@Web Studio und ITS 4
Öffnen Sie die Elementliste von Dynpro 100 Schritte
Abbildung 4.76
Ermitteln der Feldnamen
zur Anmeldung aus
der Elementliste
(© SAP AG)
Abbildung 4.77
Ermitteln des OK-Codes
zur Anmeldung aus
der Ablauflogik
(© SAP AG)
Abbildung 4.78
Direktstart zu Webseite
200 durch Mitgeben aller
benötigten Parameter für
Webseite 100 im Hyperlink
Schritte Gehen Sie zunächst für Kunden 624456 zu Webseite 300, s. Abbildung
4.79 bis Abbildung 4.81. Betätigen Sie die ZURÜCK-Taste, sie führt Sie
zu Webseite 200. Wählen Sie Kunde 274067. Sie landen mit der Druck-
taste SELEKTIEREN fehlerhafterweise erneut bei Kunde 624456.
Abbildung 4.79
ZURÜCK-Taste des
Browsers, von Webseite
300 aus gedrückt. Die
WebTransaction in R/3
verbleibt allerdings bei
Dynpro 300
168
SAP@Web Studio und ITS 4
Abbildung 4.80
Auswahl eines anderen
Kunden in Webseite 200.
Der OK-Code SELECT wird
vom immer noch
aktuellen Dynpro 300
nicht ausgewertet.
Abbildung 4.81
Webseite 300 zeigt
nachher immer noch den
alten Kunden an.
2. Beheben Sie diesen Fehler, indem Sie zu PAI für jedes Dynpro den
Synchronisationsfunktionscode der Form AWSY[Programm][Dynpro-
Nummer] auswerten. Verwenden Sie hierfür ein FORM-Unterpro-
gramm.
CASE save_ok.
WHEN 'LOGIN'.
...
WHEN 'BACK'.
LEAVE PROGRAM.
WHEN OTHERS.
PERFORM backbutton.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
ENDCASE.
ENDMODULE. " USER_COMMAND_0200 INPUT
Abbildung 4.82
Anlegen eines
Unterprogramms in
einem neuen
FORM-Include
(© SAP AG)
FORM backbutton.
IF save_ok(4) = 'AWSY'.
offset = strlen( save_ok ) - 4.
benoet_screen = save_ok+offset(4).
LEAVE TO SCREEN benoet_screen.
ENDIF.
ENDFORM. " BACKBUTTON
Abbildung 4.83
Aktivieren aller Objekte
(© SAP AG)
170
SAP@Web Studio und ITS 4
Testen Sie nun die obige Fehlersituation erneut aus. Sie kommen nun
zum „richtigen“ Kunden 274067, s. Abbildung 4.84 bis Abbildung
4.86. Wenn dies bei Ihnen nicht funktioniert, fahren Sie einfach mit dem
nächsten Abschnitt fort. Dort finden Sie ein Werkzeug zum Untersu-
chen von Programmierfehlern bei WebTransactions: den ABAP-Debug-
ger, der sogar bei vom Browser gestarteten IACs eingesetzt werden
kann.
Abbildung 4.84
Erneut: ZURÜCK-Taste in
Webseite 300
Abbildung 4.85
Erneut: Auswahl eines
anderen Kunden in
Webseite 200
Abbildung 4.86
Korrekte Synchronisation:
Webseite 300 zeigt
richtigen Kunden
Abbildung 4.87
Start des
Registrierungseditors
Abbildung 4.88
Aktivieren des
WebTransaction-
Debuggers in der
Registrierung
Abbildung 4.89
Beenden des ITS-Dienstes
Abbildung 4.90
Neustart des ITS-Dienstes
172
SAP@Web Studio und ITS 4
Das AGate hat nach dem Neustart aufgrund der neuen Registrierungs- Erläuterung
einträge ein Debugger-Port geöffnet, über das ein SAPGUI sich über
das übliche DIAG-Protokoll am AGate anmelden kann, als wäre es ein
R/3-Anwendungsserver. Über das Debugger-Port wird diesem SAPGUI
jenes Dynpro geliefert, das zur derzeit angezeigten Webseite gehört.
Um die dahinter stehende ABAP-Programmlogik zu prüfen, können Sie
an der kritischen Stelle mittels Eingabe von /h in das Kommandofeld des
SAPGUIs den Debug-Modus einschalten.
Starten Sie das SAPlogon, und legen Sie einen neuen Eintrag ITS-De- Schritte
bugger an: START / PROGRAMME / SAP FRONTEND / SAPLOGON, s. Ab-
bildung 4.91. Tragen Sie unter APPLICATION SERVER die IP-Nummer
Ihres AGate-Rechners oder dessen Domainnamen ein.
Abbildung 4.91
Anlegen des
ITS-Debuggers als
Zugang zum AGate
(© SAP AG)
4. Verfolgen Sie in dem SAPGUI das Beispiel aus der vorherigen Auf-
gabe.
Stellen Sie fest, welcher Funktionscode nach dem Drücken der ZU-
RÜCK-Taste geliefert wird.
Starten Sie die IAC im Browser, s. Abbildung 4.92 bis Abbildung 4.96. Schritte
Sie sehen Webseite 100. Starten Sie das SAPGUI über den Eintrag ITS-
Debugger. Sie gelangen ohne die übliche Anmeldung direkt zu Dynpro
100. Gehen Sie als Mitarbeiter 1006 im Browser bis zu Webseite 300 für
Kunde 624456. Betrachten Sie dabei auch das SAPGUI, es macht diese
„Reise“ ohne Ihr Zutun mit. In Dynpro 300 können Sie mit etwas Glück
auch die Blätternfunktion des AGates zum Aufbau der Liste beobach-
ten.
Abbildung 4.92
Start der IAC im Browser:
Webseite 100
Abbildung 4.93
Start der SAPGUI-
Anmeldung am AGate
(© SAP AG)
Abbildung 4.94
Ohne Zwischenstation
gelangen Sie direkt zu
Dynpro 100. Füllen Sie die
Felder nicht aus, dies
erfolgt automatisch
durch das AGate.
(© SAP AG)
Abbildung 4.95
Auswahl des Kunden in
Webseite 200
Abbildung 4.96
Das SAPGUI wechselt
automatisch auf
Dynpro 200 mit.
(© SAP AG)
174
SAP@Web Studio und ITS 4
Drücken Sie dann im Browser die ZURÜCK-Taste, s. Abbildung 4.97 bis
Abbildung 4.104. Der Browser wechselt zu Webseite 200, das SAPGUI
verharrt auf Dynpro 300. Tragen Sie zum Wechsel in den Debug-Modus
/h ins Kontrollfeld ein. Mit dem nächsten Schritt im Browser (Drucktaste
SELEKTIEREN) gelangt das SAPGUI in den Debug-Modus.
Im Einzelschrittverfahren können Sie nun den Ablauf des ABAP-Pro-
gramms verfolgen. Dabei können Sie einzelne Datenfelder wie OK_CODE
und BENOET_SCREEN inspizieren. Gehen Sie schrittweise voran bis zum Er-
scheinen des nächsten Screens. Erst dann klicken Sie im Browser die
Drucktaste CONTINUE, wodurch der Debug-Modus wieder ausgeschal-
tet wird.
Abbildung 4.97
Drücken Sie bei Webseite
300 die ZURÜCK-Taste. Das
AGate erfährt von dem
Schritt zurück nichts,
das SAPGUI bleibt auf
Dynpro 300.
Abbildung 4.98
Einschalten des Debug-
Modus in dem SAPGUI
bei Dynpro 300
(© SAP AG)
Abbildung 4.99
Die Statuszeile meldet das
Einschalten des Debug-
Modus. (© SAP AG)
Abbildung 4.100
Der Browser befindet
sich auf der für das
AGate unerwarteten
Webseite 200.
Abbildung 4.101
Der Browser meldet nun
auch das Einschalten
des Debuggers.
(© SAP AG)
Abbildung 4.102
Debugger mit Einzel-
schrittverfahren und
Anzeige des OK-Codes:
Er beginnt mit AWSY
und endet mit der
unerwarteten Dynpro-
Nummer 0200.
(© SAP AG)
Abbildung 4.103
Aufruf des FORM-
Unterprogramms zum
Synchronisieren
(© SAP AG)
Abbildung 4.104
Synchronisierung:
Wechsel zu Dynpro 200,
folgend der unerwartet
gesendeten Webseite 200
(© SAP AG)
176
SAP@Web Studio und ITS 4
Abbildung 4.105
Online-Hilfe zur
Konkatenation
(© SAP AG)
1. Ändern Sie Template 300 so ab, dass Vorname und Name konkate-
niert in einem statt in zwei Feldern erscheinen, s. Abbildung 4.106.
Zwischen Vorname und Name fügen Sie ein Komma ein. Konkate-
nieren Sie auch die Feldbezeichner des Vornamens und des Na-
mens, trennen Sie diese vom Vornamen mit einem Doppelpunkt.
Zwei Felder können Sie in HTMLBusiness mit dem Operator & konkatenie- Erläuterung
ren. Literale schließen Sie in Anführungszeichen " " ein.
Abbildung 4.106
Webseite 300 mit
konkatenierten Feldern
2. Fügen Sie in die Kundennummer nach der vierten Stelle den Infix –
DEKRA– ein, z. B. 6244-DEKRA-56 für Stammkunde Jerome Newton, s.
Abbildung 4.107.
Abbildung 4.107
Webseite 300: Aus
Teilstrings zusammen-
gesetztes Feld
178
SAP@Web Studio und ITS 4
Mit der HTMLBusiness-Funktion if() können Sie von logischen Bedingun- Erläuterung
gen abhängige dynamische Ersetzungen von HTML-Code vornehmen.
Für die Bedingungen können Sie Vergleichsoperatoren wie == (gleich),
!= (ungleich), > (größer), < (kleiner), >= (größer oder gleich) und <= (klei-
ner oder gleich) verwenden.
Die Funktion if() hat folgenden Aufbau; elseif() und else sind dabei
optional:
`if([Bedingung])`
[HTML-Code für wahre Bedingung]
`elseif([geschachtelte Bedingung])`
[HTML-Code für wahre (geschachtelte) Bedingung]`
`else`
[HTML-Code für falsche (geschachtelte) Bedingung]
`end`
Abbildung 4.108
Ersetzung von Feldern mit
der if()-Funktion
Erläuterung MIME steht für „Multipurpose Internet Mail Extensions“ und gewähr-
leistet eine eindeutige Zuordnung der Dateitypen zu Anwendungen, die
diese Dateitypen darstellen können. Die Zuordnung erfolgt über ein
Paar Kategorie/Unterkategorie, das zusammen mit der Datei vom Web-
server an den Browser geliefert wird. Kategorien sind beispielsweise
text, image oder audio. Zusammen mit den Unterkategorien ergeben sich
Paare wie z. B.:
• text/plain und text/html: reiner Text oder HTML-Seite.
• image/gif und image/jpeg: Bilder im .gif- oder .jpeg-Format.
• audio/mpeg und audio/wav: Audiodatei im .mpg-, .mp3- oder .wav-
Format.
Der Webbrowser unterhält eine Liste mit Zuordnungen der MIME-
Typen zu Anwendungen, die diese Dateien darstellen können.
Das WGate richtet im Dateisystem des Webservers einen eigenen Pfad zu
MIME-Objekten ein: C:\Inetpub\wwwroot\sap\its\mimes. Die weitere
Schachtelung erfolgt in der Reihenfolge Service, Theme und Sprache, z. B.
C:\Inetpub\wwwroot\sap\its\mimes\wpbuchung\00\de. Die HTML-
Business
-Funktion MIMEURL() generiert zur Laufzeit einen URL zum mit ~name=
angegebenen MIME-Objekt in der mit ~language= angegebenen Sprache.
Die von der Webseite zur Laufzeit verwendete Sprache kann mit ~tem-
platelanguage ermittelt werden.
Schritte Legen Sie in Ihrem Projekt wpbuchung unterhalb des Themas 00 die
Ordner de und en mittels PROJECT / ADD TO PROJECT / FOLDER an, s.
Abbildung 4.109 bis Abbildung 4.112.
Kopieren Sie die Graphikdateien great-britain.gif und germany.gif auf
Ihre Festplatte unter C:\Temp.
Fügen Sie germany.gif nach de in Ihr Projekt ein mittels KONTEXTMENÜ
DES ORDNERS DE / INSERT / FILE. Entsprechend fügen Sie great-bri-
tain.gif nach en ein.
Benennen Sie nun beide Dateien um zu flagge.gif.
Publizieren Sie die beiden Dateien, am einfachsten durch vorheriges
Markieren des kompletten Themes 00. Nun sind die Dateien auf dem
WGate zu sehen in den Pfaden C:\Inetpub\wwwroot\sap\its\mi-
mes\wpbuchung\00\de und ...\en.
180
SAP@Web Studio und ITS 4
Abbildung 4.109
Landessprachenordner de
und en, Einfügen
von Graphiken
(© SAP AG)
Abbildung 4.110
Deutsche und englische
Flaggen in Landes-
sprachenordnern
(© SAP AG)
Abbildung 4.111
Umbenennen beider
Graphiken auf den
gleichen Namen
(© SAP AG)
Abbildung 4.112
Nach dem Publizieren
befinden finden sich die
Dateien im MIME-Ordner
des WGates auf dem
Webserver.
Fügen Sie das Bild nun mittels der mimeURL()-Funktion ins Template 200
ein.
<form method="post" action="`wgateurl()`">
<p>
<img src="`mimeURL(~name="flagge.gif",
~language=~templatelanguage)`">
<p>
`'%#AUTOTEXT001'.label`
Abbildung 4.113
mimeURL() liefert
flagge.gif des Landes-
sprachenordners \de.
Abbildung 4.114
mimeURL() liefert
flagge.gif des Landes-
sprachenordners \en.
Erläuterung Mit dem Makro FIELD-SET [name] [index] [value] kann der R/3-Anwen-
dungsserver angewiesen werden, per RFC Felder in den Benutzerkon-
textspeicher der AGate-Session zu schreiben. Jedes Kontextfeld wird
mit den Parametern Name, fortlaufender Index – beginnend mit 1 – und
Wert eingetragen, etwa
field-set 'KUNDENNR' zaehler zkunden-kundennr.
182
SAP@Web Studio und ITS 4
Die in den Kontext übertragenen Felder können vom Template in ähnli-
cher Weise wie Steploop-Felder als HTML Business-Platzhalter verwendet
werden, allerdings ohne den Zusatz .value. Sie werden unter dem glei-
chen Namen angesprochen, unter dem sie gesendet wurden; der Index
wird dabei in eckigen Klammern angegeben, etwa `kundennr[j]`. Zur
Laufzeit wird dieser Platzhalter durch den gesendeten Wert ersetzt, im
Beispiel also durch den Wert von ZKUNDEN-KUNDENNR.
Ersetzen Sie in Template 200 das aus Abschnitt 4.7 stammende HTML-
Select. Der zu löschende Programmcode ist im Folgenden fett gedruckt.
`ZDEPOT-KUNDENNR.label`
<!-- <input type=text name="`ZDEPOT-KUNDENNR.name`"
value="`ZDEPOT-KUNDENNR.value`" maxlength="010"
size="010"> -->
<select name="`ZDEPOT-KUNDENNR.name`" size=4>
<option value="124456"> 124456
<option value="124457"> 124457
Abbildung 4.115
Aufklappbares
Auswahllistenfeld mit
Daten aus R/3
WebRFC und WebReporting 5
Kapitel 5
WebRFC und
WebReporting
WebRFC ermöglicht das Aufrufen von Funktionsbausteinen über einen
URL. Es wird hierzu eine RFC-Verbindung zwischen AGate und R/3-An-
wendungsserver aufgebaut. Dem Funktionsbaustein wird über einen
Tabellenparameter eine Liste von Name/Wert-Paaren übergeben. Nach
deren Auswertung generiert der Funktionsbaustein eine HTML-Seite,
die in Form eines Tabellenparameters ans AGate zurückgegeben wird
und von dort aus zum Browser zurückkehrt. Alternativ kann auch ein
MIME-Objekt statt der HTML-Seite zurückgegeben werden.
Zentraler Funktionsbaustein des WebRFC ist WWW_DISPATCH_REQUEST(). Er
ist RFC-fähig und wird mit dem WebRFC-Service aufgerufen. Über den
Parameter ~function im URL wird ihm mitgeteilt, an welchen Zielfunkti-
onsbaustein er den Aufruf weiterleiten soll.
Als Sonderfall des WebRFC ist das WebReporting anzusehen. Unter
Verwendung einiger vordefinierter Funktionsbausteine, die ihrerseits
wiederum von WWW_DISPATCH_REQUEST() gerufen werden, ist es möglich,
recht einfach Reports über das Web zu starten.
Im Unterschied zur WebTransaction sind die meisten Reports – auch in-
teraktive – hierzu geeignet. Allerdings muss die Berechtigungsgruppe in
den Programmeigenschaften gepflegt sein, was bei den meisten Re-
ports des R/3-Standards nicht der Fall ist. Für diese bietet es sich an, sie
in den Kundennamensraum zu kopieren und die Berechtigungsgruppe
zu pflegen.
185
5 WebRFC und WebReporting
1. Ergänzen Sie Ihr Projekt um den Service webrfct, der mit den Stan-
dard-IACs ausgeliefert wird und im AGate zu finden ist. Pflegen Sie
die Parameter ~logon, ~password, ~client und ~language ein, s. Abbil-
dung 5.1 bis Abbildung 5.2.
Schritte Öffnen Sie das Menü PROJECT / ADD TO PROJECT / FILES… Ergänzen Sie
die Servicedatei C:\Programme\SAP\ITS\2.0\T53\services\webrfct.srvc
um die Anmeldedaten. Publizieren Sie die Servicedatei.
Abbildung 5.1
Öffnen der Standard-
Servicedatei webrfct.srvc
(© SAP AG)
Abbildung 5.2
Pflegen der
Anmeldedaten in der
Servicedatei webrfct.srvc
(© SAP AG)
186
WebRFC und WebReporting 5
Starten Sie von WERKZEUGE / ABAP WORKBENCH / ÜBERSICHT / OBJECT Schritte
NAVIGATOR, von hier aus geht es weiter mit UMFELD / WEBREPORTING
REPOSITORY, dann INTERNETFREIGABE / FUNKTIONSBAUSTEINE. Geben Sie
den Funktionsbaustein frei, er befindet sich anschließend in der Liste der
freigegebenen Funktionsbausteine, s. Abbildung 5.3 bis Abbildung 5.4.
Abbildung 5.3
Freigabe eines
Funktionsbausteines
für das Internet
(© SAP AG)
Abbildung 5.4
Liste aller für das Internet
freigegebenen
Funktionsbausteine
(© SAP AG)
3. Legen Sie in der Datei inhalt.htm auf dem Webserver einen Link
an, der über den Service webrfct den Funktionsbaustein
WWW_HTML_ECHO() aufruft, s. Abbildung 5.5 bis Abbildung 5.6.
Übergeben Sie im URL einige Name/Wert-Paare, die Sie frei wäh-
len dürfen.
Abbildung 5.5
Start des WebRFC-
Services mit Aufruf eines
Funktionsbausteines
Abbildung 5.6
Rückgabe aller
Name/Wert-Paare aus
dem URL
188
WebRFC und WebReporting 5
Legen Sie den Report als Programm des Typs Ausführbares Programm Schritte
ohne Top-Include an. Tragen Sie eine Berechtigungsgruppe 1 ein, der Sie
angehören (die abgebildete stammt aus dem IDES-Mandanten), s. Ab-
bildung 5.7 bis Abbildung 5.8.
Abbildung 5.7
Anlegen eines Programms
(© SAP AG)
Abbildung 5.8
Reports können aus
Sicherheitsgründen nur
gestartet werden, wenn
die Berechtigungsgruppe
gepflegt ist.
(© SAP AG)
REPORT zkundenmu.
TABLES zkunden.
SELECT-OPTIONS: so_name FOR zkunden-name LOWER CASE,
so_vname FOR zkunden-vorname LOWER CASE,
so_wnort FOR zkunden-wohnort LOWER CASE.
DATA: it_kunden LIKE TABLE OF zkunden,
wa_kunden LIKE zkunden.
START-OF-SELECTION.
SELECT * FROM zkunden INTO TABLE it_kunden
1. Legen Sie sich ggf. eine Berechtigungsgruppe an. Fragen Sie Ihren Dozenten
oder Administrator.
Abbildung 5.9
Pflege der Textelemente
des Reports
(© SAP AG)
Abbildung 5.10
Selektionsbild des
Reports
(© SAP AG)
Abbildung 5.11
Ergebnisliste des Reports
(© SAP AG)
190
WebRFC und WebReporting 5
Starten Sie vom OBJECT NAVIGATOR aus UMFELD / WEBREPORTING-RE- Schritte
POSITORY, dann INTERNETFREIGABE / REPORTS. Geben Sie den Report
frei, s. Abbildung 5.12.
Abbildung 5.12
Freigabe des Reports
für das Internet
(© SAP AG)
3. Legen Sie in inhalt.htm auf dem Webserver einen Hyperlink an, der
über den Service webrfct den Funktionsbaustein WWW_GET_SEL-
SCREEN() ruft, der wiederum den Report ZKUNDENnn startet und so das
Selektionsbild als HTML-Datei an den Browser sendet, s. Abbildung
5.13 bis Abbildung 5.14.
Abbildung 5.13
Selektionsbild des
WebReports2
2. Die fehlerhaften Umlaute rühren von einer fehlenden Zeichensatzangabe im Header her,
der im Template, das SAP-seitig zur Verfügung gestellt wird, gepflegt werden müsste.
Abbildung 5.14
Ergebnisliste des
WebReports
(© SAP AG)
Starten Sie den interaktiven Report zuerst mit dem SAPGUI, und
dann als WebReport.
START-OF-SELECTION.
...
LOOP AT it_kunden INTO wa_kunden.
WRITE: / wa_kunden-kundennr, wa_kunden-name,
wa_kunden-vorname, wa_kunden-wohnort.
HIDE: wa_kunden-kundennr, wa_kunden-name,
192
WebRFC und WebReporting 5
wa_kunden-vorname.
ENDLOOP.
AT LINE-SELECTION.
WRITE: 'Depotauszug für Kunde ', wa_kunden-kundennr,
wa_kunden-vorname, wa_kunden-name.
ULINE.
SELECT * FROM zdepot_papiermu
INTO CORRESPONDING FIELDS OF TABLE it_kp
WHERE kundennr = wa_kunden-kundennr.
WRITE: /(10) 'WP-KennNr', (20) 'Wertpapiertitel',
(15) 'Emittent', (10) 'DepotNr', (10) 'Anzahl'.
LOOP AT it_kp INTO wa_kp.
WRITE: / wa_kp-wkn, wa_kp-titel, wa_kp-emittent,
wa_kp-depotnr, wa_kp-anzahl.
ENDLOOP.
Aktivieren und starten Sie den interaktiven Report zunächst mit dem
SAPGUI, dann als WebReport mit dem Browser, s. Abbildung 5.15 bis
Abbildung 5.20.
Abbildung 5.15
Selektionsbild des
interaktiven Reports
(© SAP AG)
Abbildung 5.16
Grundliste Kunden: Mit
einem Doppelklick
gelangen Sie zur
Verzweigungsliste.
(© SAP AG)
Abbildung 5.17
Verzweigungsliste
Depotauszug für den
ausgewählten Kunden
(© SAP AG)
Abbildung 5.18
Selektionsbild des
interaktiven WebReports
Abbildung 5.19
Grundliste des
interaktiven WebReports
Abbildung 5.20
Verzweigungsliste des
WebReports
194
WebRFC und WebReporting 5
5.3 Ausblick
Mit dem interaktiven WebReport sind Sie am Ende dieses Übungsbuches
angelangt und verfügen bereits über fundierte Kenntnisse zur IAC-Pro-
grammierung. Nun können Sie sich an eigene Webprojekte heranwagen.
Von diesem Punkt aus sollten Sie sich auch kontinuierlich in weiterfüh-
rende Themen hineinarbeiten, die aufgrund der Fülle des Gebiets in die-
sem Werk leider nicht mehr behandelt werden konnten:
• Frame-basierte WebTransactions, die in R/3 als Subscreen-Dynpros
angelegt werden
• Import und Export von MIME-Objekten in WebTransactions
• Anschluss des SAP@Web Studios an den Workbench Organizer, In-
tegration des ITS in eine R/3-Systemlandschaft mit Entwicklungs-,
Test- und Produktivsystem
• Lieferung von MIME-Objekten über WebRFC
• HTML-Templates für WebRFC, SAP-WebRepository und der Funkti-
onsbaustein WWW_HTML_MERGER zum Ersetzen der Platzhalter
• Administration des ITS, Remote Diagnostics, webbasiertes Admin-
Tool auf einem zweiten (oder virtuellen) Webserver zur Überwa-
chung und Verwaltung des ITS
Anleitungen hierfür finden Sie in der Online-Dokumentation des
SAP@Web Studios: HELP / STUDIO DOCUMENTATION und HELP / ITS
DOCUMENTATION. Die DEKRA-Akademie, der Verlag Addison-Wesley
und der Verfasser wünschen Ihnen dabei recht viel Spaß und Erfolg.
Anhang A
Programmlistings
Die folgenden Listings zeigen den ABAP-, HTML- respektive HTMLBusi-
ness
-Code der Programme, Webseiten und Templates nach Bearbeiten
der jeweiligen Aufgabe.
Das komplette Kapitel finden Sie auch in der Datei IAC-Muster.rtf im
Archiv abap.zip, das Sie im Web unter http://www.dekra-akade-
mie.de/download finden. Sie können sich so das Eintippen der Pro-
grammtexte durch Kopieren über die Windows-Zwischenablage erspa-
ren.
<body>
<img src="dekra-logo.gif" alt="Dekra-Logo" width=182
height=55>
<h1> Dekra Effekten Kontor</h1>
198
Programmlistings A
<h2> Herzlich Willkommen </h2>
<h5> Die <b> clevere </b> Depotverwaltung</h6>
<p>
Wir <!-- Kommentar, ist unsichtbar --> verwalten
<em> Ihre </em>
Schätze!
<p><font size="2" color="red"> Damit Ihre Erben auch
was zu lachen haben!
</font></p>
</body>
</html>
C:\Inetpub\wwwroot\vorzuege.htm
<html>
<head>
<title>Vorzuege Dekra Effekten Kontor</title>
<meta name="description" content="Reich werden mit
Dekra Effekten Kontor"
<meta name="Author" content="Michael S. Umlauff">
<meta name="keywords" content="Reichtum, Depot,
Effekten, Vorzuege">
<meta http-equiv="content-type" content="text/html;
charset=iso-8859-1">
</head>
<body background="hintergrund.jpg">
<h1> Werden auch Sie reich mit einem <br>
Depot beim Dekra Effekten Kontor! </h1>
</body>
</html>
<body>
<img src="dekra-logo.gif" alt="Dekra-Logo" width=182
height=55>
<h1> Dekra Effekten Kontor</h1>
<h2> Herzlich Willkommen </h2>
<h5> Die <b> clevere </b> Depotverwaltung</h6>
<p>
Wir <!-- Kommentar, ist unsichtbar --> verwalten
<em> Ihre </em>
Schätze!
<p><font size="2" color="red"> Damit Ihre Erben auch
was zu lachen haben!
</font></p>
<table border=1 width=40%>
<tr>
<th height=40pt valign=bottom>Sonderangebote der
Woche </th>
<th colspan=2 valign=bottom>Preis</th>
</tr>
<tr>
<td>Whistler Corp.</td>
<td align=right>360 DM</td>
200
Programmlistings A
<td align=right>180$</td>
</tr>
<tr>
<td>Stromberg Reed. </td>
<td align=right>764DM</td>
<td align=right> 382$</td>
</tr>
<tr>
<td>Zorin Industries </td>
<td align=right>2811DM</td>
<td align=right>1406$</td>
</tr>
</table>
</body>
</html>
<body>
<img src="dekra-logo.gif" alt="Dekra-Logo" width=182
height=55>
<h1> Dekra Effekten Kontor </h1>
<h2> Herzlich Willkommen </h2>
<h5> Die <b> clevere </b> Depotverwaltung</h5>
<p>
202
Programmlistings A
</body>
</html>
C:\Inetpub\wwwroot\vorzuege.htm
<html>
<head>
<title>Vorzuege Dekra Effekten Kontor</title>
<meta name="description" content="Reich werden mit
Dekra Effekten Kontor"
<meta name="Author" content="Michael S. Umlauff">
<meta name="keywords" content="Reichtum, Depot,
Effekten, Vorzuege">
<meta http-equiv="content-type" content="text/html;
charset=iso-8859-1">
</head>
<body background="hintergrund.jpg">
<h1> Werden auch Sie reich mit einem <br>
Depot beim Dekra Effekten Kontor! </h1>
<ul>
<li>Toprenditen internationaler
Spitzengesellschaften</li>
<li>Permanente Online-Verbindung direkt zu unserem
Broker auf dem Parkett</li>
<li>Steuerfreiheit der Anlage mittels renommierter
Stiftungen in Vaduz/Liechtenstein</li>
</ul>
<p> Zurück zur <a href="default.htm"> Homepage </a></p>
</body>
</html>
<frameset cols="20%,80%">
<frame name="links" src="inhalt.htm">
<frame name="rechts" src="homepage.htm">
</frameset>
</html>
C:\Inetpub\wwwroot\inhalt.htm
<html>
<head>
<title>Dekra Effekten Kontor Inhalt</title>
<meta name="description" content="Inhaltsleiste">
<meta name="author" content="Michael S. Umlauff">
<meta http-equiv="content-type" content="text/html;
charset=iso-8859-1">
</head>
<body>
<h3>Inhalt</h3>
<a href="homepage.htm" target="rechts"> Homepage
</a><br>
<a href="vorzuege.htm" target="rechts"> Reich werden
</a><br>
<a href="default_ITS.htm" target="rechts"> Standard-IACs
</a><br>
204
Programmlistings A
<a href="selfhtml/selfhtml.htm" target="rechts"> SELFHTML
</a><br>
</body>
</html>
C:\Inetpub\wwwroot\homepage.htm
<html>
<head>
<title>Dekra Effekten Kontor</title>
<meta name="description" content="Verwaltung von
Wertpapieren durch Aussendienstmitarbeiter">
<meta name="author" content="Michael S. Umlauff">
<meta name="keywords" content="Wertpapier, Effekten,
Depot, Verbuchung">
<meta http-equiv="content-type" content="text/html;
charset=iso-8859-1">
</head>
<body>
<img src="dekra-logo.gif" alt="Dekra-Logo" width=182
height=55>
<h1> Dekra Effekten Kontor </h1>
<h2> Herzlich Willkommen </h2>
<h5> Die <b> clevere </b> Depotverwaltung</h5>
<p>
Wir <!-- Kommentar, ist unsichtbar --> verwalten
<em> Ihre </em>
Schätze!
<p><font size="2" color="red"> Damit Ihre Erben auch
was zu lachen haben!
</font></p>
<p> Wie Sie mit Dekra Effekten Kontor <a href=
"vorzuege.htm"> reich werden </a> können.</p>
<p> Besuchen Sie auch <a href="http://www.sap.de">SAP</a>,
<a href="http://www.addison-wesley.de">Addison-Wesley</a>
und die <a href="www.dekra-akademie.de">
206
Programmlistings A
* INCLUDE MZDEPOTMUO01
* INCLUDE MZDEPOTMUI01
* INCLUDE MZDEPOTMUF01
INCLUDE mzdepotmuo01.
INCLUDE mzdepotmui01.
ENDLOOP.
MODULE status_0300.
MODULE trans_to_0300.
208
Programmlistings A
MODULE status_0100 OUTPUT.
SET PF-STATUS '100'.
SET TITLEBAR '100'.
ENDMODULE. " STATUS_0100 OUTPUT
CASE save_ok.
WHEN 'LOGIN'.
CALL FUNCTION 'BAPI_EMPLOYEE_CHECKPASSWORD'
EXPORTING
number = bapiempl-pernr
password = bapiuid-password
IMPORTING
return = ret
EXCEPTIONS
OTHERS = 1.
IF ret-type IS INITIAL.
LEAVE TO SCREEN 200.
ELSE.
MESSAGE ID 'SU' TYPE ret-type NUMBER 000 WITH
ret-code ret-message.
ENDIF.
WHEN 'BACK'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
210
Programmlistings A
INTO CORRESPONDING FIELDS OF TABLE it_kp
WHERE kundennr = zdepot-kundennr.
LEAVE TO SCREEN 300.
ENDCASE.
ENDMODULE. " USER_COMMAND_0200 INPUT
CLEAR ok_code.
CASE save_ok.
WHEN 'BACK'.
LEAVE TO SCREEN 300.
WHEN 'VERBUCH'.
IF zukauf = space.
wa_kp-anzahl = wa_kp-anzahl - kaufanzahl.
ELSE.
wa_kp-anzahl = wa_kp-anzahl + kaufanzahl.
ENDIF.
CALL FUNCTION 'Z_DEPOTPSTNMU_ANZAHL'
EXPORTING
depotnr = wa_kp-depotnr
wkn = wa_kp-wkn
anzahl = wa_kp-anzahl
EXCEPTIONS
not_found = 1
lock_error = 2
update_error = 3
OTHERS = 4.
CASE sy-subrc.
WHEN 0.
MESSAGE s000(su) WITH
'Wertpapierhandel wurde verbucht'.
erstezeile = 1.
SELECT * FROM zdepot_papiermu
INTO CORRESPONDING FIELDS OF TABLE it_kp
WHERE kundennr = zkunden-kundennr.
LEAVE TO SCREEN 300.
WHEN 1.
MESSAGE e000(su) WITH 'Datensatz nicht gefunden'.
WHEN 2.
MESSAGE e000(su) WITH 'Sperren fehlgeschlagen'.
WHEN 3.
MESSAGE e000(su) WITH 'Änderung fehlgeschlagen'.
212
Programmlistings A
WHEN 4.
MESSAGE e000(su) WITH
'Unbekannter Fehler aufgetreten'.
ENDCASE.
COMMIT WORK.
ENDCASE.
ENDMODULE. " USER_COMMAND_0400 INPUT
Funktionsbaustein Z_DEPOTPSTNnn_ANZAHL
FUNCTION Z_DEPOTPSTNMU_ANZAHL.
*"-----------------------------------------------------------
*"*"Verbuchungsfunktionsbaustein:
*"
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(DEPOTNR) TYPE ZDEPOTPSTN-DEPOTNR
*" VALUE(WKN) TYPE ZDEPOTPSTN-WKN
*" VALUE(ANZAHL) TYPE ZDEPOTPSTN-ANZAHL
*" EXCEPTIONS
*" NOT_FOUND
*" LOCK_ERROR
*" UPDATE_ERROR
*"-----------------------------------------------------------
TABLES zdepotpstn.
DATA success LIKE sy-subrc.
SELECT SINGLE * FROM zdepotpstn
WHERE depotnr = depotnr
AND wkn = wkn.
IF sy-subrc NE 0.
RAISE not_found.
ELSE.
CALL FUNCTION 'ENQUEUE_EZDEPOTPSTN'
EXPORTING
mode_zdepotpstn = 'E'
mandt = sy-mandt
depotnr = depotnr
wkn = wkn
* X_DEPOTNR = ' '
* X_WKN = ' '
* _SCOPE = '2'
* _WAIT = ' '
* _COLLECT = ' '
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
IF sy-subrc <> 0.
RAISE lock_error.
ELSE.
zdepotpstn-anzahl = anzahl.
UPDATE zdepotpstn.
success = sy-subrc.
CALL FUNCTION 'DEQUEUE_EZDEPOTPSTN'
EXPORTING
mode_zdepotpstn = 'E'
mandt = sy-mandt
depotnr = depotnr
wkn = wkn
* x_depotnr = ' '
* X_WKN = ' '
* _SCOPE = '3'
* _SYNCHRON = ' '
* _COLLECT = ' '
EXCEPTIONS
OTHERS = 1.
IF success NE 0.
RAISE update_error.
ENDIF.
ENDIF.
ENDIF.
ENDFUNCTION.
214
Programmlistings A
216
Programmlistings A
`ZKUNDEN-KUNDENNR.label`
`ZKUNDEN-KUNDENNR.value`
<p>
`'%#AUTOTEXT003'.label`
<input type=text name="`KAUFPOS.name`"
value="`KAUFPOS.value`" maxlength="011" size="011">
`assert(KAUFPOS.name)`
<input type=submit name="~okcode=KAUFEN"
value="`BUTTON_KAUFEN.label`">
`ZKUNDEN-NAME.label`
`ZKUNDEN-NAME.value`
<p>
`ZKUNDEN-VORNAME.label`
`ZKUNDEN-VORNAME.value`
<p>
`ZKUNDEN-WOHNORT.label`
`ZKUNDEN-WOHNORT.value`
<p>
<table>
<thead>
<tr>
<td>`'%#AUTOTEXT004'.label`</td>
<td>`'%#AUTOTEXT005'.label`</td>
<td>`'%#AUTOTEXT006'.label`</td>
<td>`'%#AUTOTEXT007'.label`</td>
<td>`'%#AUTOTEXT008'.label`</td>
<td>`'%#AUTOTEXT009'.label`</td>
</tr>
</thead>
<tbody>
`repeat with j from 1 to POS.max`
<tr>
<td>`POS[j].value`</td>
<td>`ZDEPOT_PAPIERMU-WKN[j].value`</td>
<td>`ZDEPOT_PAPIERMU-TITEL[j].value`</td>
<td>`ZDEPOT_PAPIERMU-EMITTENT[j].value`</td>
<td>`ZDEPOT_PAPIERMU-DEPOTNR[j].value`</td>
<td>`ZDEPOT_PAPIERMU-ANZAHL[j].value`</td>
</tr>
`end`
</tbody>
</table>
</form>
</body>
</html>
218
Programmlistings A
`WA_KP-EMITTENT.value`
<p>
`ZKUNDEN-WOHNORT.label`
`ZKUNDEN-WOHNORT.value`
`'%#AUTOTEXT005'.label`
`WA_KP-DEPOTNR.value`
<p>
`'%#AUTOTEXT006'.label`
`WA_KP-ANZAHL.value`
<p>
<input type=text name="`KAUFANZAHL.name`"
value="`KAUFANZAHL.value`" maxlength="010" size="010">
`assert(KAUFANZAHL.name)`
`'%#AUTOTEXT007'.label`
<p>
<input type=text name="`ZUKAUF.name`"
value="`ZUKAUF.value`" maxlength="001" size="001">
`assert(ZUKAUF.name)`
`'%#AUTOTEXT008'.label`
<p>
<input type=submit name="~okcode=VERBUCH"
value="`'%#AUTOTEXT009'.label`">
</form>
</body>
</html>
* INCLUDE MZDEPOTMUO01
* INCLUDE MZDEPOTMUI01
* INCLUDE MZDEPOTMUF01
INCLUDE mzdepotmuo01.
INCLUDE mzdepotmui01.
INCLUDE MZDEPOTMUF01.
220
Programmlistings A
PROCESS AFTER INPUT.
MODULE user_command_0200.
kaufpos TYPE i,
kaufanzahl LIKE zdepotpstn-anzahl,
zukauf TYPE c.
DATA: offset(2) TYPE n,
benoet_screen LIKE sy-dynnr.
DATA: it_kunden LIKE TABLE OF zkunden,
zaehler TYPE i.
INCLUDE avwrtcxm.
222
Programmlistings A
ELSE.
MOVE-CORRESPONDING wa_kp TO zdepot_papiermu.
ENDIF.
ENDMODULE. " STEPLOOP_ZEILE_FUELLEN OUTPUT
CASE save_ok.
WHEN 'LOGIN'.
CALL FUNCTION 'BAPI_EMPLOYEE_CHECKPASSWORD'
EXPORTING
number = bapiempl-pernr
password = bapiuid-password
IMPORTING
return = ret
EXCEPTIONS
OTHERS = 1.
IF ret-type IS INITIAL.
224
Programmlistings A
WHEN 'FIRST'.
erstezeile = 1.
WHEN 'UP'.
IF erstezeile GE 11.
erstezeile = erstezeile - 10.
ELSE.
erstezeile = 1.
ENDIF.
WHEN 'DOWN'.
erstezeile = erstezeile + 10.
WHEN 'KAUFEN'.
READ TABLE it_kp INTO wa_kp INDEX kaufpos.
IF sy-subrc = 0.
LEAVE TO SCREEN 400.
ELSE.
MESSAGE e000(su) WITH
'Wertpapierposition nicht vorhanden'.
ENDIF.
WHEN OTHERS.
PERFORM backbutton.
ENDCASE.
ENDMODULE. " USER_COMMAND_0300 INPUT
226
Programmlistings A
* _SCOPE = '2'
* _WAIT = ' '
* _COLLECT = ' '
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
IF sy-subrc <> 0.
RAISE lock_error.
ELSE.
zdepotpstn-anzahl = anzahl.
UPDATE zdepotpstn.
success = sy-subrc.
CALL FUNCTION 'DEQUEUE_EZDEPOTPSTN'
EXPORTING
mode_zdepotpstn = 'E'
mandt = sy-mandt
depotnr = depotnr
wkn = wkn
* x_depotnr = ' '
* X_WKN = ' '
* _SCOPE = '3'
* _SYNCHRON = ' '
* _COLLECT = ' '
EXCEPTIONS
OTHERS = 1.
IF success NE 0.
RAISE update_error.
ENDIF.
ENDIF.
ENDIF.
ENDFUNCTION.
228
Programmlistings A
Die Templates zu den Dynpros 100, 200, 300, 400 gehören zum Projekt Abschnitt
wpbuchung. Gegenüber der ersten Fassung wurden sie durch Weg-
4.4 bis 4.15
lassung der Endungen _de zu sprachunabhängigen Templates, die
auf Sprachressourcendateien zurückgreifen. Eine Vielzahl an
HTMLBusiness-Code wurde ergänzt, vorhandener Code wurde aus-
kommentiert.
Auf dem Webserver wurde inhalt.htm um eine Reihe von Hyperlinks
mit URLs zum IAC-Start ergänzt; default.htm blieb unverändert.
C:\Inetpub\wwwroot\default.htm
<html>
<head>
<title>Dekra Effekten Kontor</title>
<meta name="description" content="Frameset">
<meta name="author" content="Michael S. Umlauff">
<meta name="keywords" content="Wertpapier, Effekten,
Depot, Verbuchung, Reichtum">
<meta http-equiv="content-type" content="text/html;
charset=iso-8859-1">
</head>
<frameset cols="20%,80%">
<frame name="links" src="inhalt.htm">
<frame name="rechts" src="homepage.htm">
</frameset>
</html>
C:\Inetpub\wwwroot\inhalt.htm
<html>
<head>
<title>Dekra Effekten Kontor Inhalt</title>
<meta name="description" content="Inhaltsleiste">
<meta name="author" content="Michael S. Umlauff">
<meta http-equiv="content-type" content="text/html;
charset=iso-8859-1">
</head>
<body>
<h3>Inhalt</h3>
<a href="homepage.htm" target="rechts"> Homepage
</a><br>
<a href="vorzuege.htm" target="rechts"> Reich werden
</a><br>
<a href="default_ITS.htm" target="rechts"> Standard-IACs
</a><br>
<a href="selfhtml/selfhtml.htm" target="rechts"> SELFHTML
</a><br>
<a href="/scripts/wgate/wpbuchung!?~language=de"
target="rechts"> Wertpapierbuchung </a><br>
<a href="/scripts/wgate/wpbuchung!?~language=en"
target="rechts"> Deposit account booking </a><br>
<a href="/scripts/wgate/wpbuchung!?~language=de
&~okcode=LOGIN&BAPIEMPL-PERNR=1006
&BAPIUID-PASSWORD=katze" target="rechts">
WPBuchung für PNr 1006 </a><br>
<a href="/scripts/wgate/webrfct!?_function=WWW_HTML_ECHO
®ion=aus Tirol&name=Anton
&attribut1=toll&attribut2=schoen"
target="rechts"> Hallo Echo</a><br>
<a href=
"/scripts/wgate/webrfct!?_function=WWW_GET_SELSCREEN
&_report=ZKUNDENMU" target="rechts"> Report Kundenliste
</a><br>
</body>
</html>
230
Programmlistings A
content="SAP WebStudio HTMLBusiness Designer 4.6D">
<title>`~windowtitle`</title>
</head>
<body>
<p><h2>`#welcome`</h2></p>
`~messageline`
<form method="post" action="`wgateurl()`">
<p>
`'%#AUTOTEXT001'.label`
<p>
`'%#AUTOTEXT002'.label`
<p>
`BAPIEMPL-PERNR.label`
<input type=text name="`BAPIEMPL-PERNR.name`"
value="`BAPIEMPL-PERNR.value`" maxlength="008"
size="008">`assert(BAPIEMPL-PERNR.name)`
<p>
`BAPIUID-PASSWORD.label`
<input type=password
name="`BAPIUID-PASSWORD.name`"
value="`BAPIUID-PASSWORD.value`" maxlength="016"
size="016">`assert(BAPIUID-PASSWORD.name)`
<p>
<input type=submit name="~okcode=LOGIN"
value="`BUTTON_ANMELDEN.label`">
</form></P>
</body>
</html>
<body>
`~messageline`
<form method="post" action="`wgateurl()`">
<p>
<img src="`mimeURL(~name="flagge.gif",
~language=~templatelanguage)`">
<p>
`'%#AUTOTEXT001'.label`
<p>
`ZDEPOT-KUNDENNR.label`
<!-- <input type=text name="`ZDEPOT-KUNDENNR.name`"
value="`ZDEPOT-KUNDENNR.value`" maxlength="010"
size="010"> -->
<select name="`ZDEPOT-KUNDENNR.name`" size=0>
`repeat with j from 1 to kundennr.max`
<option value="`kundennr[j]`"> `kundennr[j] & " "
& name[j] & " " & vorname[j] & " " & wohnort[j]`
`end`
</select>
`assert(ZDEPOT-KUNDENNR.name)`
<p>
<input type=submit name="~okcode=SELECT"
value="`BUTTON_SELECT.label`">
<p>
<a href="`wgateURL(~OKCode="SELECT",
zdepot-kundennr="624456")`"> Stammkunde Jerome Newton
</a>
</form></P>
</body>
</html>
232
Programmlistings A
<title>`~windowtitle`</title>
</head>
<body>
`~messageline`
<form method="post" action="`wgateurl()`">
<p>
`'%#AUTOTEXT001'.label`
<p>
`ZKUNDEN-KUNDENNR.label`
<!-- `ZKUNDEN-KUNDENNR.value` -->
`strsub(ZKUNDEN-KUNDENNR.value,1,4) & "-DEKRA-"
& strsub(ZKUNDEN-KUNDENNR.value,5,2)`
<p>
`'%#AUTOTEXT003'.label`
<input type=text name="`KAUFPOS.name`"
value="`KAUFPOS.value`" maxlength="011" size="011">
`assert(KAUFPOS.name)`
<input type=submit name="~okcode=KAUFEN"
value="`BUTTON_KAUFEN.label`">
<input type=submit name="~OkCode=/NEX"
value="`#ende`">
<p>
<!-- `ZKUNDEN-NAME.label`
`ZKUNDEN-NAME.value`
<p>
`ZKUNDEN-VORNAME.label`
`ZKUNDEN-VORNAME.value` -->
`ZKUNDEN-VORNAME.label & ", " & ZKUNDEN-NAME.label &":"`
`ZKUNDEN-VORNAME.value & ", " & ZKUNDEN-NAME.value`
<p>
`ZKUNDEN-WOHNORT.label`
`ZKUNDEN-WOHNORT.value`
<p>
<table>
<thead>
<tr>
<td>`'%#AUTOTEXT004'.label`</td>
<td>`'%#AUTOTEXT005'.label`</td>
<td>`'%#AUTOTEXT006'.label`</td>
<td>`'%#AUTOTEXT007'.label`</td>
<td>`'%#AUTOTEXT008'.label`</td>
<td>`'%#AUTOTEXT009'.label`</td>
</tr>
</thead>
<tbody>
`repeat with j from 1 to POS.max`
<tr>
<td>`POS[j].value`</td>
<td>`ZDEPOT_PAPIERMU-WKN[j].value`</td>
<td>`ZDEPOT_PAPIERMU-TITEL[j].value`</td>
<td>
`if (ZDEPOT_PAPIERMU-EMITTENT[j].value==
"Biotech Emiss.")`
<em> BTE </em>
`elseif (ZDEPOT_PAPIERMU-EMITTENT[j].value==
"CompEmm.")`
<em> CPE </em>
`else`
`ZDEPOT_PAPIERMU-EMITTENT[j].value`
`end`
</td>
<td>`ZDEPOT_PAPIERMU-DEPOTNR[j].value`</td>
<td>`ZDEPOT_PAPIERMU-ANZAHL[j].value`</td>
<td> <a href="`wgateURL(~OKCode="KAUFEN",
KAUFPOS=j)`"> Kaufen </a></td>
</tr>
`end`
</tbody>
</table>
</form></P>
234
Programmlistings A
</body>
</html>
`'%#AUTOTEXT006'.label`
`WA_KP-ANZAHL.value`
<p>
<!--<input type=text name="`KAUFANZAHL.name`"
value="`KAUFANZAHL.value`" maxlength="010" size="010"> -->
<input type=radio name="`KAUFANZAHL.name`" value=1> 1 <br>
<input type=radio name="`KAUFANZAHL.name`" value=2> 2 <br>
<input type=radio name="`KAUFANZAHL.name`" value=5> 5 <br>
<input type=radio name="`KAUFANZAHL.name`" value=10> 10
<br>
<input type=radio name="`KAUFANZAHL.name`" value=20> 20
<br>
<input type=radio name="`KAUFANZAHL.name`" value=50> 50
<br>
<input type=radio name="`KAUFANZAHL.name`" value=100> 100
<br>
<input type=radio name="`KAUFANZAHL.name`" value=200> 200
<br>
<input type=radio name="`KAUFANZAHL.name`" value=500> 500
<br>
<input type=radio name="`KAUFANZAHL.name`" value=1000>
1000 <br>
`assert(KAUFANZAHL.name)`
`'%#AUTOTEXT007'.label`
<p>
<!-- <input type=text name="`ZUKAUF.name`"
value="`ZUKAUF.value`" maxlength="001" size="001"> -->
<input type=hidden name="`ZUKAUF.name`" value=" ">
<input type=checkbox name="`ZUKAUF.name`" value="X">
`assert(ZUKAUF.name)`
`'%#AUTOTEXT008'.label`
<p>
<input type=submit name="~okcode=VERBUCH"
value="`'%#AUTOTEXT009'.label`">
</form></P>
236
Programmlistings A
</body>
</html>
~client 403
~login itsadm
~password des26(a99fe9b937ad2d8a)
~language
~timeout 60
~usertimeout 60
~theme 99
~runtimemode pm
~cookies 1
~urlarchive /scripts/sapawl.dll
~urlimage /sap/its/graphics
~urlmime /sap/its/mimes
~exiturl http://www.dekra-kl.de/homepage.htm
~clientcert 1
~hostunsecure www.dekra-kl.de
~portunsecure 80
~hostsecure www.dekra-kl.de
~portsecure 443
~xgateways sapdiag,sapxgwfc,sapxginet,sapxgbc
~xgateway sapdiag
Report ZKUNDENnn
REPORT zkundenmu.
TABLES zkunden.
SELECT-OPTIONS: so_name FOR zkunden-name LOWER CASE,
so_vname FOR zkunden-vorname LOWER CASE,
so_wnort FOR zkunden-wohnort LOWER CASE.
DATA: it_kunden LIKE TABLE OF zkunden,
wa_kunden LIKE zkunden.
DATA: it_kp LIKE TABLE OF zdepot_papiermu,
wa_kp LIKE zdepot_papiermu.
238
Programmlistings A
START-OF-SELECTION.
SELECT * FROM zkunden INTO TABLE it_kunden
WHERE name IN so_name
AND vorname IN so_vname
AND wohnort IN so_wnort.
WRITE: /(10) 'Kundennr', (15) 'Name', (15) 'Vorname',
(15) 'Wohnort'.
ULINE.
LOOP AT it_kunden INTO wa_kunden.
WRITE: / wa_kunden-kundennr, wa_kunden-name,
wa_kunden-vorname, wa_kunden-wohnort.
HIDE: wa_kunden-kundennr, wa_kunden-name,
wa_kunden-vorname.
ENDLOOP.
AT LINE-SELECTION.
WRITE: 'Depotauszug für Kunde ', wa_kunden-kundennr,
wa_kunden-vorname, wa_kunden-name.
ULINE.
SELECT * FROM zdepot_papiermu
INTO CORRESPONDING FIELDS OF TABLE it_kp
WHERE kundennr = wa_kunden-kundennr.
WRITE: /(10) 'WP-KennNr', (20) 'Wertpapiertitel',
(15) 'Emittent', (10) 'DepotNr', (10) 'Anzahl'.
LOOP AT it_kp INTO wa_kp.
WRITE: / wa_kp-wkn, wa_kp-titel, wa_kp-emittent,
wa_kp-depotnr, wa_kp-anzahl.
ENDLOOP.
INITIALIZATION.
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_TRANS'
ID 'VALUE' FIELD DIRNAME.
if sy-opsys cs 'WINDOWS'. " Windows NT/2000
concatenate DIRNAME '\data\R900006.LNX' into binfile1.
concatenate DIRNAME '\cofiles\K900006.LNX' into binfile2.
else. " UNIX
concatenate DIRNAME '/data/R900006.LNX' into binfile1.
concatenate DIRNAME '/cofiles/K900006.LNX' into binfile2.
endif.
START-OF-SELECTION.
CALL FUNCTION 'UPLOAD'
EXPORTING
* CODEPAGE = ' '
FILENAME = 'C:\TR_WPDV\R900006.LNX'
FILETYPE = 'bin'
* ITEM = ' '
240
Programmlistings A
* FILEMASK_MASK = ' '
* FILEMASK_TEXT = ' '
* FILETYPE_NO_CHANGE = ' '
* FILEMASK_ALL = ' '
* FILETYPE_NO_SHOW = ' '
* LINE_EXIT = ' '
* USER_FORM = ' '
* USER_PROG = ' '
* SILENT = 'S'
IMPORTING
FILESIZE = LAENGE
* CANCEL =
* ACT_FILENAME =
* ACT_FILETYPE =
TABLES
DATA_TAB = ITAB
EXCEPTIONS
CONVERSION_ERROR = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3
NO_BATCH = 4
UNKNOWN_ERROR = 5
GUI_REFUSE_FILETRANSFER = 6
OTHERS = 7.
IF SY-SUBRC <> 0.
WRITE: /
'Datei vom Präsentationsserver wurde nicht gelesen'.
ELSE.
OPEN DATASET BINFILE1 FOR OUTPUT IN BINARY MODE.
LOOP AT ITAB INTO WA.
TRANSFER WA TO BINFILE1.
ENDLOOP.
CLOSE DATASET BINFILE1.
IF SY-SUBRC <> 0.
WRITE: / 'Datei', BINFILE1, 'Länge', LAENGE,
'erfolgreich gespeichert'.
ENDIF.
ENDIF.
* Das Gleiche für binfile2
CALL FUNCTION 'UPLOAD'
EXPORTING
* CODEPAGE = ' '
FILENAME = 'C:\TR_WPDV\K900006.LNX'
FILETYPE = 'bin'
* ITEM = ' '
* FILEMASK_MASK = ' '
* FILEMASK_TEXT = ' '
* FILETYPE_NO_CHANGE = ' '
* FILEMASK_ALL = ' '
* FILETYPE_NO_SHOW = ' '
* LINE_EXIT = ' '
* USER_FORM = ' '
* USER_PROG = ' '
* SILENT = 'S'
IMPORTING
FILESIZE = LAENGE
* CANCEL =
* ACT_FILENAME =
* ACT_FILETYPE =
TABLES
DATA_TAB = ITAB
EXCEPTIONS
CONVERSION_ERROR = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3
NO_BATCH = 4
UNKNOWN_ERROR = 5
GUI_REFUSE_FILETRANSFER = 6
OTHERS = 7.
IF SY-SUBRC <> 0.
242
Programmlistings A
WRITE: /
'Datei vom Präsentationsserver wurde nicht gelesen'.
ELSE.
OPEN DATASET BINFILE2 FOR OUTPUT IN BINARY MODE.
LOOP AT ITAB INTO WA.
TRANSFER WA TO BINFILE2.
ENDLOOP.
CLOSE DATASET BINFILE2.
IF SY-SUBRC <> 0.
WRITE: / 'Datei', BINFILE2, 'Länge', LAENGE,
'erfolgreich gespeichert'.
ENDIF.
ENDIF.
Anhang B
Transport
Als Alternative zum aufwändigen Anlegen der Dictionary-Objekte für Alternative B
das Übungsszenario, wie in der Alternative A im Abschnitt 1.5 gezeigt,
kann man diese auch mittels eines Transports ins R/3 einspielen, was
wesentlich schneller vonstatten geht.
Beschaffen Sie sich das Archiv abap.zip mit dem Transport LNXK900006
TR-Wertpapierdepotverwaltung) von der Website der DEKRA-Akade-
mie GmbH: http://www.dekra-akademie.de/download. Kopieren Sie
die beiden Transportdateien mittels des Reports ZTPUPLOAD, den Sie eben-
falls in diesem Archiv finden, in das Transportverzeichnis des R/3-An-
wendungsservers. Führen Sie den Transport durch.
245
B Transport
Abbildung B.1
Object Navigator –
Anlegen lokaler Objekte
(© SAP AG)
Abbildung B.2
Report anlegen
(© SAP AG)
Abbildung B.3
Dies ist ein kurzer Report
ohne Include-Technik.
(© SAP AG)
246
Transport B
Abbildung B.4
Eigenschaftspflege
des Reports
(© SAP AG)
Abbildung B.5
Report in der lokalen
Entwicklungsklasse
anlegen
(© SAP AG)
Abbildung B.6
Report ab der zweiten
Zeile in die
Zwischenablage nehmen
mit BEARBEITEN / KOPIEREN
247
B Transport
Abbildung B.7
Einfügen des
Programmcodes aus der
Zwischenablage,
Aktivieren des Reports
(© SAP AG)
Abbildung B.8
Dateisystempfad des
Transportverzeichnisses
(© SAP AG)
Starten Sie nun den Report, der die beiden Transportdateien ins Trans-
portverzeichnis des R/3-Anwendungsservers überträgt, s. Abbildung
B.9 bis Abbildung B.14.
248
Transport B
Abbildung B.9
Starten des Reports
(© SAP AG)
Abbildung B.10
Selektionsbild mit
Dateipfaden der
Transportdateien
(© SAP AG)
Abbildung B.11
Übertragen der ersten
Transportdatei vom
lokalen Pfad
(© SAP AG)
Abbildung B.12
Prüfung der
Dateiübertragung mit
Transaktion /NAL11 /
DIR_TRANS / DATA
(© SAP AG)
Abbildung B.13
Übertragen der zweiten
Transportdatei vom
lokalen Pfad
(© SAP AG)
Abbildung B.14
Prüfung der
Dateiübertragung mit
Transaktion /NAL11 /
DIR_TRANS / COFILES
(© SAP AG)
249
B Transport
Abbildung B.15
Transportmanage-
mentsystem
(© SAP AG)
Abbildung B.16
Importübersicht
(© SAP AG)
Abbildung B.17
Importqueue: ZUSÄTZE /
WEITERE AUFTRÄGE /
ANHÄNGEN
(© SAP AG)
Abbildung B.18
Anhängen des
Transportauftrages
(© SAP AG)
250
Transport B
Abbildung B.19
Anhängen des
Transportauftrages
bestätigen
(© SAP AG)
Abbildung B.20
Transportauftrag in
der Queue
(© SAP AG)
Abbildung B.21
Zielmandant muss der
eigene Anmeldemandant
sein. (© SAP AG)
Abbildung B.22
Eventuell müssen für
einen erfolgreichen
Transport weitere IMPORT
OPTIONEN aktiviert
werden. Vorheriger
Testimport ist
empfehlenswert.
(© SAP AG)
251
B Transport
Abbildung B.23
Transport bestätigen
(© SAP AG)
Abbildung B.24
Nach dem Transport:
Prüfen des
Transporterfolges
(© SAP AG)
Abbildung B.25
Transportprotokolle zur
Prüfung des
Transporterfolges
(© SAP AG)
252
Transport B
Abbildung B.26
Die Protokolle listen
detailliert alle Aktivitäten
und deren Erfolg auf. Der
Import erfolgt in
mehreren Schritten
(Steps).
(© SAP AG)
Die Anleitung zum Füllen der Tabellen mit dem Report ZDATINS finden Schritte
Sie am Ende des Abschnitts 1.5.
253
Stichwortverzeichnis
Stichwortverzeichnis
/NEX 162 Datenbanktabelle 51
<!-- 60 Datenelement 50
</html> 60 Debugger 170
<a href= 74 Debugger-Port 172
<body> 60, 64 Debug-Modus 172, 174
<em> 60, 177 default.htm 61
<font size= 66 Dekra 45
<form 140 DEKRA-Akademie 245
<form method= 140 Demo-R/3-System 14
<frameset 78 DFÜ-Netzwerk 17
<h1> 60 DIAG-Protokoll 26, 172
<h2> 60 DNS 24
<h5> 66 Domain Name Service 24
<head> 60 Domain Name System 24
<html> 60 Domäne 49
<img src= 67 Dynpro 87, 101
<li> 76 E
<meta http-eqiv= 64 Effekten Kontors 45
<meta name= 63 Einzelschrittverfahren 174
<p> 66 else 178
<table> 72 elseif() 178
<td> 72 Entwicklerschlüssel 13, 14
<th> 72 Entwicklungsklasse 85
<title> 60 F
<tr> 72 FIELD 93
<ul> 76 FIELD-SET 181
~exiturl 162 FIELD-TRANSPORT 181
A Frame 77
action="..." 141 Fremdschlüssel 52, 53
Admin Enabled 170 function 185
AGate 25 Funktionsbaustein 120, 187
AGate-Session 181 Funktionsgruppe 119
Aktivieren 49 G
align 72 Grafik 67
Änderungsauftrag 46 GUI-Status 91
Änderungstransaktion 118
Ankreuzfeld 159 H
Anmeldesprache 155 hidden 159
Apache Webserver 19 hosts-Datei 24
Application Gate 25 HTML 43, 59
Archiv abap.zip 245 HTMLBusiness-Schleife 151
assert 142 HTML-Eingabefeld 157
audio/mpeg 179 HTML-Select 160, 181
audio/wav 179 HTTP-Header 141
Aufzählung 74 Hyperlink 74
Ausnahme 121 I
Auswahlknopfgruppe 158 IAC 9
Auswahllistenfeld 160 IAC-Package 28
AVWRTCXM 181 IAC-Start 148
AWSY 167 IDES 16
B if() 177
BAPI_EM PLOYEE_CHECKPASSWORD 92 IIS 18
BAPIEMPL-PERNR 85 image/gif 179
BAPI-Funktionsbaustein 83 image/jpeg 179
BAPIUID-PASSWORD 85 interaktiver WebReport 192
Beispieldaten 56 Internet Application Component 9
Benutzerkontext 142 Internet Transaction Server 13, 25
Benutzerkontextspeicher 181 Internet-Anwendungskomponente 81, 133
Berechtigungsgruppe 185 Internetbenutzer 16, 83, 98
Blätterfunktion des Dynpro-Steploops 148 Internetdienste-Manager 21
Blättern 114 Internetfreigabe 187, 191
Browser 16 Internetzugang 17
Browser-Vorschau 139 IP-Adresse 21
Browser-Zurück-Taste 167 iPlanet Webserver 19
Business Object Builder 99 ISAPI-Schnittstelle 141
Business-Objekt 98 IT-Ausstattung 13
ITS 13, 25, 31
Cache 67 ITSADM 26
CGI-Schnittstelle 141 ITSadm 29
CHAIN 93 ITS-Administrator 29
Checkbox 159 ITS-Benutzergruppe 29
255
Stichwortverzeichnis
ITS-Debugger 172 Sperrobjekt 118, 119
ITSuser 30 Sprachressourcendatei 153
K Sprachschlüssel 154
Kennwort-BAPI 83 sprachunabhängige
Kennwortfeld 158 Templates 152
Konkatenation 176 Text integrieren 152
L Standard-IAC 36
Landesflagge 179 Start der IAC über Hyperlink 147
language 165 Steploop 111
Lehrgang 85 Stringoperatoren 176
Linux Test-Drive 14, 37, 84, 87, 91, 93, 94, 98 synchrone V1-Verbuchung 120
Literal 176 Synchronisation 82, 167
M Synchronisationsfunktionscode 168
messageline 142
T
Metainformationen 63 Tabelle 72
MIME 179 templatelanguage 179
MIME-Objekt 179, 185 Templates 137
mimeURL() 177, 180, 181 Template-Wizard 137
Modulpool 85 text/html 179
mySAP.com 15 text/plain 179
Textelement 156
N Theme 134, 136, 143
Nachrichtenklasse 95 Top-Include 85, 90
name 179 Transport 46, 82, 130
Name/Wert-Paare 141, 185 U
Namenskonflikt 85
Namenskonvention 85 Übersetzung 156
Netscape Enterprise Server 18 Übungsgruppe 85
Neustart des ITS-Dienstes 170 Übungsszenario 45
NSAPI 25 Uniform Resource Locator 24
O UPDATE 122
URL 24, 140
Object Navigator 48 V
OK-Code 166, 167
OkCode 162, 164 Verbuchungsfunktionsbaustein 118, 119
okcode 165 View 101
Online-Store 36 Vorwärtsnavigation 169
P W
password 157 Web Gate 25
PlatinGUI 15 Webbrowser 16
post-Methode 141 Webdesign und Internet 44
Primärschlüssel 53 WebReporting 185, 188
Projekt 134 WebReporting Repository 187, 191
Proxy-Einstellungen des Browsers 21 WebReporting-Browser-Templates 188
Proxy-Server 17 WebRFC 185
Prüftabelle 52, 53 webrfct 186
Publizieren 146 Webserver 16
Q Website 18
definieren 144
QUERY_STRING 186 publizieren 144
R WebTransaction 81, 133
R/3-System 14 Wertpapierdepotverwaltung 45
Radiobuttons 158 WGate 25, 147
Red Hat 15 wgateURL() 163
Registrierdatenbank 170 wgateurl() 141, 142
repeat with 151 Windows 2000 13
REPORT 188 Windows NT 4.0 13
Report 55 windowtitle 142
Resource-Wizard 153 Winzip 43
RFC-Verbindung 185 Workbench Organizer 46
S World Wide Web 13
Sambar Webserver 18, 19 WWW 13
SAP@Web 133 WWW_DISPATCH_REQUEST() 185
SAP@Web Studio 41 WWW_GET_SELSCREEN() 188
SapguiDebuggerPort 171 WWW_HTML_ECHO() 186
SAPlogon 172 Z
SAP-Menü 46 Zurück-Taste 82
SAP-Transaktion 95
SELFHTML 43
Service 134
beenden 162
Servicedatei 143
global.srvc 134
Sessionspeicher 142
Shareware 43
Single-Host-Installation 25
256
Copyright
Daten, Texte, Design und Grafiken dieses eBooks, sowie die eventuell angebotenen
eBook-Zusatzdaten sind urheberrechtlich geschützt.
Dieses eBook stellen wir lediglich als Einzelplatz-Lizenz zur Verfügung!
Jede andere Verwendung dieses eBooks oder zugehöriger Materialien und
Informationen, einschliesslich der Reproduktion, der Weitergabe, des Weitervertriebs,
der Platzierung im Internet, in Intranets, in Extranets anderen Websites, der
Veränderung, des Weiterverkaufs und der Veröffentlichung bedarf der schriftlichen
Genehmigung des Verlags.
Bei Fragen zu diesem Thema wenden Sie sich bitte an:
mailto:info@pearson.de
Zusatzdaten
Möglicherweise liegt dem gedruckten Buch eine CD-ROM mit Zusatzdaten bei. Die
Zurverfügungstellung dieser Daten auf der Website ist eine freiwillige Leistung des
Verlags. Der Rechtsweg ist ausgeschlossen.
Hinweis
Dieses und andere eBooks können Sie rund um die Uhr
und legal auf unserer Website
(http://www.informit.de)
herunterladen