Está en la página 1de 257

SAP R/3 bungsbuch

Michael S. Umlauff

SAP R/3 bungsbuch


Programmierung von InternetAnwendungskomponenten


Herausgegeben von der DEKRA Akademie GMBH

eBook
Die nicht autorisierte Weitergabe dieses eBooks ist eine Verletzung des Urheberrechts!

An imprint of Pearson Education


Mnchen Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam

Die Deutsche Bibliothek CIP Einheitsaufnahme Ein Titelsatz fr diese Publikation ist bei Der Deutschen Biblothek erhltlich.

Smtliche in diesem Buch abgedruckten Bildschirmabzge unterliegen dem Urheberrecht der SAP AG, Walldorf. SAP, R/2, R/3, ABAP, SAPoffice, SAP Business Workflow, SAP EarlyWatch, SAP@WebStudio, SAP ArchiveLink, ASAP, my SAP.com sind eingetragene Warenzeichen der SAP Aktiengesellschaft Systeme, Anwendungen, Produkte in der Datenverarbeitung, Neurottstrae 16, D-69190 Walldorf. Andere Produktnamen werden nur zur Identifikation der Produkte verwendet und knnen eingetragene Marken der entsprechenden Hersteller sein. 2001 Addison Wesley Verlag ein Imprint der Pearson Education Deutschland GmbH Martin-Kollar-Strae 10-12, 81829 Mnchen/Germany 10 9 8 7 6 5 4 3 2 1 04 03 02 01 ISBN 3-8273-1788-6 Lektorat Christian Schneider, cschneider@pearson.de Produktion Elisabeth Egger, eegger@pearson.de Satz mediaService, Siegen Druck/Bindung Media Print, Paderborn Umschlaggestaltung Barbara Thoben, Kln

Das verwendete Papier ist aus chlorfrei gebleichten Rohstoffen hergestellt und alterungsbestndig. Die Produktion erfolgt mit Hilfe umweltschonender Technologien und unter strengsten Auflagen in einem geschlossenen Wasserkreislauf unter Wiederverwertung unbedruckter, zurckgefhrter Papiere. Text, Abbildungen und Programme wurden mit grter Sorgfalt erarbeitet. Verlag, bersetzer und Autoren knnen jedoch fr eventuell verbliebene fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung bernehmen. Die vorliegende Publikation ist urheberrechtlich ge-

schtzt. Alle Rechte vorbehalten. Kein Teil dieses Buches darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form durch Fotokopie, Mikrofilm oder andere Verfahren reproduziert oder in eine fr Maschinen, insbesondere Datenverarbeitungsanlagen, verwendbare Sprache bertragen werden. Auch die Rechte der Wiedergabe durch Vortrag, Funk und Fernsehen sind vorbehalten. Die in diesem Buch erwhnten Software- und Hardwarebezeichnungen sind in den meisten Fllen auch eingetragene Marken und unterliegen als solche den gesetzlichen Bestimmungen.

Inhalt
Vorwort Einfhrung Kapitel 1 Installation R/3-Internet-Software
1.1 1.2 1.3 1.4 1.5 Internet: Browser, Webserver installieren Internet Transaction Server installieren SAP@Web Studio installieren SELFHTML einrichten bungsszenario im Dictionary einrichten

7 9 13
16 25 41 43 45

Kapitel 2 Die erste Homepage im Intranet


2.1 2.2 2.3 2.4 2.5 Seiten gestalten: Head, Body, Texte Graphiken einbinden Tabellen anlegen Hyperlinks und Aufzhlungen nutzen Seiten mit Frames gestalten

59
60 67 72 74 77

Kapitel 3 Entwurf WebTransaction: ABAP


3.1 Internetbenutzer und Kennwort-BAPI 3.2 Dynpro 100: Anmeldung 3.3 Pflegen des Internetbenutzers 3.4 Dynpro 200: Selektionen 3.5 Dynpro 300: Anzeige der Liste 3.6 Dynpro 400: Kaufen und verbuchen 3.6.1 Sperrobjekt anlegen 3.6.2 Verbuchungsfunktionsbaustein anlegen 3.6.3 Dynpro 400 anlegen

81
83 85 98 101 109 118 119 119 124

Kapitel 4 SAP@Web Studio und ITS


4.1 4.2 4.3 4.4 4.5 Projekt, Service und Theme Templates aus Dynpros generieren Website definieren und publizieren Start der IAC ber Hyperlink Sprachunabhngigen Text integrieren

133
134 136 144 147 152

4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15

HTML-Eingabefelder im Formular Auswahllistenfeld (HTML-Select) anlegen Service beenden mit Drucktaste Funktion wgateURL() in Hyperlinks Erstes Template berspringen Browser-Zurck-Taste synchronisieren WebTransaction mit SAPGUI debuggen Konkatenation und Stringoperatoren Funktionen if() und mimeURL() HTML-Select mit Daten aus R/3

157 160 162 163 165 167 170 176 177 181

Kapitel 5 WebRFC und WebReporting


5.1 5.2 5.3 WebRFC: WWW_HTML_ECHO() WebReporting: WWW_GET_SELSCREEN() Ausblick

185
186 188 195

Anhang A Programmlistings
A.1 A.2 A.3 A.4 A.5 A.6 A.7 Die eigene Homepage WebTransaction: Erste Fassung Projekt wpbuchung: Erste Fassung WebTransaction: Letzte Fassung Projekt wpbuchung: Letzte Fassung WebRFC und WebReporting Heraufladen der Transportdateien

197
197 207 215 220 229 238 239

Anhang B Transport Stichwortverzeichnis

245 255

Vorwort

Vorwort
Der Herausgeber dieses Buches, die DEKRA Akademie GmbH, ist Deutschlands grter privatwirtschaftlicher Anbieter fr berufliche Ausund Weiterbildung. In bundesweit 120 Ausbildungszentren bereiten sich pro Jahr ber 100.000 Teilnehmer auf neue bzw. vernderte beruflichen Aufgaben vor. Die angebotenen Qualifizierungen reichen vom Tagesseminar bis zur mehrjhrigen Berufsausbildung. Als erstes Bildungsunternehmen schloss die DEKRA Akademie 1997 einen Partnervertrag mit der SAP AG. Die Kooperation beinhaltet die Organisation und Durchfhrung von SAP-Qualifizierungen fr Privatund Firmenkunden durch die DEKRA Akademie und die Nutzung der original SAP-Schulungs-Infrastruktur, wie sie auch den Seminarkunden der SAP in Walldorf zur Verfgung steht. Einen wesentlichen Unterschied gibt es zum Walldorfer Ausbildungskonzept: Im Rahmen ffentlich gefrderter Bildung haben die Teilnehmer 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 abluft, werden praxisbezogene Fallstudien bereitgestellt. Das Fallstudienkonzept, das die DEKRA Akademie bei der Qualifizierung von mehr als 2.000 SAP-Beratern erprobt hat, bildet die Grundlage des Buchs. Diese Trainingsunterlagen eignen sich als Unterrichtsmaterial ebenso wie fr das Selbststudium. In Praxisfllen werden realittsnahe Szenarien und Lsungsanstze angeboten, die den Leser handlungsorientiert Schritt fr Schritt zum Trainingserfolg fhren.

Vorwort

Lsungsdateien und zustzliche Hinweise zur Einrichtung der notwendigen IT-Strukturen im Anhang und im Internet unter http://dekra.akademie.de/download sichern den Qualifikationserfolg. Anregungen, Fragen und Kritik mailen Sie bitte an: walter.dirnhofer@akademie.dekra.de. Wir werden uns bemhen, Ihnen schnell zu antworten. Bitte denken Sie daran, den Buchtitel und am besten auch die Seitenzahl anzugeben, auf die sich Ihre Anfrage bezieht. So knnen wir Ihnen gezielter Auskunft geben. Viel Erfolg bei Ihrer Qualifizierung wnscht Ihnen Walter Dirnhofer Produktmanager der DEKRA Akademie GmbH SAP-Berater

Einfhrung

Einfhrung
Das vorliegende Werk will Sie anleiten, das Entwickeln von InternetAnwendungskomponenten (IAC=Internet Application Component) zu erlernen. Es beinhaltet ein weitgehend durchgngiges bungsbeispiel, mit dem Sie von der Pike auf eine IAC mit ABAP und HTMLBusiness programmieren. Dieses handlungsorientierte Werk ist sowohl zum Selbststudium als auch als Aufgabenbuch fr Lehrgnge 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 Einfhrung 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 angeleitet werden, eine Beispiel-IAC nach hinreichenden Erluterungen praktisch am System zu entwickeln. Sie sollten fortgeschrittene ABAP-Kenntnisse mitbringen, vor allem hin- Bentigte sichtlich der Transaktionsverarbeitung, aber auch des Reporting. Das Vorkenntnisse Anlegen und Programmieren von Entwicklungsklassen, Transaktionen, Modulpools, Dynpros, GUI-Status, GUI-Titel, Views, Reports, Funktionsgruppen, Funktionsbausteinen sowie der Umgang mit dem Dictionary, Repository und den sonstigen Werkzeugen der Workbench sollten Ihnen vertraut sein. Falls Sie hier noch Lcken zu schlieen haben, wird als geeignete Vorbereitung das Durcharbeiten des Werkes ABAP-bungsbuch (Umlauff/ Dirnhofer) der DEKRA-Akademie, des bundesweit ttigen Trgers fr berufliche Weiterbildung, erschienen im Fachverlag fr Informationstechnologien Addison-Wesley, empfohlen.

Einfhrung

Weiterhin sollten Sie mit einem Browser (Internet Explorer) und natrlich generell mit dem Windows-Betriebssystem (Explorer, Notepad, Systemsteuerung) umgehen knnen. HTML-Kenntnisse schaden zwar nicht, werden aber soweit als notwendig im Verlaufe des Lehrganges erworben.

Inhaltsbersicht Zunchst installieren Sie im Kapitel 1, Installation R/3-Internet-Software, die bentigte Software. Als Wichtigstes wren hier Webserver, Internet Transaction Server und SAP@Web Studio zu nennen. Weiterhin finden Sie, neben zahlreichen Hinweisen, wie Sie Ihr Netzwerk einrichten mssen, auch die Einrichtung eines Nachschlagewerks fr HTML. Schlielich richten Sie das bungsszenario Wertpapierdepotverwaltung, bestehend aus Datenbanktabellen mit entsprechenden Beziehungen, Datenelementen und Domnen mittels des ABAP Dictionaries und eines Reports zum Fllen der Tabellen ein. Alternativ zur eigenhndigen Programmierung kann das bungsszenario auch mit einem Transport, den Sie von der Homepage der DEKRA-Akademie herunterladen knnen, ins System eingespielt werden. Um eventuell fehlende HTML-Kenntnisse auszugleichen, wird in Kapitel 2, Die erste Homepage im Intranet, eine Webverffentlichung, bestehend aus zwei HTML-Seiten, aufgebaut. Sollten Sie bereits ber gute HTML-Kenntnisse verfgen, gengt es, wenn Sie Abschnitt 2.5, Seiten mit Frames gestalten, als Vorbereitung fr die WebTransaction bearbeiten. Die Entwicklung einer WebTransaction beginnt mit der Programmierung in ABAP, da diese speziellen Anforderungen gengen muss. Dies wird in Kapitel 3, Entwurf WebTransaction: ABAP, gezeigt. Als Alternative zur eigenhndigen Programmierung der WebTransaction steht auch hierfr wiederum ein Transport bereit. Dies sollten Sie jedoch nur als sehr erfahrener ABAP-Programmierer tun. Die WebTransaction wird im Kapitel 4, SAP@Web Studio und ITS, zur vollstndigen IAC, die nicht nur von dem SAPGUI, sondern auch vom Browser ber den Webserver und den ITS gestartet werden kann. Zentrales Werkzeug ist das SAP@Web Studio, das automatisch aus jedem Dynpro ein Template in HTMLBusiness mit Platzhaltern fr die Dynpro-Inhalte generiert. Sogar das Debuggen einer vom Browser aus gestarteten IAC ist mglich und wird gezeigt. Statt einer Transaktion kann man vom Browser aus ber RFC (Remote Function Call = Aufruf eines Funktionsbausteines von einem anderen Rechner) einen Funktionsbaustein aufrufen, der Webinhalte zurckliefert; dies wird in Kapitel 5, WebRFC und WebReporting, behandelt. Eine mgliche Anwendung dieser Technik ist der Start eines Reports

10

Einfhrung

vom Browser aus: Selektionsbild und Ergebnisliste werden dabei zu HTML-Seiten umgesetzt. Alle Programme sind im Anhang A: Programmlistings abgedruckt. Dieses Kapitel steht auf der Homepage der DEKRA-Akademie zum Herunterladen bereit, damit der Anwender die Programmtexte ber die WindowsZwischenablage einfgen kann, statt sie mhsam einzutippen. Der Anhang B: Transport beinhaltet eine ausfhrliche Anleitung zum Transport, den Sie jedoch nicht ohne die Untersttzung eines erfahrenen R/3-Administrators durchfhren sollten.

11

Installation R/3-Internet-Software

Kapitel 1 Installation R/3-InternetSoftware


Sie bentigen als zugrunde liegende IT-Ausstattung (IT = Informati- IT-Ausstattung onstechnologie) ein funktionierendes Intranet mit einem R/3-Zugang und installiertem SAPGUI. Fr das vorliegende Werk wird das SAP R/3 Release 4.6B verwendet. Fr den R/3-Account muss ein Entwicklerschlssel eingepflegt worden sein, diesen erhalten Sie ber den Administrator oder im Online-Service-System (OSS) von SAP. Die Entwicklung der IAC erfolgt in diesem Buch auf einem lokal installierten Webserver und dem Internet Transaction Server (ITS) von SAP. Als Betriebssystem wird fr dieses Werk Windows 2000 verwendet, zu bungszwecken gengt die Professional-Version. Zum Produktiveinsatz allerdings sollte die Server-Version eingesetzt werden. Ebenso ist Windows NT 4.0 (Workstation und Server) geeignet, allerdings sind einige Menpfade hier anders. IACs knnen 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 hchstens 4.5 (diese korrespondieren zu den R/3-Releases). Auf Windows 2000 laufen nur neuere ITS-Releases ab 4.6, die in der Anbindung mit SAP R/3 Release 4.0 dem Verfasser Probleme bereiteten. Fr den Fall, dass Ihr Administrator die Installationsdateien nicht oder Bezugsquellen nur in veralteten Releases verfgbar hat, werden an entsprechender Stelle jeweils Bezugsquellen als WWW-Adressen (WWW = World Wide Web) zum Herunterladen angegeben. Diese knnen sich allerdings seit Drucklegung gendert haben.

13

Installation R/3-Internet-Software

Die Anleitungen in diesem Buch beziehen sich auf die beim Verfassen aktuellen Release-Stnde. Inwieweit neuere Releases abwrtskompatibel sind, entnehmen Sie bitte den Hinweisen des jeweiligen Softwareherstellers.

Stimmen Sie sich in allen Aufgaben und Schritten dieses Kapitels sowie in Ihrem Gesamtvorhaben der Programmierung einer IAC unbedingt vorher mit Ihrem Administrator, Systemverwalter, Vorgesetzten oder sonstigen Verantwortlichen ab. So vermeiden Sie unntigen rger. Beachten Sie auch stets die Lizenzbestimmungen der SAP AG, Microsoft Corp. und der brigen Hersteller jener Software, die Sie einsetzen. Dies gilt insbesondere fr den Produktivbetrieb.

R/3-System Vermutlich verfgen Sie ber einen R/3-Zugang zu einem Ausbildungsoder Trainingssystem in Ihrer Firma, das Produktivsystem sollte fr bungsaufgaben nicht eingesetzt werden.

Linux Test-Drive Falls Sie noch keinen R/3-Zugang haben, knnen 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

Bevor Sie sich an die komplizierte Installation heranwagen, sollten Sie sich der Hilfe eines versierten Linux-Fachmanns vergewissern falls Sie nicht selbst einer sind.

Auf http://www.sap.com/linux erhalten Sie alle bentigten Informationen. Sie sollten die dort zu findende Dokumentation grndlich lesen, insbesondere das Test-Drive-FAQ und die Tips and tricks. Auf der CD finden Sie eine gute Einfhrung und Installationsanleitung in den Dateien README.TXT und INSTALL.TXT. Ganz wichtig: Den Entwicklerschlssel zum Programmieren eigener ABAP-Programme finden Sie in der Datei 1st_ABAP.TXT auf der CD. Es handelt sich um ein komplettes, aber reines Basissystem mit ABAP Workbench, Administration und SAP-Office. Nicht enthalten sind alle

1. Es gibt neuerdings auch fr Windows ein Demo R/3-System, dieses konnte aber fr das vorliegende Werk nicht mehr getestet werden.

14

Installation R/3-Internet-Software

betriebswirtschaftlichen Anwendungskomponenten, also Rechnungswesen, Logistik und Personalwirtschaft sowie das IDES-Trainingssystem. Fr den ABAP-Entwickler ist es jedoch ein geeignetes Werkzeug zum Lernen und Testen. Whrend der Installation bentigt man einen Lizenzkey, der ber http://www.sap.com/linux/evaluation.htm kostenlos per E-Mail erhltlich ist. Nach 90 Tagen erlischt die Lizenz, sie kann aber erneuert werden.

Die Lizenz des Linux Test-Drives gilt nur fr interne Zwecke und zur Verwendung fr Evaluationen. Produktivbetrieb, die Vorbereitung des Produktivbetriebs oder auch der Einsatz fr Lehrgnge 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 bentigen einen Rechner mit mindestens einem Pentium II oder besser, mindestens 192 MB RAM (256 MB RAM empfohlen) und mindestens 5 GB freier Festplattenkapazitt. Mit Linux-Betriebssystem und vorgeschriebenen 600 MB Linux-Swap-Space ergibt dies mindestens 7 GB. Optimiert ist das System fr 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 unabhngig weiterentwickelt wurde der Prsentationsserver PlatinGUI (Platform Independent GUI) unter Java und das zugehrige Java Runtime Environment Erweiterungen fr Red Hat 6.1. Der ITS oder das SAP@Web Studio sind auf der CD nicht enthalten. Dennoch knnen 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 knnen Sie auch SAPGUI und Browser installieren.

15

Installation R/3-Internet-Software

Eine Konfiguration auf nur einem Rechner mit der Linux-Demo-Software ist nicht mglich, da das AGate nur auf Windows 2000/NT luft. Erwhnt werden muss allerdings, dass, da es sich um eine reine Basis-Installation handelt, alle Business-Objekte fehlen, so dass ein in Abschnitt 3.1 bis 3.2 verwendetes BAPI zur berprfung des Internetbenutzers nicht vorhanden ist. In diesem Zusammenhang tritt ein weiteres Problem auf, weitere Details finden Sie in Abschnitt 3.3. Dennoch knnen Sie den grten Teil der bungsaufgaben lsen, indem Sie die Prfung des Internetbenutzers auf dem betreffenden Dynpro einfach weglassen.

Konfiguration des Die bungsbeispiele fr dieses Buch wurden auf einem R/3-System ReVerfassers 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 anstelle des SAP@Webstudios einen R/3-internen Internetservice an. Die IDES-Modellfirma war auf diesem R/3-System installiert, sie wird jedoch fr die bungsbeispiele nicht bentigt. 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 Windows 2000-Rechner installiert.

1.1 Internet: Browser, Webserver installieren


Vorbemerkung Mglicherweise sind einige der bentigten Programme bereits installiert. Erkundigen Sie sich deshalb zunchst bei Ihrem Administrator, und stimmen Sie mit diesem Ihre Vorgehensweise ab. Von ihm werden Sie auch die Installationsdateien erhalten. Sie bentigen fr alle Installationsarbeiten Administratorenrechte. 1. Installieren Sie den Webbrowser Internet Explorer 5.5. Sehr wahrscheinlich wurde der Internet Explorer bereits mit Ihrem Windows-Betriebssystem installiert. Fr die bungsbeispiele in diesem Buch gengt das Release 4.0 aufwrts. Sie mssen in den meisten Fllen den Browser nicht neu installieren. Falls Sie doch neu installieren mchten: Den Internet Explorer 5.5 erhalten Sie am einfachsten auf jenen zahllosen, den IT-Periodika beigelegten, CDs. Sie knnen ihn auch von http://www.microsoft.com/downloads/default.asp? herunterladen. Sie bentigen die Datei ie5setup.exe.

Schritte Starten Sie die Datei ie5setup.exe, s. Abbildung 1.1.

16

Installation R/3-Internet-Software

Abbildung 1.1

Begrungsbildschirm der Installation des Internet Explorers

Klicken Sie auf die Schaltflche WEITER. Sie mssen bei Installation in Windows 2000, anders als in Windows NT 4.0, nichts einstellen.
Abbildung 1.2

Installation. Anschlieend erfolgt der Neustart des Computers.

2. Verschaffen Sie sich einen Internetzugang. Installieren Sie hierfr ggf. auch einen Proxy-Server fr Ihr lokales Netzwerk. Ein Internetzugang ist fr die bungsaufgaben zwar nicht zwingend notwendig, jedoch ntzlich, um fehlende Komponenten herunterladen zu knnen. Die Installation des Webzuganges hngt sehr von Ihrem ISP (Internet Schritte Service Provider) ab. Folgen Sie dessen Installationsanweisungen. In den meisten Fllen werden Sie das DF-Netzwerk von Windows NT konfigurieren. Einen Proxy-Server bentigen Sie, wenn Sie ein lokales Netzwerk haben, in dem nur ein Rechner ber einen direkten Internetzugang, etwa ber eine ISDN-Karte, verfgt. Mittels eines Proxy-Servers gestattet dieser den anderen Rechnern die Mitnutzung seines Internetzuganges. So kann einem Entwicklerteam oder auch den Teilnehmern eines Lehrganges von deren Arbeitsplatz aus Zugang zum Internet verschafft werden. Der Proxy wird auf dem Rechner, der den direkten Zugang z. B. ber eine ISDN-Karte herstellt, installiert. Windows 2000 verfgt ber einen integrierten Proxyserver, der nur noch aktiviert werden muss: SYSTEM-

1.1 Internet: Browser, Webserver installieren

17

Installation R/3-Internet-Software

STEUERUNG / NETZWERK- UND DF-VERBINDUNGEN / KONTEXTMEN DER FREIZUGEBENDEN DF-VERBINDUNG / EIGENSCHAFTEN. Aktivieren Sie auf dem Registerblatt FREIGABE das Ankreuzkstchen Gemeinsame Nut-

zung der Internetverbindung aktivieren.

Alternativ knnen Sie z. B. den Sambar Webserver 4.4 (derzeit Beta 5) verwenden, der nebenbei auch noch die Aufgaben eines Proxy-Servers erledigt. Sie erhalten ihn unter http://www.tucows.de/winnt/httpservernt.html fr Windows 2000 und NT 4.0. Starten Sie das Programm setup.exe, und folgen Sie den Anweisungen. Weitere Informationen erhalten Sie ber die integrierte Online-Hilfe. Auf der Tucows-Seite finden Sie darber hinaus noch eine Reihe weiterer Proxy-Server. 3. Installieren Sie den Webserver IIS 5.0 fr Windows 2000.

Erluterung Der Webserver ist das Gegenstck zum Webbrowser. Er beherbergt


u. a. HTML-Dateien, Graphiken und multimediale Objekte in seinem Dateisystem. Auf Anfrage eines Webbrowsers hin versendet er diesem die angeforderten Dateien, die der Webbrowser in der Funktion des Clients im Client-Server-Modell dann darstellt. Mit der Installation eines Webservers verfgen Sie ber eine Website, die als Verffentlichung von berall dort mittels eines Browsers abgerufen werden kann, von wo aus Ihr Rechner ber das TCP/IP-Protokoll erreichbar ist. Dies ist zunchst Ihr lokales Netzwerk (LAN = Local Area Network). Von einem anderen LAN aus kann Ihre Website dann abgerufen werden, wenn es auch ber WAN-Verbindungen ber entsprechend konfigurierte Router mit Ihrem LAN verbunden ist. Im vorliegenden Werk wird der Leser angeleitet, den Webserver IIS (Internet Information Server) von Microsoft auf seinem Rechner zu installieren. Der Webserver (HTTP-Server) IIS 5.0 von Microsoft luft auf Windows 2000. Die Serverversion von Windows 2000 erlaubt auch die Installation so genannter virtueller Webserver, die verschiedenen TCP/IPPorts zugeordnet sind. Die Professional-Version erlaubt nur einen Webserver, der standardmig dem Port 80 zugeordnet ist. Da dies ein bungsbuch ist und da vermutlich mehr Leser an Windows 2000 Professional als an Server arbeiten, wird in diesem Werk durchgehend der kleine Bruder des IIS 5.0 ohne virtuelle Webserver verwendet. Die bungsbeispiele lassen sich natrlich auch mit anderen CGI-, ISAPIoder NSAPI-fhigen Webservern durchspielen wie dem Netscape Enter-

18

Installation R/3-Internet-Software

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, bentigen 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 inhalt.htm. Insofern ist sie von einem Webserver und damit von der Website zumindest begrifflich unabhngig. Eine Website beinhaltet also viele Webseiten.

Falls Sie mit Windows NT 4.0 arbeiten, knnen Sie den IIS 4.0 fr NT Server oder die Peer Web Services 3.0 (= IIS 3.0) fr NT Client installieren. Spielen Sie dann das Servicepack SP 2 oder hher wieder auf; Sie erhalten es im Download-Center der Microsoft Homepage: http://www.microsoft.com/downloads/search.asp. Der IIS 4.0 untersttzt auch virtuelle Webserver, ist jedoch Windows NT Server vorbehalten.

NT

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.

1.1 Internet: Browser, Webserver installieren

19

Installation R/3-Internet-Software

Abbildung 1.4

Fgen Sie WindowsKomponenten hinzu.

Abbildung 1.5

Aktivieren Sie das Ankreuzkstchen des IIS.

Nach dem Start der Installation des IIS mssen Sie die Windows 2000CD einlegen. Das Einrichten der Komponenten kann einige Minuten in Anspruch nehmen. Anschlieend sollte der Webserver bereits aktiv sein. Sie knnen 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

Abbildung 1.7

Hier kontrollieren Sie, ob der IIS gestartet ist.

Abbildung 1.8

Der InternetdiensteManager informiert ber wichtige Dateipfade.

4. Pflegen Sie die Proxy-Einstellungen des Browsers. Nun wird es Zeit, Ihre neu geschaffene Website im Browser zu betrach- Erluterung ten. Hierfr bentigen Sie die IP-Adresse2 Ihres Rechners. Sie knnen Sie einfach herausfinden ber die Eingabeaufforderung (DOS-Fenster)

2. Hierfr muss das TCP/IP-Protokoll auf Ihrem Rechner installiert sein. Falls nicht: SYSTEMSTEUERUNG / NETZWERKEINSTELLUNG UND DF-VERBINDUNG / LAN-VERBINDUNG / 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.

1.1 Internet: Browser, Webserver installieren

21

Installation R/3-Internet-Software

durch Eingabe von ipconfig, s. Abbildung 1.9. Ein anderer Weg hierfr ist SYSTEMSTEUERUNG / NETZWERK- UND DF-VERBINDUNGEN / LANVERBINDUNG / EIGENSCHAFTEN / INTERNETPROTOKOLL TCP/IP / EIGENSCHAFTEN.
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, mssen Sie noch Ihre Proxy-Einstellung abndern. Ihr Webserver ist nmlich nur im lokalen Netzwerk sichtbar. Ihr Proxy-Server allerdings sucht im globalen Internet, wo er Ihren Webserver nicht findet. Deshalb mssen Sie dem Browser mitteilen, dass er Ihre Website direkt und nicht ber den Proxy aufsucht: EXTRAS / INTERNETOPTIONEN, s. Abbildung 1.10 bis Abbildung 1.12. Bei dieser Gelegenheit knnen Sie auch schon den gewnschten 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 Ankreuzkstchen PROXYSERVER FR 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 Abbildung 1.16.
Abbildung 1.13

Die Standardseite des IIS, da noch keine eigene angelegt ist.

1.1 Internet: Browser, Webserver installieren

23

Installation R/3-Internet-Software

Abbildung 1.14

Gleichzeitig startet auch die OnlineDokumentation des IIS.

6. Pflegen Sie die hosts-Datei, welche die im Netz verwendeten Namen definiert. Rufen Sie vom Browser aus die Standardwebseite ber den Uniform Resource Locator (URL) des Webservers auf.

Erluterung Das Eintippen der IP-Adresse im Browser ist mhselig, man vergisst sie
auch leicht. Deshalb gibt es im Internet und groen Intranets spezielle Server fr das Domain Name System (DNS, auch Domain Name Service), welche die Zuordnung eines Rechnernamens, wie www.dekrakl.de, zu einer IP-Adresse, wie 172.17.109.125, vornehmen. Fr den lokalen Rechner gibt es eine einfache lokale Namensauflsung 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 knnen Sie Ihre Website auch durch Eingabe des Servernamens als URL im Browser aufrufen, s. Abbildung 1.16.

24

Installation R/3-Internet-Software

Abbildung 1.16

Aufruf der eigenen Website ber einen URL.

Von anderen Rechnern Ihres lokalen Netzwerkes aus knnen 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

1.2 Internet Transaction Server installieren


