Bei der Erstellung von Laufzeitinstanzen wird stets auf aktive Sourcen zurückgegriffen. Dies ist also bei der Instanzerzeugung von Klassen (mit CREATE OBJECT) zu berücksichtigen, da hier immer auf die aktivierte Klasse Bezug genommen wird. Alle Teilobjekte der betreffenden globalen Klasse, auf die im aufrufenden Programm zugegriffen werden soll, müssen explizit aktiviert werden.
Für alle globalen Klassen erfolgt ein Eintrag in der Tabelle TADIR. Das zugehörige Transportobjekt für eine Klasse hat die Bezeichnung R3TR CLAS <class name> und beinhaltet mehrere Teilobjekte, die jeweils separate Transporteinheiten repräsentieren. Inaktive Teilobjekte der Klasse werden im Vorrat inaktiver Objekte des Benutzers hinterlegt.
Globale Klassen in Tabelle TADIR
Die Grunddaten und öffentlichen Komponenten einer Klasse sind nicht getrennt aktivierbar.
Nur die Teilobjekte für die Grunddaten, öffentliche, geschützte und private Komponenten wirken sich auf die Statusanzeige im Class Builder aus. Wenn Sie also das gesamte Transportobjekt aktivieren und anschließend etwa die Methodenimplementierung ändern, so wird weiterhin der Status aktiv angezeigt.
Das Transportobjekt für ein Interface hat die Bezeichnung R3TR INTF <interface name> und enthält nur ein Objekt mit der Bezeichnung INTF.
Beim Aktivieren einer Klasse, die um ein Interface erweitert wurde, ist darauf zu achten, dass dieses Interface zuvor aktiviert wurde. Anderenfalls wird ein Syntaxfehler für die Public Section ausgegeben.
Der Status einer Klasse oder eines Interfaces hängt von den folgenden Merkmalen ab:
● die Laufzeitrelevanz (realisiert / nur modelliert)
● den Datenbankzustand (überarbeitet / gesichert)
● Status (aktiv oder inaktiv)
Gemäß der möglichen Kombination zwischen diesen Merkmalen, können Klassen und Interfaces folgende Status haben: