Lade...
 

Meta Model

ObjectCrawler

Beschreibung

Classix besitzt durch seine Geschäftsmodellklassen und Datenfelder kein starres Model, somit auch auch keine zentrale Verwaltung der Entitäten und Datenfelder. Um dennoch die im System dynamisch erstellten Objekte, deren Attribute und Beziehungen beschreiben zu können, ist mit diesem Modul ein ObjectCrawler implementiert, der eigenständig die Datenbank durchwandert, Objekte aufsammelt, untersucht, kategorisiert und diese Informationen als Meta-Beschreibung hinterlegt.

Diese Meta-Beschreibungen der Objekte und derer Attribute und Beziehungen können dann hier gepflegt werden.

Bevor man die Suche startet, muss man die Einstellungen für die Suche festlegen, von denen die Geschwindigkeit und die Dauer der Suche abhängt. Die folgenden Einstellungen sind möglich:

Unter den Randbedingungen kann man das maximale Alter der Meta-Infos angeben. Um die Suche zu beschleunigen, werden Meta-Informationen nicht überschrieben und übersprungen, falls sie jünger als das eingestellte Datum sind. Mit Transaktionssplitting gibt man an, nach wie vielen Tranaktionen (Analysen von Meta-Objekten) die Ergebnisse in der Datenbank gespeichert werden. Die maximale Collection-Tiefe gibt an, wie viele Elemente einer M1-, MN-Relation, oder Collection analysiert werden (bei 0 werden alle Elemente einer Collection durchsucht). Die maximale Collection-Tiefe kann die Dauer des Crawling-Vorgangs erheblich beieinflussen, ein Wert von 500, und 5 bei sehr großen Datenbanken, kann dazu führen, schnelle Ergebnisse zu bekommen. Ebenso maßgeblich für die Dauer des Crawlings ist der Parameter Rekursionstiefe (-1 steht für unendliche Tiefe). Die Rekursionstiefe bestimmt, wie weit der Crawler die Referenzen eines Objektes rekursiv untersuchen sollte. Unabhängig von dieser Einstellung führt der ObjectCrawler immer eine Breitensuche aus, d.h. referenzierte Objekte werden erst dann untersucht, nachdem alle Siblings eines Objektes untersucht wurden. Die letzte und wichtigste Option ist der REP-Startindex und dieser besagt, wo sich der Objektcrawler beim Durchsuchen der Datenbank befindet. Der Crawler durchsucht die Datenbank so, dass er von jeder REP ein einzelnes Objekt nimmt und untersucht, damit so schnell wie möglich ein übersichtliches und aussagekräftiges Bild der Datenbank entsteht. Dieser sogenannte REP-Startindex bestimmt den aktuellen (Start)index dieser Objektenentnahme aus den REPs. -1 lässt den Crawler ein zufälliges Element aus jeder REP zu entnehmen, möchte man jedoch einen vollständigen Scan durchführen, so sollte man bei 0 anfangen und die Inkrementierung dieses Wertes beobachten, um zu wissen, wo sich der Crawler im jeweiligen Moment befindet. Wenn dieser Wert die höchste Länge einer REP übersteigt, wird der Crawler automatisch beendet und man hat somit die ganzen REPs untersucht. 

Unter den Laufzeit-Optionen kann man die Crawling-Dauer des Objektcrawlers einschränken. Standardmäßig lässt man den Crawler laufen, bis man ihn stoppt (der Abbrechbutton im Progressbar-Fenster schließt die Suche mit EndTXN ab und somit ist der Button eher ein Stop-Button als ein Abbrech-Button) oder bis er fertig ist. Man kann den Crawler automatisch nach dem ersten Durchlauf beenden, indem man die gleichnamige Option auswählt, oder erst dann, wenn die Warteschlange mit allen REP-Objekten aus dem ersten Durchlauf samt ihren referenzierten Objekten abgearbeitet und leer ist, indem man die entsprechende Option Crawler beenden, wenn Queue leer ist auswählt.

Je nach ausgewählter Option kann man das Verhalten bei Fehlern steuern. Fehler sind in diesem Sinne keine InstantView-Fehler, sondern logische Konsistenz-Fehler in der Datenbank. Es empfiehlt sich, die Option Fehler loggen und weiter machen auszuwählen.

Unter sonstigen Einstellungen kann man diverse Optionen festlegen wie:

ObjectCrawler loggen: alle Operationen des ObjectCrawlers werden in separate Log-Dateien geschrieben. 

Rückreferenzen intelligent verarbeiten: wenn diese Option ausgewählt ist, werden beim Untersuchen von Rückreferenzen gewisse Klassenüberprüfungen durchgeführt, die Fehlern vorbeugen.

Funktionalität

ObjectCrawler