Der Webserver hat zunchst keinen eingebauten Zugang zu einem SAP R/3-Anwendungsserver. R/3 wiederum wurde vorrangig fr Zugriffe ber das SAPGUI konzipiert. Der Internet Transaction Server (ITS) stellt das Bindeglied zwischen beiden dar. Er besteht aus zwei Teilen: WGate (Web Gate) und AGate (Application Gate). Das WGate, die eine Hlfte des ITS, kommuniziert ber die CGI-, ISAPIoder NSAPI-Schnittstelle mit dem Webserver und muss deshalb auf dessen Rechner installiert werden. Im Falle des hier verwendeten IIS von Microsoft erfolgt die Kommunikation ber die ISAPI-Schnittstelle. Das WGate wird fr Windows 2000, Windows NT 4.0 und Unix (auch Linux) ausgeliefert. Das AGate, die andere Hlfte des ITS, knnen Sie wahlweise auf dem Webserver-Rechner, dem R/3-Rechner oder einem dazwischengeschalteten Rechner installieren. In diesem Buch wird, der Einfachheit halber, die erste Variante gewhlt, dies nennt man eine Single-Host-Installation. Das AGate kommuniziert ber TCP/IP sowohl mit dem WGate als auch mit dem R/3-Anwendungsserver.

1.2 Internet Transaction Server installieren

25

Installation R/3-Internet-Software

Die so beschriebene Konfiguration gengt fr eine Verffentlichung im eigenen Intranet. Fr eine Verffentlichung im WWW bentigen Sie, wie bereits erwhnt, einen ISP, der Ihre Webseiten auf seinem Webserver verfgbar macht (hostet). Auf diesem Rechner muss der ITS, zumindest das WGate, installiert werden. Obendrein bentigt der Webserver-Rechner eine permanente Online-Verbindung ber TCP/IP zum AGate und von hier aus zu Ihrem R/3-Anwendungsserver. 7. Beschaffen Sie sich eine zweite Benutzerkennung ITSADM fr das R/3-System.

Erluterung Aus lizenzrechtlichen Grnden darf sich ein R/3-Benutzer nur einmal
am R/3-System anmelden. Versucht er es ein zweites Mal unter derselben 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)

Der ITS bentigt die Benutzerdaten Name, Kennwort, Mandant eines normalen Dialogbenutzers, da er sich, hnlich wie Sie mit dem SAPGUI, ber das DIAG-Protokoll an R/3 anmeldet. Den gezeigten Warnhinweis erhalten Sie deshalb auch dann, wenn der ITS sich nach einem IAC-Aufruf am System unter derselben Benutzerkennung angemeldet hat, unter der Sie sich, wenig spter, ber das SAPGUI anmelden. Deshalb bentigen Sie eine zweite Benutzerkennung, die nur der ITS verwendet. Diese Kennung bentigt ausreichend Berechtigungen, um die Standard-WebTransactions und Ihre eigenen Kunden-WebTransactions starten zu knnen.

26

Installation R/3-Internet-Software

Der Verfasser verwendet zum Anmelden ber das SAPGUI die Kennung UMLAUFF, zum Anmelden des ITS die Kennung ITSADM. Beide verfgen ber die Berechtigungsprofile SAP_ALL und SAP_NEW, die als Superuserprofile beim Entwickeln von Transaktionen die wenigsten Probleme bereiten. Fr den Produktivbetrieb mssen allerdings aus Sicherheitsgrnden die Berechtigungen von ITSADM auf die bentigten Transaktionen beschrnkt werden.

Wenn der Benutzer ITSADM ber zu wenige Berechtigungen verfgt, funktioniert der IAC-Aufruf ber Browser und ITS nicht!

Das Anlegen von Benutzern ist exklusives Privileg des Administrators! Schritte Folgende Schritte fhren Sie bitte nur durch, wenn Ihnen dies der Administrator erlaubt hat und Sie selbst die ntigen Berechtigungen haben. Starten Sie Werkzeuge / Administration / Benutzerpflege / Benutzer und pflegen Sie die Einstellungen entsprechend Abbildung 1.19 bis Abbildung 1.23. Melden Sie sich mit dem SAPGUI neu an und vergeben Sie das endgltige 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)

1.2 Internet Transaction Server installieren

27

Installation R/3-Internet-Software

Abbildung 1.21

Eintragen eines Initialkennworts ( SAP AG)

Abbildung 1.22

Diese Superuserprofile sorgen fr problemlose IAC-Entwicklung, sind aber fr Produktivzwecke zu unsicher. ( SAP AG)

Abbildung 1.23

Erstanmeldung: Dieses Kennwort mssen Sie dem ITS zur Benutzerkennung ITSADM mitgeben. ( SAP AG)

8. Beschaffen Sie sich die Installationsdateien fr den Internet Transaction Server.

Schritte Den ITS finden Sie im Internet unter http://www.saplabs.com/its (Datei setupits46d_325330.exe fr Release 4.6D, setupits46b_266017.exe fr Release 4.6B) oder auf der SAP R/3-Prsentationsserver-CD. Sie knnen ein hheres Release des ITS gegenber Ihrem R/3-Release installieren, bentigen dann aber das zum R/3-Release passende IACPackage. Fr Release 4.6B heit das IAC-Package 46b_all.car. Sie finden es auf der gleichen Download-Seite; hier knnen Sie auch das SAP@Web Studio herunterladen, s. Abschnitt 1.3.

28

Installation R/3-Internet-Software

9. Legen Sie einen ITS-Administrator mit Administrationsrechten und eine ITS-Benutzergruppe auf dem NT-Rechner an, auf dem der ITS installiert werden soll. Der ITS-Administrator und die ITS-Benutzergruppe werden bentigt, Erluterung um den ITS gegen unbefugte Zugriffe zu schtzen. Dies ist von groer Bedeutung fr den Produktivbetrieb des Webauftritts, wo mit Hackerangriffen gerechnet werden muss. Bei der Installation des ITS mssen beide Benutzereinstellungen angegeben werden. Legen Sie in Windows den Benutzer ITSADM an: SYSTEMSTEUERUNG / Schritte BENUTZER UND KENNWRTER, s. Abbildung 1.24. bis Abbildung 1.27.
Abbildung 1.24

Hinzufgen eines Benutzers

Abbildung 1.25

Informationen zum Benutzer ITSadm

Abbildung 1.26

Vergeben des Kennwortes

1.2 Internet Transaction Server installieren

29

Installation R/3-Internet-Software

Abbildung 1.27

Der ITSadm bentigt Administrationsrechte zur Installation

Legen Sie die Benutzergruppe ITSUSER an: SYSTEMSTEUERUNG / BENUTZER UND KENNWRTER / ERWEITERT, s. Abbildung 1.28 bis Abbildung 1.31
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

Abbildung 1.31

Hinzufgen der Gruppenmitglieder

10.Melden Sie sich als ITSADM am Windows-System neu an. Installieren Sie den ITS. Es wird eine Single-Host-Installation durchgefhrt: Sowohl das AGate Erluterung als auch das WGate befinden sich auf dem gleichen Rechner wie der Webserver. Fr Produktivzwecke whlt man aus Performance-Grnden besser eine Dual-Host-Installation, bei der WGate dieses muss auf dem gleichen Rechner wie der Webserver installiert werden und AGate sich auf verschiedenen Rechnern befinden und ber TCP/IP verbunden sind. Dann kann man nicht nur das WGate, sondern auch das AGate mit jeweils einer eigenen Firewall vor Hackerattacken schtzen. Melden Sie sich ab mit START / BEENDEN / "[AKTUELLER BENUTZER]" AB- Schritte MELDEN. Melden Sie sich nun als ITSADM mit dem vorhin gewhlten Kennwort an. Starten Sie die aus dem WWW heruntergeladene Datei setupits46d_ 325330.exe3 (oder die entsprechende Datei von der SAP-PrsentationsCD) ber START / AUSFHREN / 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 anschlieend das etwas ltere ITS-Release 4.6B (Datei setupits46b_266017.exe) verwendet werden. Hinsichtlich der Installationsschritte unterscheiden sich die beiden Releases nicht.

1.2 Internet Transaction Server installieren

31

Installation R/3-Internet-Software

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

Typical installiert eine ITS-Instanz fr den Aufruf von IACs, Administration in einem zweiten Durchgang das Administrationstool. ( SAP AG)

~ ~

Abbildung 1.35

Abbildung 1.36

Als Name des ITS empfiehlt sich der Name des R/3-Systems. ( SAP AG)

Abbildung 1.37

Zuordnung der ITSInstanz zum IISWebserver ( SAP AG)

Abbildung 1.38

URL zur Homepage des Webservers ( SAP AG)

1.2 Internet Transaction Server installieren

33

Installation R/3-Internet-Software

Abbildung 1.39

Auswahl des IACPackages 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

Fr bungszwecke gengt ein AGate. Mehrere AGates knnen zur Lastverteilung eingesetzt werden. ( SAP AG)

~Default configuration bentigt mindestens 128 MB RAM, ~Minimize


Abbildung 1.42

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

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 ITSDateien ( SAP AG).

Abbildung 1.46

Account und Kennwort des ITS-Administrators und der ITSBenutzergruppe zur Nutzung der Windows NT-Sicherheitsmechanismen ( SAP AG)

1.2 Internet Transaction Server installieren

35

Installation R/3-Internet-Software

Abbildung 1.47

URL zum eigenen Webserver ( SAP AG)

Abbildung 1.48

Anschlieend beginnt die Installation, sie dauert einige Minuten. ( SAP AG)

Nach erfolgter Installation knnen Sie noch die Release-Notes lesen, der Rechner muss neu gestartet werden. 11.Kontrollieren Sie, ob der ITS gestartet ist. Betrachten Sie im Browser die neue Website mit den Standard-IACs. Erkunden Sie die Standard-IAC ONLINE-STORE. Geben Sie eine Bestellung auf, lassen Sie sich eine Kundennummer geben.

Erluterung 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\default.htm angelegt; dies ist die Standardseite, die der Webserver liefert, falls der URL keinen Dateipfad enthlt. Sie ersetzt nun die Standardseite des Webservers, dies waren localstart.asp respektive iisstart.asp. Sie finden sie im Windows Explorer, s. Abbildung 1.49.
Abbildung 1.49

Standardwebseite default.htm des Webservers

36

Installation R/3-Internet-Software

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. Abbildung 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 fr den Online-Store stammen aus dem IDES-System.
Abbildung 1.51

Nach Installation des ITS: Homepage der StandardIACs ( SAP AG)

Abbildung 1.52

Deutsche Fassung der IAC-Homepage: Zum Online-Store ( SAP AG)

1.2 Internet Transaction Server installieren

37

Installation R/3-Internet-Software

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 bentigten Bilder. ( SAP AG)

Abbildung 1.56

Nach der Auswahl von Hardware weiter zu den PC-Systemen ( SAP AG)

38

Installation R/3-Internet-Software

Abbildung 1.57

Fllen des Einkaufskorbes; weiter zum EINKAUFSKORB / BESTELLEN. In diesem IDESSystem 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)

1.2 Internet Transaction Server installieren

39

Installation R/3-Internet-Software

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

Abbildung 1.64

Die Bestellung wurde in R/3 generiert. Ihr R/3Administrator liefert sie freundlicherweise frei Haus ... ( SAP AG)

1.3 SAP@Web Studio installieren


1. Installieren Sie das SAP@Web Studio. Das SAP@Web Studio der HTMLBusiness-Editor von SAP finden Sie im Erluterung WWW unter http://www.saplabs.com/its als Datei setupstudio46d_ 314924.exe zum Herunterladen. Sie befindet sich auch auf der SAP R/3-Prsentationsserver-CD. Ab Release 4.6C knnen 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-Prsentationsserver-CD) ber START / AUSFHREN / DURCHSUCHEN..., s. Abbildung 1.65 bis Abbildung 1.67.
Abbildung 1.65

Installation des SAP@Web Studios ( SAP AG)

1.3 SAP@Web Studio installieren

41

Installation R/3-Internet-Software

Abbildung 1.66

Auswahl des Installationspfades ( SAP AG)

Abbildung 1.67

Nach der Installation erscheinen auch die Release-Notes. ( SAP AG)

Starten Sie das SAP@Web Studio mit START / PROGRAMME / SAP@WEB STUDIO / STUDIO 4.6D, s. Abbildung 1.68.
Abbildung 1.68

SAP@Web Studio nach der Installation, noch ohne Projekt ( SAP AG)

42

Installation R/3-Internet-Software

1.4 SELFHTML einrichten


Das vorliegende Werk vermittelt Ihnen einige grundlegende HTML- Vorbemerkung Kenntnisse, jedoch nur insoweit, als dies fr die nachfolgende IAC-Entwicklung notwendig ist. Fr weitergehendes Erlernen von HTML empfiehlt der Verfasser SELFHTML von Stefan Mnz, das kein Programm ist, sondern ein umfassendes Kompendium ber HTML und vieles weitere, was mit Internet und Webdesign zusammenhngt. Es ist in HTML verfasst und kann mit dem Browser gelesen werden. Sie knnen die Datei selfhtml.zip von der Website http://www.teamone.de/selfaktuell/extras/download.htm herunterladen. Das Kompendium ist zwar kostenlos erhltlich, der Autor Stefan Mnz freut sich aber ber Spenden fr seine geleistete Arbeit, s. SELFHTML / EDITORIAL / HINWEISE ZUM DOKUMENT / SPENDEN. Wenn Sie aus seinem Werk Nutzen gezogen haben und es sich leisten knnen, wre eine Spende sicherlich angebracht. 1. Richten Sie das Kompendium SELFHTML von Stefan Mnz ein. Benutzen Sie SELFHTML beim weiteren Bearbeiten der bungsaufgaben stets zum Nachschlagen allgemeiner Fragen zu HTML, WWW oder dem Internet. Zum Dekomprimieren und Entpacken von Archiven knnen Sie wie Erluterung hier gezeigt die Shareware Winzip verwenden. Man bentigt ein derartiges Tool fr die meisten heruntergeladenen Programme. Erhltlich ist es unter http://www.winzip.de.

Shareware ist keine Freeware! Nach Ablauf der vom Autor/Eigentmer festgelegten Evaluationsphase (meist 30 Tage) muss sie lizenziert werden! Mit dem Erwerb der Lizenz frdern Sie die Weiterentwicklung des jeweiligen Programms.

Auf der TUCOWS-Seite finden Sie neben Winzip eine Vielzahl gleichwertiger Shareware und Freeware zum Packen und Entpacken: http://www.tucows.de/win2k/comp2k.html fr Windows 2000, http://www.tucows.de/winnt/compnt.html fr Windows NT 4.0.

1.4 SELFHTML einrichten

43

Installation R/3-Internet-Software

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

2. Suchen Sie in SELFHMTL das Kapitel HTML auf.

Schritte Starten Sie dann im Browser die Datei C:\Selfhtml\selfhtml.htm mit


DATEI / FFNEN... Neben einer umfassenden Beschreibung der WWW-Sprache HTML finden Sie viele weitere Kapitel zum Thema Webdesign und Internet, die im Rahmen dieses Buches leider nicht behandelt werden knnen. Sie knnen, wie im WWW blich, ber Verweise so genannte Hyperlinks zu den einzelnen Themen navigieren, so wie dies in Abbildung 1.70 und Abbildung 1.71 dargestellt ist.
Abbildung 1.70

SELFHTML ist ein umfassendes Kompendium fr Webdesigner.

44

Installation R/3-Internet-Software

Abbildung 1.71

In diesem Kapitel ist alles Wissenswerte zu HTML zu finden.

Es lohnt sich, im Kapitel HTML zu stbern. SELFHTML ist auch ein gutes Nachschlagewerk, um die bentigten HTML-Tags (s. Kapitel 2) zu suchen oder um die Bedeutung unbekannter HTML-Tags zu finden.

1.5 bungsszenario im Dictionary einrichten


Die in diesem Werk durchgngig als Grundlage der bungsbeispiele he- Vorbemerkung rangezogene Datenbank WERTPAPIERDEPOTVERWALTUNG des DEKRA EFFEKTEN KONTORS muss in R/3 eingerichtet werden. Im Dictionary sind die zugehrigen Domnen, Datenelemente und Tabellen mit deren relationalen Beziehungen (Prftabellen) anzulegen. Dabei knnen Sie zwischen folgenden beiden Alternativen whlen: Alternative A: Eigenhndiges Anlegen aller Objekte mit den Werkzeugen Dictionary und ABAP Editor Alternative B: Einspielen eines Transports Die leeren Tabellen werden anschlieend mittels des ABAP-Reports ZDATINS mit Beispieldaten gefllt. 1. Beschaffen Sie das bungsszenario von der Website der DEKRAAkademie GmbH.

1.5 bungsszenario im Dictionary einrichten

45

Installation R/3-Internet-Software

Schritte Der Report ZDATINS ist, zusammen mit Beschreibungen der DictionaryObjekte, im Archiv abap.zip zum Herunterladen unter http://www.dekra-akademie.de/download erhltlich. Dort finden Sie auch, fr die Alternative B zur nachfolgenden Aufgabe, den Transport LNXK900006 sowie die an anderen Stellen erwhnten Transporte.

Auswahl der Das bungsszenario knnen Sie entweder eigenhndig im ABAP DictioAlternative nary und mit dem ABAP Editor anlegen, dies wird in Alternative A der
Aufgabe gezeigt. Ein krzerer, aber konflikttrchtigerer 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, whlen Sie Alternative A. Sie legen dann die Entwicklungsklasse ZDEKRA und die darin enthaltenen Domnen, Datenelemente, Tabellen und Fremdschlsselbeziehungen an. Schlielich legen Sie den Report ZDATINS an und starten ihn. Alternative B sollten Sie nur unter folgenden Voraussetzungen whlen: 1. Sie verfgen bereits ber sehr gute bung im Umgang mit ABAP Dictionary und ABAP Editor. 2. Sie interessieren sich auch fr Administrationsaufgaben und das Transportwesen von R/3. 3. Sie haben einen im Transportwesen erfahrenen Administrator zur Hand, der Ihnen bei Komplikationen zur Seite steht.

Alternative A Legen Sie die Dictionary-Objekte, relationale Beziehungen und einen


Report in R/3 an, wie es in der Anleitung Liesmich.rtf beschrieben ist. Verwenden Sie hierzu einen nderungsauftrag und eine Entwicklungsklasse ZDEKRA 2. Legen Sie mit dem Workbench Organizer einen nderungsauftrag an.

Erluterung Soll der nderungsauftrag transportierbar sein, muss das Transportsystem entsprechend vom Administrator eingerichtet worden sein. Fr die bungen gengt notfalls auch ein lokaler nderungsauftrag.

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

Abbildung 1.72

SAPGUI eines IDESSystems. Fr die bungen gengt 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)

1.5 bungsszenario im Dictionary einrichten

47

Installation R/3-Internet-Software

Abbildung 1.75

nderungsauftrag und Aufgabe fr den Entwickler ( SAP AG)

3. Legen Sie die Entwicklungsklasse ZDEKRA an..

Schritte Starten Sie vom SAP-Men aus WERKZEUGE / ABAP WORKBENCH /


BERSICHT / OBJECT NAVIGATOR, s. Abbildung 1.76 bis Abbildung 1.78. Anschlieend wird die Entwicklungsklasse dem nderungsauftrag zugeordnet.
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

Abbildung 1.78

Eigenschaftspflege der Entwicklungsklasse ( SAP AG)

4. Legen Sie die Domne Z_NR im ABAP Dictionary an. 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 Domne der Entwicklungsklasse ZDEKRA und Ihrem nderungsauftrag zu.
Abbildung 1.79

Anlegen einer Domne ( SAP AG)

Abbildung 1.80

Beim erstmaligen Anlegen eines Entwicklungsobjektes wird der Entwicklerschlssel abgefragt. ( SAP AG)

1.5 bungsszenario im Dictionary einrichten

49

Installation R/3-Internet-Software

Abbildung 1.81

Pflege des Formats und der Ausgabeeigenschaften der Domne ( SAP AG)

Abbildung 1.82

Aktivieren der Domne mit gleichzeitigem Speichern ( SAP AG)

5. Legen Sie in hnlicher Weise die fehlenden Domnen an.

Schritte Das bungsszenario bentigt folgende Domnen:


Domne Datentyp Lnge 10 15 20 8 10 1 Ausgabelnge 10 15 20 10 13 1

Z_NR Z_NAME Z_BESCHR Z_DATUM Z_KURSWERT Z_DEPOTTYP

NUMC CHAR CHAR DATS DEC CHAR

6. Legen Sie das Datenelement Z_KUNDENNR im Dictionary an.

Schritte Legen Sie das Datenelement mit dem Object Navigator an, s. Abbildung
1.83 bis Abbildung 1.85. Mit dem Aktivieren ordnen Sie das Datenelement der Entwicklungsklasse ZDEKRA und Ihrem nderungsauftrag zu.

50

Installation R/3-Internet-Software

1
Anlegen eines Datenelements ( SAP AG)

Abbildung 1.83

Abbildung 1.84

Zuordnung einer Domne zum Datenelement ( SAP AG)

Abbildung 1.85

Pflege der Feldbezeichner des Datenelements ( SAP AG)

7. Legen Sie in hnlicher Weise die fehlenden Datenelemente an. Das bungsszenario bentigt folgende Datenelemente:
Datenelement Domne Datenelement Domne

Schritte

Z_WKN Z_DEPOTNR Z_KUNDENNR Z_ANZAHL Z_NAME Z_VORNAME

Z_NR Z_NR Z_NR Z_NR Z_NAME Z_NAME

Z_WOHNORT Z_EMITTENT Z_WPTITEL Z_DATUM Z_KURS Z_DEPOTTYP

Z_NAME Z_NAME Z_BESCHR Z_DATUM Z_KURSWERT Z_DEPOTTYP

8. Legen Sie die Datenbanktabelle ZKUNDEN als Anwendungstabelle (Stamm- und Bewegungdaten) an. Tabellenpflege Dateneingabe mittels des Data Browsers soll erlaubt sein.

1.5 bungsszenario im Dictionary einrichten

51

Installation R/3-Internet-Software

Schritte Legen Sie die Datenbanktabelle mit dem Object Navigator an, s. Abbildung 1.86 bis Abbildung 1.92. Mit dem Aktivieren ordnen Sie die Datenbanktabelle der Entwicklungsklasse ZDEKRA und Ihrem nderungsauftrag 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 Fremdschlssel ( SAP AG)

Abbildung 1.89

Mandantentabelle T000 wird als Prftabelle vorgeschlagen. ( SAP AG)

52

Installation R/3-Internet-Software

Abbildung 1.90

Die vorgeschlagene Fremdschlsseldefinition ist korrekt und kann bernommen werden. ( SAP AG)

Abbildung 1.91

Die aktivierte Tabelle mit Fremdschlssel ( SAP AG)

Abbildung 1.92

Pflege der technischen Einstellungen der Tabelle; anschlieend: Speichern und zurck zum Object Navigator ( SAP AG)

9. Legen Sie die Tabelle ZDEPOT an. Das Feld KUNDENNR ist ein Fremdschlssel auf den Primrschlssel der Prftabelle ZKUNDEN Legen Sie die Tabelle ZDEPOT hnlich wie die Tabelle ZKUNDEN an, und er- Schritte gnzen Sie in der Zeile KUNDENNR die Fremdschlsselbeziehung, s. Abbildung 1.93 bis Abbildung 1.96.

1.5 bungsszenario im Dictionary einrichten

53

Installation R/3-Internet-Software

Abbildung 1.93

Tabelle ZDEPOT; Anlegen Fremdschlssel fr ein Feld ( SAP AG)

Abbildung 1.94

Prftabelle angeben ( SAP AG)

Abbildung 1.95

Der Vorschlag wird aufgrund gleicher Domnen der Felder erstellt. ( SAP AG)

Abbildung 1.96

Dieser Vorschlag ist korrekt und kann bernommen werden. ( SAP AG)

10.Legen Sie in hnlicher Weise die fehlenden Tabellen an.

54

Installation R/3-Internet-Software

Das bungsszenario bentigt folgende Tabellen:


Tabelle Felder Schlssel Datenelement Prftabelle

Schritte

ZKUNDEN

MANDT KUNDENNR NAME VORNAME WOHNORT MANDT DEPOTNR KUNDENNR DEPOTTYP MANDT DEPOTNR WKN ANZAHL MANDT WKN TITEL EMITTENT MANDT WKN DATUM KURS

ZDEPOT

ZDEPOTPSTN

ZWPAPIER

ZKURSE

; ; ; ; ; ; ; ; ; ; ; ;

MANDT Z_KUNDENNR Z_NAME Z_VORNAME Z_WOHNORT MANDT Z_DEPOTNR Z_KUNDENNR Z_DEPOTTYP MANDT Z_DEPOTNR Z_WKN Z_ANZAHL MANDT Z_WKN Z_WPTITEL Z_EMITTENT MANDT Z_WKN Z_DATUM Z_KURS

T000

T000 ZKUNDEN T000 ZDEPOT ZWPAPIER T000

T000 ZWPAPIER

11.Legen Sie den Report ZDATINS an. Den Programmcode finden Sie in der Datei zdatins.txt aus dem Archiv Erluterung 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 nderungsauftrag zugeordnet und schlielich aktiviert werden.
Abbildung 1.97

Anlegen des Reports ZDATINS ( SAP AG)

Abbildung 1.98

Dieser Report bedarf keiner Include-Technik. ( SAP AG)

1.5 bungsszenario im Dictionary einrichten

55

Installation R/3-Internet-Software

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

Einfgen des Programmcodes in den Report ( SAP AG)

12. Fllen Sie die Tabellen mit dem Report ZDATINS.

Erluterung 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 fgt in alle Tabellen eine groe Anzahl an Beispieldaten ein.

Schritte Starten Sie den Report ZDATINS aus der Entwicklungsklasse ZDEKRA heraus: KONTEXTMEN REPORT ZDATINS / AUSFHREN / DIREKT, s. Abbildung 1.102 bis Abbildung 1.105.

56

Installation R/3-Internet-Software

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 DictionaryObjekte. ( SAP AG)

Betrachten Sie auch die Tabelleninhalte im Data Browser, z. B. die Tabelle ZKUNDEN: KONTEXTMEN ZKUNDEN / TABELLENINHALT, s. Abbildung 1.105 bis Abbildung 1.106.

1.5 bungsszenario im Dictionary einrichten

57

Installation R/3-Internet-Software

Abbildung 1.105

Data Browser mit der Tabelle ZKUNDEN ( SAP AG)

Abbildung 1.106

Die Tabellen sind nun mit Beispieldaten gefllt. ( SAP AG)

Nun ist Ihre Systemumgebung inklusive des R/3-Systems komplett eingerichtet, um eine Beispiel-IAC zu entwickeln.

58

Die erste Homepage im Intranet

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 unabhngig vom R/3-System, dessen Anschluss ber den ITS an Ihre Website erfolgt erst in besagtem Kapitel 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 Programmiersprache, sondern eine Beschreibungssprache fr 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 schlieende Tags mit </ am Anfang wie </html>, das einen HTML-Text beendet. Die meisten, nicht alle, Tags mssen abgeschlossen werden. Die HTML-Tags werden kurz erlutert. Ausfhrliche Beschreibungen finden Sie in SELFHTML, das Sie whrend der Arbeit stets in einem eigenen Browser-Fenster offen halten sollten, um das jeweilige Tag nachzuschlagen.

59

Die erste Homepage im Intranet

2.1 Seiten gestalten: Head, Body, Texte


bungsszenario Sie sind ABAP-Entwickler des Finanzdienstleisters DEKRA EFFEKTEN KONTOR, das fr seine Kunden Wertpapierdepots einrichtet und mittels SAP R/3 verwaltet.

Sie mchten fr Mitarbeiter der Auenstellen, die lediglich ber einen Internetzugang, nicht jedoch ber eine R/3-Anbindung ber das SAPGUI verfgen, die Mglichkeit der webbasierten Online-Verbuchung von Wertpapierkufen in R/3 ber eine IAC erffnen. 1. Erstellen Sie eine erste Homepage in HTML mit einer Seite fr die Firma Dekra Effekten Kontor, nach dem Muster von Abbildung 2.1. Erffnen Sie den Text mit <html>, und schlieen Sie ihn mit </html>. Gliedern Sie die HTML-Datei in <head> und <body>. Verwenden Sie die Tags <title> (Titel), <h1> (berschrift Gre 1), <h2> (berschrift Gre 2), <em> (kursiv). Setzen Sie auch einen (im Browser unsichtbaren) Kommentar.

Erluterung ber <html> und </html> hinaus verwenden Sie folgende Tags:
<head> und </head> bilden den Kopfteil. Dieser ist zwar im Anzeigebereich 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, enthlt. <title> und </title> legen den Seitentitel fest, den der Browser in der Titelleiste anzeigt. <body> und </body> bilden den Krperteil, dessen Inhalte der Anzeigebereich des Browsers anzeigt und in dem Sie folgende Tags verwenden knnen: Den Text zwischen <h1> und </h1> zeigt der Browser als berschrift der Gre 1 an. Wie gro diese ist, entscheidet allein der Browser. Den Text zwischen <h2> und </h2> zeigt der Browser als etwas kleinere berschrift der Gre 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

Abbildung 2.1

Die erste eigene Homepage im Browser, geliefert vom Webserver

