Konvertieren von MS-Access zu HTML DB in wenigen Schritten Autor: Heiko Küchler, ciT GmbH DOAGNews Q4_2004 Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere die der Übersetzung, des Nachdrucks, des Vortrags, der Entnahme von Abbildungen und Tabellen, der Funksendung, der Mikroverfilmung oder der Vervielfältigung auf anderen Wegen und der Speicherung in Datenverarbeitungsanlagen, bleiben, bei auch nur auszugsweiser Verwertung, vorbehalten. Eine Vervielfältigung dieses Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Grenzen der gesetzlichen Bestimmungen des Urheberrechtes der Bundesrepublik Deutschland vom 9. September 1965 in der jeweils geltenden Fassung zulässig. Sie ist grundsätzlich vergütungspflichtig. Zuwiderhandlungen unterliegen den Strafbestimmungen des Urheberrechtsgesetzes. ©2004 Einleitung Ein erklärtes Ziel von Oracle ist es, mit HTML DB Kunden im Segment der bisherigen Microsoft Access Anwender zu gewinnen. Ob dieses Vorhaben gelingen kann, dürfte nicht zuletzt davon abhängig sein, inwieweit sich bestehende Microsoft Access Lösungen mit möglichst geringem Anpassungsaufwand, in eine HTML DB-Anwendung übertragen lassen. Der Beitrag soll einen möglichen Lösungsansatz aufzeigen und den einen oder anderen Tipp geben, um das Vorhaben erfolgreich umzusetzen. Die vorhandenen Datenbanklösungen bestehen oftmals aus einer Vielzahl von Tabellen, Abfragen und Formularen. Die Tabellen und Abfragen müssen zunächst einmal in eine Oracle9i/10g Datenbank übertragen werden, bevor die neue HTML DB-Webapplikation die Aufgabe der bisherigen MSAccess Anwendung übernehmen kann. Dazu soll zunächst mit der Oracle9i Migration Workbench eine Übertragung der Microsoft Access Daten in eine Oracle 9.2.0.3 Datenbank durchgeführt werden. Damit schaffen wir die Basis für den Einsatz von HTML DB und erstellen anschließend ein geeignetes Front-End mit HTML DB. Die Ausgangssituation Wir besitzen eine MS-Access 97 Datenbank mit einer ebenfalls in Access erstellten Benutzeroberfläche. Zur besseren Kontrolle des Datenbestandes wurde die Datenhaltung getrennt von Formularen, Abfragen und Berichten gespeichert. Diese Konstellation erfüllt zwar prinzipiell ihren Zweck, stellte sich jedoch bei Erweiterungsversuchen als recht eingeschränkt und wenig flexibel heraus. Als wenig zufriedenstellend sind auch die Anmelde- und Datensicherheit, der Umgang mit größeren Datenmengen sowie der Konfigurationsaufwand für jeden neuen Client zu bewerten. Für uns Grund genug, um unser Microsoft-Access in eine Oracle9i Datenbank zu übertragen. Zur Realisierung der Formulare, Berichte und Auswertungen verwenden wir HTML DB, da der pragmatische Ansatz dieses Produktes, die von uns erwünschte Flexibilität bereitstellt und eine intuitive Benutzerführung bei Anpassungen, Erweiterungen und Administration erlaubt. Datenmigration Beginnen wollen wir mit der Übertragung unseres Datenbestandes. Hierfür verwenden wir die Oracle 9i Migration Workbench. Es gibt natürlich auch andere Wege, um Daten von Microsoft-Access nach Oracle9i zu transferieren, aber mit dem Werkzeug haben wir bislang gute Erfahrungen gesammelt. Die Oracle9i Migrationsworkbench ist ein Oracle-Feature, das zum Download unter www.oracle.com bereitsteht. Neben der Hauptanwendung werden diverse Plug-Ins für die Migration zahlreicher Datenbanksysteme angeboten. Wir installieren die Migration Workbench samt Plug-In für MS- Access. Nach dem Start der Migration Workbench werden wir aufgefordert, die zu migrierende Access- Datenbank, allerdings im XMLFormat, auszuwählen. Diese muss zunächst also in das XML-Format konvertiert werden, bevor wir die Migration fortsetzen können. Das notwendige Werkzeug für diesen Arbeitsschritt wird mit der Installation der Workbench von Oracle mitgeliefert. Dazu starten wir Microsoft-Access und öffnen die Datei omwb97.mde bzw. omwb2000.mde, je nach vorhandener Version Ihrer Access- DB, die Sie im Verzeichnis „omwb\msaccess_exporter\“ unterhalb der Installation ihrer Migration Workbench befindet. ©2004 Wir laden unsere Access–DB im folgenden Dialog und vergeben einen geeigneten Namen für die jetzt zu generierende XML-Datei. Anschließend wechseln wir wieder in die Migration Workbench und wählen die eben erstellte XML-Datei im Feld Microsoft Access XML Data File. Eine kurze Anleitung zu den eben beschriebenen Abläufen befindet sich im aktuellen Schritt 1 unserer Workbench, in dem wir uns gerade befinden. ©2004 Im Folgenden können wir Anpassungen hinsichtlich der zu verwendenden Datentypen vornehmen sowie ein Datenmodell für die jeweilige Zieldatenbank erstellen lassen. Abschließend führt der Assistent das Capturen der Datenbank in die Workbench durch. Dieser Vorgang läuft (in den meisten Fällen in Verbindung mit Microsoft-Access ) reibungslos und wir können im nächsten Schritt mit der Übertragung in unsere Oracle9i Datenbank beginnen. An dieser Stelle können in der Workbench gegebenenfalls noch notwendige Anpassungen manuell vorgenommen werden. Für die Übertragung in eine Oracle DB benötigen wir einen Benutzer mit DBA-Berechtigung, Zielhost, Port und SID. Der Migrationsassistent legt mit dem Namen der ehemaligen Access Anwendung (wenn nicht von uns geändert) in der Oracle9i DB einen eigenen Tablespace, Benutzer und Schema für die zu übertragenden Objekte an. Außerdem können wir wählen, mit oder ohne Tabellendaten zu migrieren. Zusätzlich kann festlegt werden, welche weiteren Schema-Objekte (Sequenzen, Trigger …) mit erstellt werden sollen. Im Anschluss an den Migrationprozess bietet der Assistent noch eine Zusammenfassung und die Möglichkeit, die Tabellen in der ursprünglichen Access-DB zu löschen, um statt dessen über eine ODBC- Verbindung mit dem neu erstellten Oracle Schema zusammen zu arbeiten. Das können wir übergehen, denn wir wollen den Client ja auf der Basis von HTML DB aufbauen. Die Grundlage für den Einsatz von HTML DB wäre nun hergestellt und wir können uns der Erstellung einer geeigneten Applikation zuwenden. HTML DB – Die neue Anwendung HTML DB – das neue Oracle- Werkzeug für die schnelle, effiziente und webbasierte Anwendungsentwicklung. Ein schlankes Tool, dass außer einem Repository in einer bestehenden Oracle Datenbank 9.2.0.2 oder höher ( läuft bei mir auch mit 9.2.0.1 ) und dem Apache- Webserver mit dem Modul mod_plsql für den Verbindungsaufbau zu Oracle, keiner zusätzlichen Installation bedarf. HTML DB offenbart sich als ein sehr intuitives Werkzeug. Die Entwicklung wird unterstützt durch zahlreiche Assistenten und vorbereitete Templates und ermöglicht so einen komfortablen Einstieg in das Produkt. Nach einer kurzen Einarbeitungsphase bewegen wir uns bereits recht sicher in den Komponenten unseres des Appliations Builder sowie der Administration. HTML DB kann natürlich wesentlich mehr, als ein paar Assistenten zum erstellen von Web- Seiten mit Datenbankanbindung ©2004 aufzurufen. Es bestehen vielfältige Möglichkeiten der Erweiterung dieser Funktionalitäten, die HTML DB zu einem äußerst flexiblen und vielseitigen Werkzeug werden lassen. Einen eigenen Workspace für unsere Anwendung Zunächst benötigen wir einen eigenen Arbeitsraum für unsere Anwendung. Für diesen Arbeitsschritt ist es erforderlich, dass wir einen administrativen Zugang zum HTML DB- Repository besitzen. Haben Sie diese Berechtigung nicht, müssen Sie Ihren Administrator damit beauftragen. Für die Anwendung benötigen wir unsere migrierten Daten. Hierzu erstellen wir unseren eigenen Workspace, aufbauend auf dem bereits bestehenden Schema in unserer Oracle Datenbank. Um einen neuen Workspace zu generieren, melden wir uns mit dem Benutzer Admin am Workspace Internal unserer HTML DB-Installation an. Wir gelangen in den administrativen Bereich von HTML DB. Wir wählen den Link neuen Workspace erstellen und vergeben einen geeigneten Namen, hinterlegen eventuell eine kurze Beschreibung und bestätigen den Schritt. Im folgenden Dialog kann ein neues Schema anlegt oder ein vorhandenes verwendet werden. Wir entscheiden uns für das Verwenden eines vorhandenen Schemas und wählen im Feld Schemaname unser vorbereitetes Datenbankschema aus. Anschließend an diesen Schritt ist noch ein Administrator für unseren neuen Workspace zu bestimmen, mit dessen Hilfe dieser verwaltet wird. Noch ein kurzer „Kontrollblick“ auf die Zusammenfassung, und schon kann der Workspace mit Button Provisioning fertig gestellt werden. Die Benutzeroberfläche ©2004 Nun, da wir einen eigenen Workspace besitzen und dieser auch bereits unseren Access- Datenbestand verwaltet, können wir eine ansprechende Oberfläche für die täglichen Aufgaben erstellen. Dazu melden wir uns zunächst am Workspace Internal ab, und an unserem soeben erstellten Workspace mit dem Admin-User an. Wir gelangen in den Development-Bereich von HTML DB. Auf der Startseite angekommen navigieren wir zum Link Application Builder, dem eigentlichen „Herzstück“ von HTML DB. Wir wählen den Link Anwendung erstellen , da wir eine komplett neue Applikation aufbauen möchten. In den folgenden Dialogen begleitet uns ein Assistent durch den Erstellungsprozess unserer Anwendung. Da wir bereits Tabellen in unserem Schema besitzen, fällt unsere Entscheidung zu Gunsten der Auswahl Auf vorhandenen Tabellen basierend. Im folgenden wählen wir den Eigentümer der Tabellen und Views und übernehmen die Objekte, die wir für unsere Anwendung benötigen. An dieser Stelle ist besonders vorteilhaft, dass wir direkt aus den vorhandenen Objekten des Workspace und somit unseres Datenbankschemas wählen können. Durch einen Mausklick auf das kleine Symbol neben dem ersten Textfeld gelangen wir an diese Stelle. Wir bestätigen die getroffene Auswahl und können nun einen Namen für unsere Anwendung eingeben. Zudem ist es an dieser Stelle noch möglich, die Primärschlüssel auf den Berichtsseiten auszublenden und einen Hinweispfad in die Navigation einzubeziehen. Abschließend bestätigen wir unsere Eintragungen und der Assistent generiert uns eine sofort lauffähige Web- Anwendung, basierend auf unserem neu erstellten Oracle- Schema. Wir wählen den Link Ausführen, um unser Werk erstmals zu betrachten. Nach Bestätigung des ebenfalls gleich mit erstellten Anmeldedialogs bestaunen wir unsere erste Applikation mit HTML DB. ©2004 Das war ja für’ s erste nicht schlecht. Wir können von einer zentralen Oberfläche Berichte abrufen, Daten editieren, neue Eintragungen vornehmen und sogar grafische Auswertungen erzeugen. Letztere sind mit Hilfe der Adobe- Viewer- Erweiterung für unseren Web- Browser sogar interaktiv und lassen durch Anklicken des jeweiligen Bereichs der Grafik eine direkte Navigation in den als Basis dienenden Datenbestand zu. In diesem Modus, wir sind ja als Admin des Workspaces angemeldet, besteht außerdem der sofortige Zugriff auf die Entwicklungsumgebung, um direkt aus der Startseite heraus Änderungen und Anpassungen vorzunehmen. Um unsere Anwendung weiter anzupassen haben wir mehrere Möglichkeiten. ©2004 Direkt aus der Anwendung heraus steht uns der Link Bearbeiten – Links anzeigen zur Verfügung, mit dem wir das jeweilige Objekt direkt bearbeiten können. Neben den Links Anwendung bearbeiten und Seite bearbeiten finden wir auch den Link Neu. Damit werden wir unsere Anwendung jetzt um ein zusätzliches Register erweitern. Dieses beinhaltet eine View, die wir beim Erstellen der ersten Anwendung nicht aufgenommen hatten. Nach der Auswahl Neu, erhalten wir eine Darstellung mit mehreren Auswahl-möglichkeiten, abhängig davon, ob ein Navigationsbereich, eine Region oder ein Bericht bzw. Formular erstellt werden soll. Wir entscheiden uns für die Auswahl Komponente. ©2004 Im folgenden Schritt wählen wir das Formular und entscheiden uns schließlich für einen Bericht mit zugehörigem Formular für unsere neue Seite. Im Folgenden werden wir nach dem Eigentümer gefragt und um die Wahl der einzubindenden Tabelle / View gebeten. Sollte dieser Auswahllink einmal nichts anzeigen oder eine Fehlermeldung im Browser- Fenster erscheinen, können wir den Namen der Tabelle oder View auch einfach direkt in das Textfeld eintragen. Jetzt folgen zunächst einige Angaben zum Bericht und dessen Layout, gefolgt von Merkmalen für die Darstellung des zugehörigen Formulars. Daraufhin folgen Einstellungen zur Platzierung der neuen Seite in unserer Anwendung sowie Festlegungen zu Primärschlüsseln. Entscheiden Sie ganz individuell, wo Ihre neue Seite angeordnet werden soll. Abschließend fragt uns der Assistent noch, welche Prozessoptionen auf unserer Seite erscheinen sollen. Wir kontrollieren die abschließende Auflistung der von uns getroffenen Einstellungen. Ist soweit alles OK, lassen wir den Bericht samt zugehörigem Formular generieren. Voller Erwartung starten wir unsere Anwendung und siehe da, es gibt zwei neue Register (je nach Zuordnung vielleicht auch andere Elemente) mit dem Bericht und einem Formular. Wenn wir Berichtsdaten abrufen, finden wir neben jedem Datensatz auch gleich einen Button zum Editieren, mit dem wir direkt in das zugehörige Formular gelangen. Auf diese Weise bietet uns HTML DB eine große Vielfalt an Möglichkeiten zur Anpassung und Erweiterung unserer Anwendung, sowohl wie beschrieben durch den Einsatz von Assistenten und Templates, als auch durch SQL / PL/SQL oder die Verwendung von CSS. Da unserer Anwendung ©2004 Layout-Templates zu Grunde liegen, ist sie natürlich auch problemlos an das Coporate Identity (CI) Ihres Unternehmens anpassbar. Unsere Anwendung wurde also von einer Microsoft-Access Datenbank in eine flexibel erweiterbare Oracle9i oder 10g Datenbank übertragen und besitzt eine browserbasierte Benutzeroberfläche, die keine zusätzliche Client-Installation erfordert (von Browser Plug- Ins für komfortable Diagramme einmal abgesehen). Auch für administrative Aufgaben oder Veränderungen an der Anwendung benötigen wir lediglich einen Browser, was auch bedeutet, dass wir diese Aufgaben von jedem beliebigen Arbeitsplatz aus, erledigen können. Abschließend erstellen wir noch einen User-Namen für „normale“ (weder Administrator noch Developer) Anwender unseres Systems. Weitere Benutzer Verwalten Um unsere Anwendung den Benutzern zur Verfügung zu stellen, legen wir zusätzliche User entsprechend ihrer Aufgaben, mit- bzw. ohne Entwickler-Berechtigung an. Auf der Startseite des HTML DB- Application-Builder finden wir einen Link Verwaltung. Dahinter verbergen sich eine Reihe von Überwachungs-, Log- und Berichtsoptionen sowie die Verwaltung neuer Benutzer. Wir wollen einen neuen Benutzer anlegen der keine Entwickler-Berechtigungen besitzt, sodass er unsere Anwendung nicht verändern kann. Wir folgen dazu dem Assistenten und bestätigen die Eingaben. Anschließend starten wir unsere soeben erstellte Anwendung und melden uns zur Probe mit dem neuen Benutzernamen an. Im Unterschied zu vorherigen Anmeldungen, sollte im unteren Teil unserer Anmeldung die Leiste zum sofortigen Wechsel in den Entwicklungsbereich fehlen. Sollte Sie dennoch vorhanden sein, obwohl der Benutzer keine entsprechende Berechtigung besitzt, ist dies wahrscheinlich auf das Caching-Verhalten Ihres Browsers zurückzuführen. Das Entleeren des Caches (auch eventuell Proxy- Server beachten) oder das Starten der Anwendung von einem anderen Client wird dieses scheinbare Fehlverhalten beheben. ©2004 Nach der Anmeldung stehen dem Benutzer alle Funktionen unserer Anwendung zur Verfügung, allerdings hat er nicht die Möglichkeit, die Anwendung zu ändern. Auf die geschilderte Weise können wir nun unsere Anwendung jederzeit anpassen und somit zeitnah und individuell auf sich ändernde Anforderungen reagieren. Diskussionsforen http://otn.oracle.com http://www.oragis.de Heiko Küchler [email protected] ciT Consulting Innovation Training GmbH ©2004