In diesem Fenster werden dem ObjectCrawler die Parameter zum Durchwandern der Datenbank mitgegeben.

Menü
Menüpunkt Beschreibung
Bearbeiten -
: Meta-Objekte anzeigen Ruft die Liste der im System hinterlegten - vom ObjectCrawler gefundenen -  Meta-Objekte auf
: Meta-Access anzeigen Ruft die Liste der im System hinterlegten - vom ObjectCrawler gefundenen - Meta-Access Beschreibungen auf
: Meta-Modell zurücksetzen Löscht das generierte Meta-Modell vollständig aus der Datenbank. D.h. alle Objekte der Klassen CX_META_OBJECT und CX_META_ACCESS werden gelöscht.
Datenaustausch -
: Meta Beschreibungen exportieren Die Benennung der Meta-Access (Datenfelder/Zugriffspfade) Beschreibungen erfolgt manuell oder kann frei erfasst werden. Über diesen Menüpunkt können diese Beschreibungen in eine Excel Datei (*.xlsx) exportiert werden.
: Meta Beschreibungen importieren Die mit dem obigen Menüpunkt zuvor in eine Excel Datei exportieren Meta-Access (Datenfelder/Zugriffspfade) Beschreibungen können in die aktuelle Datenbank importiert werden. Das Importieren erfolgt über zwei Schritte, wobei im ersten Schritt zwei Tabellen mit den Differenzen zum vorhandenen Modell angezeigt werden, eine Tabelle für alle Meta-Objekte und eine Tabelle für alle Meta-Beschreibungen. 

 

Felder
Feld Beschreibung
: Einstellungen -
: : Transaktionssplitting Nachdem die hier vorgegebene Anzahl an Objekten analysiert wurde, erfolgt eine Abfrage, ob der Meta-Crawler stoppen soll. Wird diese Frage nicht oder mit "nein" beantwortet, so werden die nächsten - in diesem Feld als Anzahl angegebenen - Objekte analysiert.
: : Crawler nach erstem Durchlauf beenden Nachdem die Anzahl der im vorherigen Feld angegebenen Objekte analysiert wurde, beendet sich der Crawler automatisch
: Statistik -
: : Anzahl gescannte Objekte Während der ObjectCrawler läuft wird hier die Anzahl der bereits analysierten Objekte ausgegeben.
: : Größe Object-Queue

Zu Beginn wird, sofern nicht über ein vorgegebenes Objekt gestartet wird, aus jeder REP-Collection ein Objekt in die Object-Queue gestellt. Wird ein Objekt analysiert, so wird es aus der Object-Queue genommen. Verweist dieses Objekt aber auf andere Objekte, so werden diese wiederum in die Object-Queue gestellt. Ist die Object-Queue leer, so werden wieder neue Objekte aus den REPs herangezogen.

Die Anzahl der Objekte, die sich gerade in der Object-Queue befinden, wird hier ausgegeben.

: Objekte Möchte man zu Beginn nicht mit zufällig en Objekte der REP-Collections beginnen, sondern ein oder mehrer Objekte zur Analyse fest vorgeben, so können diese in diese Liste gedroppt und der ObjectCrawler gestartet werden.
: Status Zeigt das aktuell analysierte Objekt an.

 

Knöpfe
Knopf Beschreibung
Starten Der ObjectCrawler wird gestartet.
Schließen Das Fenster wird geschlossen.

 

Verwandte Themen

 


Technische Dokumentation

"Modul" Basismodul

Modulname

"Modul".mod

Klassen

CX_"Klasse"

Security

Neben der Beschränkung der Zugriffsrechte über die Klasse und deren Datenfelder kann das Modul über einige der empfangenen Messages in seiner Nutzung beschränkt werden.

Empfangene Messages
Message Parameter Funktion Security
       
       
       

 

Gesendete Messages
Message Parameter Funktion Empfangs-Modul
       

"Modul" Editiermodul

Modulname

"Modul".mod

Klassen

CX_"Klasse"

Security

Neben der Beschränkung der Zugriffsrechte über die Klasse und deren Datenfelder kann das Modul über einige der empfangenen Messages in seiner Nutzung beschränkt werden.

Empfangene Messages
Message Parameter Funktion Security
       
       
       

 

Gesendete Messages
Message Parameter Funktion Empfangs-Modul
       
       
       

"Modul" Selektionsmodul

Modulname

"Modul".mod

Klassen

CX_"Klasse"

Security

Neben der Beschränkung der Zugriffsrechte über die Klasse und deren Datenfelder kann das Modul über einige der empfangenen Messages in seiner Nutzung beschränkt werden.

Empfangene Messages
Message Parameter Funktion Security
       
       
       

 

Gesendete Messages
Message Parameter Funktion Empfangs-Modul
       
       

Operativer Betrieb