Legen Sie mit dem Windows-Editor einen HTML-Text an. START / PROGRAMME / ZUBEHR / EDITOR, s. Abbildung 2.2.

Schritte
Abbildung 2.2

Anlegen der ersten Homepage mit dem Windows-Editor

Geben Sie folgenden Programmcode ein.


<html> <head> <title>Dekra Effekten Kontor</title> </head> <body> <h1> Dekra Effekten Kontor </h1> <h2> Herzlich Willkommen </h2> Wir <!-- Kommentar, ist unsichtbar --> verwalten <em> Ihre </em> Schtze! </body> </html>

2. Benennen Sie die vom ITS installierte Standard-Homepage in default_ITS.htm um. Verffentlichen Sie die Homepage als Datei default.htm in Ihrem Intranet auf dem in bung 1.1 eingerichteten Webserver.

2.1 Seiten gestalten: Head, Body, Texte

61

Die erste Homepage im Intranet

Schritte Zunchst 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 Standardwebseite ist, die der IIS 5.0 anbietet, sofern im URL kein Dateipfad enthalten ist.
Abbildung 2.3

Umbenennen der Standard-IAC-Seite im Windows Explorer

Das Verffentlichen der Seite auf dem Webserver erfolgt anschlieend durch Speichern im Pfad C:\Inetpub\wwwroot\default.htm. Nach dem Speichern sollte die Seite von allen Rechnern im Intranet erreichbar sein, s. Abbildung 2.1. Voraussetzung fr die Verwendung des Rechnernamens im Browser (hier: www.dekra-kl.de) ist, dass der Name in der hosts-Datei eingetragen ist (s. Aufgabe 1.1) oder von einem DNS-Server geliefert wird. Ansonsten kann stattdessen auch die IP-Adresse des Webservers verwendet werden. Anschlieend sollte Ihre Homepage gleich der Abbildung 2.1 aussehen. Wenn Sie ein bereits vorhandenes HTML-Dokument erneut in den Editor laden mchten, so funktioniert dies vom Windows Explorer aus meist nicht durch Doppelklick auf die Datei, da die Endung .htm anderen Programmen, meist dem Browser, zugeordnet ist. Verwenden Sie stattdessen die rechte Maustaste: KONTEXTMEN AUF DIE DATEI / FFNEN MIT / EDITOR, s. Abbildung 2.4.
Abbildung 2.4

Laden einer .htm-Datei in den Editor mit der rechten Maustaste

62

Die erste Homepage im Intranet

Natrlich drfen Sie anstelle des Windows-Editors auch Ihren Lieblings-HTML-Editor verwenden. Achten Sie jedoch darauf, dass Sie direkt mit dem HTML-Code und nicht nur mit der WYSIWYG-Ansicht (What you see is what you get) arbeiten. Schlielich wollen Sie HTML als Vorbereitung auf HTMLBusiness erlernen.

Meist startet sich durch Doppelklick auf die Datei C:\Inetpub\ wwwroot\default.htm der Browser und zeigt, wie in Abbildung 2.5, diese in hnlicher Weise an wie durch Auswahl des URL Ihrer Webseite, hier http://www.dekra-kl.de.

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 angewhnen.
Abbildung 2.5

Lokales Anzeigen einer HTML-Datei im Browser. Dynamische Inhalte, die auf R/3-Transaktionen zugreifen, knnen so nicht dargestellt werden.

3. Fllen Sie im <head> die Metainformationen aus: <meta name= "description" ...> <meta name="author" ...> <meta name="keywords" ...> <meta http-eqiv="content-type" ...>

Die Metainformationen im Kopfteil werden von Suchmaschinen wie Al- Erluterung tavista (http://www.altavista.com) oder Google (http://www. google.com) ausgewertet und fr die Beantwortung von Suchanfragen verwendet. Sie sollten sie ausfllen, damit Web-Surfer, die sich fr Ihr Thema interessieren, auch Ihre Seite finden. <meta name="description" content="[Beschreibung]"> nennt einen Beschreibungstext fr Suchmaschinen. <meta name="author" content="[Autorenname]"> nennt den Namen des Autors.

2.1 Seiten gestalten: Head, Body, Texte

63

Die erste Homepage im Intranet

<meta name="keywords" content="[Schlsselwrter]"> nennt Schlsselwrter, nach denen jemand, fr den Ihre Webseite interessant sein knnte, sucht. <meta http-eqiv="content-type" content= "text/html; charset=iso8859-1"> legt den so genannten Mime-Type bei HTML-Dateien immer text/html, dazu mehr in Abschnitt 4.14 und als Zeichensatz ISO 8859-1, den Standard fr Westeuropa, fest. So sorgen Sie u. a. dafr, dass Umlaute korrekt dargestellt werden.

Schritte Ergnzen Sie default.htm um den fett gedruckten Programmtext. Diese


Konvention gilt auch fr den Rest des vorliegenden Werkes! 1. ... <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> ... Im Browser werden Sie, wie bereits erwhnt, keinen Unterschied bemerken. 4. Stellen Sie die Hintergrundfarbe sowie die Farben von Texten, Hyperlinks und besuchten Hyperlinks fr den gesamten <body> nach Ihrem Geschmack ein.

Erluterung Das <body>-Tag erlaubt u. a. folgende Zustze zum Festlegen von Farben. bgcolor=[Farbe] legt die Hintergrundfarbe fest. text=[Farbe] legt die Farbe fr Text fest. link=[Farbe] legt die Farbe fr noch nicht besuchte Hyperlinks fest. vlink=[Farbe] legt die Farbe fr bereits besuchte Hyperlinks fest. Die Namen der 16 Grundfarben knnen Sie in SELFHTML nachschlagen, s. Abbildung 2.6. Es gibt darber hinaus noch spezielle Farben, s. Abbildung 2.7. Alternativ knnen Sie auch einen beliebigen RGB-Wert (Rot-Grn-Blau) angeben.

64

Die erste Homepage im Intranet

Abbildung 2.6

Die 16 Grundfarben von HTML

Abbildung 2.7

Speziellere Farben, die der Browser interpretieren kann

2.1 Seiten gestalten: Head, Body, Texte

65

Die erste Homepage im Intranet

Schritte Ergnzen Sie default.htm.


</head> <body bgcolor="black" text="green" link="red" vlink= "indianred"> <h1> Willkommen beim Dekra Effekten Kontor</h1>

5. Fgen Sie eine kleine berschrift der Gre <h5> ein. Verfassen Sie einen kurzen Beschreibungstext. Verwenden Sie in diesem das Absatztag <p>. Stellen Sie Schriftgre und Farbe auf <font size="2" color="red"> ein. Das Ergebnis sollte nach dem Speichern und Aktualisieren im Browser Abbildung 2.8 hneln.
Abbildung 2.8

Die Homepage mit Farben und Schriften

Schritte Ergnzen Sie default.htm.


<h2> Herzlich Willkommen </h2> <h5> Die <b> clevere </b> Depotverwaltung</h5> <p> Wir <!-- Kommentar, ist unsichtbar --> verwalten <em> Ihre </em> Schtze! <p><font size="2" color="red"> Damit Ihre Erben auch was zu lachen haben! </font></p> </body>

66

Die erste Homepage im Intranet

Speichern Sie die Datei. Aktualisieren Sie im Browser Ihre Homepage, sie sollte nun Abbildung 2.8 hneln. Das schlieende Tag </p> knnen Sie brigens auch weglassen. Beim Entwickeln einer Homepage wollen Sie, dass der Browser stets die aktuelle Fassung anzeigt. Um zu gewhrleisten, dass dieser keine veralteten Inhalte etwa Bilder aus seinem Cache anzeigt, sondern stets die aktuelle Fassung whlt, 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.

2.2 Graphiken einbinden


1. Beschaffen Sie eine Graphik im .jpg- oder .gif-Format. Speichern Sie diese im Verffentlichungsordner des Webservers. Fgen Sie sie unter Angabe von Hhe und Breite in Pixel in Ihre Homepage ein, s. Abbildung 2.10.
Abbildung 2.10

Graphik in der Homepage

Graphiken werden mit dem Tag <img src="[Graphikdatei]" height=[Hhe] Erluterung width=[Breite]> eingefgt, wobei der Dateiname der Graphik anzugeben ist. Dieses Tag muss nicht geschlossen werden.

2.2 Graphiken einbinden

67

Die erste Homepage im Intranet

Die Angabe von Hhe und Breite der Graphik in Pixel mit den Zustzen height= und width= hat den Vorteil, dass der Browser den reinen Text bereits anzeigen kann, whrend die zugehrige Graphik noch geladen wird, was oft lnger dauert. Stattdessen erscheint vorbergehend ein rechteckiger Platzhalter mit dem nach alt= angegebenen Alternativtext. So vermeiden Sie, dass ungeduldige Besucher Ihre Seite vorzeitig verlassen.

Schritte Graphiken knnen Sie selbst mit einem der zahlreichen Tools hierfr erstellen (Corel Draw, Photopaint, Photoshop etc.). Mit einem Scanner knnen Sie sich auch Fotografien oder andere Vorlagen einscannen.

Beispiel Graphiken, die Sie auf einer anderen Webseite finden, knnen Sie herunterladen ber das Kontextmen der rechten Maustaste, so wie in Abbildung 2.11 demonstriert. Die abgebildete Graphik finden Sie auf der Website http://www.dekra-akademie.de. Speichern Sie sie als C:\Inetpub\wwwroot\dekra-logo.gif. Sie finden sie auch im Archiv abap.zip.

Beachten Sie jedoch bitte das Urheberrecht derart heruntergeladener Graphiken! Fr Verffentlichungen mssen Sie das Einverstndnis des Urhebers einholen.

Abbildung 2.11

Graphik herunterladen von der DEKRAAkademie-Homepage

Verwenden Sie bei der Vergabe von Dateinamen als Konvention stets Kleinbuchstaben. Viele Webserver achten penibel auf Gro- und Kleinschreibung1.

1. Diese Eigenschaft gilt vor allem fr die UNIX-basierten Webserver, nicht jedoch fr den IIS auf Windows 2000/NT. Damit Ihr Webentwicklungsprojekt bei einem Providerwechsel immer noch funktioniert, empfiehlt es sich dennoch, besagte Konvention zu beachten.

68

Die erste Homepage im Intranet

Wenn Sie in Ihrem HTML-Quellcode Dateinamen falsch schreiben, werden die zugehrigen Graphiken nicht gefunden, so wie in Abbildung 2.12.
Abbildung 2.12

Ein falscher Dateiname im HTML-Code fhrt zu diesem Fehler.

Informieren Sie sich ber die Gre Ihres Bildes in Pixel. Dies geht mit den meisten gngigen Bildbearbeitungswerkzeugen. In Microsoft PhotoDraw 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 Pixelgre einer Graphik mit Microsoft PhotoDraw

2.2 Graphiken einbinden

69

Die erste Homepage im Intranet

Anmerkung Die Farbeinstellungen im <body>-Tag wurden der besseren Sichtbarkeit


halber wieder entfernt. Ergnzen Sie nun default.htm.
<body> <img src="dekra-logo.gif" alt="Dekra-Logo" width=182 height=55> <h1> Dekra Effekten Kontor</h1>

2. Legen Sie eine zweite Datei vorzuege.htm im Verffentlichungsordner an, in der die Vorzge der Depotverwaltung des DEKRA EFFEKTEN KONTORS gepriesen werden. Legen Sie vorerst nur eine <h1>-berschrift sowie die <meta>-Informationen fr die Suchmaschinen an (siehe Abschnitt 2.1). Laden Sie die Seite in den Browser durch direkte Eingabe des URL in die Adresszeile, s. Abbildung 2.14.
Abbildung 2.14

Die zweite Webseite, aufgerufen ber Ihren URL

Schritte Legen Sie C:\Inetpub\wwwroot\vorzuege.htm mit dem Texteditor an.


<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>

70

Die erste Homepage im Intranet

<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.dekrakl.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 Verffentlichungsordner. Sie sollte farblich hell und zurckhaltend sein. Stellen Sie sie als Hintergrundbild in vorzuege.htm ein, wie in Abbildung 2.15 zu sehen.
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-/Kleinschreibung des Dateinamens. Ergnzen 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.

2.2 Graphiken einbinden

71

Die erste Homepage im Intranet

2.3 Tabellen anlegen


1. Legen Sie in default.htm unter Verwendung von <table> eine Tabelle mit Wertpapierpreisen, wie sie Abbildung 2.16 zeigt, an. Die Breite der Tabelle umfasst 40% des Browser-Fensters, was Sie mit dem Zusatz width=[Breite] einstellen. Rahmenlinien werden angezeigt durch den Zusatz border=1. Tabellenzeilen legen Sie mit <tr> an. Die erste Zeile wird als berschrift ausgelegt. Fr deren Zellen verwenden Sie <th>. Sie ist 40pt hoch, was Sie mit dem Zusatzheight=[Hhe] einstellen. Der Text ist mittels des Zusatzes valign=bottom 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. Alle Geldbetrge sind mittels align=right rechtsbndig ausgerichtet.
Abbildung 2.16

Tabelle mit berschrift, Zeilen, Spalten und Rahmenlinien

72

Die erste Homepage im Intranet

Ergnzen Sie default.htm.


<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>

Schritte

2. Den fiktiven Wechselkurs DM/Dollar von 2:1 drfen Sie gerne aktualisieren!

2.3 Tabellen anlegen

73

Die erste Homepage im Intranet

2.4 Hyperlinks und Aufzhlungen nutzen


1. Fgen Sie in default.htm einen Hyperlink nach vorzuege.htm ein, s. Abbildung 2.17.
Abbildung 2.17

Hyperlink von der Homepage zu vorzuege.htm

Erluterung 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 schliet sich der dem Anwender sichtbare Verweistext an. Sie mssen den Hyperlink mit </a> abschlieen.

Schritte Ergnzen Sie default.htm.


<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> knnen.</p> <table border=1 width=40%>

2. Fgen Sie in vorzuege.htm einen Hyperlink zurck zur Homepage default.htm ein, s. Abbildung 2.18.

74

Die erste Homepage im Intranet

Abbildung 2.18

Hyperlink von vorzuege.htm zurck zur Homepage

Ergnzen Sie vorzuege.htm.


<h1> Werden auch Sie reich mit einem <br> Depot beim Dekra Effekten Kontor! </h1> <p> Zurck zur <a href="default.htm"> Homepage </a></p> </body>

Schritte

3. Fgen Sie in default.htm einen Hyperlink zu SAP und AddisonWesley ein: http://www.sap.de und http://www.addison-wesley.com. Fgen Sie weiterhin eine Graphik als Hyperlink zur DEKRA-Akademie ein: http://www.dekra-akademie.de, s. Abbildung 2.19.
Abbildung 2.19

Hyperlinks zu anderen Websites, als Text und als Graphik

Diese Hyperlinks fhren auf andere Websites im Internet. Sie knnen eine Graphik als Hyperlink anlegen, indem Sie statt des Verweistextes zwischen <a href=...> und </a> das <img src="[Graphikdatei]">-Tag einsetzen. Ergnzen Sie default.htm.
<p> Wie Sie mit Dekra Effekten Kontor <a href= "vorzuege.htm"> reich werden </a> knnen.</p> <p> Besuchen Sie auch <a href="http://www.sap.de">SAP</a> und der <a href="www.dekra-akademie.de"> <img src="dekra-logo.gif" width=182

Erluterung

Schritte

2.4 Hyperlinks und Aufzhlungen nutzen

75

Die erste Homepage im Intranet

height=55></a></p> <table border=1 width=40%>

4. Fgen Sie in vorzuege.htm eine Aufzhlung mit Lobpreisungen der Vorzge des DEKRA EFFEKTEN KONTORS ein, s. Abbildung 2.20.
Abbildung 2.20

Aufzhlung in der Webseite

Erluterung Das Tag <ul> leitet eine Aufzhlung (unsortierte Liste = unordered list)
ein. Mit <li> beginnt ein Listeneintrag (list item). Beide Tags werden wie blich abgeschlossen, bei <li> allerdings nicht zwingend.

Schritte Ergnzen Sie vorzuege.htm.


<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> Zurck zur <a href="default.htm"> Homepage </a></p>

76

Die erste Homepage im Intranet

2.5 Seiten mit Frames gestalten


1. Wandeln Sie Ihre Homepage in ein Frameset mit zwei Frames um, die in der Vertikalen im Verhltnis 20 % : 80 % aufgeteilt sind. Benennen Sie hierzu default.htm in homepage.htm um. Der rechte Frame soll beim ersten Aufruf der Website die homepage.htm enthalten. Der linke Frame soll ein Inhaltsverzeichnis enthalten mit Hyperlinks zu den bisher erstellten Seiten homepage.htm und vorzuege.htm, zur Standard-IAC-Seite default_ITS.htm, die in Abschnitt 2.1 umbenannt wurde, zu SELFHTML. Zielframe dieser Hyperlinks ist jeweils der rechte Frame, s. Abbildung 2.21 bis Abbildung 2.24.
Abbildung 2.21

Aufteilung in Frames, links inhalt.htm, rechts homepage.htm

Abbildung 2.22

Aufteilung in Frames, links inhalt.htm, rechts vorzuege.htm

2.5 Seiten mit Frames gestalten

77

Die erste Homepage im Intranet

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

Erluterung Frames (Rahmen) erlauben die Unterteilung der Homepage in verschiedene Fenster. Die vertikale Unterteilung erfolgt mit dem Tag <frameset cols="[Breite1],[Breite2]">. Durch den Zusatz rows= erhlt man stattdessen eine horizontale Unterteilung. Die Angabe der Breite der Frames kann u. a. in Prozent erfolgen, z. B. besagt die Angabe "20%,80%", dass der linke Frame 1/5 und der rechte 4/5 der Breite des Browser-Fensters ausmacht. Frames sind schachtelbar, beispielsweise knnte also der rechte Frame weiter in der Horizontalen unterteilt werden. Oftmals wird wie hier eine Navigationsleiste durch Frames realisiert. Die Frames werden innerhalb des Framesets nach dem Schema <frame name="[Frame-Name]" src="[HTML-Datei]"> angelegt. Der Zusatz src= legt die Datei fest, mit welcher der Frame beim Aufruf des Framesets gefllt wird. Hier wird vom linken Frame aus der Inhalt des rechten Frames durch Hyperlinks zugewiesen, dafr wird der Frame-Name bentigt. Ein Hyperlink hierfr ist nach dem Schema <a href="[HTML-Datei]" target="[Frame-Name]"> [Hyperlink-Text] </a> aufgebaut, was bedeutet, dass dem Frame mit dem Frame-Name die HTML-Datei zugewiesen wird.

Schritte Benennen Sie die bisherige Datei default.htm zu homepage.htm um.


ffnen Sie hierzu den Windows NT-Explorer im Pfad C:\Inetpub\wwwroot. Legen Sie neue Dateien C:\Inetpub\wwwroot\default.htm und C:\Inetpub\wwwroot\inhalt.htm an, s. Abbildung 2.25.

78

Die erste Homepage im Intranet

Abbildung 2.25

Umbenennen und Neuanlegen von default.htm sowie inhalt.htm

Verschieben Sie das Verzeichnis C:\Selfhtml nach C:\Inetpub\wwwroot, s. Abbildung 2.26.


Abbildung 2.26

Verschieben von SELFHTML auf den Webserver

Programmieren Sie 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>

2.5 Seiten mit Frames gestalten

79

Die erste Homepage im Intranet

Programmieren Sie 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></body> </html>

80

Entwurf WebTransaction: ABAP

Kapitel 3 Entwurf WebTransaction: ABAP


Die Entwicklung einer Internet-Anwendungskomponente teilt sich auf Vorbemerkung in: die Entwicklung einer WebTransaction in R/3 mit der Programmiersprache 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 vollstndige R/3-Transaktion als Modulpool mit vier Dynpros anlegen. Fr jedes Dynpro wird im folgenden Kapitel 4 ein so genanntes HTML-Template angelegt. Das HTML-Template wiederum enthlt 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 gefllt werden. Die komplette betriebswirtschaftliche Ablauflogik und alle betriebswirtschaftlichen Daten verbleiben in R/3. Das HTML-Template bestimmt nur das Erscheinungsbild im Browser und gewhrleistet das Einsetzen der Daten aus dem Dynpro. Zu beachten ist, dass eine WebTransaction nur eingeschrnkten Gebrauch von Dynpro-Objekten machen darf. So drfen als Eingabefelder nur Textfelder verwendet werden. Ankreuz- und Optionsfelder hingegen

81

Entwurf WebTransaction: ABAP

sind nicht erlaubt, stattdessen verwendet man Textfelder der Lnge 1. Auf dem zugehrigen HTML-Template knnen diese Felder allerdings wieder als Ankreuz- und Optionsfelder angezeigt werden, so dass der Anwender am Browser von dieser Einschrnkung nichts mitbekommt. Eine weitere Schwierigkeit, welche die WebTransaction zu meistern hat, ist das Problem der ZURCK-Taste, also des meist grnen oder blauen Pfeiles nach links im Browser. Das Drcken der Z URCK-Taste in den SAPGUI fhrt zum nchsten Systemdialogschritt. Das ABAP-Programm wei also stets, welches Dynpro der R/3-Anwender gerade sieht. Drckt der Internetanwender einer WebTransaction jedoch auf die ZURCK-Taste seines Browsers, erfhrt das ABAP-Programm hiervon zunchst nichts. Es kann also passieren, dass der Anwender ein anderes (mit Dynpro-Daten ausgeflltes) HTML-Template sieht als jenes Dynpro, welches das ABAP-Programm gerade erwartet. In diesem Falle sendet das AGate einen speziellen Funktionscode AWSY[Programm][Dynpro-Nummer], der jene Dynpro-Nummer enthlt, zu der nun unerwarteterweise ein Webformular geliefert wird. Das ABAP-Programm muss zu PAI diesen Funktionscode auswerten und zu dem angegebenen Dynpro wechseln. Dieses Verfahren heit Synchronisation, es wird in Abschnitt 4.11 behandelt.

bungsszenario In den folgenden Aufgaben wird schrittweise eine komplette WebTransaction in ABAP, spter in HTML Business angelegt. Sie wird zunchst in R/3 erstellt und dann mittels des SAP@Web Studios ber den ITS auf dem Webserver publiziert. Die WebTransaction besteht aus einem Modulpool mit vier Dynpros, den dazugehrigen Modulen, Status, Titeln, Funktionsbausteinen, Views und Sperrobjekten. Dynpro 100 ist der Anmeldebildschirm. Der Angestellte muss sich identifizieren und authentisieren, hierfr ist in R/3 eine eigene Internetbenutzer-Verwaltung implementiert. Dynpro 200 dient der Selektion des Kunden. Dynpro 300 listet die Positionen des Wertpapierdepots dieses Kunden auf. Dynpro 400 verbucht den Zu- oder Verkauf weiterer Wertpapiere fr eine vorhandene Wertpapierdepot-Position.

Alternative: Wenn Sie die Transaktion nicht eigenhndig mit den Werkzeugen der Transport ABAP Workbench anlegen wollen, knnen 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 Erluterungen in der Datei IAC-Programmierung.rtf. Der Transport beinhaltet den Entwicklungsstand zum Ende dieses Kapitels. Ihm mssen noch einige IAC-spezifische Codeteile hinzugefgt werden, was dann in Kapitel 4 erfolgt.

82

Entwurf WebTransaction: ABAP

Aufbauend auf der Entwicklungsklasse ZDEKRA enthlt die Entwicklungsklasse ZIACMU, die dieser Transport beinhaltet, eine komplette WebTransaction, bestehend aus Programm, Dynpros, Transaktionscode, View, Sperrobjekt und Verbuchungsfunktionsbaustein. Weitere Informationen erhalten Sie in der dem Transport beiliegenden Dokumentation. Der Transport T53K900016 beinhaltet den abschlieenden Entwicklungsstand von ZIACMU zum Ende dieses Buches, einschlielich der IAC-spezifischen 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, enthlt die Objektlisten beider Transporte.

3.1 Internetbenutzer und Kennwort-BAPI


1. Suchen Sie einen BAPI-Funktionsbaustein zum Prfen des Kennwortes eines Mitarbeiters, der als Internetbenutzer ber eine IAC mit R/3 arbeitet. Sehen Sie sich diesen an. Zur Zugriffskontrolle nichtffentlicher Seiten im Internet untersttzt R/3 Erluterung so genannte Internetbenutzer. Diese werden an gleicher Stelle wie R/3Benutzer angelegt, knnen aber nicht zur Anmeldung ber das SAPGUI verwendet werden. Stattdessen stehen spezielle Funktionsbausteine, so genannte BAPIs, zur Authentisierung von Benutzername und Kennwort zur Verfgung. Fr verschiedene Rollen finden sich in R/3-Standard Business-Objekte, fr die BAPIs als Objektmethoden zur Verfgung stehen. Fr einige der Business-Objekte, so fr Mitarbeiter, ist jeweils ein BAPI vorgesehen, mit dem das Kennwort eines Internetbenutzers geprft werden kann. Der Internetbenutzer ist also stets an ein Business-Objekt gebunden. Der BAPI-Funktionsbaustein BAPI_EMPLOYEE_CHECKPASSWORD prft das Kennwort eines Mitarbeiters als Internetbenutzer. Dynpro 100 fragt fr dessen Schnittstelle die Parameter BAPIEMPL-PERNR und BAPIUID-PASSWORD ab. Sollte bei Ihnen das HR-Modul nicht implementiert sein, knnen Sie den Internetbenutzer ersatzweise auch an andere Business-Objekte wie DEBTOR (Debitoren) anbinden. BAPIs werden derzeit als Funktionsbausteine realisiert mit einem Namen, der sich zusammensetzt aus BAPI, dem Namen des Business-Objekts (Employee) und dem Namen der Methode (Checkpassword). Die Schnittstelle ist festgefroren, was bedeutet, dass auch in knftigen Releases das BAPI nicht inkonsistent gendert wird. Es drfen nur optionale, jedoch keine obligatorischen Parameter an der Schnittstelle ergnzt werden. Ein Satz von Eingabeparametern muss auch in einem spteren Release zum gleichen Ergebnis fhren.

3.1 Internetbenutzer und Kennwort-BAPI

83

Entwurf WebTransaction: ABAP

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 Anwendungen, 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 Prfung des Internetbenutzers und dessen Kennwort in Dynpro 100 einfach wegzulassen. Weitere Informationen hierzu finden Sie in Abschnitt 3.3.

Schritte Erkunden Sie zunchst das BAPI: WERKZEUGE / ABAPWORKBENCH /


BERSICHT / BUSINESS OBJECT BROWSER(siehe Abbildungen 3.1 bis 3.3).
Abbildung 3.1

Mitarbeiter werden durch ein Business-Objekt reprsentiert. ( SAP AG)

Abbildung 3.2

Die Methode Checkpassword (Kennwortprfung) 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

Beachten Sie die Importparameter BAPIEMPL-PERNR und BAPIUID-PASSWORD an der Schnittstelle des Funktionsbausteins in Abbildung 3.3. Diese Felder werden zur Identifikation und Authentisierung von Internetbenutzern, die dem Business-Objekt Mitarbeiter zugeordnet sind, verwendet. Sie werden auf dem nachfolgend anzulegenden Dynpro 100 des ebenfalls noch anzulegenden Modulpools vom Benutzer abgefragt und dem BAPI zur Prfung bergeben.

3.2 Dynpro 100: Anmeldung


Das vorliegende bungsbuch ist auch fr den Einsatz in Lehrgngen Namensund bungsgruppen vorgesehen. Zur Vermeidung von Namenskonflik- konvention ten, die dadurch entstehen, dass mehrere Benutzer gleichnamige Objekte in R/3 anlegen, wird hier folgende Namenskonvention vereinbart: In der nachfolgenden Aufgabe bezeichnet nn im Programmnamen die von Ihrem Dozenten zugewiesene Nummer der bungsgruppe. Falls Sie dieses Werk im Einzelstudium bearbeiten, knnen Sie ersatzweise Ihre Initialen verwenden. Der Verfasser wird in seinen Musterlsungen nn stets durch seine Initialen mu ersetzen. Diese Konvention gilt auch fr alle weiteren bungsaufgaben des vorliegenden Werkes. 1. Legen Sie einen Modulpool SAPMZDEPOTnn mit Top-Include MZDEPOTnnTOP in der Entwicklungsklasse ZIACnn an. Zum Anlegen einer Kunden-Entwicklungsklasse bentigen Sie einen Erluterung nderungsauftrag, den Sie sich wie blich ber den Workbench Organizer anlegen knnen; dies wurde bereits in Abschnitt 1.5 gezeigt. Falls Sie in einer bungsgruppe arbeiten, klren Sie bitte mit Ihrem Dozenten ab, ob ein nderungsauftrag fr die gesamte Gruppe mit jeweils einer Aufgabe fr jeden Ihrer Kommilitonen angelegt werden soll. Sie knnen ersatzweise die Objekte auch in der lokalen Entwicklungsklasse $TMP anlegen. Diese sind dann allerdings nicht transportierbar. Starten Sie WERKZEUGE / ABAP WORKBENCH / BERSICHT / OBJECT NA- Schritte VIGATOR. Legen Sie die Entwicklungsklasse ZIACnn an, s. Abbildung 3.4 bis Abbildung 3.7.
Abbildung 3.4

Anlegen von Objekten ber den Object Navigator ( SAP AG)

3.2 Dynpro 100: Anmeldung

85

Entwurf WebTransaction: ABAP

Abbildung 3.5

Anlegen einer Entwicklungsklasse ( SAP AG)

Abbildung 3.6

Eigenschaftspflege der Entwicklungsklasse ( SAP AG)

Abbildung 3.7

Das Anlegen der Entwicklungsklasse schliet mit dem Objektkatalogeintrag und der Zuordnung zum nderungsauftrag. ( SAP AG)

Legen Sie in Ihrer Entwicklungsklasse den Modulpool SAPMZDEPOTnn mit Top-Include an, s. Abbildung 3.8 bis Abbildung 3.11. Abschlieend legen Sie den Objektkatalogeintrag an, weisen den nderungsauftrag zu und speichern das Top-Include.

86

Entwurf WebTransaction: ABAP

Abbildung 3.8

Anlegen eines Programms im Kundennamensraum SAPMZ... ( SAP AG)

Abbildung 3.9

Ein greres 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 enthlt neben den berschrift-Textfeldern Dekra Effekten Kontor und WebTransaction Wertpapierdepotverbuchung die Felder BAPIEMPL-PERNR und BAPIUID-PASSWORD, wobei letzteres eine mit Sternen verdeckte Eingabe aufweisen soll. Weiterhin enthlt der Screen eine Drucktaste mit der Aufschrift ANMELDEN. Die Felder BAPIEMPL-PERNR und BAPIUID-PASSWORD sind die Importparame- Erluterung ter von BAPI_EMPLOYEE_CHECKPASSWORD, s. Abbildung 3.3. Im Linux Test-Drive mysap.com 4.6B Evaluation Demo fehlen mit dem Linux Test-Drive Business-Objekt Mitarbeiter auch die Felder BAPIEMPL-PERNR und BAPIUID-PASSWORD, da es sich um eine reine Basis-Installation handelt. Der Verfasser empfiehlt, diese beiden Felder in Dynpro 100 einfach wegzulassen.

3.2 Dynpro 100: Anmeldung

87

Entwurf WebTransaction: ABAP

Schritte Navigieren Sie von der Entwicklungsklasse ZIACnn zum Modulpool


SAPMZDEPOTnn. Legen Sie Dynpro 100 an, s. Abbildung 3.12 bis Abbildung

3.17.
Abbildung 3.12

Anlegen eines Dynpros im Modulpool ( SAP AG)

Abbildung 3.13

Pflege der DynproEigenschaften ( SAP AG)

Abbildung 3.14

Der graphische Screen Painter, berschriften als Textfelder ( SAP AG)

88

Entwurf WebTransaction: ABAP

Abbildung 3.15

Einfgen eines Feldes aus dem Dictionary ( SAP AG)

Abbildung 3.16

Einfgen 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.

3.2 Dynpro 100: Anmeldung

89

Entwurf WebTransaction: ABAP

Abbildung 3.18

Einstellen des Funktionscodes der Drucktaste sowie des OKCodes in der Elementliste ( SAP AG)

3. Nehmen Sie bentigte Deklarationen stets im Top-Include vor.

Erluterung Der Einfachheit halber werden an dieser Stelle bereits die meisten bentigten Deklarationen von Datenobjekten im Top-Include abgedruckt. Sie knnen sie in dieser Form direkt bernehmen. Vielleicht ziehen Sie es aber auch vor, in den spteren bungen die Deklarationen jeweils nach Bedarf einzeln zu ergnzen.

Schritte Ergnzen Sie das Top-Include MZDEPOTnnTOP.


PROGRAM sapmzdepotmu TABLES: zdepot, zkunden. DATA: ok_code LIKE sy-ucomm, save_ok LIKE ok_code. TABLES: bapiempl, bapiuid. DATA: ret LIKE bapireturn. DATA: ind LIKE sy-stepl, erstezeile LIKE sy-stepl, pos LIKE sy-stepl, kaufpos TYPE i, kaufanzahl LIKE zdepotpstn-anzahl, zukauf TYPE c. DATA: offset(2) TYPE n, benoet_screen LIKE sy-dynnr. .

90

Entwurf WebTransaction: ABAP

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 ZURCK-Taste des SAPGUI aktiviert. Legen Sie ebenso einen GUI-Titel an. Rufen Sie beide zu PBO auf. Programmieren Sie die Ablauflogik von Dynpro 100.
PROCESS BEFORE OUTPUT. MODULE status_0100. * PROCESS AFTER INPUT. MODULE user_command_0100.

Schritte

Legen Sie durch Vorwrtsnavigation (Doppelklick auf den Progammtext STATUS_0100) das PBO-Modul STATUS_0100 im neuen Include MZDEPOTnnO01 an, s. Abbildung 3.19 bis Abbildung 3.20.
Abbildung 3.19

Ablauflogik des Dynpros, Anlegen des PBO-Moduls durch Vorwrtsnavigation ( SAP AG)

Abbildung 3.20

Der Name des neuen Includes wird automatisch vorgeschlagen; die ntige IncludeAnweisung im Rahmenprogramm wird ergnzt. ( SAP AG)

3.2 Dynpro 100: Anmeldung

91

Entwurf WebTransaction: ABAP

Ergnzen Sie das PBO-Modul 100.


MODULE status_0100 OUTPUT. SET PF-STATUS '100'. SET TITLEBAR '100'. ENDMODULE. " STATUS_0100 OUTPUT

Legen Sie jeweils durch Vorwrtsnavigation mittels Doppelklick auf den Programmcode '100' den Status 100 mit dem Funktionscode BACK fr den Rckwrtspfeil und den GUI-Titel 100 an, s. Abbildung 3.21 bis Abbildung 3.23.
Abbildung 3.21

Anlegen des GUI-Status ( SAP AG)

Abbildung 3.22

Zuordnen Funktionscode zur ZURCK-Taste im GUIStatus ( SAP AG)

Abbildung 3.23

Anlegen GUI-Titel ( SAP AG)

5. Nach dem Klicken der Drucktaste ANMELDEN soll zu PAI mittels BAPI_EMPLOYEE_CHECKPASSWORD geprft 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 eingabebereit bleiben.

92

Entwurf WebTransaction: ABAP

In der nachfolgenden Aufgabe wird ein eingetragener Internetbenutzer Erluterung angelegt. Ergnzen Sie die Ablauflogik des Dynpros 100.
PROCESS BEFORE OUTPUT. MODULE status_0100. * PROCESS AFTER INPUT. CHAIN. FIELD: bapiempl-pernr, bapiuid-password. MODULE user_command_0100. ENDCHAIN.

Schritte

Die CHAIN- und FIELD-Befehle sorgen dafr, 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.

Legen Sie das PAI-Modul user_command_0100 per Vorwrtsnavigation im Schritte neuen Include MZDEPOTnnI01 an, s. Abbildung 3.24.
Abbildung 3.24

Der Name des neuen Includes wird automatisch vorgeschlagen, die ntige IncludeAnweisung im Rahmenprogramm wird ergnzt. ( SAP AG)

3.2 Dynpro 100: Anmeldung

93

Entwurf WebTransaction: ABAP

Ergnzen Sie folgenden Programmcode.


MODULE user_command_0100 INPUT. save_ok = ok_code. CLEAR ok_code. CASE save_ok. WHEN 'LOGIN'. CALL FUNCTION 'BAPI_EMPLOYEE_CHECKPASSWORD' EXPORTING number IMPORTING return 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. = ret = bapiempl-pernr password = bapiuid-password

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

WHEN 'BACK'. LEAVE PROGRAM. ENDCASE. ENDMODULE.

Zunchst wird der vom Screen respektive GUI-Status zurckgelieferte Erluterung OK-Code gesichert, initialisiert und ausgewertet. Wenn der Benutzer die Drucktaste zum Anmelden gedrckt hat, prft das BAPI_EMPLOYEE_CHECKPASSWORD, ob fr die angegebene Personalnummer und das Kennwort ein Internetbenutzer eingetragen wurde. Ist dies der Fall, liefert das BAPI in der Feldleiste return den Initialwert zurck. Ansonsten enthlt ret-type den Wert 'E' (Error), ret-code und ret-message enthalten Informationen ber den Anmeldefehler. Die Nachricht Nr. 000 der Nachrichtenklasse SU1 ist definiert als & & & &, zeigt also bis zu vier bergebene Felder ohne weiteren Text an. Wenn der Anwender die ZURCK-Taste drckt, wird das Programm verlassen. 6. Legen Sie eine SAP-Transaktion ZDEPOTnn zum Starten des Modulpools an. 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 Kundennachrichtenklasse Znn mit einer Nachricht 000 & & & & an.

3.2 Dynpro 100: Anmeldung

95

Entwurf WebTransaction: ABAP

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)

7. Generieren Sie alle bisher angelegten Objekte. Starten Sie die Transaktion ZDEPOTnn, verlassen Sie sie gleich wieder mittels der ZURCK-Taste.

Erluterung Mittlerweile wurde eine Reihe von Objekten angelegt und gespeichert.
Damit sie von der Transaktion gestartet werden knnen, mssen sie noch generiert werden. Bislang wird nur die ZURCK-Taste des GUI-Status funktionieren, die durch Auslsen des Funktionscodes BACK zum Programmende fhrt. Eine Eingabe von Personalnummer und Kennwort wird, da noch kein Internetbenutzer angelegt wurde, stets zur Fehlermeldung fhren.

Schritte Aktivieren Sie den kompletten Modulpool, s. Abbildung 3.28 bis Abbildung 3.29. Der Arbeitsvorrat wird alle zu aktivierenden Objekte anzeigen. Markieren Sie diese. Wenn Sie bisher stets Ihre Objekte geprft haben, sollten nun keine Fehler mehr auftreten. Ansonsten mssen Sie die Fehler korrigieren.

96

Entwurf WebTransaction: ABAP

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)

3.2 Dynpro 100: Anmeldung

97

Entwurf WebTransaction: ABAP

Abbildung 3.31

Es ist noch kein Internetbenutzer angelegt. ( SAP AG)

Abbildung 3.32

Der Funktionscode BACK der ZURCK-Taste des GUIStatus fhrt zum Programmende. ( SAP AG)

3.3 Pflegen des Internetbenutzers


Ein Internetbenutzer ist kein R/3-Benutzer, der sich mit dem SAPGUI anmeldet. Er wird im System angelegt mit Bezug auf ein Business-Objekt, z. B. auf einen Mitarbeiter. Festgelegt werden Name und Kennwort. Diese knnen dann, nachdem der Anwender sie in die Webseite zu Dynpro 100 eingetragen hat, von der WebTransaction durch Aufruf des Kennwort-BAPIs berprft werden. Die hier im Beispiel verwendete Janine Auermann ist Mitarbeiterin im IDES-Mandanten. Wenn Sie in einem anderen Mandanten ben, knnen Sie jeden beliebigen anderen Mitarbeiter hierfr verwenden. Sie knnen sich auch zu diesem Zweck einen neuen Mitarbeiter anlegen: PERSONAL / PERSONALMANAGEMENT / ADMINISTRATION / PERSONALSTAMM / PFLEGEN.

Linux Test-Drive Das in diesem Abschnitt gezeigte Verfahren ist mit der Test-Drive-Installation mysap.com 4.6B on Linux Evaluation Demo nicht durchfhrbar, da dies eine reine Basis-Installation ist. Deshalb fehlen alle fr Internet-

98

Entwurf WebTransaction: ABAP

benutzer geeigneten Business-Objekte, auch das hier verwendete BUS1065 (Mitarbeiter). Man kann sich zwar selbst ein Business-Objekt mit dem Business Object Builder durch Bezug auf eine Datenbanktabelle etwa einer hierfr anzulegenden Tabelle ZPERSONAL mit entsprechenden Attributen und Methoden anlegen. Weiterhin kann man die Zuordnung von Internetbenutzern zu diesem Business-Objekt durch Pflege der Datenbanktabelle BFUSER_TYP ermglichen. Allerdings scheitert dann der Versuch, mit Bezug auf dieses BusinessObjekt einen Internetbenutzer anzulegen, an einem Programmierfehler in einem Kernelmodul der R/3-Basis 4.6B, auf die Linux, wohl im Unterschied 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 Prfung des Internetbenutzers im Programmcode einfach wegzulassen. Der Verfasser hat dieses Problem dem SAP-Linux-Team mitgeteilt, in knftigen Releases drfte es wohl nicht mehr auftreten. 8. Legen Sie fr die Mitarbeiterin Janine Auermann einen Internetbenutzer an. Suchen Sie zunchst Frau Auermanns Personalnummer: PERSONAL / Schritte PERSONALMANAGEMENT / ADMINISTRATION / PERSONALSTAMM ANZEIGEN (siehe Abbildungen 3.33 und 3.34).
Abbildung 3.33

Suchen einer Personalnummer mit der F4-Hilfe ( SAP AG)

Abbildung 3.34

Suchergebnis: Frau Auermann hat Personalnummer 1006. ( SAP AG)

3.3 Pflegen des Internetbenutzers

99

Entwurf WebTransaction: ABAP

9. Legen Sie Janine Auermann mit ihrer Personalnummer als Internetbenutzer an.

Schritte Der Internetbenutzer wird innerhalb der blichen Benutzerverwaltung


gepflegt: WERKZEUGE / ADMINISTRATION / BENUTZERPFLEGE / INTERNETBENUTZER. Tragen Sie die gefundene Personalnummer ein, und whlen Sie den Typ BUS1065 (Employee), Abbildung 3.35 bis Abbildung 3.37.
Abbildung 3.35

Internetbenutzer fr die ermittelte Personalnummer anlegen ( SAP AG)

Abbildung 3.36

Leere Eingabe steht hier fr unbegrenzte Gltigkeit ( 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 angelegten Internetbenutzers ab.

Prfen Sie den neu generierten Internetbenutzer noch nicht in der WebTransaction. Zuvor muss Dynpro 200 angelegt werden.

Schritte Verwenden Sie wiederum die vorhin ermittelte Personalnummer und


das Business-Objekt BUS1065, s. Abbildung 3.38 bis Abbildung 3.39.

100

Entwurf WebTransaction: ABAP

Abbildung 3.38

Kennwort eines bereits angelegten Internetbenutzers ndern ( SAP AG)

Abbildung 3.39

Eingeben des neuen, leichter zu merkenden Kennworts ( SAP AG)

3.4 Dynpro 200: Selektionen


Nachdem der Mitarbeiter sich auf Dynpro 100 erfolgreich angemeldet hat, kann er die Konten eines Kunden ansehen und bearbeiten. Auf Dynpro 200 wird er deshalb die Kundennummer eingeben, zu der auf Dynpro 300 eine Liste mit allen Wertpapierpositionen des Kunden ausgegeben wird. ber eine Drucktaste SELEKTIEREN gelangt man zum Folgedynpro 300. Beim Klicken dieser Taste in Dynpro 200 soll zu PAI eine interne Tabelle mit allen Wertpapierpositionen des Kunden gefllt werden, die Dynpro 300 zu PBO dann als Steploop ausgeben wird. Die interne Tabelle soll zu jeder Wertpapierposition folgende Angaben enthalten: WKN, TITEL, EMITTENT, DEPOTNR, ANZAHL und die KUNDENNR. 1. Legen Sie zunchst im Dictionary einen View ZDEPOT_PAPIERnn in der Entwicklungsklasse ZIACnn ber die Tabellen ZDEPOTPSTN, ZWPAPIER und ZDEPOT an, s. Abbildung 3.40 bis Abbildung 3.49. Die Joinverknpfungen ergeben sich aus den bereits festgelegten Primr-/Fremdschlsselbeziehungen dieser Datenbanktabellen. Der View dient als Hilfsmittel zum Fllen der internen Tabelle mit den Wertpapierpositionen und enthlt: MANDT, WKN, TITEL, EMITTENT, DEPOTNR, ANZAHL und die KUNDENNR. Aktivieren Sie den View.

3.4 Dynpro 200: Selektionen

101

Entwurf WebTransaction: ABAP

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 Primr-/Fremdschlsselbeziehungen. ( SAP AG)

Abbildung 3.44

Anlegen der Viewfelder fr Tabelle ZWPAPIER ( SAP AG)

Abbildung 3.45

Auswahl der Felder aus Tabelle ZWPAPIER ( SAP AG)

102

Entwurf WebTransaction: ABAP

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 enthlt ein Eingabefeld mit Dictionary-Bezug auf ZDEPOT-KUNDENNR und die Drucktaste SELEKTIEREN. ber diese gelangt man zum Folgedynpro 300. Dynpro 300 wird eine Liste mit allen Wertpapierpositionen des Kunden als Steploop ausgeben. Zu dessen Vorbereitung soll zu PAI eine interne Tabelle mit Daten aus dem soeben angelegten View ZDEPOT_PAPIERnn gefllt werden. Sie soll zu jeder Wertpapierposition folgende Angaben enthalten: WKN, TITEL, EMITTENT, DEPOTNR, ANZAHL und die KUNDENNR.

3.4 Dynpro 200: Selektionen

103

Entwurf WebTransaction: ABAP

Schritte
Abbildung 3.50

Anlegen des Dynpros 200 ( SAP AG)

Abbildung 3.51

Pflege der DynproEigenschaften ( SAP AG)

Abbildung 3.52

Anlegen eines Textfeldes als berschrift sowie eines Eingabefeldes KUNDENNR aus ZDEPOT ( SAP AG)

104

Entwurf WebTransaction: ABAP

Abbildung 3.53

Drucktaste SELEKTIEREN mit Funktionscode SELECT

Abbildung 3.54

Einstellen des OK-CodeFeldes in der Elementliste ( SAP AG)

3. Der GUI-Status des Dynpro enthlt den Funktionscode BACK fr den Rckwrtspfeil. Dieser soll zurck zu Dynpro 100 fhren. Der GUITitel enthlt die Inschrift Selektion Wertpapierkunde. Programmieren Sie die Ablauflogik des Dynpros 200.
PROCESS BEFORE OUTPUT. MODULE status_0200. * PROCESS AFTER INPUT. MODULE user_command_0200.

Schritte

Legen Sie per Vorwrtsnavigation das Modul status_0200 im PBOInclude MZDEPOTnnO01 an, s. Abbildung 3.55.

3.4 Dynpro 200: Selektionen

105

Entwurf WebTransaction: ABAP

Abbildung 3.55

Auswahl des PBOIncludes ( SAP AG)

MODULE status_0200 OUTPUT. SET PF-STATUS '200'. SET TITLEBAR '200'. ENDMODULE. " STATUS_0200 OUTPUT

Legen Sie per Vorwrtsnavigation den GUI-Status 200 als Dialogstatus mit dem Funktionscode BACK fr den Rckwrtspfeil an; legen Sie auch den GUI-Titel an, s. Abbildung 3.56 bis Abbildung 3.57.
Abbildung 3.56

Zuordnen des Funktionscodes zur ZURCK-Taste im GUIStatus ( SAP AG)

Abbildung 3.57

Anlegen des GUI-Titels ( SAP AG)

Ergnzen Sie das Top-Include MZDEPOTnnTOP um die Deklaration des Views ZDEPOT_PAPIERnn und der hierauf basierenden internen Tabelle IT_KP samt zugehrigem Arbeitsbereich WA_KP:
TABLES: zdepot, zkunden. TABLES: zdepot_papiermu. DATA: it_kp LIKE TABLE OF zdepot_papiermu, wa_kp LIKE zdepot_papiermu. DATA: ok_code LIKE sy-ucomm, save_ok LIKE ok_code.

Legen Sie per Vorwrtsnavigation das Modul user_command_0200 im PAIInclude MZDEPOTnnI01 an.

106

Entwurf WebTransaction: ABAP

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

Das Modul sorgt dafr, dass die Zurck-Taste zum Screen 100 zurckfhrt, die Selektieren-Taste eine interne Tabelle mit Daten aus dem View fllt und zum Screen 300 hinfhrt. Das Feld ERSTEZEILE wird fr die Bltternfunktion von Dynpro 300 vorbelegt. 4. Aktivieren Sie alle bisher angelegten Objekte! Starten Sie die Transaktion 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)

3.4 Dynpro 200: Selektionen

107

Entwurf WebTransaction: ABAP

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 verfgbar. Meiden Sie die SELEKTIEREN-Taste, da zuvor Dynpro 300 angelegt werden muss! ( SAP AG)

108

Entwurf WebTransaction: ABAP

3.5 Dynpro 300: Anzeige der Liste


1. Legen Sie in Dynpro 300 die berschrift Wertpapierdepotauszug fr einen Kunden sowie fr den in Dynpro 200 ausgewhlten Kunden dessen Kundendaten als reine Ausgabefelder mit DictionaryBezug zur Tabelle ZKUNDEN an: KUNDENNR, NAME, VORNAME, WOHNORT, s. Abbildung 3.62 bis Abbildung 3.65.

Schritte
Abbildung 3.62

Anlegen Dynpro 300 ( SAP AG)

Abbildung 3.63

Pflege der DynproEigenschaften ( SAP AG)

3.5 Dynpro 300: Anzeige der Liste

109

Entwurf WebTransaction: ABAP

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)

2. Fgen Sie das im Top-Include bereits deklarierte Feld POS in den Screen ein. Es bildet die linke Spalte der Liste die spter als Steploop angelegt wird und enthlt eine fortlaufende Nummerierung. Es ist ein reines Ausgabefeld, s. Abbildung 3.66 bis Abbildung 3.67.

Schritte
Abbildung 3.66

Einfgen eines im Programm/Top-Include deklarierten Feldes ( SAP AG)

110

Entwurf WebTransaction: ABAP

Abbildung 3.67

Platzieren des Feldes POS, Festlegen als reines Ausgabefeld ( SAP AG)

3. Fgen Sie die Felder WKN, TITEL, EMITTENT, DEPOTNR und ANZAHL aus dem View ZDEPOT_PAPIERnn als reine Ausgabefelder ohne die zugehrigen Textfelder in den Screen ein, s. Abbildung 3.68 bis Abbildung 3.72. Sie bilden die restlichen Spalten des Steploops; ordnen Sie sie auf dem Screen in Zeilenform an. Erstellen Sie ber dieser Zeile aus Textfeldern passende Spaltenberschriften. Markieren Sie die Ausgabefelder, und definieren Sie sie als Steploop mit zehn Zeilen. Die Textfelder, die normalerweise automatisch mit den Ausgabefeldern Erluterung als Bezeichner eingefgt werden, fhren bei der Umwandlung zu einem Steploop zu Fehlermeldungen. Durch das Weglassen dieser Felder mit anschlieendem manuellen Einfgen separater Textfelder als Spaltenberschriften wird das Problem vermieden.

Schritte
Abbildung 3.68

Der View ZDEPOT_ PAPIERnn liefert die Spalten des knftigen Steploops. Fgen Sie sie ohne Textfeld ein. ( SAP AG)

3.5 Dynpro 300: Anzeige der Liste

111

Entwurf WebTransaction: ABAP

Abbildung 3.69

Anordnung der Ausgabefelder von links nach rechts: POS, WKN, TITEL, EMITTENT, DEPOTNR, ANZAHL ( SAP AG)

Abbildung 3.70

Ergnzen der Spaltenberschriften, Markieren der SteploopFelder ( SAP AG)

Abbildung 3.71

Men: BEARBEITEN / GRUPPIERUNG / STEPLOOP / DEFINIEREN ( SAP AG)


Abbildung 3.72

Vergrern des Steploops auf zehn Zeilen ( SAP AG)

4. Fgen Sie das bereits im Top-Include deklarierte Feld KAUFPOS ein. Setzen Sie links davon ein Textfeld Pos, rechts davon die Drucktaste KAUFEN mit dem Funktionscode KAUFEN ein. Pflegen Sie das OK-Code-Feld, s. Abbildung 3.73 bis Abbildung 3.75.

Erluterung Mit diesen Feldern und der Drucktaste kann der Anwender der WebTransaction eine Wertpapierposition zum Kaufen/Verkaufen auswh-

112

Entwurf WebTransaction: ABAP

len. In Dynpro 400 wird der Wertpapierkauf/-verkauf in der betreffenden Datenbanktabelle verbucht.

Schritte
Abbildung 3.73

Einfgen 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-CodeFeldes nicht vergessen! ( SAP AG)

5. Programmieren Sie die Ablauflogik des Dynpros 300: Das PBO-Modul STEPLOOP_ZEILE_FUELLEN fllt jeweils eine Zeile des Steploops. Das PBO-Modul TRANS_TO_300 ermittelt und transportiert die Kundendaten zum Dynpro. Das PBO-Modul STATUS_0300 legt GUI-Status und GUI-Titel fest. Das PAI-Modul USER_COMMAND_0300 wertet den OK-Code aus. Wenn eine E-Message (Fehler) gerufen wird, soll Feld KAUFPOS eingabebereit gemacht werden. Ergnzen Sie die Ablauflogik des Dynpros 300.
PROCESS BEFORE OUTPUT. LOOP. MODULE steploop_zeile_fuellen. ENDLOOP.

Schritte

3.5 Dynpro 300: Anzeige der Liste

113

Entwurf WebTransaction: ABAP

MODULE status_0300. MODULE trans_to_0300. PROCESS AFTER INPUT. FIELD kaufpos MODULE user_command_0300. LOOP. ENDLOOP.

Die LOOP/ENDLOOP-Schleife am Ende ist zwar notwendig, aber leer, da der Steploop keine vernderten Daten zu PAI zurckliefert. 6. Das PBO-Modul STEPLOOP_ZEILE_FUELLEN fllt jeweils eine Zeile des Steploops mit dem Inhalt der hierfr in Dynpro 300 angelegten internen Tabelle IT_KP. Das Feld ERSTEZEILE enthlt die Position der ersten im Steploop darzustellenden Zeile in IT_KP.

Schritte Legen Sie das Modul STEPLOOP_ZEILE_FUELLEN im PBO-Include an.


MODULE steploop_zeile_fuellen OUTPUT. ind = erstezeile + sy-stepl - 1. pos = ind. READ TABLE it_kp INTO wa_kp INDEX ind. IF sy-subrc <> 0. EXIT FROM STEP-LOOP. ELSE. MOVE-CORRESPONDING wa_kp TO zdepot_papiermu. ENDIF. ENDMODULE. " STEPLOOP_ZEILE_FUELLEN OUTPUT

Die Tabelle wird zeilenweise ausgelesen. Falls sich die anzuzeigende Seite am Ende der Tabelle befindet, wird das Fllen des Steploops nach der letzten Tabellenzeile beendet. 7. Das PBO-Modul TRANS_TO_300 ermittelt und transportiert die Kundendaten aus der Datenbanktabelle ZKUNDEN anhand des in Dynpro 200 erfassten Feldes ZDEPOT-KUNDENNR.

Schritte Legen Sie das Modul TRANS_TO_300 im PBO-Include an.


MODULE trans_to_0300 OUTPUT. SELECT SINGLE * FROM zkunden WHERE kundennr = zdepot-kundennr. ENDMODULE. " TRANS_TO_0300 OUTPUT

114

Entwurf WebTransaction: ABAP

8. Das PBO-Modul STATUS_0300 legt GUI-Status und GUI-Titel fest. Der GUI-Status 300 enthlt, neben BACK fr die =85h&.-Taste, Funktionscodes mit folgenden Tastenbelegungen: ()(F9) FIRST zum Blttern zur ersten Seite des Steploops (Bild) UP zum Blttern zur vorherigen Seite des Steploops ()(F11) DOWN zum Blttern zur nchsten Seite des Steploops Der GUI-Titel zeigt den Text Auszug Wertpapierdepot an (s. Abbildung 3.77).

3.5 Dynpro 300: Anzeige der Liste

115

3
Schritte

Entwurf WebTransaction: ABAP

Legen Sie das Modul STATUS_0300 im PBO-Include an.


MODULE status_0300 OUTPUT. SET PF-STATUS '300'. SET TITLEBAR '300'. ENDMODULE. " STATUS_0300 OUTPUT

Legen Sie den GUI-Status 300 als Dialogstatus an. Der Funktionscode FIRST wird mit der Tastenkombination ()(F9) DOWN mit ()(F11) verknpft. Dies ist notwendig, da in der zur Laufzeit aus dem Dynpro resultierenden Webseite der Steploop als vollstndige Liste mit allen Zeilen dargestellt werden wird. Hierzu wird das AGate beim Fllen des zugehrigen Templates mit diesen Tastenkombinationen zum Anfang des Steploops respektive jeweils eine Seite nach unten blttern. Die Standardbelegungen zu (Strg)(Bild) und (Bild) mssen daher ausgetauscht werden (s. Abbildung 3.76). Der Funktionscode UP wird vom AGate hingegen nicht bentigt und kann daher auf der Belegung (Bild) verbleiben.
Abbildung 3.76

GUI-Status 300 mit Funktionscodes und ausgetauschten Funktionstasten zum Blttern im Steploop ( SAP AG)

Abbildung 3.77

GUI-Titel 300 ( SAP AG)

116

Entwurf WebTransaction: ABAP

