Automicblog-Repost vom 4. Juli 2011

Ich hatte auf dem alten Automicblog schon einen ähnlichen Artikel veröffentlicht, bei der Überarbeitung habe ich jetzt aber gemerkt: für einen Artikel ist es zu viel Inhalt. Deshalb habe ich ihn aufgeteilt. Für die Neuveröffentlichung habe ich ihn aber noch einmal ausgebaut. Deshalb sind daraus zwei Artikel geworden.

Im 1. Teil biete ich Ihnen einen Einstieg in die Tabellen der Automation Engine, Queries für den Zugriff und eine genauere Betrachtung des Objektbereichs.

Im 2. Teil nächste Woche werfen wir einen Blick in zwei konkrete Bereiche der Datenbank: Das Aktivitätenfenster und den Statistikbereich.

Dokumentationen von Automic

Die AE Datenbank ist sehr groß. Mehr als 200 Tabellen. Um dabei nicht den Überblick zu verlieren bietet Automic verschiedene Hilfestellungen an.

Die Tabellen sind in 8 Bereiche (plus ein Bereich für veraltete Tabellen) aufgeteilt:

  • Objektbereich
  • Aktivitäten
  • Archiv und Statistik
  • Prognose
  • Meldungen
  • Verarbeitung
  • Systemtabellen
  • Temporäre Tabellen

Genaue Informationen zu den Bereichen und den dazu gehörenden Tabellen finden Sie bei Automic auf der Seite Technische Wartung der AE Datenbank (AE Version 11.2). Hier erhalten Sie nähere Informationen zu den Gruppen, sowie Listen mit den enthaltenen Tabellen.

Daneben gibt es noch die Dokumentation der einzelnen Tabellen und ihrer Spalten. Diese finden Sie zum einen im Ordner DB/_structure als MS Access File und als statische HTML-Dateien. Außerdem gibt es die Infos auch online auf der Seite AE Database Scheme for Version 11.2.

Eine erste Query

Starten Sie Ihre Reise durch die Automic Datenbank mit einer einfachen SQL Select-Query:

select TABLE_NAME,
TABLE_TEXT,
TABLE_CHILDREN
from UC_TABLE;

Damit listen Sie ganz einfach alle Tabellen mit den dazugehörigen Beschreibungen und Child-Tabellen auf.

Beispiel Objektbereich: JOBS eines Mandanten

Die Tabelle OH (Object Header) ist die wichtigste Tabelle für Objektdefinitionen. Für jedes Objekt in einem AE-System gibt es einen Eintrag in OH. Für jedes Objekt können Sie sich viele Daten anzeigen lassen.

Im ersten Beispiel wählen wir aus OH die Objektnamen von allen Objekten vom Objekttyp ‘JOBS’ aus, die zum AE Mandant 1 gehören. Die Liste mit Objektnamen geben wir alphabetisch sortiert aus.

 -- Get object names of all JOBS in AE Client 1, sort alphabetically
 select OH_NAME
 from OH
 where OH_CLIENT=1
 and OH_OTYPE='JOBS'
 and OH_DELETEFLAG=0
 order by OH_NAME;

Hier noch ein paar Informationen zu den verwendeten Spalten:

OH_NAME: Der Objektname.

OH_CLIENT: Der AE Mandant als numerischer Wert.

OH_OTYPE: Der Objekttyp

OH_DELETEFLAG: Zeigt an, ob das Objekt gelöscht ist. Die möglichen Werte sind:

0 – Das Objekt ist nicht gelöscht (die brauchen wir hier).

1 – Das Objekt liegt im Papierkorb.

2 – Veraltete Version des Objekts (Versionskontrolle)

5 – Objekt wurde von DB-Reorg Utility zum Löschen markiert.

Erweiterung des Beispiels: Erwartete Laufzeit und Priorität

Das erste Beispiel ist natürlich noch nichts Besonderes. Das schaffen Sie auch mit der Objektsuche im UserInterface. Aber mit einer kleinen Änderung können wir dem UserInterface seine Grenzen aufzeigen.

