Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Michael S. Umlauff
eBook
Die nicht autorisierte Weitergabe dieses eBooks ist eine Verletzung des Urheberrechts!
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
59
60 67 72 74 77
81
83 85 98 101 109 118 119 119 124
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
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
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
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.
16
Installation R/3-Internet-Software
Abbildung 1.1
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
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-
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-
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.
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
19
Installation R/3-Internet-Software
Abbildung 1.4
Abbildung 1.5
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
20
Installation R/3-Internet-Software
Abbildung 1.7
Abbildung 1.8
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.
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
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
22
Installation R/3-Internet-Software
1
;
Abbildung 1.11
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
23
Installation R/3-Internet-Software
Abbildung 1.14
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
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
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
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
Abbildung 1.20
27
Installation R/3-Internet-Software
Abbildung 1.21
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)
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
Abbildung 1.25
Abbildung 1.26
29
Installation R/3-Internet-Software
Abbildung 1.27
Legen Sie die Benutzergruppe ITSUSER an: SYSTEMSTEUERUNG / BENUTZER UND KENNWRTER / ERWEITERT, s. Abbildung 1.28 bis Abbildung 1.31
Abbildung 1.28
Abbildung 1.29
Abbildung 1.30
30
Installation R/3-Internet-Software
Abbildung 1.31
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.
31
Installation R/3-Internet-Software
Abbildung 1.32
Abbildung 1.33
Abbildung 1.34
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
Abbildung 1.38
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
Abbildung 1.41
Fr bungszwecke gengt ein AGate. Mehrere AGates knnen zur Lastverteilung eingesetzt werden. ( 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)
35
Installation R/3-Internet-Software
Abbildung 1.47
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
36
Installation R/3-Internet-Software
Der ITS wurde als Dienst installiert: SYSTEMSTEUERUNG / VERWALTUNG / Schritte DIENSTE, s. Abbildung 1.50.
Abbildung 1.50
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
Abbildung 1.52
37
Installation R/3-Internet-Software
Abbildung 1.53
Abbildung 1.54
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
Abbildung 1.59
Abbildung 1.60
39
Installation R/3-Internet-Software
Abbildung 1.61
Abbildung 1.62
Abbildung 1.63
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)
41
Installation R/3-Internet-Software
Abbildung 1.66
Abbildung 1.67
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
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.
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
44
Installation R/3-Internet-Software
Abbildung 1.71
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.
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.
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
Abbildung 1.74
47
Installation R/3-Internet-Software
Abbildung 1.75
Abbildung 1.77
48
Installation R/3-Internet-Software
Abbildung 1.78
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
Abbildung 1.80
Beim erstmaligen Anlegen eines Entwicklungsobjektes wird der Entwicklerschlssel abgefragt. ( SAP AG)
49
Installation R/3-Internet-Software
Abbildung 1.81
Pflege des Formats und der Ausgabeeigenschaften der Domne ( SAP AG)
Abbildung 1.82
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
Abbildung 1.85
7. Legen Sie in hnlicher Weise die fehlenden Datenelemente an. Das bungsszenario bentigt folgende Datenelemente:
Datenelement Domne Datenelement Domne
Schritte
8. Legen Sie die Datenbanktabelle ZKUNDEN als Anwendungstabelle (Stamm- und Bewegungdaten) an. Tabellenpflege Dateneingabe mittels des Data Browsers soll erlaubt sein.
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
Abbildung 1.87
Abbildung 1.88
Anlegen der Tabellenfelder; Anlegen eines Feldes als Fremdschlssel ( SAP AG)
Abbildung 1.89
52
Installation R/3-Internet-Software
Abbildung 1.90
Die vorgeschlagene Fremdschlsseldefinition ist korrekt und kann bernommen werden. ( SAP AG)
Abbildung 1.91
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.
53
Installation R/3-Internet-Software
Abbildung 1.93
Abbildung 1.94
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)
54
Installation R/3-Internet-Software
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 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
Abbildung 1.98
55
Installation R/3-Internet-Software
Abbildung 1.99
Abbildung 1.100
Markieren des Programmcodes ab der zweiten Zeile; mit BEARBEITEN / KOPIEREN in die Zwischenablage ( SAP AG)
Abbildung 1.101
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
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.
57
Installation R/3-Internet-Software
Abbildung 1.105
Abbildung 1.106
Nun ist Ihre Systemumgebung inklusive des R/3-Systems komplett eingerichtet, um eine Beispiel-IAC zu entwickeln.
58
59
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
Abbildung 2.1
Legen Sie mit dem Windows-Editor einen HTML-Text an. START / PROGRAMME / ZUBEHR / EDITOR, s. Abbildung 2.2.
Schritte
Abbildung 2.2
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.
61
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
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
62
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.
63
<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.
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
Abbildung 2.6
Abbildung 2.7
65
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
66
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
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.
67
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
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
Wenn Sie in Ihrem HTML-Quellcode Dateinamen falsch schreiben, werden die zugehrigen Graphiken nicht gefunden, so wie in Abbildung 2.12.
Abbildung 2.12
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
69
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
70
<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
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.
71
72
Schritte
2. Den fiktiven Wechselkurs DM/Dollar von 2:1 drfen Sie gerne aktualisieren!
73
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.
2. Fgen Sie in vorzuege.htm einen Hyperlink zurck zur Homepage default.htm ein, s. Abbildung 2.18.
74
Abbildung 2.18
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
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
75
4. Fgen Sie in vorzuege.htm eine Aufzhlung mit Lobpreisungen der Vorzge des DEKRA EFFEKTEN KONTORS ein, s. Abbildung 2.20.
Abbildung 2.20
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.
76
Abbildung 2.22
77
Abbildung 2.23
Abbildung 2.24
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.
78
Abbildung 2.25
79
80
81
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
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.
83
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.
Abbildung 3.2
Die Methode Checkpassword (Kennwortprfung) des Business-Objekts EmployeeAbstract (Mitarbeiter) ist als BAPI angelegt. ( SAP AG)
Abbildung 3.3
84
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.
85
Abbildung 3.5
Abbildung 3.6
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
Abbildung 3.8
Abbildung 3.9
Abbildung 3.10
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.
87
3.17.
Abbildung 3.12
Abbildung 3.13
Abbildung 3.14
88
Abbildung 3.15
Abbildung 3.16
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.
89
Abbildung 3.18
Einstellen des Funktionscodes der Drucktaste sowie des OKCodes in der Elementliste ( SAP AG)
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.
90
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)
91
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
Abbildung 3.22
Abbildung 3.23
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
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)
93
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
94
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
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.
95
Abbildung 3.26
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
Abbildung 3.28
Abbildung 3.29
Starten Sie nun die Transaktion, s. Abbildung 3.30 bis Abbildung 3.32.
Abbildung 3.30
97
Abbildung 3.31
Abbildung 3.32
Der Funktionscode BACK der ZURCK-Taste des GUIStatus fhrt zum Programmende. ( SAP AG)
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
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
Abbildung 3.34
99
9. Legen Sie Janine Auermann mit ihrer Personalnummer als Internetbenutzer an.
Abbildung 3.36
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.
100
Abbildung 3.38
Abbildung 3.39
101
Schritte
Abbildung 3.40
Abbildung 3.41
Abbildung 3.42
Abbildung 3.43
Abbildung 3.44
Abbildung 3.45
102
Abbildung 3.46
Abbildung 3.47
Abbildung 3.48
Abbildung 3.49
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.
103
Schritte
Abbildung 3.50
Abbildung 3.51
Abbildung 3.52
Anlegen eines Textfeldes als berschrift sowie eines Eingabefeldes KUNDENNR aus ZDEPOT ( SAP AG)
104
Abbildung 3.53
Abbildung 3.54
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.
105
Abbildung 3.55
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
Abbildung 3.57
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
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
107
Abbildung 3.59
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
Schritte
Abbildung 3.62
Abbildung 3.63
109
Abbildung 3.64
Anlegen eines Textfeldes als berschrift sowie von Eingabefeldern aus ZKUNDEN ( SAP AG)
Abbildung 3.65
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
110
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)
111
Abbildung 3.69
Anordnung der Ausgabefelder von links nach rechts: POS, WKN, TITEL, EMITTENT, DEPOTNR, ANZAHL ( SAP AG)
Abbildung 3.70
Abbildung 3.71
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
len. In Dynpro 400 wird der Wertpapierkauf/-verkauf in der betreffenden Datenbanktabelle verbucht.
Schritte
Abbildung 3.73
Abbildung 3.74
Platzieren des Feldes KAUFPOS, Anlegen Textfeld Pos, Anlegen Drucktaste KAUFEN mit Funktionscode KAUFEN ( SAP AG)
Abbildung 3.75
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
113
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.
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.
114
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).
115
3
Schritte
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
116
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
117
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
Abbildung 3.80
118
Abbildung 3.81
Vorletzte Seite der Liste: Kunde 624456, Jerome Newton, hlt insgesamt 21 Wertpapierpositionen. ( SAP AG)
119
Erluterung
Mit dem Aktivieren werden die Funktionsbausteine ENQUEUE_EZDEPOTPSTN zum Setzen und DEQUEUE_EZDEPOTPSTN zum Freigeben der Sperre angelegt.
Schritte
Abbildung 3.83
Abbildung 3.84
Zuordnen der Tabelle zum Sperrobjekt. Die Transaktion verwendet Schreibsperren. ( SAP AG)
Schritte
Legen Sie in Ihrer Entwicklungsklasse die Funktionsgruppe ZDEPOTnn an, s. Abbildung 3.85 bis Abbildung 3.86.
120
Abbildung 3.85
Abbildung 3.86
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
Abbildung 3.88
Abbildung 3.89
Legen Sie die Importparameter fest, s. Abbildung 3.90. Fr Verbuchungsfunktionsbausteine sind keine Referenzparameter zugelassen, stellen Sie daher Wertbergabe ein.
121
Abbildung 3.90
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
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
*" EXCEPTIONS
122
*"------------------------------------------------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.
123
3
Schritte
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
124
Schritte
Abbildung 3.92
Abbildung 3.93
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.
125
3
Schritte
Abbildung 3.94
Abbildung 3.95
Abbildung 3.96
Einfgen der Felder einer Feldleiste aus dem Programm ( SAP AG)
Abbildung 3.97
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
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
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.
127
Abbildung 3.101
Abbildung 3.102
12.Die PAI-Verarbeitung soll im Falle des Funktionscodes BACK zu Dynpro 300 verzweigen.
Schritte
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
3
Schritte
update_error = 3
129
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
130
Abbildung 3.105
Abbildung 3.106
Die Anzahl dieser Wertpapiere hat sich um 42 Stck erhht. ( SAP AG)
Abbildung 3.107
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
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.
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
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
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
Abbildung 4.2
Abbildung 4.3
Abbildung 4.4
Abbildung 4.5
Abbildung 4.6
Abbildung 4.7
Timeout in Minuten, nach denen eine ITS-Session beendet wird ( SAP AG)
135
Abbildung 4.8
Abbildung 4.9
Abbildung 4.10
Schritte Markieren Sie im SAP@Web Studio den Service wpbuchung. Legen Sie
Thema 00 mit PROJECT / ADD TO PROJECT / THEME an.
Abbildung 4.11
136
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
137
Abbildung 4.12
Abbildung 4.13
Abbildung 4.14
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
Abbildung 4.17
Abbildung 4.18
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.
139
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
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
Tabelle 4.1 : Name/Wert-Paare, die ber das aus Template 100 resultierende Formular
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.
141
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
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
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
143
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
Abbildung 4.24
Abbildung 4.25
144
Abbildung 4.26
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
1. Wegen der Single-Host-Installation ist dies hier der Gleiche wie der Webserver mit dem WGate.
145
2. Publizieren Sie den Service und dessen Templates auf das AGate des ITS.
Abbildung 4.32
Abbildung 4.33
Abbildung 4.34
146
Schritte
Abbildung 4.35
Abbildung 4.36
Abbildung 4.37
Erfolgreicher IAC-Start
Schritte
Abbildung 4.38
147
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.
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
Schritte
Abbildung 4.39
Start des Services wpbuchung mit Webseite 100 ber einen Hyperlink, Anmeldung als Internetbenutzer mit noch sichtbarem Kennwort
Abbildung 4.40
Abbildung 4.41
149
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
Webseite 300, untere Hlfte; Bltternfunktion des Steploops (Seite 1: Pos. 1 bis 10, Seite 2: 11 bis 20, Seite 3: Pos. 21)
Abbildung 4.43
151
Abbildung 4.44
Abbildung 4.45
152
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
Abbildung 4.47
Abbildung 4.48
153
Abbildung 4.49
Abbildung 4.50
Starten Sie den Resource-Wizard erneut fr die Sprache Englisch, s. Abbildung 4.52 bis Abbildung 4.54.
Abbildung 4.52
Abbildung 4.53
Bereits vorhandene Sprachschlssel aus der deutschen Sprachressource werden bernommen. ( SAP AG)
Abbildung 4.54
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
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
Abbildung 4.57
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
155
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
156
Abbildung 4.61
bersetzungen der Textfelder und Drucktasten von Dynpro 100 ( SAP AG)
Abbildung 4.62
bersetzungen der Textfelder und Drucktasten von Dynpro 200 ( SAP AG)
Abbildung 4.64
157
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.
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
<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:
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.
159
Schritte Publizieren Sie Template 400, und starten Sie das IAC neu. Whlen Sie
in Webseite 300 die Position 13.
Abbildung 4.66
160
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
161
Abbildung 4.68
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.
Pflegen Sie die Sprachressourcendateien wpbuchung_de.htrc und wpbuchung_en.htrc fr den Schlssel ende, s. Abbildung 4.69.
162
Abbildung 4.69
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
Abbildung 4.71
163
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
4
Schritte
Abbildung 4.72
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
165
Abbildung 4.74
Abbildung 4.75
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
4
Schritte
Abbildung 4.76
Ermitteln der Feldnamen zur Anmeldung aus der Elementliste ( SAP AG)
Abbildung 4.77
Ermitteln des OK-Codes zur Anmeldung aus der Ablauflogik ( SAP AG)
Direktstart zu Webseite 200 durch Mitgeben aller bentigten Parameter fr Webseite 100 im Hyperlink
167
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
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
169
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
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
170
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
Abbildung 4.85
Abbildung 4.86
Erluterung
171
4
Schritte
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
Abbildung 4.88
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
Abbildung 4.90
172
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
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
173
Abbildung 4.92
Abbildung 4.93
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
Abbildung 4.96
Das SAPGUI wechselt automatisch auf Dynpro 200 mit. ( SAP AG)
174
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
Der Browser befindet sich auf der fr das AGate unerwarteten Webseite 200.
175
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
Abbildung 4.104
Synchronisierung: Wechsel zu Dynpro 200, folgend der unerwartet gesendeten Webseite 200 ( SAP AG)
176
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
177
Abbildung 4.106
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
178
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
Schritte
Abbildung 4.108
179
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
Abbildung 4.109
Abbildung 4.111
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">
181
Abbildung 4.113
Abbildung 4.114
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.
182
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
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
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
185
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
Abbildung 5.2
186
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
Abbildung 5.4
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 ®ion=aus Tirol&name=Anton &attribut1=toll&attribut2=schoen" target="rechts"> Hallo Echo</a><br> </body>
Schritte
187
Abbildung 5.5
Abbildung 5.6
188
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
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.
189
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
Abbildung 5.10
Abbildung 5.11
190
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
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 ®ion=aus Tirol&name=Anton &attribut1=toll&attribut2=schoen" target="rechts"> Hallo Echo</a><br> <a href= "/scripts/wgate/webrfct!?_function=WWW_GET_SELSCREEN &_report=ZKUNDENMU" target="rechts"> Report Kundenliste </a><br> </body>
Abbildung 5.13
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.
191
Abbildung 5.14
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.
192
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
Grundliste Kunden: Mit einem Doppelklick gelangen Sie zur Verzweigungsliste. ( SAP AG)
193
Abbildung 5.17
Abbildung 5.18
Abbildung 5.19
Abbildung 5.20
194
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.
Abschnitt 2.1
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>
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>
199
Programmlistings
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
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>
203
Programmlistings
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
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">
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
207
Programmlistings
ENDLOOP. MODULE status_0300. MODULE trans_to_0300. PROCESS AFTER INPUT. FIELD kaufpos MODULE user_command_0300. LOOP. ENDLOOP.
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
209
Programmlistings
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
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
*" 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
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
215
Programmlistings
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>
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>
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>
219
Programmlistings
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.
220
Programmlistings
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.
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
IF ret-type IS INITIAL.
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.
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
*"--------------------------------------------------------------------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 = ' ' = ' '
227
Programmlistings
* * *
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
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">
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 ®ion=aus Tirol&name=Anton &attribut1=toll&attribut2=schoen" target="rechts"> Hallo Echo</a><br> <a href= "/scripts/wgate/webrfct!?_function=WWW_GET_SELSCREEN &_report=ZKUNDENMU" target="rechts"> Report Kundenliste </a><br> </body> </html>
230
Programmlistings
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>
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>
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>
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>
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>
237
Programmlistings
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.
239
Programmlistings
bungsszenario, so wie dies in bung 1.5 Alternative 1 beschrieben wurde. Weitere Beschreibungen finden sich in dem Archiv abap.zip.
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,
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.
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
245
Transport
Abbildung B.2
Abbildung B.3
246
Transport
Abbildung B.4
Abbildung B.5
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
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
Abbildung B.10
Abbildung B.11
Abbildung B.12
Prfung der Dateibertragung mit Transaktion /NAL11 / DIR_TRANS / DATA ( SAP AG)
Abbildung B.13
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
Abbildung B.16
Abbildung B.17
Abbildung B.18
250
Transport
Abbildung B.19
Abbildung B.20
Abbildung B.21
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
Abbildung B.24
Abbildung B.25
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