9. Das PAI-Modul USER_COMMAND_0300 wertet den OK-Code aus: BACK fhrt zurck zu Dynpro 200. FIRST blttert den Steploop zur ersten Seite (1 Seite = 10 Zeilen). UP blttert den Steploop zur nchsten Seite. DOWN blttert den Steploop zur vorherigen Seite. KAUFEN liest die zugehrige Zeile aus der internen Tabelle IT_KP in den Arbeitsbereich. Wenn hierbei kein Fehler erfolgt, wird mit Dynpro 400 fortgesetzt, ansonsten erscheint eine Fehlermeldung. Legen Sie das Modul USER_COMMAND_0300 im PAI-Include an.
MODULE user_command_0300 INPUT. save_ok = ok_code. CLEAR ok_code. CASE save_ok. WHEN 'BACK'. LEAVE TO SCREEN 200. 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. ENDCASE. ENDMODULE. " USER_COMMAND_0300 INPUT

Schritte

3.5 Dynpro 300: Anzeige der Liste

117

Entwurf WebTransaction: ABAP

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. Drcken Sie aber nicht die Taste KAUFEN, da zuvor Dynpro 400 angelegt werden muss!

Schritte
Abbildung 3.78

Prfen Sie sicherheitshalber vor dem Aktivieren die Syntax. ( SAP AG)

Starten Sie die Transaktion, s. Abbildung 3.79 bis Abbildung 3.81. Fllen Sie Dynpro 100 wie in Abbildung 3.60, Dynpro 200 wie in Abbildung 3.61 gezeigt aus. Bettigen Sie die Drucktaste SELEKTIEREN.
Abbildung 3.79

Transaktionsstart ber das Kontextmen ( SAP AG)

Abbildung 3.80

Dynpro 300 fr Kunde 624456; Blttern in der Liste ( SAP AG)

118

Entwurf WebTransaction: ABAP

Abbildung 3.81

Vorletzte Seite der Liste: Kunde 624456, Jerome Newton, hlt insgesamt 21 Wertpapierpositionen. ( SAP AG)

3.6 Dynpro 400: Kaufen und verbuchen


Das Dynpro 400 zeigt den in Dynpro 200 ausgewhlten Kunden mit der in Dynpro 300 gewhlten Wertpapierposition an. ber ein Eingabefeld kann der Anwender die Anzahl der zu kaufenden/verkaufenden Stcke eintragen, s. Abbildung 3.82. In einem weiteren Eingabefeld wird mit 'X' ein Zukauf, mit ' ' ein Verkauf ausgewhlt. Mit der Drucktaste VERBUCHEN wird der Zu- oder Verkauf in der Datenbank gespeichert. Da es sich um eine nderungstransaktion handelt, bentigt man ein Sperrobjekt und einen Verbuchungsfunktionsbaustein. Diese beiden Objekte legen Sie zuerst an. Nach erfolgreichem Verbuchen oder mit der ZURCK-Taste gelangt der Anwender wieder zurck zu Dynpro 300.
Abbildung 3.82

Dynpro 400 zum Wertpapiere handeln und verbuchen ( SAP AG)

3.6 Dynpro 400: Kaufen und verbuchen

119

Entwurf WebTransaction: ABAP

3.6.1 Sperrobjekt anlegen


1. Legen Sie im Dictionary das Sperrobjekt EZDEPOTPSTN fr die Tabelle ZDEPOTPSTN in Ihrer Entwicklungsklasse ZIACnn an, s. Abbildung 3.83 bis Abbildung 3.84 falls dies nicht schon vor Ihnen einer Ihrer Lehrgangskollegen erledigt hat. Speichern und aktivieren Sie das Sperrobjekt.

Erluterung

Mit dem Aktivieren werden die Funktionsbausteine ENQUEUE_EZDEPOTPSTN zum Setzen und DEQUEUE_EZDEPOTPSTN zum Freigeben der Sperre angelegt.

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)

3.6.2 Verbuchungsfunktionsbaustein anlegen


2. Legen Sie einen Verbuchungsfunktionsbaustein Z_DEPOTPSTNnn_ANZAHL in einer neuen Funktionsgruppe ZDEPOTnn innerhalb Ihrer Entwicklungsklasse an. Er soll fr eine Wertpapierposition mit den Schlsseln DEPOTNR und WKN eine gegebene ANZAHL in der Tabelle ZDEPOTPSTN verbuchen.

Schritte

Legen Sie in Ihrer Entwicklungsklasse die Funktionsgruppe ZDEPOTnn an, s. Abbildung 3.85 bis Abbildung 3.86.

120

Entwurf WebTransaction: ABAP

Abbildung 3.85

Anlegen der Funktionsgruppe ( SAP AG)

Abbildung 3.86

Eigenschaftspflege Funktionsgruppe ( SAP AG)

Den Funktionsbaustein Z_DEPOTPSTNnn_ANZAHL legen Sie in dieser Funktionsgruppe an, s. Abbildung 3.87 bis Abbildung 3.89. Stellen Sie SYNCHRONE V1-VERBUCHUNG ein, und ordnen Sie die Anwendungsklasse KUNDE FILIALE zu.
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)

Legen Sie die Importparameter fest, s. Abbildung 3.90. Fr Verbuchungsfunktionsbausteine sind keine Referenzparameter zugelassen, stellen Sie daher Wertbergabe ein.

3.6 Dynpro 400: Kaufen und verbuchen

121

Entwurf WebTransaction: ABAP

Abbildung 3.90

Importparameter des Funktionsbausteines ( SAP AG)

3. Folgende Fehler sollen als Ausnahme behandelt werden, s. Abbildung 3.91: Datensatz (DEPOTNR und WKN) nicht gefunden Sperren nicht mglich Verbuchungsfehler

Schritte
Abbildung 3.91

Ausnahmen (Exceptions) des Funktionsbausteines ( SAP AG)

4. Programmieren Sie nun den Quelltext des Funktionsbausteines. Zunchst wird die Wertpapierposition aus der Tabelle ZDEPOTPSTN gelesen. Prfen Sie den Erfolg. Wurde kein Datensatz gelesen, wird eine Ausnahme gerufen.

Schritte

Ergnzen Sie den Quelltext des Funktionsbausteines.


FUNCTION z_depotpstnmu_anzahl. *"------------------------------------------------*"*"Verbuchungsfunktionsbaustein: *" *"*"Lokale Schnittstelle: *" IMPORTING *" *" *" *" *" *" REFERENCE(DEPOTNR) TYPE ZDEPOTPSTN-DEPOTNR REFERENCE(WKN) TYPE ZDEPOTPSTN-WKN REFERENCE(ANZAHL) TYPE ZDEPOTPSTN-ANZAHL NOT_FOUND LOCK_ERROR UPDATE_ERROR

*" EXCEPTIONS

122

Entwurf WebTransaction: ABAP

*"------------------------------------------------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.

5. Die betreffende Wertpapierposition soll vor dem Verbuchen gesperrt werden. Rufen Sie im Fehlerfalle eine Ausnahme. Ergnzen Sie den Quelltext des Funktionsbausteines.
IF sy-subrc NE 0. RAISE not_found. ELSE. CALL FUNCTION 'ENQUEUE_EZDEPOTPSTN' EXPORTING mode_zdepotpstn = 'E' mandt depotnr wkn * * * * * X_DEPOTNR X_WKN _SCOPE _WAIT _COLLECT EXCEPTIONS foreign_lock OTHERS IF sy-subrc <> 0. RAISE lock_error. = 1 = 3. system_failure = 2 = sy-mandt = depotnr = wkn = ' ' = ' ' = '2' = ' ' = ' '

Schritte

6. Die Verbuchung erfolgt mit dem Open SQL-Befehl UPDATE. Prfen Sie, ob das Verbuchen erfolgreich war.

3.6 Dynpro 400: Kaufen und verbuchen

123

3
Schritte

Entwurf WebTransaction: ABAP

Ergnzen Sie den Quelltext des Funktionsbausteines.


IF sy-subrc <> 0. RAISE lock_error. ELSE. zdepotpstn-anzahl = anzahl. UPDATE zdepotpstn. success = sy-subrc.

7. Nach dem Verbuchen wird die Wertpapierposition wieder entsperrt. Im Falle eines Misserfolges bei der Verbuchung soll eine Ausnahme gerufen werden. Speichern und Aktivieren Sie den Funktionsbaustein.

Schritte

Ergnzen Sie den Quelltext des Funktionsbausteines.


UPDATE zdepotpstn. success = sy-subrc. CALL FUNCTION 'DEQUEUE_EZDEPOTPSTN' EXPORTING mode_zdepotpstn = 'E' mandt depotnr wkn * * * * * x_depotnr X_WKN _SCOPE _SYNCHRON _COLLECT EXCEPTIONS OTHERS IF success NE 0. RAISE update_error. ENDIF. ENDIF. ENDIF. ENDFUNCTION. = 1. = sy-mandt = depotnr = wkn = ' ' = ' ' = '3' = ' ' = ' '

Vergessen Sie das Speichern und Aktivieren des Funktionsbausteines nicht!

124

Entwurf WebTransaction: ABAP

3.6.3 Dynpro 400 anlegen


Das Dynpro 400 soll den ausgewhlten Kunden mit den Feldern KUNDENNR, NAME, VORNAME und WOHNORT aus ZKUNDEN anzeigen. Weiterhin soll die gewhlte 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. Fgen Sie die Felder KUNDENNR, NAME, VORNAME und WOHNORT aus der Datenbanktabelle 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. Fgen Sie weiterhin aus dem Programm heraus die Felder WKN, TITEL, EMITTENT, DEPOTNR und ANZAHL der Feldleiste WA_KP als reine Ausgabefelder mit entsprechenden Textfeldern hinzu.

3.6 Dynpro 400: Kaufen und verbuchen

125

3
Schritte

Entwurf WebTransaction: ABAP

Abbildung 3.94

Einfgen Felder aus dem Dictionary ( SAP AG)

Abbildung 3.95

Platzieren der Felder, Attribut setzen, berschrift ( SAP AG)

Abbildung 3.96

Einfgen der Felder einer Feldleiste aus dem Programm ( SAP AG)

Abbildung 3.97

Platzieren der Ausgabefelder, Ergnzen der Textfelder ( SAP AG)

10.ber ein Eingabefeld soll der Anwender die Anzahl der Stcke eintragen. In einem weiteren Eingabefeld wird mit 'X' ein Zukauf oder mit ' ' ein Verkauf ausgewhlt. Fgen Sie hierzu die bereits im TopInclude deklarierten Felder KAUFANZAHL und ZUKAUF aus dem Programm heraus mit passenden Textfeldern in den Screen ein, s. Abbildung 3.98 bis Abbildung 3.100. Mit der Drucktaste VERBUCHEN (Funktionscode VERBUCH) wird der Zukauf oder Verkauf in der Datenbank gespeichert. Pflegen Sie den OK-Code.

126

Entwurf WebTransaction: ABAP

3
Schritte

Abbildung 3.98

KAUFANZAHL ist die Anzahl der zu (ver-) kaufenden Stcke. ( SAP AG)

Abbildung 3.99

ZUKAUF entscheidet zwischen Zukauf und Verkauf der Stcke. ( SAP AG)
Abbildung 3.100

Zuordnen Funktionscode VERBUCH zur Drucktaste ( SAP AG)

11.Das Feld KAUFANZAHL soll nach einer Fehlermeldung eingabebereit sein. Der GUI-Status enthlt die ZURCK-Taste mit dem Funktionscode BACK. Der GUI-Titel lautet: Wertpapiere handeln und verbuchen, s. Abbildung 3.101 bis Abbildung 3.102.
3URJUDPPLHUHQ 6LH GLH $EODXIORJLN YRQ '\QSUR

400

Schritte

PROCESS BEFORE OUTPUT. MODULE status_0400. * PROCESS AFTER INPUT. FIELD kaufanzahl. MODULE user_command_0400.

Legen Sie das Modul STATUS_0400 im PBO-Include an.


MODULE status_0400 OUTPUT. SET PF-STATUS '400'. SET TITLEBAR '400'. ENDMODULE. " STATUS_0400 OUTPUT

3.6 Dynpro 400: Kaufen und verbuchen

127

Entwurf WebTransaction: ABAP

Abbildung 3.101

Zuordnen des Funktionscodes zur ZURCK-Taste im GUI-Status ( SAP AG)

Abbildung 3.102

Anlegen des GUI-Titels ( SAP AG)

12.Die PAI-Verarbeitung soll im Falle des Funktionscodes BACK zu Dynpro 300 verzweigen.

Schritte

Legen Sie das Modul USER_COMMAND_0400 im PAI-Include an.


MODULE user_command_0400 INPUT. save_ok = ok_code. CLEAR ok_code. CASE save_ok. WHEN 'BACK'. LEAVE TO SCREEN 300.

13.Zu PAI soll beim Funktionscode VERBUCH der in Aufgabe 3.6.2 programmierte Funktionsbaustein Z_DEPOTPSTNnn_ANZAHL gerufen werden. Fehlerflle, also Ausnahmen, sollen durch Ausgabe einer Error-Message behandelt werden. Im Falle einer erfolgreichen Verbuchung wird ebenfalls zurck zu Dynpro 300 verzweigt. Deshalb muss zu PAI von Dynpro 400 die interne Tabelle IT_KP durch erneutes Lesen des Views ZDEPOT_PAPIERnn aktualisiert werden. Der Steploop wird dann zurck zu Seite 1 geblttert.

128

Entwurf WebTransaction: ABAP

3
Schritte

Ergnzen Sie das PAI-Modul USER_COMMAND_0400.


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 wkn anzahl EXCEPTIONS not_found lock_error OTHERS 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. = 1 = 2 = 4. = wa_kp-depotnr = wa_kp-wkn = wa_kp-anzahl

update_error = 3

3.6 Dynpro 400: Kaufen und verbuchen

129

Entwurf WebTransaction: ABAP

MESSAGE e000(su) WITH 'Unbekannter Fehler aufgetreten'. ENDCASE. COMMIT WORK. ENDCASE. ENDMODULE. " USER_COMMAND_0400 INPUT

14.Aktivieren Sie alle neu angelegten Objekte, s. Abbildung 3.103. Starten Sie die Transaktion. Kaufen Sie 42 Stck Silicon Graphics von CompEmm. (WKN 872981, DEPOTNR 103573) fr den Kunden Jerome Newton hinzu. Verkaufen Sie davon wieder 23 Stck.

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. Whlen Sie in Dynpro 200 den Kunden 624456. In Dynpro 300 entscheiden Sie sich fr den Kauf der Position 13, s. Abbildung 3.104 bis Abbildung 3.107.
Abbildung 3.104

Dynpro 300: Auswahl der Wertpapierposition des Kunden ( SAP AG)

130

Entwurf WebTransaction: ABAP

Abbildung 3.105

Zukauf von Wertpapieren, Verbuchen in der Datenbanktabelle ( SAP AG)

Abbildung 3.106

Die Anzahl dieser Wertpapiere hat sich um 42 Stck erhht. ( SAP AG)

Abbildung 3.107

Verkauf von Wertpapieren ( SAP AG)

Die bis hierhin erstellte Fassung der WebTransaction ist auch als Transport T53K900013 von http://www.dekra-akademie.de erhltlich. Dieser enthlt die komplette Entwicklungsklasse ZIACMU, bestehend aus Programm, Dynpros, Transaktion, View, Sperrobjekt und Verbuchungsfunktionsbaustein. Er setzt sich zusammen aus den beiden Dateien R900013.T53 und K900013.T53. Voraussetzung ist, dass die Entwicklungsklasse ZDEKRA komplett eingerichtet wurde, etwa ber den Transport LNXK90006.

Alternative: Transport

3.6 Dynpro 400: Kaufen und verbuchen

131

Die ABAP-Programmierung ist noch nicht ganz abgeschlossen. Zu ergnzen ist noch IAC-spezifischer Code. Behandelt werden muss der Fall, dass der Internetbenutzer die ZURCK-Taste seines Browsers drckt. Dann muss die WebTransaction synchronisiert werden, s. Abschnitt 4.11. Weiterhin knnen mittels spezieller ABAP-Makros per RFC Daten aus R/3 in den Kontext einer AGate-Session gesendet werden, s. Abschnitt 4.15.

SAP@Web Studio und ITS

Kapitel 4 SAP@Web Studio und ITS


Die bisher nur intern in R/3 verfgbare webfhige Transaktion wird in diesem Kapitel mittels des SAP@Web Studios zu einem Webprojekt erweitert, 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. Zunchst werden Projekt, Service und Theme angelegt. Anschlieend wird fr 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 beliebigen Browser im Intranet aus aufrufbar.

In diesem Kapitel wird derselbe R/3-Rechner, je nach Funktion, mit verschiedenen Namen belegt: T53: Name des Datenbankservers und damit auch des R/3-Systems, IP-Nummer 172.16.2.53 CPQ5508: Name des Anwendungsservers, als Ausbildungsrechner auf der gleichen Maschine wie der Datenbankserver installiert, daher ebenfalls IP-Nummer 172.16.2.53 Wenn Sie Ihre hosts-Datei richtig gepflegt haben, s. Abbildung 1.15 in Abschnitt 1.1, oder sich in Ihrem Intranet ein korrekt installierter DNS befindet, knnen Sie auf den nachfolgenden Abbildungen die IP-Nummer 172.16.2.53 stets durch CPQ5508 ersetzen.

133

SAP@Web Studio und ITS

4.1 Projekt, Service und Theme


Das Erweitern der WebTransaction zu einem Webprojekt beginnt mit dem Anlegen eines Projektes im SAP@Web Studio. Darin wird ein Service angelegt, welcher der WebTransaction zugeordnet wird. Um fr dieselbe WebTransaction unterschiedliche Darstellungsweisen, etwa unterschiedliche Firmenlogos, verwenden zu knnen, kann ein Service mehrere verschiedene Themes enthalten. 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)

2. Legen Sie mittels des Service-Wizards fr die WebTransaction ZDEPOTnn einen Service wpbuchung im soeben angelegten Projekt an.

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 Anmeldedaten wurden bereits bei der Installation des ITS eingegeben, sie befinden sich dort in der besonderen Servicedatei global.srvc, die global gltige Einstellungen enthlt. Diese knnen aber von Servicedateien der einzelnen Services berschrieben werden.

Der Service ist anschlieend noch nicht aufrufbar, es mssen erst noch die HTML-Templates hinzugefgt werden.

134

SAP@Web Studio und ITS

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 Anmeldedaten aus global.srvc ( SAP AG)

Abbildung 4.7

Timeout in Minuten, nach denen eine ITS-Session beendet wird ( SAP AG)

4.1 Projekt, Service und Theme

135

SAP@Web Studio und ITS

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)

3. Legen Sie im Service wpbuchung das Theme 00 an.

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)

4.2 Templates aus Dynpros generieren


Templates sind HTML-Dateien, die neben blichem HTML-Code Platzhalter fr Objekte des Dynpros enthalten. Sie enthalten jeweils ein HTML-Formular mit Eingabefeldern und einer Drucktaste zum Absenden.

136

SAP@Web Studio und ITS

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 gegenber dem R/3-System hnlich wie ein interaktiver SAPGUI-Benutzer auf. Der Benutzer jedoch sitzt an seinem Browser. Das AGate empfngt 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, empfngt die vom Benutzer ausgefllten und zurckgelieferten Formulardaten ber Webserver und WGate, fllt damit die entsprechenden Dynpro-Felder aus und sendet sie zurck 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-KUNDENNR.value`. Dies dient der Unterscheidung vom HTML-Code. Der Template-Wizard kann aus den Dynpros einer WebTransaction heraus automatisch Templates generieren. Hierzu verbindet er sich mit dem R/3-System und fragt die Dynpro-Definitionen ab. Die automatisch generierten Templates sind uerst karg und schnrkellos gehalten. Fr den Webdesigner dienen sie als Basis fr weitergehende Gestaltung mit HTML, Graphiken, JavaScript-Code etc. 1. Legen Sie Templates fr die Dynpros 100, 200, 300 und 400 mittels des Template-Wizards an, s. Abbildung 4.12 bis Abbildung 4.19. Die Templates sollen zunchst fr die Anmeldesprache Deutsch erstellt werden. SAP@Web Studio bentigt zum Abfragen der Dynpro-Eigenschaften Erluterung Zugangsdaten eines gltigen R/3 SAPGUI-Benutzers, hier des Benutzers ITSADM. Die Online-Verbindung zu R/3 muss verfgbar sein. Aufgrund der Lizenzbestimmungen darf dieser Benutzer jedoch nicht per SAPGUI angemeldet sein. Die Programmlistings der Templates direkt nach deren Anlegen finden Sie im Anhang 6.3. Starten Sie den Template-Wizard: PROJECT / ADD TO PROJECT / NEW...

Schritte

4.2 Templates aus Dynpros generieren

137

SAP@Web Studio und ITS

Abbildung 4.12

Start des TemplateWizards 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

Abbildung 4.17

Programmname, alle Dynpros, Theme, deutsche Sprache ( SAP AG)

Abbildung 4.18

Auslesen DynproDefinitionen, Generierung der Templates ( SAP AG)


Abbildung 4.19

Anzeige der HTML-Source: Fr jedes Dynpro wurde ein Template in HTMLBusiness angelegt. ( SAP AG)

2. Sehen Sie sich die Templates in der Browser-Vorschau an. In der Browser-Vorschau sehen Sie jeweils ein Formular mit Text- und Erluterung Eingabefeldern sowie einer Drucktaste zum Absenden. Die Darstellung ist insofern unvollstndig, als die HTMLBusiness-Platzhalter noch nicht ersetzt wurden. Ferner ist die Drucktaste nicht funktionsfhig, dies wird erst der Fall sein, wenn die Templates auf den ITS publiziert worden sind. Es wird der Standardbrowser fr die Dateinamenserweiterung .html, hier der Internet Explorer, verwendet.

4.2 Templates aus Dynpros generieren

139

SAP@Web Studio und ITS

Schritte
Abbildung 4.20

Browser-Vorschau: Template zu Dynpro 100. Das Kennwortfeld fehlt, da es auskommentiert angelegt wurde.

3. Betrachten Sie den HTMLBusiness-Code der zu den Dynpros 100 und 200 des ABAP-Programms SAPMZDEPOTnn generierten Templates. Diese werden kurz Template 100 und Template 200 genannt.

Schritte ffnen Sie das Template 100, das in der Datei sapmzdepotnn_100_
de.html vorliegt, in der Ansicht HTML-SOURCE, s. Abbildung 4.19. Entsprechend 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 method="post" action="...">. Es definiert ein Formular, das neben Textfeldern auch Eingabefelder die der Benutzer bearbeiten kann und eine Drucktaste zum Versenden enthlt, 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 anschlieend erlutert. Innerhalb des Formulars ist das Eingabefeld <input type=text name="..." value="..." maxlength="008" size="008"> fr Text definiert. Die maximale Eingabelnge und die sichtbare Lnge sind hier auf jeweils acht Zeichen begrenzt. Der innerhalb von value="..." eingetragene Wert wird im Formular angezeigt und kann vom Benutzer verndert 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 Drcken 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 angehngt, hier etwa wrde der URL lauten: http://www.dekra-kl.de/scripts/wgate/wpbuchung!?bapiemplpernr=1006&bapiuid-password=dekra&~okcode=LOGIN

140

SAP@Web Studio und ITS

In diesem URL erkennt man nach dem Pfad zur Website und dem Aufruf 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 bapiuid-password ~okcode

1006 dekra LOGIN

Tabelle 4.1 : Name/Wert-Paare, die ber das aus Template 100 resultierende Formular

im HTTP-Header versendet werden.

Die post-Methode hat gegenber der get-Methode den Vorteil, dass die zurckgelieferten Ergebnisse in keinem Cache gespeichert werden, was bedeutet, dass stets ein aktuelles, vom zustndigen Webserver gesendetes, Formular bermittelt wird. Die Name/Wert-Paare werden vom Webserver weitergeleitet an das angegebene serverseitige Programm, hier an das WGate. Die Weiterleitung erfolgt im Standard ber die so genannte CGI-Schnittstelle (Common Gateway Interface), im Falle des IIS von Microsoft jedoch ber die ISAPI-Schnittstelle, die hnlich funktioniert, aber laut Microsoft schneller ist. Das WGate wertet die Name/Wert-Paare aus und leitet sie an das AGate weiter. Durch Angabe von action="..." innerhalb von <form ...> wird festgelegt, wohin das Formular geschickt werden soll. Eine Angabe wie etwa
<form method="post" action="/scripts/wgate/wpbuchung/~flN0YXRlPTEyMzgyLjAwMS4wMi4wMg==">

fhrt dazu, dass das Formular ber den gleichen Webserver an das serverseitige Programm WGate gesendet wird, das daraufhin den Service wpbuchung startet. Hierzu verwendet der Webserver die CGI- respektive ISAPI-Schnittstelle. Der codierte Rest ~flN0YXRlPTEyMzgyLjAwMS4wMi4wMg== des URL wird im folgenden Abschnitt zusammen mit `wgateurl()` eine HTMLBusinessFunktion, die obigen URL generiert erlutert.

4.2 Templates aus Dynpros generieren

141

SAP@Web Studio und ITS

HTMLBusiness Zwischen jeweils zwei Zeichen ` (Backticks) finden Sie folgenden HTMLBusiness

-Code:

`BAPIEMPL-PERNR.label`: Platzhalter fr den Bezeichner eines DynproFeldes, hier: Personalnr. `BAPIEMPL-PERNR.name`: Platzhalter fr den ABAP-Namen eines Dynpro-Feldes, hier: BAPIEMPL-PERNR[1]. `BAPIEMPL-PERNR.value`: Platzhalter fr 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 fr einen URL zum WGate, wie er etwa fr 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 mssen, wird im AGate hnlich der R/3-Basis mit ihren Rollbereichen fr jeden Benutzer ein Sessionspeicher mit dem Benutzerkontext eingerichtet und durch eine Session-ID identifiziert. Die Session-ID wird in dem codierten Rest des URL nach der Angabe des Services wpbuchung ergnzt. Dieser Rest enthlt darber hinaus eine Synchronisationsinformation, die angibt, welches Formular der Benutzer gerade bearbeitet hat, und einige weitere Angaben. Die Synchronisationsinformation ist von Bedeutung fr den Fall, dass der Anwender die ZURCK-Taste des Browsers drckt, s. Abschnitt 4.11. `~windowtitle`: Platzhalter fr den GUI-Titel des Dynpros, hier: Anmeldung Wertpapierdepotverwaltung. `~messageline`: Platzhalter fr 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 Fehlermeldung angezeigt. 4. Sorgen Sie dafr, dass das Eingabefeld fr das Kennwort in Template 100 in der Browser-Vorschau sichtbar wird, s. Abbildung 4.21.

142

SAP@Web Studio und ITS

Der Template-Wizard hat zwar einen Code fr das Kennwortfeld ange- Erluterung legt, ihn aber seltsamerweise mit den Zeichenfolgen <!-- und --> auskommentiert. Der Verfasser hat allerdings beobachtet, dass das Kennwort in frheren Versionen des SAP@Web Studios nicht auskommentiert wurde. Entfernen Sie die Kommentarzeichen des Kennwortfeldes in Tem- Schritte plate 100.
<p> `BAPIUID-PASSWORD.label` <input type=text name="`BAPIUID-PASSWORD.name`" value="`BAPIUID-PASSWORD.value`" maxlength="016" size="016">`assert(BAPIUID-PASSWORD.name)` <p>
Abbildung 4.21

Kennwortfeld nach Entfernen der Kommentarzeichen ( SAP AG)

5. Tragen Sie das Theme 00 in die Servicedatei des Services wpbuchung ein. In der globalen Servicedatei global.srvc des ITS ist das Theme 99 einge- Erluterung tragen. Um fr 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 Schlssel ~theme = 00 ein. Das Eingabefenster besttigen Sie mit ()
Abbildung 4.22

berschreiben des Themes durch die lokale Servicedatei ( SAP AG)

4.2 Templates aus Dynpros generieren

143

SAP@Web Studio und ITS

4.3 Website definieren und publizieren


1. Definieren Sie Ihre Website im SAP@Web Studio, um dessen Publizierfunktion verwenden zu knnen.

Erluterung Publizieren der Website bedeutet, die Dateien des Webprojektes Servicedateien, HTML-Templates, Sprachressourcendateien etc. vom Dateisystem des SAP@Web Studios in das Dateisystem des AGates zu kopieren. Hierzu knnen Windows-Ordnerfreigaben oder auch FTPUpload-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

Abbildung 4.26

Netzwerkverbindung zum AGate des ITS1 ( SAP AG)

Abbildung 4.27

Anstelle der WindowsOrdnerfreigaben sind mit CUSTOM statt ITS VIRTUAL SHARES auch FTP-Adressen zum Heraufladen der Dateien mglich. ( SAP AG)
Abbildung 4.28

Falls der Webserver einen anderen Port als Port 80 abhrt, 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.

4.3 Website definieren und publizieren

145

SAP@Web Studio und ITS

2. Publizieren Sie den Service und dessen Templates auf das AGate des ITS.

Schritte Markieren Sie den Service wpbuchung im SAP@Web Studio. PROJECT /


PUBLISH FILES, s. Abbildung 4.31 bis Abbildung 4.34. Nach dem Publizieren sind Kopien der Dateien des Webprojekts im Dateisystem des AGates zu sehen.
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.4 Start der IAC ber Hyperlink


Die WebTransaction ist nun zu einer Internet-Anwendungskomponente (IAC) erweitert worden und einsatzbereit, sie muss nur noch gestartet werden. Dies erfolgt ber einen URL, die der Benutzer ins Adressfeld des Browsers eingeben knnte. Da dies sehr umstndlich ist, wird in die bereits bestehende Homepage ein Hyperlink zu diesem URL angelegt. 1. Starten Sie nochmals Ihre Homepage aus Abschnitt 2.5 im Browser, s. Abbildung 4.35 bis Abbildung 4.37. Prfen Sie, ob die StandardIACs noch funktionieren, s. auch das Ende des Abschnitts 1.2.

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