Zusätzlich zum Objektnamen lassen wir uns jetzt noch die “Erwartete Laufzeit” (Expected Run Time = ERT) eines Objekts anzeigen. Die Zeit wird in Sekunden angezeigt.

select OH_NAME, OH_ERT
from OH
where OH_CLIENT=1
and OH_OTYPE='JOBS'
and OH_DELETEFLAG=0
order by OH_NAME;

Und im nächsten Beispiel kontrollieren wir zusätzlich noch die Priorität der Objekte. Die Query liefert nur Jobs, bei denen die Priorität nicht 0 ist.

select OH_NAME, OH_ERT
from OH
where OH_CLIENT=1
and OH_OTYPE='JOBS'
and OH_REFIDNR=0
and OH_DELETEFLAG=0
and OH_UC4PRIORITY!=0
order by OH_NAME;

 

OH_IDNR: Das ist der Primärschlüssel der Tabelle. Die Spalte enthält die eindeutige Objekt-Nummer aller Objekte Ihres AE Systems. Wie im letzten Beispiel wird Sie oft in Joins genutzt.

OH_REFIDNR: Diese Spalte ist für die Versionskontrolle relevant. Wenn die Versionskontrolle aktiviert ist, wird für jede neue Version eines Objekts ein neuer Eintrag in der Tabelle OH angelegt. In der Spalte OH_REFIDNR steht die OH_IDNR des originalen Objekts. Beim ursprünglichen Objekt ist der Wert 0.

OH_ERT: Die geschätzte Laufzeit des Objekts in Sekunden.

Jetzt wird es spannend: Wir nutzen Join

SQL Abfragen machen mit “Join” erst so richtig Spaß. Mit dem Befehl können Sie die Informationen aus mehreren Tabellen kombinieren.

Das folgende Select-Statement liefert alle Unix-Jobs eines Mandanten.

-- Get object names of all UNIX-JOBS in AE Client 1, sort alphabetically
-- RDBMS: Oracle, MS-SQL
select OH_NAME
from OH
inner join JBA on OH_IDNR = JBA_OH_IDNR
where OH_DELETEFLAG=0
and OH_CLIENT=1
and JBA_HOSTATTRTYPE='UNIX'
order by OH_NAME;

Die Tabelle JBA (Job Attributes) enthält Attribute aller Objekte vom Typ JOBS. Zum Beispiel auch JBA_HOSTATTRTYPE, um die Plattform abzufragen, auf der der Job läuft.

Mit dem Befehl ‘inner join’ kombinieren wir hier die zwei Tabellen JBA und OH. Wir können so für jedes Objekt sowohl auf die Eigenschaften in OH, als auch auf die Eigenschaften in JBA zugreifen.

Weitere wichtige Spalten in OH

In den Beispielen haben Sie jetzt schon einige wichtige Spalten der Tabelle OH kennengelernt: OH_NAME, OH_CLIENT, OH_OTYPE, OH_DELETEFLAG, OH_IDNR, OH_REFIDNR, OH_ERT und OH_UC4PRIORITY. Hier noch einige weitere wichtigen Spalten, von denen einige nicht in unseren Beispielen vorkommen. Damit können Sie selbst herumexperimentieren.

OH_INACTIVE: Aktivstatus des Objekts (entsprechend der Checkbox „Aktiv“ in der Registerkarte „Kopf“). Wenn der Wert 0 beträgt, ist das Objekt aktiv.

OH_CRDATE: Das Erstellungsdatum des Objekts. Der Zeitstempel (wie in den meisten Datums-Feldern) ist in UTC.

OH_CRUSERIDNR: Das ist die OH_IDNR des Users, der das Objekt erstellt hat.

Stöbern Sie mit den genannten Queries und den Spalten ruhig selbst ein wenig durch den Objektbereich Ihrer Automation Engine Datenbank. Ich empfehle auch, die Dokumentation von OH zu lesen, es gibt nämlich noch viel mehr spannende Spalten.

Hier geht es jetzt weiter mit dem zweiten Teil der Serie zu: “Aktivitäten und Statistiken”.