26.1.07

APEX Dokumentations Modul

Immer mal wieder taucht die Frage nach einer "vernünftigen" Dokumentation auf. Die Funktion "View Application Reports" / "Anwendungsberichte anzeigen" gibt zumindest schonmal eine Übersicht der Objekte.
Oft reicht das aber nicht.

Dieses Dokumentations-Modul (4 Seiten) stellt die wesentlichen Komponenten einer Seite dar und über die "SVG link Map" die Verlinkung der Seiten.

Ich hatte bis heute eine ganz pfiffige Studentin der Wirtschaftsinformatik für 4 Monate als Studien-Praktikantin bei Oracle (hiermit Danke an Melanie Maronde aus Stralsund!), der ich diese Aufgabe übertragen konnte.

Das dann entstandene, generische "Dokumentations Modul" besteht aus 4 Seiten:
1) Seite mit Report basierend auf A) verlinked zu
2) Seite mit Form mit 4 Regions: (siehe Bild oben)
2.1) Region: Form - mit "Page Name" and "FUNKTION" basierend auf A)
2.2) Region: HTML - an SVG basierend auf pl/sql procedure mit grafischer "link map"
2.3) Region: Report basierend on B)
2.4) Region: Report basierend on C)
3.) Seite mit Suchmöglichkeit.
4.) Seite zum Erfassen der Funktionsbeschreibung - ID = Seiten-Nummer der APEX Anwendung - Tabelle "DOKU_PAGE_FUNKTIONEN"

Dann hat man ein ganz smartes "Dokumentations-Modul", dass man überall einsetzen kann und einem den Überblick verschafft, was welcher Entwickler wo getrieben hat.
Vorraussetzung ist etwas Disziplin oder eine "organisatorische Vorgabe" und zwar:
VORGABE 1) Die allgemeine Beschreibung wird in 4.) eingegeben
VORGABE 2) Das Kommentarfeld in den Objekten Seite, Region, Process wird benutzt.

Wir machten extensiven Gebrauch des "Kommentar" Feldes der Objekte und nutzten es wie folgt:

A) Für die Seiten/Pages (--> APEX_APPLICATION_PAGES)
SELECT
p1.PAGE_ID Seite,
p1.PAGE_NAME Name,
p2.FUNKTION
FROM (SELECT PAGE_ID,
PAGE_NAME
FROM APEX_APPLICATION_PAGES
WHERE APPLICATION_ID = &APP_ID.) p1 LEFT JOIN
DOKU_PAGE_FUNKTIONEN p2 ON p1.PAGE_ID = p2.PAGE_ID
order by Seite;
Wie man sieht, legten wir eine neue Tabelle "DOKU_PAGE_FUNKTIONEN" an, da der
View des APEX Data Dictionaries "APEX_APPLICATION_PAGES" die Spalte "Kommentar" nicht enthält und wir eine allgemeine Beschreibung der jeweiligen Seiten haben wollten; wir "jointen" mit dem View "APEX_APPLICATION_PAGES".

B) für die Regionen nutzten wir
SELECT
REGION_NAME Region,
COMPONENT_COMMENT Funktion,
CONDITION_TYPE
FROM APEX_APPLICATION_PAGE_REGIONS

C) für die Prozesse
SELECT
PROCESS_NAME,
PROCESS_POINT,
COMPONENT_COMMENT,
condition_type
FROM APEX_APPLICATION_PAGE_PROC

Wenn ich demnächst Zeit habe, werde ich dieses Modul für das APEX Studio bereitstellen (wenn sie es dann nehmen...) - zur Not hier (;-)
Wer Interesse hat, bitte Kommentar hinterlassen
(E) if you have interest in this module kindly leave a message as comment.

1 Kommentar:

Volker hat gesagt…

Hallo Bernhard,
ich habe selber auch bereits mit der APEX Dokumentationserstellung experimentiert. Aktuell arbeite ich an einer mit BI Publisher erstellten Dokumentation, die man direkt (oder auch offline) aus Apex heraus generieren kann.
Hätte Interesse Deine Doc-Funktion mal zu testen.
Viele Grüße
Volker