2. Suchen Sie im Dateisystem Ihres Webservers das WGate, s. Abbildung 4.38.

Schritte
Abbildung 4.38

Der Script-Ordner des Webservers IIS:


C:\\Inetpub\Scripts

4.4 Start der IAC ber Hyperlink

147

SAP@Web Studio und ITS

3. Legen Sie im linken Frame Ihrer Homepage (Datei inhalt.htm) einen Hyperlink an, ber dessen URL die IAC wpbuchung im rechten Frame gestartet wird.

Erluterung 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 zunchst der Name des Services wpbuchung bergeben, welcher dann im AGate gestartet wird. Dem folgen im URL, nach den Trennzeichen "!?", weitere 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.

Schritte Ergnzen Sie C:\Inetpub\wwwroot\inhalt.htm.


<a href="selfhtml/selfhtml.htm" target="rechts"> SELFHTML </a><br> <a href="/scripts/wgate/wpbuchung!?~language=de" target="rechts"> Wertpapierbuchung </a><br> </body>

4. Aktualisieren Sie Ihre Browser-Ansicht. Starten Sie die IAC wpbuchung, s. Abbildung 4.39 bis Abbildung 4.45. Melden Sie sich auf der Webseite zu Dynpro 100, kurz Webseite 100 genannt, als Mitarbeiter Nr. 1006 an. Auf Webseite 200 whlen Sie Kundennummer 624456. Auf Webseite 300 whlen Sie das Papier Isar Amperwerke der Emission-GmbH, WP-Kennnummer 504500, Depotnummer 937561. Beachten Sie die Nutzung der Bltterfunktion des DynproSteploops zur Ausgabe der gesamten Liste in der Webseite. Betrachten Sie auch die repeat-Schleife im HTMLBusiness-Code von Template 300. Kaufen Sie auf Webseite 400 18 Stcke. Verkaufen Sie die 18 Stcke wieder.

148

SAP@Web Studio und ITS

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 Hlfte

4.4 Start der IAC ber Hyperlink

149

SAP@Web Studio und ITS

Listenausgabe Im Unterschied zum Steploop eines Dynpros, dessen Lnge begrenzt ist durch Blttern hier auf zehn Zeilen pro Seite, kann eine HTML-Seite beliebig lange
Listen anzeigen. Deshalb blttert das AGate im Steploop, um so wie in Webseite 300, s. Abbildung 4.42, die Liste Seite fr Seite zusammenzustellen. Hierzu verwendet das AGate die im GUI-Status 300, s. Abschnitt 3.5, festgelegten Tastenfunktionen ()(F9) fr den Funktionscode FIRST (zum Anfang blttern) und ()(F11) fr den Funktionscode DOWN (nach unten blttern). Die Liste wird durch folgenden HTMLBusiness-Code in Template 300 angezeigt:
<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 Datenbereich der Tabelle festgelegt. Die Bezeichner der Form %#AUTOTEXT004 wurden vom Screen Painter automatisch vergeben fr Textfelder, fr die der Programmierer nicht selbst einen Bezeichner vergeben hatte.

150

SAP@Web Studio und ITS


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 resultierende HTML-Seite eingesetzt wird, bis der Schleifenzhler beginnend mit 1 bis zu POS.max, dem grten Wert des Feldes POS, hochgezhlt hat. Im gezeigten Beispiel luft j von 1 bis 21. Hat j beispielsweise derzeit den Wert 5, dann wird in der fnften HTML-Listenzeile `ZDEPOT_PAPIERnn-TITEL[j].value` ersetzt durch den Wert der Zelle in der fnften Zeile der Spalte Wertpapiertitel des Steploops in Dynpro 300: Isar Amperwerke.
Abbildung 4.42

Webseite 300, untere Hlfte; Bltternfunktion des Steploops (Seite 1: Pos. 1 bis 10, Seite 2: 11 bis 20, Seite 3: Pos. 21)

Webseite 400: Kauf von 18 Wertpapieren

Abbildung 4.43

4.4 Start der IAC ber Hyperlink

151

SAP@Web Studio und ITS

Abbildung 4.44

Webseite 300: Erhhte Anzahl an Wertpapieren nach dem Kauf

Abbildung 4.45

Webseite 400: Verkauf von Wertpapieren

4.5 Sprachunabhngigen Text integrieren


Die Templates wurden bisher nur fr die Sprache DE (Deutsch) angelegt. In diesem Abschnitt wandeln Sie sie zu sprachunabhngigen Templates um, die auch die Anmeldesprache EN (Englisch) untersttzen. Die Sprachunabhngigkeit eines IAC ergibt sich teilweise bereits aus der Sprachunabhngigkeit des R/3. Die Textfelder eines Dynpros werden durch HTMLBusiness-Platzhalter in die resultierende HTML-Seite bernommen; eine andere Anmeldesprache fhrt so unmittelbar zur anderssprachigen Anzeige der Textelemente. Der Webdesigner ergnzt das vom Template-Wizard in Rohfassung generierte Template um eigene Texte, die nicht vom Dynpro her stammen. Zu deren Gestaltung mit dem Ziel einer von der Anmeldesprache abhngigen Webseite bietet HTML Business sprachunabhngige Platzhalter an.

152

SAP@Web Studio und ITS

1. Ergnzen Sie Template 100 um einen sprachunabhngigen Platzhalter #welcome fr die Anmeldesprachen Deutsch und Englisch, der die Anwender in der berschrift der Stufe <h2> willkommen heit. Legen Sie je eine englische und deutsche Sprachressourcendatei an, und pflegen Sie jeweils den Schlssel welcome. Ergnzen Sie Template 100.
<body> <p><h2>`#welcome`</h2></p> `~messageline`

Schritte

Starten Sie den Resource-Wizard: PROJECT / ADD TO PROJECT / NEW... Legen Sie den Schlssel welcome an, s. Abbildung 4.46 bis Abbildung 4.51.
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)

4.5 Sprachunabhngigen Text integrieren

153

SAP@Web Studio und ITS

Abbildung 4.49

Es gibt noch keine Sprachressource fr Service und Theme ( SAP AG)

Abbildung 4.50

Abschlussseite des Resource-Wizards ( SAP AG)


Abbildung 4.51

Anlegen des Sprachschlssels welcome auf Deutsch ( SAP AG)

Starten Sie den Resource-Wizard erneut fr die Sprache Englisch, s. Abbildung 4.52 bis Abbildung 4.54.
Abbildung 4.52

Anlegen der zweiten Sprachressourcendatei fr Englisch ( SAP AG)

Abbildung 4.53

Bereits vorhandene Sprachschlssel aus der deutschen Sprachressource werden bernommen. ( SAP AG)
Abbildung 4.54

Pflege des Sprachschlssels welcome auf Englisch ( SAP AG)

2. Benennen Sie die deutschsprachigen Templates sapmzdepotnn_ xxx_ de.html um zu sprachunabhngigen Templates sapmzdepotnn_ xxx.html (xxx steht fr 100, 200, 300 oder 400), s. Abbildung 4.55 bis Abbildung 4.57. Publizieren Sie die sprachunabhngigen Templates und die Sprachressourcendateien. Lschen Sie die deutschsprachigen Templates.

154

SAP@Web Studio und ITS

Schlieen 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 Lschen 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

Lschen der deutschsprachigen Templates im AGate ( SAP AG)

3. Ergnzen Sie inhalt.htm um einen Link zur Anmeldung auf Englisch. Rufen Sie die WebTransaction in Deutsch und Englisch auf. Die Anmeldesprache DE respektive EN wird im aufrufenden URL festge- Erluterung legt durch den Parameter ~language, der als Name/Wert-Paar mitgegeben wird. Ergnzen Sie C:\Inetpub\wwwroot\inhalt.htm.
<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> </body>

Schritte

4.5 Sprachunabhngigen Text integrieren

155

SAP@Web Studio und ITS

Aktualisieren Sie Ihren Browser, s. Abbildung 4.58 bis Abbildung 4.59.


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.

4. Pflegen Sie der Vollstndigkeit halber die englischen bersetzungen der Textelemente Ihrer Dynpros des Programms SAPMZDEPOTnn.

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 Dynpros. Starten Sie die IAC erneut.
Abbildung 4.60

bersetzen der Textelemente des Dynpros ( SAP AG)

156

SAP@Web Studio und ITS

Abbildung 4.61

bersetzungen der Textfelder und Drucktasten von Dynpro 100 ( SAP AG)

Abbildung 4.62

bersetzung der Kurzbeschreibung (Dynpro-Eigenschaften) ( SAP AG)


Abbildung 4.63

bersetzungen der Textfelder und Drucktasten von Dynpro 200 ( SAP AG)

Abbildung 4.64

Erneuter Start der IAC: Alle Texte sind bersetzt.

4.6 HTML-Eingabefelder im Formular


Die WebTransaction unterliegt, was den Teil der ABAP-Programmierung angeht, einer Reihe von Beschrnkungen. So drfen keine Auswahlknpfe oder Ankreuzfelder ins Dynpro platziert werden, stattdessen sind Textfelder der Lnge 1 zu verwenden. Hingegen werden Auswahlknpfe oder Ankreuzfelder vom Template untersttzt. Die automatisch generierten Templates sind also fr Sie als Webdesigner Ausgangspunkt zur Gestaltung und Verbesserung. Zunchst soll die Kennworteingabe vor fremden Blicken geschtzt werden. Hierfr sieht HTML den Eingabefeldtyp password vor.

4.6 HTML-Eingabefelder im Formular

157

SAP@Web Studio und ITS

Auswahlknpfe erhlt man ber den Eingabefeldtyp radio. Eine Auswahlknopfgruppe ergibt sich aus allen Auswahlknpfen mit gleichem name; von diesen kann stets genau einer ausgewhlt werden. Ein Ankreuzfeld erhlt man ber den Eingabefeldtyp checkbox. 1. Verdecken Sie die Eingabe in das Kennwortfeld von Template 100 mit Sternen, s. Abbildung 4.65.

Schritte ndern Sie Template 100.


`BAPIUID-PASSWORD.label` <input type=password name="`BAPIUID-PASSWORD.name`" value="`BAPIUID-PASSWORD.value`" maxlength="016" size="016">`assert(BAPIUID-PASSWORD.name)`
Abbildung 4.65

Schutz der Kennworteingabe vor neugierigen Blicken

2. Die Anzahl der zu (ver-)kaufenden Stcke in Template 400 soll statt des Textfeldes ber eine Auswahlknopfgruppe (Radiobuttons) gewhlt werden. Sehen Sie Auswahlknpfe fr 1, 2, 5, 10, 20, 50, 100, 200, 500 und 1000 Stck vor, s. Abbildung 4.66.

Schritte Ergnzen 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

<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`

3. Die Entscheidung ber Zu- oder Verkauf des Wertpapiers soll im Template 400 statt des Textfeldes durch ein Ankreuzfeld (Checkbox) erfolgen, s. Abbildung 4.66. Zu beachten ist beim Anlegen eines Ankreuzfeldes, dass es im URL nur Erluterung 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 folgendermaen aus:

: ...&name=ZUKAUF&value=" "&... ;: ...&name=ZUKAUF&value=" "&name=ZUKAUF&value="X"...

Das zweite Name/Wert-Paar berschreibt das erste im Falle des angekreuzten Feldes. Ergnzen 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`

4. Kaufen Sie, unter Verwendung der neuen Auswahlknpfe und Ankreuzfelder, 20 Stcke Silicon Graphics fr den Kunden 624456 von CompEmm. (WKN 872981, Depotnummer 103573) hinzu (s. Abbildung 4.66). Verkaufen Sie davon wieder 10 Stck.

4.6 HTML-Eingabefelder im Formular

159

SAP@Web Studio und ITS

Schritte Publizieren Sie Template 400, und starten Sie das IAC neu. Whlen Sie
in Webseite 300 die Position 13.
Abbildung 4.66

Auswahlknpfe und Ankreuzfeld

4.7 Auswahllistenfeld (HTML-Select) anlegen


Die F4-Hilfe des R/3 gibt es in vergleichbarer Funktionalitt in HTML nicht. Allerdings knnen in einfacher Form Auswahllistenfelder angeboten werden, aus denen der Benutzer sich einen Eintrag herauswhlt. 1. Ersetzen Sie im Template 200 die Textfeldeingabe der Kundennummer durch ein HTML-Select, s. Abbildung 4.67 bis Abbildung 4.68. Von den folgenden Eintrgen sollen stets vier sichtbar sein: 124456 124457 124458 124459 124460 274067 284104 396710 472016 492569 624456 649912 729461 826452 936294

160

SAP@Web Studio und ITS

Hier wird zunchst ein Auswahllistenfeld mit festen Werten, die im Tem- Anmerkung plate gespeichert sind, angelegt. Besser wre es jedoch, wenn das Auswahllistenfeld aktuelle Werte aus der betreffenden R/3-Tabelle beziehen wrde. Dies wird in Abschnitt 4.15 behandelt: ABAP-Makros senden diese Werte per RFC aus R/3 in den Benutzerkontext der AGate-Session. Ergnzen 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: HTMLSelect als Ersatz fr die F4-Hilfe

4.7 Auswahllistenfeld (HTML-Select) anlegen

161

SAP@Web Studio und ITS

Abbildung 4.68

Webseite 300: Die gewhlte Kundennummer wurde bernommen.

4.8 Service beenden mit Drucktaste


1. Ergnzen Sie Template 300 um eine sprachabhngige Drucktaste zum Beenden des Services. Die SAPGUI-Verbindung zwischen ITS und R/3 soll dabei getrennt werden, s. Abbildung 4.70 bis Abbildung 4.71. Nach dem Beenden soll im rechten Frame wieder die Homepage Pfad C:\Inetpub\wwwroot\homepage.htm dargestellt werden.

Erluterung 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.

Schritte Ergnzen und publizieren Sie Template 300.


<input type=submit name="~okcode=KAUFEN" value="`BUTTON_KAUFEN.label`"> <input type=submit name="~OkCode=/NEX" value="`#ende`"> <p> `ZKUNDEN-NAME.label`

Pflegen Sie die Sprachressourcendateien wpbuchung_de.htrc und wpbuchung_en.htrc fr den Schlssel ende, s. Abbildung 4.69.

162

SAP@Web Studio und ITS

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 ~exiturl ~clientcert /sap/its/mimes http://www.dekra-kl.de/homepage.htm 1
Abbildung 4.70

Drucktaste zum Beenden der WebTransaction

Abbildung 4.71

Nach dem Senden von ~ ~ =OkCode=/NEX:zurck zu homepage.htm

4.9 Funktion wgateURL() in Hyperlinks


Die HTMLBusiness-Funktion wgateURL() generiert einen URL, der in die resultierende HTML-Seite eingesetzt wird. Als Parameter knnen der Funktion Name/Wert-Paare mitgegeben werden. Neben dem Versenden von Formularen durch eine Drucktaste kann man diese Funktion auch zur Konstruktion von Hyperlinks verwenden, was hier an zwei Beispielen demonstriert wird. Zu beachten ist allerdings, dass beim Aufruf eines Hyperlinks im Unterschied zur Drucktaste die Formularfelder im URL nicht mitgesendet werden, auch wenn der Anwender sie ausgefllt hat.

4.9 Funktion wgateURL() in Hyperlinks

163

SAP@Web Studio und ITS

1. Fgen Sie in Template 200 einen Hyperlink ein, der direkt den OKCode SELECT und die Kundennummer 624456 des Stammkunden Jerome Newton bergibt, s. Abbildung 4.72 bis Abbildung 4.73.

164

SAP@Web Studio und ITS

4
Schritte

Ergnzen und publizieren Sie Template 200.


<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 fhrt direkt von Webseite 200 nach Webseite 300

2. Ermglichen Sie es dem Benutzer, in Webseite 300 eine Buchungsposition aus der Liste direkt per Hyperlink in der gleichen Zeile zum Kaufen auszuwhlen, s. Abbildung 4.74 bis Abbildung 4.75. Kaufen Sie fr Jerome Newton 10 Stck seiner Wertpapierposition 4. Geben Sie wgateURL() die Parameter ~OkCode="KAUFEN" und KAUFPOS=j mit j ist der Schleifenzhler der repeat-Schleife, welche die Liste der Wertpapierpositionen aufbaut. Ergnzen und publizieren Sie Template 300.
<td>`ZDEPOT_PAPIERMU-ANZAHL[j].value`</td> <td> <a href="`wgateURL(~OKCode="KAUFEN", KAUFPOS=j)`"> Kaufen </a></td> </tr>

Erluterung

Schritte

4.9 Funktion wgateURL() in Hyperlinks

165

SAP@Web Studio und ITS

Abbildung 4.74

Zeilenauswahl ber dynamische Hyperlinks aus wgateURL()

Abbildung 4.75

Der Hyperlink fhrt von Webseite 300 nach Webseite 400.

4.10Erstes Template berspringen


Mit dem URL des Hyperlinks knnen alle bentigten Parameter inklusive des OK-Codes mitgegeben werden, so dass die zugehrige Webseite durch den Hyperlink gewissermaen ausgefllt wird. Dieses Verfahren kann dazu verwendet werden, Webseite 100 automatisch auszufllen und so direkt zu Webseite 200 zu gelangen.

Da durch das dargestellte Beispiel Identifikation und Authentisierung bergangen werden, sollten Sie es aus Sicherheitsgrnden in einer Produktivumgebung nicht einsetzen! Obendrein kann das Kennwort im Klartext ausgespht werden.

Die Aufgabe dient nur dem Erlernen der Konstruktion von Hyperlinks mit Parameterbergabe. 1. Legen Sie im linken Frame einen Hyperlink an, der die Anmeldung des Internetbenutzers fr 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 enthlt die Anmeldesprache ~language, den OK-Code ~okcode, die Personalnummer sowie das Kennwort des Internetbenutzers. Ermitteln Sie zunchst die bentigten 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
Schritte

ffnen Sie die Elementliste von Dynpro 100

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)

Ergnzen und publizieren Sie C:\Inetpub\wwwroot\inhalt.htm.


<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=dekra" target="rechts"> WPBuchung fr PNr 1006 </a><br> </body>
Abbildung 4.78

Direktstart zu Webseite 200 durch Mitgeben aller bentigten Parameter fr Webseite 100 im Hyperlink

4.10 Erstes Template berspringen

167

SAP@Web Studio und ITS

4.11 Browser-Zurck-Taste synchronisieren


Die ZURCK-Taste des Browsers fhrt in der WebTransaction zu fehlerhaften Ergebnissen. Ursache fr dieses Problem ist, dass die R/3-Transaktion anders als bei dem SAPGUI, das ebenfalls eine ZURCK-Taste besitzt das Drcken der ZURCK-Taste nicht nachvollzieht und auf dem alten Dynpro verbleibt. Der OK-Code, der von der unerwarteten Webseite gesendet wird, wird vom falschen Dynpro gar nicht oder sogar falsch ausgewertet. Die Lsung dieses Problems heit Synchronisation. Der ITS sendet fr den Fall, dass eine unerwartete Webseite eintrifft, einen OK-Code, der mit AWSY beginnt. Es folgt der Programmname. Am Ende enthlt der OKCode in vier Stellen die Nummer der vom Browser gesandten Webseite. Wenn im Beispielprogramm die Webseite 200 unerwartet eintrifft, heit der OK-Code also AWSYSAPMZDEPOTnn0200. Aufgabe der WebTransaction ist es, diesen Funktionscode auszuwerten und zu dem unerwarteten Dynpro, hier also 200, zu verzweigen. Dann kann das eingetroffene Formular korrekt bearbeitet werden. Eine herkmmliche R/3-Transaktion kann nicht nur wegen der fehlenden Synchronisation im Allgemeinen nicht als WebTransaction eingesetzt werden. Neben der Ergnzung des Synchronisationscodes drfen bei WebTransactions auf den Dynpros nur einfache Eingabefelder, also keine Ankreuzfelder oder Auswahlknpfe verwendet werden. 1. Testen Sie die fehlerhaften Ergebnisse der ZURCK-Taste des Browsers bei der WebTransaction ZDEPOTnn aus.

Schritte

Gehen Sie zunchst fr Kunden 624456 zu Webseite 300, s. Abbildung 4.79 bis Abbildung 4.81. Bettigen Sie die ZURCK-Taste, sie fhrt Sie zu Webseite 200. Whlen Sie Kunde 274067. Sie landen mit der Drucktaste SELEKTIEREN fehlerhafterweise erneut bei Kunde 624456.

Abbildung 4.79

ZURCK-Taste des Browsers, von Webseite 300 aus gedrckt. Die WebTransaction in R/3 verbleibt allerdings bei Dynpro 300

168

SAP@Web Studio und ITS

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 fr jedes Dynpro den Synchronisationsfunktionscode der Form AWSY[Programm][DynproNummer] auswerten. Verwenden Sie hierfr ein FORM-Unterprogramm. Ergnzen Sie im PAI-Modul user_command_0100 die CASE-Abfrage des Funktionscodes um einen Eintrag fr einen OK-Code, der mit AWSY beginnt. Das ABAP-Programm verzweigt dann zum PBO des richtigen Dynpros, passend zur unerwartet gesendeten Webseite.
MODULE user_command_0100 INPUT. save_ok = ok_code. CLEAR ok_code. CASE save_ok. WHEN 'LOGIN'. ... WHEN 'BACK'. LEAVE PROGRAM. WHEN OTHERS. PERFORM backbutton. ENDCASE. ENDMODULE. " USER_COMMAND_0100 INPUT

Schritte

Ergnzen Sie entsprechend MODULE user_command_0200.


LEAVE TO SCREEN 300. WHEN OTHERS. PERFORM backbutton.

4.11 Browser-Zurck-Taste synchronisieren

169

SAP@Web Studio und ITS

ENDCASE. ENDMODULE. " USER_COMMAND_0200 INPUT

Ergnzen Sie entsprechend MODULE user_command_0300.


ENDIF. WHEN OTHERS. PERFORM backbutton. ENDCASE. ENDMODULE. " USER_COMMAND_0300 INPUT

Ergnzen Sie entsprechend MODULE user_command_0400.


COMMIT WORK. WHEN OTHERS. PERFORM backbutton. ENDCASE. ENDMODULE. " USER_COMMAND_0400 INPUT

Legen Sie per Vorwrtsnavigation (Doppelklick auf den Code backbutton) das Unterprogramm BACKBUTTON im neuen FORM-Include MZDEPOTnnF01 an, s. Abbildung 4.82 bis Abbildung 4.83. Aktivieren Sie alle Objekte.
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.
Abbildung 4.83

" BACKBUTTON

Aktivieren aller Objekte ( SAP AG)

170

SAP@Web Studio und ITS

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 nchsten Abschnitt fort. Dort finden Sie ein Werkzeug zum Untersuchen von Programmierfehlern bei WebTransactions: den ABAP-Debugger, der sogar bei vom Browser gestarteten IACs eingesetzt werden kann.
Abbildung 4.84

Erneut: ZURCK-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

4.12 WebTransaction mit SAPGUI debuggen


Wenn beim Programmieren des vorherigen Beispiels Probleme auftreten, entsteht schnell der Wunsch, den Ablauf des ABAP-Programms in Einzelschritten nachvollziehen zu knnen. Dies leistet der ABAP-Debugger, der nun vom AGate aus gesteuert wird. 1. Debuggen Sie die WebTransaction mit dem SAPGUI am Beispiel der vorherigen Aufgabe. Stellen Sie zunchst in der Registrierdatenbank die zugehrigen Schlssel korrekt ein. Aktivieren Sie den Debugger durch Neustart des ITS-Dienstes. Zum Aktivieren des Debuggens muss der Registrierungsschlssel AdminEnabled auf 1 gestellt werden. Sie finden ihn im Pfad HKEY_LOCAL_MACHINE / SOFTWARE / SAP / its / 2.0 / <R3> / Programs / AGate.

Erluterung

4.12 WebTransaction mit SAPGUI debuggen

171

4
Schritte

SAP@Web Studio und ITS

Starten Sie den Registrierungseditor: START / AUSFHREN, s. Abbildung 4.87 bis Abbildung 4.88. Stellen Sie den Schlssel ein. Prfen Sie auch, ob der voreingestellte Schlssel SapguiDebuggerPort="sapdp00" auch der von Ihnen verwendeten R/3-Instanznummer entspricht.

Abbildung 4.87

Start des Registrierungseditors

Abbildung 4.88

Aktivieren des WebTransactionDebuggers in der Registrierung

2. Aktivieren Sie den Debugger durch Neustart des ITS-Dienstes.

Schritte

Beenden Sie den ITS-Dienst ber SYSTEMSTEUERUNG / VERWALTUNG / DIENSTE, s. Abbildung 4.89 bis Abbildung 4.90. Starten Sie den ITSDienst nun wieder.

Abbildung 4.89

Beenden des ITS-Dienstes

Abbildung 4.90

Neustart des ITS-Dienstes

172

SAP@Web Studio und ITS

3. Erstellen Sie im SAPlogon einen Eintrag ITS-Debugger, der sich am AGate anmeldet. Das AGate hat nach dem Neustart aufgrund der neuen Registrierungseintrge ein Debugger-Port geffnet, ber das ein SAPGUI sich ber das bliche DIAG-Protokoll am AGate anmelden kann, als wre es ein R/3-Anwendungsserver. ber das Debugger-Port wird diesem SAPGUI jenes Dynpro geliefert, das zur derzeit angezeigten Webseite gehrt. Um die dahinter stehende ABAP-Programmlogik zu prfen, knnen 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-Debugger an: START / PROGRAMME / SAP FRONTEND / SAPLOGON, s. Abbildung 4.91. Tragen Sie unter APPLICATION SERVER die IP-Nummer Ihres AGate-Rechners oder dessen Domainnamen ein.

Erluterung

Schritte

Abbildung 4.91

Anlegen des ITS-Debuggers als Zugang zum AGate ( SAP AG)

4. Verfolgen Sie in dem SAPGUI das Beispiel aus der vorherigen Aufgabe. Stellen Sie fest, welcher Funktionscode nach dem Drcken der ZURCK-Taste geliefert wird. Starten Sie die IAC im Browser, s. Abbildung 4.92 bis Abbildung 4.96. Sie sehen Webseite 100. Starten Sie das SAPGUI ber den Eintrag ITSDebugger. Sie gelangen ohne die bliche Anmeldung direkt zu Dynpro 100. Gehen Sie als Mitarbeiter 1006 im Browser bis zu Webseite 300 fr Kunde 624456. Betrachten Sie dabei auch das SAPGUI, es macht diese Reise ohne Ihr Zutun mit. In Dynpro 300 knnen Sie mit etwas Glck auch die Bltternfunktion des AGates zum Aufbau der Liste beobachten.

Schritte

4.12 WebTransaction mit SAPGUI debuggen

173

SAP@Web Studio und ITS

Abbildung 4.92

Start der IAC im Browser: Webseite 100

Abbildung 4.93

Start der SAPGUIAnmeldung am AGate ( SAP AG)

Abbildung 4.94

Ohne Zwischenstation gelangen Sie direkt zu Dynpro 100. Fllen 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

Drcken Sie dann im Browser die ZURCK-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 nchsten Schritt im Browser (Drucktaste SELEKTIEREN) gelangt das SAPGUI in den Debug-Modus. Im Einzelschrittverfahren knnen Sie nun den Ablauf des ABAP-Programms verfolgen. Dabei knnen Sie einzelne Datenfelder wie OK_CODE und BENOET_SCREEN inspizieren. Gehen Sie schrittweise voran bis zum Erscheinen des nchsten Screens. Erst dann klicken Sie im Browser die Drucktaste CONTINUE, wodurch der Debug-Modus wieder ausgeschaltet wird.
Abbildung 4.97

Drcken Sie bei Webseite 300 die ZURCK-Taste. Das AGate erfhrt von dem Schritt zurck nichts, das SAPGUI bleibt auf Dynpro 300.

Abbildung 4.98

Einschalten des DebugModus in dem SAPGUI bei Dynpro 300 ( SAP AG)

Abbildung 4.99

Die Statuszeile meldet das Einschalten des DebugModus. ( SAP AG)


Abbildung 4.100

Der Browser befindet sich auf der fr das AGate unerwarteten Webseite 200.

4.12 WebTransaction mit SAPGUI debuggen

175

SAP@Web Studio und ITS

Abbildung 4.101

Der Browser meldet nun auch das Einschalten des Debuggers. ( SAP AG)

Abbildung 4.102

Debugger mit Einzelschrittverfahren und Anzeige des OK-Codes: Er beginnt mit AWSY und endet mit der unerwarteten DynproNummer 0200. ( SAP AG)

Abbildung 4.103

Aufruf des FORMUnterprogramms 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.13 Konkatenation und Stringoperatoren


HTMLBusiness enthlt eine Vielzahl von Operatoren und Funktionen. Sie alle zu behandeln wrde den Rahmen dieses Werks sprengen. Als Beispiele werden die Konkatenation das Verbinden von Textfeldern und das Extrahieren von Teilstrings gezeigt. Die restlichen Operatoren finden Sie in der Online-Dokumentation des SAP@Web Studios: HELP / ITS DOCUMENTATION / ITS/SAP@WEB STUDIO / HTMLBUSINESS LANGUAGE REFERENCE, s. Abbildung 4.105.
Abbildung 4.105

Online-Hilfe zur Konkatenation ( SAP AG)

1. ndern Sie Template 300 so ab, dass Vorname und Name konkateniert in einem statt in zwei Feldern erscheinen, s. Abbildung 4.106. Zwischen Vorname und Name fgen Sie ein Komma ein. Konkatenieren Sie auch die Feldbezeichner des Vornamens und des Namens, trennen Sie diese vom Vornamen mit einem Doppelpunkt. Zwei Felder knnen Sie in HTMLBusiness mit dem Operator & konkatenieren. Literale schlieen Sie in Anfhrungszeichen " " ein. Kommentieren Sie die vorhandenen Eingabefelder ZKUNDEN-NAME und ZKUNDEN-VORNAME in Template 300 aus. Ergnzen und publizieren Sie Template 300.
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`

Erluterung Schritte

4.13 Konkatenation und Stringoperatoren

177

SAP@Web Studio und ITS

Abbildung 4.106

Webseite 300 mit konkatenierten Feldern

2. Fgen Sie in die Kundennummer nach der vierten Stelle den Infix DEKRA ein, z. B. 6244-DEKRA-56 fr Stammkunde Jerome Newton, s. Abbildung 4.107.

Erluterung

Die HTMLBusiness-Funktion strsub([Textfeld], [Anfang], [Breite] liefert einen Teilstring aus einem [Textfeld], der bei Position [Anfang] beginnt und [Breite] Stellen umfasst. Kommentieren Sie das vorhandene Bezeichnerfeld von ZKUNDEN-KUNDENNR in Template 300 aus. Ergnzen und publizieren Sie Template 300.
<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`"

Schritte

Abbildung 4.107

Webseite 300: Aus Teilstrings zusammengesetztes Feld

4.14Funktionen if() und mimeURL()


1. Ersetzen Sie in Template 300 die Ausgabe des Emittenten Biotech Emiss. durch BTE, s. Abbildung 4.108. Ersetzen Sie die Ausgabe des Emittenten CompEmm. durch CPE. Markieren Sie die Ersetzungen mittels <em> mit Kursivschrift. Alle anderen Emittenten bleiben unverndert.

178

SAP@Web Studio und ITS

Mit der HTMLBusiness-Funktion if() knnen Sie von logischen Bedingungen abhngige dynamische Ersetzungen von HTML-Code vornehmen. Fr die Bedingungen knnen Sie Vergleichsoperatoren wie == (gleich), != (ungleich), > (grer), < (kleiner), >= (grer oder gleich) und <= (kleiner oder gleich) verwenden. Die Funktion if() hat folgenden Aufbau; elseif() und else sind dabei optional:
`if([Bedingung])` [HTML-Code fr wahre Bedingung] `elseif([geschachtelte Bedingung])` [HTML-Code fr wahre (geschachtelte) Bedingung]` `else` [HTML-Code fr falsche (geschachtelte) Bedingung] `end`

Erluterung

ndern Sie Template 300.


<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>

Schritte

Abbildung 4.108

Ersetzung von Feldern mit der if()-Funktion

4.14 Funktionen if() und mimeURL()

179

SAP@Web Studio und ITS

2. Je nach Anmeldesprache soll auf Webseite 200 entweder die deutsche oder englische Landesflagge als MIME-Objekt erscheinen, s. Abbildung 4.113 bis Abbildung 4.114. Die Graphikdateien greatbritain.gif und germany.gif finden Sie unter http://www.dekraakademie.de/download im Archiv abap.zip.

Erluterung

MIME steht fr Multipurpose Internet Mail Extensions und gewhrleistet eine eindeutige Zuordnung der Dateitypen zu Anwendungen, die diese Dateitypen darstellen knnen. Die Zuordnung erfolgt ber ein Paar Kategorie/Unterkategorie, das zusammen mit der Datei vom Webserver 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 .wavFormat. Der Webbrowser unterhlt eine Liste mit Zuordnungen der MIMETypen zu Anwendungen, die diese Dateien darstellen knnen. 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 HTMLBusiness -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 ~templatelanguage 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. Fgen Sie germany.gif nach de in Ihr Projekt ein mittels KONTEXTMEN DES ORDNERS DE / INSERT / FILE. Entsprechend fgen Sie great-britain.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\mimes\wpbuchung\00\de und ...\en.

180

SAP@Web Studio und ITS

Abbildung 4.109

Landessprachenordner de und en, Einfgen von Graphiken ( SAP AG)


Abbildung 4.110

Deutsche und englische Flaggen in Landessprachenordnern ( 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.

Fgen 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`

In der resultierenden Webseite 200 wird der HTMLBusiness-Code fr die Anmeldesprache DE wie folgt ersetzt:
<img src="/sap/its/mimes/wpbuchung/00/de/flagge.gif">

Fr Anmeldesprache EN wird entsprechend ersetzt:


<img src="/sap/its/mimes/wpbuchung/00/en/flagge.gif">

4.14 Funktionen if() und mimeURL()

181

SAP@Web Studio und ITS

Abbildung 4.113

mimeURL() liefert flagge.gif des Landessprachenordners \de.

Abbildung 4.114

mimeURL() liefert flagge.gif des Landessprachenordners \en.

4.15 HTML-Select mit Daten aus R/3


1. Ersetzen Sie in Template 200 das Auswahllistenfeld (HTML-Select) mit fixen Selektionsoptionen aus Abschnitt 4.7 durch ein Auswahllistenfeld mit dynamischen Selektionsoptionen, die von R/3 aus der Tabelle ZKUNDEN ber die Makros FIELD-SET und FIELD-TRANSPORT in den Benutzerkontext der AGate-Session geliefert werden. Dadurch wird die F4-Hilfe des R/3 in HTML nachgebildet, freilich in einer einfacheren Fassung. Jede Zeile soll die Felder Kundennr, Name, Vorname und Wohnort enthalten. Whlen Sie mittels des optionalen Parameters size=0 ein aufklappbares Auswahllistenfeld, s. Abbildung 4.115.

Erluterung

Mit dem Makro FIELD-SET [name] [index] [value] kann der R/3-Anwendungsserver angewiesen werden, per RFC Felder in den Benutzerkontextspeicher 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. FIELD-SET merkt zunchst nur den Sendevorgang vor, der eigentliche Transport aller Vormerkungen findet aus Performance-Grnden erst mit dem Makro FIELD-TRANSPORT statt.

Beide Makros sind, nebst FIELD-GET, im Standard-Include AVWRTCXM definiert.

182

SAP@Web Studio und ITS

Die in den Kontext bertragenen Felder knnen vom Template in hnlicher Weise wie Steploop-Felder als HTML Business-Platzhalter verwendet werden, allerdings ohne den Zusatz .value. Sie werden unter dem gleichen 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. Ergnzen Sie das Top-Include MZDEPOTnnTOP des Programms SAPMZDEPOTnn um das Include AVWRTCXM und um weitere bentigte Felddefinitionen: eine interne Tabelle fr ZKUNDEN und einen Zhler.
DATA: offset(2) TYPE n, benoet_screen LIKE sy-dynnr. DATA: it_kunden LIKE TABLE OF zkunden, zaehler TYPE i. INCLUDE avwrtcxm.

Schritte

Ergnzen Sie das PBO-Modul status_0200 im Include MZDEPOTnnO01.


SET TITLEBAR '200'. SELECT * FROM zkunden INTO TABLE it_kunden. zaehler = 0. LOOP AT it_kunden INTO zkunden. zaehler = zaehler + 1. field-set 'KUNDENNR' zaehler zkunden-kundennr. field-set 'NAME' zaehler zkunden-name. field-set 'VORNAME' zaehler zkunden-vorname. field-set 'WOHNORT' zaehler zkunden-wohnort. ENDLOOP. field-transport. ENDMODULE. " STATUS_0200 OUTPUT

Ersetzen Sie in Template 200 das aus Abschnitt 4.7 stammende HTMLSelect. Der zu lschende 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

4.15 HTML-Select mit Daten aus R/3

183

<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)`

Nun knnen Sie folgenden Programmcode ergnzen. Publizieren Sie das Template 200.
<!-- <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)`
Abbildung 4.115

Aufklappbares Auswahllistenfeld mit Daten aus R/3

WebRFC und WebReporting

Kapitel 5 WebRFC und WebReporting


WebRFC ermglicht das Aufrufen von Funktionsbausteinen ber einen URL. Es wird hierzu eine RFC-Verbindung zwischen AGate und R/3-Anwendungsserver 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 zurckgegeben wird und von dort aus zum Browser zurckkehrt. Alternativ kann auch ein MIME-Objekt statt der HTML-Seite zurckgegeben werden. Zentraler Funktionsbaustein des WebRFC ist WWW_DISPATCH_REQUEST(). Er ist RFC-fhig und wird mit dem WebRFC-Service aufgerufen. ber den Parameter ~function im URL wird ihm mitgeteilt, an welchen Zielfunktionsbaustein 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 mglich, recht einfach Reports ber das Web zu starten. Im Unterschied zur WebTransaction sind die meisten Reports auch interaktive hierzu geeignet. Allerdings muss die Berechtigungsgruppe in den Programmeigenschaften gepflegt sein, was bei den meisten Reports des R/3-Standards nicht der Fall ist. Fr diese bietet es sich an, sie in den Kundennamensraum zu kopieren und die Berechtigungsgruppe zu pflegen.

185

WebRFC und WebReporting

5.1 WebRFC: WWW_HTML_ECHO()


Der Funktionsbaustein WWW_HTML_ECHO() dient vor allem zum Testen, ob eine WebRFC-Verbindung aufgebaut werden kann. Er empfngt aus dem URL den Query-String und baut aus dessen Name/Wert-Paaren eine HTML-Seite auf, die an den Browser zurckgesendet wird, s. Abbildung 5.5 bis Abbildung 5.6. Der Start dieses Funktionsbausteines erfolgt dadurch, dass beim Aufruf des WebRFC-Services dem URL ~function=WWW_HTML_ECHO mitgegeben wird. Dann erfolgt ber den RFC-fhigen Funktionsbaustein WWW_DISPATCH_REQUEST ein lokaler Aufruf an den Funktionsbaustein WWW_HTML_ECHO(). Dieser muss also nicht RFC-fhig sein. Beim Aufruf werden der URL und Einstellungen aus den Servicedateien in Gestalt des Tabellenparameters QUERY_STRING mitgegeben. Der aufgerufene Funktionsbaustein muss diesen folglich selbst auswerten, um anschlieend eine HTML-Seite ber WWW_DISPATCH_REQUEST an das AGate zurckzuliefern. Vor dem Aufruf muss noch der WebRFC-Service gepflegt und der Funktionsbaustein frs Internet freigegeben werden. 1. Ergnzen Sie Ihr Projekt um den Service webrfct, der mit den Standard-IACs ausgeliefert wird und im AGate zu finden ist. Pflegen Sie die Parameter ~logon, ~password, ~client und ~language ein, s. Abbildung 5.1 bis Abbildung 5.2.

Schritte ffnen Sie das Men PROJECT / ADD TO PROJECT / FILES Ergnzen 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 StandardServicedatei webrfct.srvc ( SAP AG)

Abbildung 5.2

Pflegen der Anmeldedaten in der Servicedatei webrfct.srvc ( SAP AG)

2. Geben Sie den Funktionsbaustein WWW_HTML_ECHO() frs Internet frei.

186

WebRFC und WebReporting

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 anschlieend in der Liste der freigegebenen Funktionsbausteine, s. Abbildung 5.3 bis Abbildung 5.4.
Abbildung 5.3

Freigabe eines Funktionsbausteines fr das Internet ( SAP AG)

Abbildung 5.4

Liste aller fr 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 whlen drfen. Ergnzen und publizieren Sie C:\Inetpub\wwwroot\inhalt.htm.
<a href="/scripts/wgate/wpbuchung!?~language=de &~okcode=LOGIN&BAPIEMPL-PERNR=1006 &BAPIUID-PASSWORD=dekra" target="rechts"> WPBuchung fr PNr 1006 </a><br> <a href="/scripts/wgate/webrfct!?_function=WWW_HTML_ECHO &region=aus Tirol&name=Anton &attribut1=toll&attribut2=schoen" target="rechts"> Hallo Echo</a><br> </body>

Schritte

5.1 WebRFC: WWW_HTML_ECHO()

187

WebRFC und WebReporting

Abbildung 5.5

Start des WebRFCServices mit Aufruf eines Funktionsbausteines

Abbildung 5.6

Rckgabe aller Name/Wert-Paare aus dem URL

5.2 WebReporting: WWW_GET_SELSCREEN()


Der Funktionsbaustein WWW_GET_SELSCREEN() liefert das Selektionsbild des im Eingabeparameter ~REPORT angegebenen ABAP-Reports zurck. Wird beispielsweise ~REPORT=ZKUNDENnn im URL mitgegeben, besorgt sich der Funktionsbaustein das Selektionsbild des Reports und liefert es als HTML-Seite in Form eines Tabellenparameters zurck. Hierzu verwendet er WebReporting-Browser-Templates, die allerdings nicht vom SAP@Web Studio verwaltet werden, sondern in der R/3-Datenbank liegen und vom Webdesigner an eigene Bedrfnisse angepasst werden knnen. Sie enthalten ebenfalls Platzhalter, die allerdings einer anderen Syntax als HTMLBusiness folgen. Der Funktionsbaustein WWW_GET_REPORT() startet den Report mit SUBMIT ... AND RETURN, wobei er Parameter und Selektionsoptionen dem Report bergibt. Das vom Report erzeugte Listenbild wandelt er mit Hilfe der WebReporting-Browser-Templates in eine HTML-Seite um, die ber den ITS dem Anwender zurckgeliefert wird.

188

WebRFC und WebReporting

1. Programmieren Sie fr den Einsatz im WebReporting einen kleinen ABAP-Report ZKUNDENnn, der im Selektionsbild die drei Selektionsoptionen NAME, VORNAME und WOHNORT erfragt und aus der Tabelle ZKUNDEN alle passenden Kunden als Liste ausgibt, s. Abbildung 5.10 bis Abbildung 5.11. Legen Sie den Report als Programm des Typs Ausfhrbares Programm Schritte ohne Top-Include an. Tragen Sie eine Berechtigungsgruppe 1 ein, der Sie angehren (die abgebildete stammt aus dem IDES-Mandanten), s. Abbildung 5.7 bis Abbildung 5.8.
Abbildung 5.7

Anlegen eines Programms ( SAP AG)

Abbildung 5.8

Reports knnen aus Sicherheitsgrnden 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.

5.2 WebReporting: WWW_GET_SELSCREEN()

189

WebRFC und WebReporting

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. ENDLOOP.

Pflegen und aktivieren Sie die Selektionstexte: SPRINGEN / TEXTELEMENTE / SELEKTIONSTEXTE. Starten Sie das Programm mit Funktionstaste (F8), s. Abbildung 5.9 bis Abbildung 5.11.
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)

2. Geben Sie den Report fr das Internet frei.

190

WebRFC und WebReporting

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 fr 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_SELSCREEN() 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. Ergnzen Sie C:\Inetpub\wwwroot\inhalt.htm. Starten Sie die Web- Schritte Transaction vom Browser aus.
<a href="/scripts/wgate/webrfct!?_function=WWW_HTML_ECHO &region=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>
Abbildung 5.13

Selektionsbild des WebReports2

2. Die fehlerhaften Umlaute rhren von einer fehlenden Zeichensatzangabe im Header her, der im Template, das SAP-seitig zur Verfgung gestellt wird, gepflegt werden msste.

5.2 WebReporting: WWW_GET_SELSCREEN()

191

WebRFC und WebReporting

Abbildung 5.14

Ergebnisliste des WebReports ( SAP AG)

4. Erweitern Sie ZKUNDENnn zu einem interaktiven ABAP-Report. Beim Doppelklick auf eine Kundenzeile soll fr jenen Kunden ein Depotauszug in der Verzweigungsliste erscheinen, s. Abbildung 5.18 bis Abbildung 5.20. Der Depotauszug bezieht seine Daten aus dem View ZDEPOT_PAPIERnn. Von jeder Wertpapierposition sollen angezeigt werden: WKN, TITEL, EMITTENT, DEPOTNR und ANZAHL. Starten Sie den interaktiven Report zuerst mit dem SAPGUI, und dann als WebReport.

Zur Anzeige interaktiver WebReports bentigt der Anwender den Internet Explorer, da die hierfr verwendeten JavaScript-Programme in der Webseite nur auf diesen Browser hin ausgelegt sind.

Schritte Ergnzen Sie ZKUNDENnn.


DATA: it_kunden LIKE TABLE OF zkunden, wa_kunden LIKE zkunden. DATA: it_kp LIKE TABLE OF zdepot_papiermu, wa_kp LIKE zdepot_papiermu. 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

wa_kunden-vorname. ENDLOOP. AT LINE-SELECTION. WRITE: 'Depotauszug fr 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 zunchst 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)

5.2 WebReporting: WWW_GET_SELSCREEN()

193

WebRFC und WebReporting

Abbildung 5.17

Verzweigungsliste Depotauszug fr den ausgewhlten 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.3 Ausblick
Mit dem interaktiven WebReport sind Sie am Ende dieses bungsbuches angelangt und verfgen bereits ber fundierte Kenntnisse zur IAC-Programmierung. Nun knnen Sie sich an eigene Webprojekte heranwagen. Von diesem Punkt aus sollten Sie sich auch kontinuierlich in weiterfhrende Themen hineinarbeiten, die aufgrund der Flle des Gebiets in diesem 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, Integration des ITS in eine R/3-Systemlandschaft mit Entwicklungs-, Test- und Produktivsystem Lieferung von MIME-Objekten ber WebRFC HTML-Templates fr WebRFC, SAP-WebRepository und der Funktionsbaustein WWW_HTML_MERGER zum Ersetzen der Platzhalter Administration des ITS, Remote Diagnostics, webbasiertes AdminTool auf einem zweiten (oder virtuellen) Webserver zur berwachung und Verwaltung des ITS Anleitungen hierfr 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 wnschen Ihnen dabei recht viel Spa und Erfolg.

5.3 Ausblick

195

Programmlistings

Anhang A Programmlistings
Die folgenden Listings zeigen den ABAP-, HTML- respektive HTMLBusiness -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-akademie.de/download finden. Sie knnen sich so das Eintippen der Programmtexte durch Kopieren ber die Windows-Zwischenablage ersparen.

A.1 Die eigene Homepage


Einfache HTML-Dateien auf dem Webserver IIS, noch ohne Zugriff auf R/3-Daten. C:\Inetpub\wwwroot\default.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">

Abschnitt 2.1

A.1 Die eigene Homepage

197

Programmlistings

<meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="black" text="green" link="red" link= "indianred">

<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> Schtze! <p><font size="2" color="red"> Damit Ihre Erben auch was zu lachen haben! </font></p> </body> </html>

Abschnitt 2.2 C:\Inetpub\wwwroot\default.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>

198

Programmlistings

<h2> Herzlich Willkommen </h2> <h5> Die <b> clevere </b> Depotverwaltung</h6> <p> Wir <!-- Kommentar, ist unsichtbar --> verwalten <em> Ihre </em> Schtze! <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>

A.1 Die eigene Homepage

199

Programmlistings

Abschnitt 2.3 C:\Inetpub\wwwroot\default.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</h6> <p> Wir <!-- Kommentar, ist unsichtbar --> verwalten <em> Ihre </em> Schtze! <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

<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>

C:\Inetpub\wwwroot\default.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>

Abschnitt 2.4

A.1 Die eigene Homepage

201

Programmlistings

Wir <!-- Kommentar, ist unsichtbar --> verwalten <em> Ihre </em> Schtze! <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> knnen.</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"> <img src="dekra-logo.gif" width=182 height=55></a>.</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$</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>

202

Programmlistings

</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> Zurck zur <a href="default.htm"> Homepage </a></p> </body> </html>

A.1 Die eigene Homepage

203

Programmlistings

Abschnitt 2.5 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>

204

Programmlistings

<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> Schtze! <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> knnen.</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">

A.1 Die eigene Homepage

205

Programmlistings

<img src="dekra-logo.gif" width=182 height=55></a>.</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$</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>

206

Programmlistings

A.2 WebTransaction: Erste Fassung


In den Programmtexten wurde der bungsgruppen-Platzhalter nn Namenskonvention durch mu ersetzt. Modulpool SAPMZDEPOTnn nach Anlegen aller Dynpros Modulpool SAPMZDEPOTnn, Rahmenprogramm
INCLUDE mzdepotmutop. * INCLUDE MZDEPOTMUO01 * INCLUDE MZDEPOTMUI01 * INCLUDE MZDEPOTMUF01 INCLUDE mzdepotmuo01. INCLUDE mzdepotmui01.

Abschnitt 3.2 bis 3.6.3

Modulpool SAPMZDEPOTnn, Dynpro 100


PROCESS BEFORE OUTPUT. MODULE status_0100. * PROCESS AFTER INPUT. CHAIN. FIELD: bapiempl-pernr, bapiuid-password. MODULE user_command_0100. ENDCHAIN.

Modulpool SAPMZDEPOTnn, Dynpro 200


PROCESS BEFORE OUTPUT. MODULE status_0200. * PROCESS AFTER INPUT. MODULE user_command_0200.

Modulpool SAPMZDEPOTnn, Dynpro 300


PROCESS BEFORE OUTPUT. LOOP. MODULE steploop_zeile_fuellen.

A.2 WebTransaction: Erste Fassung

207

Programmlistings

ENDLOOP. MODULE status_0300. MODULE trans_to_0300. PROCESS AFTER INPUT. FIELD kaufpos MODULE user_command_0300. LOOP. ENDLOOP.

Modulpool SAPMZDEPOTnn, Dynpro 400


PROCESS BEFORE OUTPUT. MODULE status_0400. * PROCESS AFTER INPUT. FIELD kaufanzahl. MODULE user_command_0400.

Modulpool SAPMZDEPOTnn, Top-Include MZDEPOTnnTOP


PROGRAM sapmzdepotmu TABLES: zdepot, zkunden. TABLES: zdepot_papiermu. DATA: it_kp LIKE TABLE OF zdepot_papiermu, wa_kp LIKE zdepot_papiermu. DATA: ok_code LIKE sy-ucomm, save_ok LIKE ok_code. TABLES: bapiempl, bapiuid. DATA: ret LIKE bapireturn. DATA: ind LIKE sy-stepl, erstezeile LIKE sy-stepl, pos LIKE sy-stepl, kaufpos TYPE i, kaufanzahl LIKE zdepotpstn-anzahl, zukauf TYPE c. DATA: offset(2) TYPE n, benoet_screen LIKE sy-dynnr. .

Modulpool SAPMZDEPOTnn, PBO-Include MZDEPOTnnO01

208

Programmlistings

MODULE status_0100 OUTPUT. SET PF-STATUS '100'. SET TITLEBAR '100'. ENDMODULE. MODULE status_0200 OUTPUT. SET PF-STATUS '200'. SET TITLEBAR '200'. ENDMODULE. " STATUS_0200 OUTPUT " STATUS_0100 OUTPUT

MODULE steploop_zeile_fuellen OUTPUT. ind = erstezeile + sy-stepl - 1. pos = ind. READ TABLE it_kp INTO wa_kp INDEX ind. IF sy-subrc <> 0. EXIT FROM STEP-LOOP. ELSE. MOVE-CORRESPONDING wa_kp TO zdepot_papiermu. ENDIF. ENDMODULE. MODULE trans_to_0300 OUTPUT. SELECT SINGLE * FROM zkunden WHERE kundennr = zdepot-kundennr. ENDMODULE. MODULE status_0300 OUTPUT. SET PF-STATUS '300'. SET TITLEBAR '300'. ENDMODULE. MODULE status_0400 OUTPUT. SET PF-STATUS '400'. SET TITLEBAR '400'. ENDMODULE. " STATUS_0400 OUTPUT " STATUS_0300 OUTPUT " TRANS_TO_0300 OUTPUT " STEPLOOP_ZEILE_FUELLEN OUTPUT

A.2 WebTransaction: Erste Fassung

209

Programmlistings

Modulpool SAPMZDEPOTnn, PAI-Include MZDEPOTnnI01


MODULE user_command_0100 INPUT. save_ok = ok_code. CLEAR ok_code. CASE save_ok. WHEN 'LOGIN'. CALL FUNCTION 'BAPI_EMPLOYEE_CHECKPASSWORD' EXPORTING number = bapiempl-pernr

password = bapiuid-password IMPORTING return 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 = ret

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

210

Programmlistings

INTO CORRESPONDING FIELDS OF TABLE it_kp WHERE kundennr = zdepot-kundennr. LEAVE TO SCREEN 300. ENDCASE. ENDMODULE. " USER_COMMAND_0200 INPUT

MODULE user_command_0300 INPUT. save_ok = ok_code. CLEAR ok_code. CASE save_ok. WHEN 'BACK'. LEAVE TO SCREEN 200. 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. ENDCASE. ENDMODULE. " USER_COMMAND_0300 INPUT

MODULE user_command_0400 INPUT. save_ok = ok_code.

A.2 WebTransaction: Erste Fassung

211

Programmlistings

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 wkn anzahl EXCEPTIONS not_found lock_error = 1 = 2 = wa_kp-depotnr = wa_kp-wkn = wa_kp-anzahl

update_error = 3 OTHERS 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'. = 4.

212

Programmlistings

WHEN 4. MESSAGE e000(su) WITH 'Unbekannter Fehler aufgetreten'. ENDCASE. COMMIT WORK. ENDCASE. ENDMODULE. " USER_COMMAND_0400 INPUT

Verbuchungsfunktionsbaustein der WebTransaction 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 NOT_FOUND LOCK_ERROR UPDATE_ERROR

*" EXCEPTIONS

*"----------------------------------------------------------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

A.2 WebTransaction: Erste Fassung

213

Programmlistings

depotnr wkn * * * * * X_DEPOTNR X_WKN _SCOPE _WAIT _COLLECT EXCEPTIONS foreign_lock OTHERS IF sy-subrc <> 0. RAISE lock_error. ELSE.

= depotnr = wkn = ' ' = ' ' = '2' = ' ' = ' ' = 1 = 3.

system_failure = 2

zdepotpstn-anzahl = anzahl. UPDATE zdepotpstn. success = sy-subrc. CALL FUNCTION 'DEQUEUE_EZDEPOTPSTN' EXPORTING mode_zdepotpstn = 'E' mandt depotnr wkn * * * * * x_depotnr X_WKN _SCOPE _SYNCHRON _COLLECT EXCEPTIONS OTHERS IF success NE 0. RAISE update_error. ENDIF. ENDIF. ENDIF. ENDFUNCTION. = 1. = sy-mandt = depotnr = wkn = ' ' = ' ' = '3' = ' ' = ' '

214

Programmlistings

A.3 Projekt wpbuchung: Erste Fassung


Die Templates zu den Dynpros 100, 200, 300, 400 liefert der TemplateWizard des SAP@Web Studios aus den Dynpro-Definitionen heraus, sie werden dem Projekt wpbuchung hinzugefgt. Service wpbuchung, Template zu Dynpro 100: sapmzdepotnn_100_ de.html
<html> <head> <meta name="GENERATOR" content="SAP WebStudio HTMLBusiness Designer 4.6D"> <title>`~windowtitle`</title> </head> <body> `~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=text 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>

Abschnitt 4.1 bis 4.2

A.3 Projekt wpbuchung: Erste Fassung

215

Programmlistings

Service wpbuchung, Template zu Dynpro 200: sapmzdepotnn_200_de. html


<html> <head> <title>`~windowtitle`</title> </head> <body> `~messageline` <form method="post" action="`wgateurl()`"> <p> `'%#AUTOTEXT001'.label` <p> `ZDEPOT-KUNDENNR.label` <input type=text name="`ZDEPOT-KUNDENNR.name`" value="`ZDEPOT-KUNDENNR.value`" maxlength="010" size="010"> `assert(ZDEPOT-KUNDENNR.name)` <p> <input type=submit name="~okcode=SELECT" value="`BUTTON_SELECT.label`"> </form> </body> </html>

Service wpbuchung, Template zu Dynpro 300: sapmzdepotnn_300_de. html


<html> <head> <title>`~windowtitle`</title> </head> <body> `~messageline` <form method="post" action="`wgateurl()`"> <p> `'%#AUTOTEXT001'.label` <p>

216

Programmlistings

`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>

A.3 Projekt wpbuchung: Erste Fassung

217

Programmlistings

<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>

Service wpbuchung, Template zu Dynpro 400: sapmzdepotnn_400_de. html


<html> <head> <title>`~windowtitle`</title> </head> <body> `~messageline` <form method="post" action="`wgateurl()`"> <p> `'%#AUTOTEXT001'.label` <p> `ZKUNDEN-KUNDENNR.label` `ZKUNDEN-KUNDENNR.value` `'%#AUTOTEXT002'.label` `WA_KP-WKN.value` <p> `ZKUNDEN-NAME.label` `ZKUNDEN-NAME.value` `'%#AUTOTEXT003'.label` `WA_KP-TITEL.value` <p> `ZKUNDEN-VORNAME.label` `ZKUNDEN-VORNAME.value` `'%#AUTOTEXT004'.label`

218

Programmlistings

