09.03.2013 Aufrufe

Migration Assistent Forms nach APEX / D - Trivadis

Migration Assistent Forms nach APEX / D - Trivadis

Migration Assistent Forms nach APEX / D - Trivadis

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Schlüsselworte:<br />

<strong>Migration</strong> <strong>Assistent</strong> <strong>Forms</strong> <strong>nach</strong> <strong>APEX</strong><br />

<strong>Forms</strong>, <strong>APEX</strong>, <strong>Migration</strong><br />

Einleitung<br />

Dr. Gudrun Pabst<br />

<strong>Trivadis</strong> GmbH<br />

München<br />

Vielfach wird die Frage gestellt, welche Alternativen es zu <strong>Forms</strong> gibt. Mit der Version 3.2<br />

von <strong>APEX</strong> stellt Oracle einen <strong>Assistent</strong>en zur Verfügung, um <strong>Forms</strong>-Anwendungen <strong>nach</strong><br />

<strong>APEX</strong> zu migrieren. Im folgenden wird beschrieben, welcher Anteil einer <strong>Forms</strong>-Anwendung<br />

migriert wird, wo Nacharbeit erforderlich ist und in welchen Fällen der Einsatz sinnvoll ist.<br />

Aufsetzen der Umgebung<br />

Bei der <strong>Migration</strong> werden die Module der <strong>Forms</strong>-Anwendung als XML-Dateien bzw.<br />

Textdateien in das <strong>APEX</strong>-Repository geladen und gegenüber dem Datenbank-Schema<br />

ausgewertet. Daher sind zuerst ein paar Vorarbeiten nötig:<br />

Die Object Libraries, Menus, Reports und <strong>Forms</strong>-Module der <strong>Forms</strong>-Anwendung müssen<br />

in XML konvertiert werden, die Library-Module müssen als Textdateien gespeichert<br />

werden.<br />

In <strong>APEX</strong> muss ein Workspace angelegt werden, der auf dem Schema der <strong>Forms</strong>-<br />

Anwendung basiert.<br />

Sind diese Vorarbeiten durchgeführt, kann mit der <strong>Migration</strong> begonnen werden.<br />

Nach dem Anmelden am Workspace findet man auf der rechten Seite in der Link-Liste den<br />

Link „Application <strong>Migration</strong>s“:<br />

1


Dieser Link führt auf die Seite der <strong>Migration</strong>sprojekte. Hier muss mit „Create Project“ ein<br />

<strong>Migration</strong>sprojekt angelegt werden:<br />

Um ein <strong>Migration</strong>sprojekt anzulegen, muss man den Namen und den Typ des Projekts (<strong>Forms</strong><br />

oder Access) festlegen. Dabei wird auch bereits das erste <strong>Forms</strong>-Modul hochgeladen.<br />

Im nächsten Schritt oder <strong>nach</strong> Abschluss des Wizard können weitere Dateien hochgeladen<br />

werden.<br />

Nachdem sämtliche Dateien der <strong>Forms</strong>anwendung in das <strong>APEX</strong>-Repository geladen sind,<br />

zeigt die Liste der <strong>Migration</strong>sprojekte eine Übersicht über die Komponenten der <strong>Forms</strong>-<br />

Anwendung:<br />

2


Unter der Überschrift „Application“ ist noch kein Eintrag vorhanden; hier wird später der<br />

Name der Applikation erscheinen, die aus diesem <strong>Migration</strong>sprojekt erstellt wurde.<br />

Überprüfung der globalen Einstellungen<br />

Ein Klick auf den Projektnamen führt auf eine Seite, die eine detailliertere Übersicht über die<br />

Komponenten der einzelnen Module liefert:<br />

Die Einträge in der Liste ergeben sich wie folgt:<br />

„Blocks“ ist die Anzahl der Blöcke im <strong>Forms</strong>-Modul.<br />