`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>

A.3 Projekt wpbuchung: Erste Fassung

219

Programmlistings

A.4 WebTransaction: Letzte Fassung


Anmerkung Gegenber der ersten Fassung wurde Programmcode zum Synchronisieren der ZURCK-Taste des Browsers (OK-Code AWSY...) und zum Setzen von Kontextfeldern im AGate (FIELD-SET, FIELD-TRANSPORT) ergnzt.

Namens- In den Programmtexten wurde der bungsgruppen-Platzhalter nn konvention durch mu ersetzt. Abschnitt 4.11 bis 4.15
Modulpool SAPMZDEPOTnn nach Anlegen aller Dynpros Modulpool SAPMZDEPOTnn, Rahmenprogramm
INCLUDE mzdepotmutop. * INCLUDE MZDEPOTMUO01 * INCLUDE MZDEPOTMUI01 * INCLUDE MZDEPOTMUF01 INCLUDE mzdepotmuo01. INCLUDE mzdepotmui01. INCLUDE MZDEPOTMUF01.

Modulpool SAPMZDEPOTnn, Dynpro 100


PROCESS BEFORE OUTPUT. MODULE status_0100. * PROCESS AFTER INPUT. CHAIN. FIELD: bapiempl-pernr, bapiuid-password. MODULE user_command_0100. ENDCHAIN.

Modulpool SAPMZDEPOTnn, Dynpro 200


PROCESS BEFORE OUTPUT. MODULE status_0200. *

220

Programmlistings

PROCESS AFTER INPUT. MODULE user_command_0200.

Modulpool SAPMZDEPOTnn, Dynpro 300


PROCESS BEFORE OUTPUT. LOOP. MODULE steploop_zeile_fuellen. ENDLOOP. MODULE status_0300. MODULE trans_to_0300. PROCESS AFTER INPUT. FIELD kaufpos MODULE user_command_0300. LOOP. ENDLOOP.

Modulpool SAPMZDEPOTnn, Dynpro 400


PROCESS BEFORE OUTPUT. MODULE status_0400. * PROCESS AFTER INPUT. FIELD kaufanzahl. MODULE user_command_0400.

Modulpool SAPMZDEPOTnn, Top-Include MZDEPOTnnTOP


PROGRAM sapmzdepotmu TABLES: zdepot, zkunden. TABLES: zdepot_papiermu. DATA: it_kp LIKE TABLE OF zdepot_papiermu, wa_kp LIKE zdepot_papiermu. DATA: ok_code LIKE sy-ucomm, save_ok LIKE ok_code. TABLES: bapiempl, bapiuid. DATA: ret LIKE bapireturn. DATA: ind LIKE sy-stepl, erstezeile LIKE sy-stepl, pos LIKE sy-stepl, .

A.4 WebTransaction: Letzte Fassung

221

Programmlistings

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.

Modulpool SAPMZDEPOTnn, PBO-Include MZDEPOTnnO01


MODULE status_0100 OUTPUT. SET PF-STATUS '100'. SET TITLEBAR '100'. ENDMODULE. MODULE status_0200 OUTPUT. SET PF-STATUS '200'. SET TITLEBAR '200'. SELECT * FROM zkunden INTO TABLE it_kunden. zaehler = 0. LOOP AT it_kunden INTO zkunden. zaehler = zaehler + 1. field-set 'KUNDENNR' zaehler zkunden-kundennr. field-set 'NAME' zaehler zkunden-name. field-set 'VORNAME' zaehler zkunden-vorname. field-set 'WOHNORT' zaehler zkunden-wohnort. ENDLOOP. field-transport. ENDMODULE. " STATUS_0200 OUTPUT " STATUS_0100 OUTPUT

MODULE steploop_zeile_fuellen OUTPUT. ind = erstezeile + sy-stepl - 1. pos = ind. READ TABLE it_kp INTO wa_kp INDEX ind. IF sy-subrc <> 0. EXIT FROM STEP-LOOP.

222

Programmlistings

ELSE. MOVE-CORRESPONDING wa_kp TO zdepot_papiermu. ENDIF. ENDMODULE. MODULE trans_to_0300 OUTPUT. SELECT SINGLE * FROM zkunden WHERE kundennr = zdepot-kundennr. ENDMODULE. MODULE status_0300 OUTPUT. SET PF-STATUS '300'. SET TITLEBAR '300'. ENDMODULE. MODULE status_0400 OUTPUT. SET PF-STATUS '400'. SET TITLEBAR '400'. ENDMODULE. " STATUS_0400 OUTPUT " STATUS_0300 OUTPUT " TRANS_TO_0300 OUTPUT " STEPLOOP_ZEILE_FUELLEN OUTPUT

Modulpool SAPMZDEPOTnn, PAI-Include MZDEPOTnnI01


MODULE user_command_0100 INPUT. save_ok = ok_code. CLEAR ok_code. CASE save_ok. WHEN 'LOGIN'. CALL FUNCTION 'BAPI_EMPLOYEE_CHECKPASSWORD' EXPORTING number = bapiempl-pernr password = bapiuid-password IMPORTING return EXCEPTIONS OTHERS = 1. = ret

IF ret-type IS INITIAL.

A.4 WebTransaction: Letzte Fassung

223

Programmlistings

LEAVE TO SCREEN 200. ELSE. MESSAGE ID 'SU' TYPE ret-type NUMBER 000 WITH ret-code ret-message. ENDIF. WHEN 'BACK'. LEAVE PROGRAM. WHEN OTHERS. PERFORM backbutton. ENDCASE. ENDMODULE. " USER_COMMAND_0100 INPUT

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. WHEN OTHERS. PERFORM backbutton. ENDCASE. ENDMODULE. " USER_COMMAND_0200 INPUT

MODULE user_command_0300 INPUT. save_ok = ok_code. CLEAR ok_code. CASE save_ok. WHEN 'BACK'. LEAVE TO SCREEN 200.

224

Programmlistings

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

MODULE user_command_0400 INPUT. save_ok = ok_code. 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.

A.4 WebTransaction: Letzte Fassung

225

Programmlistings

CALL FUNCTION 'Z_DEPOTPSTNMU_ANZAHL' EXPORTING depotnr wkn anzahl EXCEPTIONS not_found lock_error = 1 = 2 = wa_kp-depotnr = wa_kp-wkn = wa_kp-anzahl

update_error = 3 OTHERS 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. MESSAGE e000(su) WITH 'Unbekannter Fehler aufgetreten'. ENDCASE. COMMIT WORK. WHEN OTHERS. PERFORM backbutton. ENDCASE. ENDMODULE. " USER_COMMAND_0400 INPUT = 4.

226

Programmlistings

Verbuchungsfunktionsbaustein der WebTransaction 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 depotnr wkn * * X_DEPOTNR X_WKN = sy-mandt = depotnr = wkn = ' ' = ' '

A.4 WebTransaction: Letzte Fassung

227

Programmlistings

* * *

_SCOPE _WAIT _COLLECT EXCEPTIONS foreign_lock

= '2' = ' ' = ' ' = 1

system_failure = 2 OTHERS 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 depotnr wkn * * * * * x_depotnr X_WKN _SCOPE _SYNCHRON _COLLECT EXCEPTIONS OTHERS IF success NE 0. RAISE update_error. ENDIF. ENDIF. ENDIF. ENDFUNCTION. = 1. = sy-mandt = depotnr = wkn = ' ' = ' ' = '3' = ' ' = ' ' = 3.

228

Programmlistings

A.5 Projekt wpbuchung: Letzte Fassung


Die Templates zu den Dynpros 100, 200, 300, 400 gehren zum Projekt wpbuchung. Gegenber der ersten Fassung wurden sie durch Weglassung der Endungen _de zu sprachunabhngigen Templates, die auf Sprachressourcendateien zurckgreifen. Eine Vielzahl an HTMLBusiness-Code wurde ergnzt, vorhandener Code wurde auskommentiert. Auf dem Webserver wurde inhalt.htm um eine Reihe von Hyperlinks mit URLs zum IAC-Start ergnzt; default.htm blieb unverndert. 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>

Abschnitt 4.4 bis 4.15

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">

A.5 Projekt wpbuchung: Letzte Fassung

229

Programmlistings

</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 fr PNr 1006 </a><br> <a href="/scripts/wgate/webrfct!?_function=WWW_HTML_ECHO &region=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>

Service wpbuchung, Template zu Dynpro 100: sapmzdepotnn_100.html


<html> <head> <meta name="GENERATOR" content="SAP WebStudio HTMLBusiness Designer 4.6D"> <meta name="GENERATOR"

230

Programmlistings

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>

Service wpbuchung, Template zu Dynpro 200: sapmzdepotnn_200.html


<html> <head> <meta name="GENERATOR" content="SAP WebStudio HTMLBusiness Designer 4.6D"> <title>`~windowtitle`</title> </head>

A.5 Projekt wpbuchung: Letzte Fassung

231

Programmlistings

<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>

Service wpbuchung, Template zu Dynpro 300: sapmzdepotnn_300.html


<html> <head> <meta name="GENERATOR" content="SAP WebStudio HTMLBusiness Designer 4.6D">

232

Programmlistings

<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>

A.5 Projekt wpbuchung: Letzte Fassung

233

Programmlistings

<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

</body> </html>

Service wpbuchung, Template zu Dynpro 400: sapmzdepotnn_400.html


<html> <head> <meta name="GENERATOR" content="SAP WebStudio HTMLBusiness Designer 4.6D"> <title>`~windowtitle`</title> </head> <body> `~messageline` <form method="post" action="`wgateurl()`"> <p> `'%#AUTOTEXT001'.label` <p> `ZKUNDEN-KUNDENNR.label` `ZKUNDEN-KUNDENNR.value` `'%#AUTOTEXT002'.label` `WA_KP-WKN.value` <p> `ZKUNDEN-NAME.label` `ZKUNDEN-NAME.value` `'%#AUTOTEXT003'.label` `WA_KP-TITEL.value` <p> `ZKUNDEN-VORNAME.label` `ZKUNDEN-VORNAME.value` `'%#AUTOTEXT004'.label` `WA_KP-EMITTENT.value` <p> `ZKUNDEN-WOHNORT.label` `ZKUNDEN-WOHNORT.value` `'%#AUTOTEXT005'.label` `WA_KP-DEPOTNR.value` <p>

A.5 Projekt wpbuchung: Letzte Fassung

235

Programmlistings

`'%#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

</body> </html>

Deutsche Sprachressourcendatei wpbuchung_de.htrc


welcome Willkommen zur Wertpapierbuchung ende WebTransaction beenden!

Englische Sprachressourcendatei wpbuchung_en.htrc


welcome Welcome to deposit account booking ende The End of WebTransaction!

Globale Servicedatei global.srvc


~routestring ~messageserver ~logingroup ~systemname ~appserver ~systemnumber ~client ~login ~password ~language ~timeout ~usertimeout ~theme ~runtimemode ~cookies ~urlarchive ~urlimage ~urlmime ~exiturl ~clientcert 60 60 99 pm 1 /scripts/sapawl.dll /sap/its/graphics /sap/its/mimes http://www.dekra-kl.de/homepage.htm 1 T53 CPQ5508 00 403 itsadm des26(a99fe9b937ad2d8a)

A.5 Projekt wpbuchung: Letzte Fassung

237

Programmlistings

~hostunsecure ~portunsecure ~hostsecure ~portsecure ~xgateways ~xgateway

www.dekra-kl.de 80 www.dekra-kl.de 443 sapdiag,sapxgwfc,sapxginet,sapxgbc sapdiag

A.6 WebRFC und WebReporting


Abschnitt 5.1 bis 5.2
Die Login-Daten in der Servicedatei fr WebRFC wurden gepflegt, und es wurde ein Beispielreport frs WebReporting angelegt. Die abschlieende Fassung der Entwicklungsklasse ZIACnn mit der Transaktion ZDEPOTnn und dem Report ZKUNDENnn wurde in den Transport T53K900016 gesichert, der hnlich wie fr die Entwicklungsklasse ZDEKRA beschrieben ins R/3 transportiert werden kann. Der Transport liegt in Form der beiden Dateien R900016.T53 und K900016.T53 vor. Sie befinden sich im Archiv abap.zip, das unter http://www.dekra-akademie.de/download erhltlich ist. Dort finden Sie auch die Datei ziacmu.txt mit der Objektliste des Transportes. Servicedatei webrfct.srvc
~login ~password ~rfcDetailedError ~xgateway ~language itsadm dekra 1 sapxgwfc.dll DE

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

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 fr 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.

A.7 Heraufladen der Transportdateien


Der Report ZTPUPLOAD ldt die beiden Transportdateien R900006.LNX und K900006.LNX vom Pfad C:\TR_WPDV\ des Prsentationsservers ins Transportverzeichnis des Anwendungsservers. Dies erspart das mhsame Anlegen von Tabellen, Datenelementen und Domnen fr das

A.7 Heraufladen der Transportdateien

239

Programmlistings

bungsszenario, so wie dies in bung 1.5 Alternative 1 beschrieben wurde. Weitere Beschreibungen finden sich in dem Archiv abap.zip.

zu Anhang B: Report ZTPUPLOAD Transport


REPORT ZTPUPLOAD. * Download Dateien vom Prsentationsserver zum * R/3-Transportverzeichnis TYPES: BEGIN OF IT_TYPE, ZEICHEN TYPE X, END OF IT_TYPE. DATA ITAB TYPE TABLE OF IT_TYPE. DATA WA TYPE IT_TYPE. DATA PATH(50). DATA LAENGE TYPE I. DATA DIRNAME(75) TYPE C. PARAMETERS BINFILE1(50) LOWER CASE. PARAMETERS BINFILE2(50) LOWER CASE. 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 FILETYPE * ITEM = ' ' = 'C:\TR_WPDV\R900006.LNX' = 'bin' = ' '

240

Programmlistings

* * * * * * * * *

FILEMASK_MASK FILEMASK_TEXT FILETYPE_NO_CHANGE FILEMASK_ALL FILETYPE_NO_SHOW LINE_EXIT USER_FORM USER_PROG SILENT IMPORTING FILESIZE

= ' ' = ' ' = ' ' = ' ' = ' ' = ' ' = ' ' = ' ' = 'S' = LAENGE = = =

* * *

CANCEL ACT_FILENAME ACT_FILETYPE TABLES DATA_TAB EXCEPTIONS CONVERSION_ERROR INVALID_TABLE_WIDTH INVALID_TYPE NO_BATCH UNKNOWN_ERROR OTHERS

= ITAB = 1 = 2 = 3 = 4 = 5 = 7.

GUI_REFUSE_FILETRANSFER = 6

IF SY-SUBRC <> 0. WRITE: / 'Datei vom Prsentationsserver 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, 'Lnge', LAENGE,

A.7 Heraufladen der Transportdateien

241

Programmlistings

'erfolgreich gespeichert'. ENDIF. ENDIF. * Das Gleiche fr binfile2 CALL FUNCTION 'UPLOAD' EXPORTING * CODEPAGE FILENAME FILETYPE * * * * * * * * * * ITEM FILEMASK_MASK FILEMASK_TEXT FILETYPE_NO_CHANGE FILEMASK_ALL FILETYPE_NO_SHOW LINE_EXIT USER_FORM USER_PROG SILENT IMPORTING FILESIZE * * * CANCEL ACT_FILENAME ACT_FILETYPE TABLES DATA_TAB EXCEPTIONS CONVERSION_ERROR INVALID_TABLE_WIDTH INVALID_TYPE NO_BATCH UNKNOWN_ERROR OTHERS IF SY-SUBRC <> 0. = 1 = 2 = 3 = 4 = 5 = 7. = ITAB = LAENGE = = = = ' ' = 'C:\TR_WPDV\K900006.LNX' = 'bin' = ' ' = ' ' = ' ' = ' ' = ' ' = ' ' = ' ' = ' ' = ' ' = 'S'

GUI_REFUSE_FILETRANSFER = 6

242

Programmlistings

WRITE: / 'Datei vom Prsentationsserver 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, 'Lnge', LAENGE, 'erfolgreich gespeichert'. ENDIF. ENDIF.

A.7 Heraufladen der Transportdateien

243

Transport

Anhang B Transport
Als Alternative zum aufwndigen Anlegen der Dictionary-Objekte fr 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-Akademie GmbH: http://www.dekra-akademie.de/download. Kopieren Sie die beiden Transportdateien mittels des Reports ZTPUPLOAD, den Sie ebenfalls in diesem Archiv finden, in das Transportverzeichnis des R/3-Anwendungsservers. Fhren Sie den Transport durch. Das Transportwesen ist eine komplexe Spezialdisziplin innerhalb der Erluterung R/3-Basis; bei Transporten treten immer wieder Konflikte auf. Whlen Sie diese Alternative B nur, wenn Sie zumindest auf Rat und Hilfe eines im Transportwesen erfahrenen Administrators zurckgreifen knnen. Der Transport besteht aus den Dateien K900006.LNX und R900006.LNX. Sie enthalten die Entwicklungsklasse ZDEKRA, die alle bentigten Domnen, Datenelemente, Tabellen, deren Fremdschlsselbeziehungen sowie den Report ZDATINS enthlt. Die Datei zdekra.txt enthlt eine hierarchische Liste der enthaltenen Objekte. Das gezeigte Verfahren kann auch verwendet werden, um die Transporte
T53K900013 respektive T53K900016, die Sie ebenfalls im Archiv abap.zip finden, zum Transport der Entwicklungsklasse ZIACMU mit der WebTransaction ZDEPOTMU durchzufhren. Die Datei ziacmu.txt, die auch im Archiv

abap.zip zu finden ist, enthlt die Objektlisten beider Transporte.

245

Transport

Schritte Speichern Sie die beiden Transportdateien im Ordner C:\TR_WPDV.


ffnen Sie die Datei ztpupload.txt. Markieren Sie den ganzen Text ab der zweiten Zeile, und nehmen Sie ihn in die Zwischenablage mit B EARBEITEN / KOPIEREN. Starten Sie WERKZEUGE / ABAP WORKBENCH / BERSICHT / OBJECT NAVIGATOR. Legen Sie den Report ZTPUPLOAD als Objekt in der lokalen Entwicklungsklasse an, s. Abbildung B.1 bis Abbildung B.7.
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

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

Transport

Abbildung B.7

Einfgen des Programmcodes aus der Zwischenablage, Aktivieren des Reports ( SAP AG)

Kontrollieren Sie zum besseren Verstndnis in einem zweiten Modus den Transportpfad Ihres R/3-Anwendungsservers durch Start der Transaktion AL11: Eingabe von /NAL11 in das Kommandofeld, s. Abbildung B.8. Die Zieldateipfade fr die Transportdateien lauten z. B. auf dem R/3-Anwendungsserver CPQ5508: \\CPQ5508\sapmnt\trans\data\R900006.LNX, s. Abbildung B.12 \\CPQ5508\sapmnt\trans\cofiles\K900006.LNX, s. Abbildung B.14
Abbildung B.8

Dateisystempfad des Transportverzeichnisses ( SAP AG)

Starten Sie nun den Report, der die beiden Transportdateien ins Transportverzeichnis des R/3-Anwendungsservers bertrgt, s. Abbildung B.9 bis Abbildung B.14.

248

Transport

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

Prfung der Dateibertragung mit Transaktion /NAL11 / DIR_TRANS / DATA ( SAP AG)

Abbildung B.13

bertragen der zweiten Transportdatei vom lokalen Pfad ( SAP AG)

Abbildung B.14

Prfung der Dateibertragung mit Transaktion /NAL11 / DIR_TRANS / COFILES ( SAP AG)

249

Transport

Fhren Sie nun den Transport durch: WERKZEUGE / ADMINISTRATION / TRANSPORT / TRANSPORT MANAGEMENT SYSTEM, s. Abbildung B.15 bis Abbildung B.26. Der Name des Transportauftrages LNXK900006 setzt sich zusammen aus dem Systemnamen LNX, K9 und der fortlaufenden Nummer 00006.
Abbildung B.15

Transportmanagementsystem ( SAP AG)

Abbildung B.16

Importbersicht ( SAP AG)

Abbildung B.17

Importqueue: ZUSTZE / WEITERE AUFTRGE / ANHNGEN ( SAP AG)

Abbildung B.18

Anhngen des Transportauftrages ( SAP AG)

250

Transport

Abbildung B.19

Anhngen des Transportauftrages besttigen ( 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 mssen fr einen erfolgreichen Transport weitere IMPORT OPTIONEN aktiviert werden. Vorheriger Testimport ist empfehlenswert. ( SAP AG)

251

Transport

Abbildung B.23

Transport besttigen ( SAP AG)

Abbildung B.24

Nach dem Transport: Prfen des Transporterfolges ( SAP AG)

Abbildung B.25

Transportprotokolle zur Prfung des Transporterfolges ( SAP AG)

252

Transport

Abbildung B.26

Die Protokolle listen detailliert alle Aktivitten und deren Erfolg auf. Der Import erfolgt in mehreren Schritten (Steps). ( SAP AG)

Ein Return-Code von 0 bedeutet, dass keine Fehler aufgetreten sind, Return-Code 4 zeigt Warnungen an, die aber meist ignoriert werden knnen. Hhere Returncodes stellen Fehlermeldungen dar, der Transport ist dann nicht vollstndig durchgefhrt worden. Ab Return-Code 12 oder hher wurde der Transport sogar ganz abgebrochen. Nach dem Transport sind die Entwicklungsklasse ZDEKRA, der Report ZDATINS und alle zugehrigen Tabellen wie ZKUNDEN, Datenelemente wie Z_KUNDENNR und Domnen wie Z_NR angelegt. Fllen Sie die Tabellen mit dem Report ZDATINS. Die Anleitung zum Fllen der Tabellen mit dem Report ZDATINS finden Schritte Sie am Ende des Abschnitts 1.5.

253

Stichwortverzeichnis

Stichwortverzeichnis
/NEX 162 <!-- 60 </html> 60 <a href= 74 <body> 60, 64 <em> 60, 177 <font size= 66 <form 140 <form method= 140 <frameset 78 <h1> 60 <h2> 60 <h5> 66 <head> 60 <html> 60 <img src= 67 <li> 76 <meta http-eqiv= 64 <meta name= 63 <p> 66 <table> 72 <td> 72 <th> 72 <title> 60 <tr> 72 <ul> 76 ~exiturl 162 Datenbanktabelle 51 Datenelement 50 Debugger 170 Debugger-Port 172 Debug-Modus 172, 174 default.htm 61 Dekra 45 DEKRA-Akademie 245 Demo-R/3-System 14 DF-Netzwerk 17 DIAG-Protokoll 26, 172 DNS 24 Domain Name Service 24 Domain Name System 24 Domne 49 Dynpro 87, 101

E
Effekten Kontors 45 Einzelschrittverfahren 174 else 178 elseif() 178 Entwicklerschlssel 13, 14 Entwicklungsklasse 85

F
FIELD 93 FIELD-SET 181 FIELD-TRANSPORT 181 Frame 77 Fremdschlssel 52, 53 function 185 Funktionsbaustein 120, 187 Funktionsgruppe 119

A
action="..." 141 Admin Enabled 170 AGate 25 AGate-Session 181 Aktivieren 49 align 72 nderungsauftrag 46 nderungstransaktion 118 Ankreuzfeld 159 Anmeldesprache 155 Apache Webserver 19 Application Gate 25 Archiv abap.zip 245 assert 142 audio/mpeg 179 audio/wav 179 Aufzhlung 74 Ausnahme 121 Auswahlknopfgruppe 158 Auswahllistenfeld 160 AVWRTCXM 181 AWSY 167

G
Grafik 67 GUI-Status 91

H
hidden 159 hosts-Datei 24 HTML 43, 59 HTMLBusiness-Schleife 151 HTML-Eingabefeld 157 HTML-Select 160, 181 HTTP-Header 141 Hyperlink 74

I
IAC 9 IAC-Package 28 IAC-Start 148 IDES 16 if() 177 IIS 18 image/gif 179 image/jpeg 179 interaktiver WebReport 192 Internet Application Component 9 Internet Transaction Server 13, 25 Internet-Anwendungskomponente 81, 133 Internetbenutzer 16, 83, 98 Internetdienste-Manager 21 Internetfreigabe 187, 191 Internetzugang 17 IP-Adresse 21 iPlanet Webserver 19 ISAPI-Schnittstelle 141 IT-Ausstattung 13 ITS 13, 25, 31 ITSADM 26 ITSadm 29 ITS-Administrator 29 ITS-Benutzergruppe 29

B
BAPI_EM PLOYEE_CHECKPASSWORD 92 BAPIEMPL-PERNR 85 BAPI-Funktionsbaustein 83 BAPIUID-PASSWORD 85 Beispieldaten 56 Benutzerkontext 142 Benutzerkontextspeicher 181 Berechtigungsgruppe 185 Bltterfunktion des Dynpro-Steploops 148 Blttern 114 Browser 16 Browser-Vorschau 139 Browser-Zurck-Taste 167 Business Object Builder 99 Business-Objekt 98 Cache 67 CGI-Schnittstelle 141 CHAIN 93 Checkbox 159

255

Stichwortverzeichnis
ITS-Debugger 172 ITSuser 30

K
Kennwort-BAPI 83 Kennwortfeld 158 Konkatenation 176

L
Landesflagge 179 language 165 Lehrgang 85 Linux Test-Drive 14, 37, 84, 87, 91, 93, 94, 98 Literal 176

M
messageline 142 Metainformationen 63 MIME 179 MIME-Objekt 179, 185 mimeURL() 177, 180, 181 Modulpool 85 mySAP.com 15

Sperrobjekt 118, 119 Sprachressourcendatei 153 Sprachschlssel 154 sprachunabhngige Templates 152 Text integrieren 152 Standard-IAC 36 Start der IAC ber Hyperlink 147 Steploop 111 Stringoperatoren 176 synchrone V1-Verbuchung 120 Synchronisation 82, 167 Synchronisationsfunktionscode 168

T
Tabelle 72 templatelanguage 179 Templates 137 Template-Wizard 137 text/html 179 text/plain 179 Textelement 156 Theme 134, 136, 143 Top-Include 85, 90 Transport 46, 82, 130

N
Nachrichtenklasse 95 name 179 Name/Wert-Paare 141, 185 Namenskonflikt 85 Namenskonvention 85 Netscape Enterprise Server 18 Neustart des ITS-Dienstes 170 NSAPI 25

U
bersetzung 156 bungsgruppe 85 bungsszenario 45 Uniform Resource Locator 24 UPDATE 122 URL 24, 140

O
Object Navigator 48 OK-Code 166, 167 OkCode 162, 164 okcode 165 Online-Store 36

V
Verbuchungsfunktionsbaustein 118, 119 View 101 Vorwrtsnavigation 169

P
password 157 PlatinGUI 15 post-Methode 141 Primrschlssel 53 Projekt 134 Proxy-Einstellungen des Browsers 21 Proxy-Server 17 Prftabelle 52, 53 Publizieren 146

W
Web Gate 25 Webbrowser 16 Webdesign und Internet 44 WebReporting 185, 188 WebReporting Repository 187, 191 WebReporting-Browser-Templates 188 WebRFC 185 webrfct 186 Webserver 16 Website 18 definieren 144 publizieren 144 WebTransaction 81, 133 Wertpapierdepotverwaltung 45 WGate 25, 147 wgateURL() 163 wgateurl() 141, 142 Windows 2000 13 Windows NT 4.0 13 windowtitle 142 Winzip 43 Workbench Organizer 46 World Wide Web 13 WWW 13 WWW_DISPATCH_REQUEST() 185 WWW_GET_SELSCREEN() 188 WWW_HTML_ECHO() 186

Q
QUERY_STRING 186

R
R/3-System 14 Radiobuttons 158 Red Hat 15 Registrierdatenbank 170 repeat with 151 REPORT 188 Report 55 Resource-Wizard 153 RFC-Verbindung 185

S
Sambar Webserver 18, 19 SAP@Web 133 SAP@Web Studio 41 SapguiDebuggerPort 171 SAPlogon 172 SAP-Men 46 SAP-Transaktion 95 SELFHTML 43 Service 134 beenden 162 Servicedatei 143 global.srvc 134 Sessionspeicher 142 Shareware 43 Single-Host-Installation 25

Z
Zurck-Taste 82

256

Copyright
Daten, Texte, Design und Grafiken dieses eBooks, sowie die eventuell angebotenen eBook-Zusatzdaten sind urheberrechtlich geschtzt. Dieses eBook stellen wir lediglich als Einzelplatz-Lizenz zur Verfgung! Jede andere Verwendung dieses eBooks oder zugehriger Materialien und Informationen, einschliesslich der Reproduktion, der Weitergabe, des Weitervertriebs, der Platzierung im Internet, in Intranets, in Extranets anderen Websites, der Vernderung, des Weiterverkaufs und der Verffentlichung bedarf der schriftlichen Genehmigung des Verlags. Bei Fragen zu diesem Thema wenden Sie sich bitte an: mailto:info@pearson.de

Zusatzdaten
Mglicherweise liegt dem gedruckten Buch eine CD-ROM mit Zusatzdaten bei. Die Zurverfgungstellung dieser Daten auf der Website ist eine freiwillige Leistung des Verlags. Der Rechtsweg ist ausgeschlossen.

Hinweis
Dieses und andere eBooks knnen Sie rund um die Uhr und legal auf unserer Website

(http://www.informit.de)

herunterladen

También podría gustarte