„DB Blocks“ ist die Anzahl der Blöcke im <strong>Forms</strong>-Modul, deren Property „Database<br />

Block“ auf „Yes“ steht. Dies muss also nicht wirklich die Anzahl der Datenbank-<br />

Blöcke wiedergeben.<br />

„Items“, „Triggers“, „Record Groups“, „List of Values“, „Alerts“ und „Program Units“ ist<br />

die Anzahl der entsprechenden Objekte im <strong>Forms</strong>-Modul.<br />

„Component Count“ gibt die Anzahl der Komponenten im hochgeladenen <strong>Forms</strong>-Modul<br />

an.<br />

„Completed Components“ wird ermittelt als die Anzahl der Komponenten, für die<br />

entweder das „Complete“-Kennzeichen auf „Yes“ gesetzt ist oder das „Applicable“-<br />

Kennzeichen auf „No“.<br />

„Percent Complete“ gibt aufgrund der Anzahl der „Completed Components“ an, wie weit<br />

das <strong>Forms</strong>-Modul migriert ist.<br />

Damit die Prozentzahl für den <strong>Migration</strong>sfortschritt aussagekräftig ist, müssen die<br />

„Applicable“-Kennzeichen korrekt gesetzt sein. Diese Kennzeichen können global gesetzt<br />

werden (dabei werden die einzelnen Kennzeichen überschrieben!) oder einzeln für jede<br />

Komponente. Da die globale Einstellung die lokale Einstellung überschreibt, ist es sinnvoll,<br />

zunächst die globale Einstellung so zu treffen, dass für die meisten Komponenten der korrekte<br />

Wert hinterlegt ist, und da<strong>nach</strong> nur noch die Sonderfälle einzeln abzuändern.<br />

Zum Setzen der globalen Einstellung gibt es rechts von der Checkliste unter „Tasks“ den Link<br />

„Edit Project Details and Applicability“. Der Link öffnet eine Seite, auf der die „Applicable“-<br />

Kennzeichen für Komponententypen und für Trigger gesetzt werden können.<br />

Für die Komponententypen sieht dies folgendermaßen aus:<br />

3


Für Trigger gibt es nicht nur die Einstellung in dieser Liste, sondern es kann für jeden<br />

Trigger-Typ gezielt eingestellt werden, wie das Kennzeichen gesetzt werden soll:<br />

Leider ist die Liste nicht komplett. Es fehlt z.B. der Trigger „PRE-POPUP-MENU“, der mit<br />

der Einstellung „Applicable=Yes“ übernommen wird.<br />

4


Überprüfung der analysierten Objekte<br />

Sind die globalen Einstellungen korrekt gesetzt, werden die einzelnen Komponenten der<br />

Module geprüft. Ein Klick auf den Modulnamen führt zu einer Liste der Komponenten des<br />

Moduls sowie der geplanten Umsetzung in einer <strong>APEX</strong>-Anwendung:<br />

Komponenten ohne Eintrag unter „Equivalent Component“ werden nicht automatisch<br />

umgesetzt. Hat „Applicable“ für derartige Komponenten den Wert „Yes“, muss manuell für<br />

die Umsetzung gesorgt werden.<br />

Für „Blocks“ ist eine Umsetzung als „Region“ vorgesehen. Es sind drei Blöcke vorhanden,<br />

aber nur einer ist als „Included“ aufgelistet. Klickt man auf den Link „Blocks“, können auch<br />

die anderen beiden Blöcke aufgenommen werden in die Menge der Objekte, die beim<br />

Erstellen der Applikation umgesetzt werden:<br />

Der Wert unter „Title“ ist immer der Blockname – hier sind daher im allgemeinen<br />

Anpassungen nötig!<br />

Ein Klick auf den Blocknamen führt zur Detailansicht des Blocks. Hier können die<br />

„Annotations“ des Blocks bearbeitet werden:<br />

5


Diese „Annotations“ sind für alle Komponenten vorhanden und identisch aufgebaut.<br />

In diesem Bereich kann ein von der Vorgabe abweichendes „Applicable“-Kennzeichen<br />

hinterlegt werden. Für die manuellen Nacharbeiten können ein Bearbeiter, Notizen und Tags<br />

eingetragen werden. Ist die Komponente komplett migriert, wird das „Complete“-<br />

Kennzeichen auf „Yes“ gesetzt.<br />

In der Detailansicht des Blocks sind außerdem die Items und die Trigger des Blocks<br />

aufgelistet. Über den Namen des Item oder Trigger gelangt man zu deren „Annotations“.<br />

Erstellen der Anwendung aus dem <strong>Migration</strong>sprojekt<br />

Sind alle Einstellungen getroffen, wird mit dem Button „Create Application“ auf der<br />

Übersichtsseite des <strong>Migration</strong>sprojekts das Erstellen der Applikation gestartet. Der <strong>Assistent</strong><br />

fragt zunächst <strong>nach</strong> dem Namen der Applikation. Da<strong>nach</strong> wird ein Vorschlag für die<br />

Applikation erstellt:<br />

Als Seitennamen werden hier die Titel der Blöcke verwendet – wurde der Blocktitel vorher<br />

nicht geändert, werden hier die Namen der Blöcke benutzt!<br />

6


An dieser Stelle sind aber noch Korrekturen möglich: Durch einen Klick auf das „X“ in der<br />

Spalte „Delete Page“ können Seiten gelöscht werden; über den Link im Seitennamen werden<br />

die detaillierten Einstellungen der Seite angezeigt und können teilweise geändert werden:<br />

Erstellte Anwendung<br />

Wird die erstellte Anwendung gestartet, sieht sie folgendermaßen aus:<br />

Jede erstellte, aufrufbare Seite ist durch ein Icon dargestellt. Hat man die Icons nicht<br />

abgeändert, zeigt das Icon den Typ der Seite an.<br />

Umsetzung einiger häufiger Modul-Varianten:<br />

7


<strong>Forms</strong> <strong>APEX</strong> Anmerkung<br />

Formular / Multi-<br />

Record-Formular auf<br />

einer Tabelle<br />

Master-Detail<br />

Formular auf zwei<br />

Tabellen<br />

Master-Detail<br />

Formular auf<br />

mindestens einer DB-<br />

View<br />

Master mit 2 Details:<br />

Formular auf drei<br />

Tabellen<br />

Umsetzung einiger Item-Typen:<br />

Formular / tabellarisches<br />

Formular auf einer<br />

Tabelle<br />

Master-Detail Formular<br />

auf zwei Tabellen, ggf.<br />

mit zusätzlichem<br />

tabellarischem Formular<br />

für die Detail-Daten<br />

Zwei völlig von einander<br />

unabhängige Seiten<br />

Drei völlig von einander<br />

unabhängige Seiten<br />

Für Multi-Record-Formulare werden alle<br />

Spalten der Tabelle übernommen, auch<br />

diejenigen, die im <strong>Forms</strong>-Modul<br />

vorhanden sind<br />

Das tabellarische Formular für die Detail-<br />

Daten muss i.a. beim Erstellen der<br />

Applikation aus der Liste der<br />

vorgeschlagenen Seiten gelöscht werden.<br />

<strong>Forms</strong> <strong>APEX</strong> Anmerkung<br />

Button im Single-<br />

Record-Formular<br />

Button<br />

Button im Multi-<br />

Record-Formular<br />

Der Button wird nicht übernommen.<br />

Check Box Check Box<br />

Text Item Textitem<br />

Text Item mit LOV, Popliste Die LOV wird als List of Values in<br />

DB-Item<br />

<strong>APEX</strong> umgesetzt und zum Füllen der<br />

Popliste verwendet.<br />

Text Item mit LOV,<br />

kein DB-Item<br />

Text Item Die LOV wird nicht umgesetzt.<br />

Popliste Popliste Wird die Popliste dynamisch gefüllt,<br />

muss der Code zum Füllen der Liste<br />

manuell als List of Values in <strong>APEX</strong><br />

übertragen werden.<br />

Zusammenfassung<br />

Die Arbeit mit dem <strong>Migration</strong>swizard erfordert umfangreiche Vorarbeiten: Konvertieren der<br />

<strong>Forms</strong>-Module in eine XML-Darstellung und Hochladen der einzelnen Module.<br />

Die Analyse-Funktion des <strong>Migration</strong>sprojekts liefert dann eine sehr gute Übersicht über den<br />

Umfang der <strong>Forms</strong>-Anwendung. Mit der Checklisten-Funktion der Liste ist auch der<br />

<strong>Migration</strong>sfortschritt gut überwachbar.<br />

8


Der in den <strong>Forms</strong>-Modulen enthaltene Code muss manuell umgesetzt werden; dies bedeutet<br />

unter Umständen viel Nacharbeit.<br />

Der Zusammenhang zwischen einzelnen Seiten, die aus demselben <strong>Forms</strong>-Modul<br />

hervorgegangen sind, muss manuell hergestellt werden.<br />

Leider übernimmt der Wizard in Multi-Record-Formularen nicht nur die in den <strong>Forms</strong>-<br />

Modulen verwendeten Spalten in die neuen Seiten, sondern er fügt auch alle anderen Spalten<br />

der Tabelle hinzu.<br />

Die bisher durchgeführten Schritte konnten keineswegs so reibungslos durchgeführt werden<br />

wie hier beschrieben. Der <strong>Migration</strong>sassistent hat noch einige Bugs und einige Probleme mit<br />

Modulen, die in der normalen <strong>Forms</strong>-Praxis durchaus üblich sind (siehe oben: Umsetzung von<br />

Master-Detail-Formularen auf Views).<br />

<strong>Forms</strong>-Anwendungen, die aus einfachen Formuleren, tabellarischen Formularen oder Master-<br />

Detail-Formularen mit nur zwei Tabellen bestehen, setzt der <strong>Migration</strong>swizard einigermaßen<br />

gut um.<br />

Enthält eine <strong>Forms</strong>-Anwendung viel Code, sind umfangreiche Nacharbeiten zu erwarten:<br />

Code für Layout muss für den Einsatz im Web umgestaltet werden, andere Codeteile müssen<br />

entweder in <strong>APEX</strong> übernommen und angepasst werden oder in die Datenbank ausgelagert.<br />

Fazit<br />

In der aktuellen Version des <strong>Migration</strong> <strong>Assistent</strong> kann er gut verwendet werden, um eine<br />

<strong>Forms</strong>-Anwendung zu analysieren und den Arbeitsfortschritt zu dokumentieren. Das Erstellen<br />

einer Applikation aufgrund der hochgeladenen <strong>Forms</strong>-Module ist allerdings an vielen Stellen<br />

nicht wunschgemäß und daher nur mit viel Nacharbeit verwendbar. Nur die einfachsten<br />

<strong>Forms</strong>-Module können <strong>nach</strong> der <strong>Migration</strong> fast unverändert verwendet werden; bereits für die<br />

etwas komplexeren Module empfiehlt sich, die <strong>APEX</strong>-Seiten selbst zu erstellen.<br />

Kontaktadresse:<br />

Name<br />

Dr. Gudrun Pabst<br />

<strong>Trivadis</strong> GmbH<br />

Lehrer-Wirth-Straße 4<br />

D-81829 München<br />

Telefon: +49(0)89-99 27 59 30<br />

Fax: +49(0)89-99 27 59 59<br />

E-Mail gudrun.pabst@trivadis.com<br />

Internet: http://www.trivadis.com<br />

9

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!