Erweiterung der Struktur
10 Minuten Lesezeit
Mit Docusnap können bei Bedarf die bestehenden Tabellenstrukturen erweitert werden. Dieses Ziel kann mithilfe der Docusnap Administration durch Klick auf die Schaltfläche Tabellen verwalten, erreicht werden.
In dieser Registerkarte werden alle Beschreibungen zur Datenbankstruktur von Docusnap angezeigt. Auf der linken Seite werden alle bestehenden Tabellen und Sichten aufgelistet. In dieser Tabelle steht ein Filter zur Verfügung um die gesuchte Tabelle schneller zu finden. Auf der rechten oberen Seite werden die Details zu der ausgewählten Tabelle angezeigt. Auf der rechten unteren Seite werden die Felder der Tabelle angezeigt. Um die jeweiligen Einstellungen für die Datenfelder der Tabelle vorzunehmen oder weiter Felder anzulegen, muss über die Schaltfläche Felder bearbeiten der Dialog für die Anpassung der Felder geöffnet werden.
Grundsätzlich wird innerhalb von Docusnap zwischen drei verschiedenen Typen von Tabellen unterschieden:
Typ | Beschreibung |
---|---|
Tabelle | Tabellen sind real in der Datenbank vorhandene Tabellen, die für die Verwendung in Docusnap hier beschrieben werden. Alle Tabellen beginnen mit dem Präfix “t”. |
Sicht | Sichten sind Tabellen, die durch einen SQL-Select-Befehl generiert werden. Sichten können Daten aus mehreren Tabellen enthalten. Die SQL-Befehle können durch Platzhalter (z.B. FilterID) ergänzt werden, die Docusnap zur Laufzeit mit den richtigen Werten befüllt. Alle Sichten beginnen mit dem Präfix “v”. |
Virtuell | Virtuelle Tabellen werden zur Formatierung von Tabellen verwendet, die z.B. in den Docusnap-Assistenten benutzt werden. Außerdem werden sie im Baum verwendet, um Daten aus verschiedenen Datenbanktabellen in einer Tabelle ausgeben zu können. Alle Virtuellen Tabellen beginnen mit dem Präfix “i”. |
Eigenschaften für alle Tabellen
Für die Definition einer Tabelle müssen verschiedene Eigenschaften definiert werden. Die Anzahl der möglichen Eigenschaften hängt vom Typ der Tabelle ab. Folgende Eigenschaften sind bei allen Tabellen verfügbar bzw. zu befüllen:
Eigenschaft | Beschreibung |
---|---|
Tabellenname | Eindeutiger Name der Tabelle Je nach ausgewähltem Typ der Tabelle werden die Präfixe i,v oder t verwendet. Tabellen, die nicht durch den Hersteller definiert wurden, erhalten zusätzlich das Präfix x (z.B. xtSLA). |
Namespace | Beim Anlegen neuer Tabelle kann im Kombinationsfeld ein Namespace eingetragen oder ein bestehender Namespace ausgewählt werden. Durch den Namespace kann beim Export der benutzerdefinierten Tabellen definiert werden, welche Tabellen exportiert werden sollen. |
Primärschlüssel | Ein Feld in der Tabelle, das jeden Datensatz eindeutig identifiziert. Innerhalb Docusnap sind dies im Normalfall Felder vom Typ LONG und Auto-Inkrementfelder. |
Fremdschlüssel | Das Feld, das die Beziehung zu einer anderen Tabelle in der Hierarchie höher darstellt. |
Anzeigefeld | Das Feld in der Tabelle, das zur Ausgabe der Textwerte in den Hierarchien (z.B. Inventar, IT-Sicherheit usw.) verwendet wird. |
Vergleichsfeld | Für den Datenvergleich wird ein Feld benötigt, das zwischen zwei Snapshots zur Identifizierung von zwei Datensätzen herangezogen werden kann. Ein sinnvolles Feld kann hier z.B. eine Seriennummer oder ein Rechnername sein. |
Name englisch, Name deutsch | Bezeichnung der Tabelle in der jeweiligen Sprache. |
Eigenschaften für Sichten
Sichten sind Tabellen, die auf Basis eines SQL-Select-Befehles gebildet werden. Docusnap unterstützt dies mit einer Vielzahl von Variablen, die vor der Ausführung des Select-Befehles ersetzt werden.
Der Select-Befehl hat im Wesentlichen folgende Syntax:
SELECT [DISTINCT] Auswahlliste FROM Quelle [WHERE Where-Klausel]
[GROUP BY (Group-by-Attribut)+
[HAVING Having-Klausel]]
[ORDER BY (Sortierungsattribut [ASC|DESC])+];
Im Prinzip sind alle gültigen Varianten nach dem SQL-Standard möglich.
Docusnap bietet folgende Variablen zur Verwendung in den Befehlen an. Wichtig dabei ist, dass die Variablen immer durch eine Klammerung {Variable} eingefasst werden.
Variable | Beschreibung |
---|---|
{FilterID} | Die Variable FilterID wird immer durch den Primärschlüssel des übergeordneten Objektes ersetzt. Beispiel: Der Befehl in Docusnap select * from thosts where domainid = {FilterID} order by hostname ergibt bei der Ausführung z.B. select * from thosts where domainid = 1 order by hostname |
{LANGUAGEID} | Die Variable wird durch den Integer-Code für die jeweilige Sprache ersetzt. Deutsch = 0 Englisch = 1 |
{Feldname} | Über diese Konstruktion kann auf jedes Datenfeld in einem übergeordneten Datenobjekt zugegriffen werden. Achtung: Dies funktioniert nur bei Datenobjekten und nicht bei Überschriften. |
Der jeweilige SQL-Befehl kann direkt in das Feld SQL-Statement eingegeben werden, in dem der Befehl eingegeben oder editiert werden kann.
Da bei SQL-Select-Befehlen mehrere Tabellen miteinander verbunden werden können, weiß Docusnap im Falle eines Löschkommandos nicht, auf welche Tabelle sich der Primärschlüssel bezieht. Durch das Feld Primäre Tabelle kann die Tabelle angegeben werden, in der der Datensatz gelöscht werden soll. Wenn in dieses Feld keine Daten eingegeben werden, ist ein Löschen von Metaobjekten, die sich auf diese Tabelle beziehen, nicht möglich.
SNMP-Statements
Zusätzlich zu der Verwendung von SQL-Statements für die Ausgabe von Tabellen bietet Docusnap eine Sonderform für die Ausgabe von SNMP Tabellen. Bei der SNMP-Inventarisierung werden MIBs verwendet. Um die Ergebnisse auszugeben, werden in das Feld SQL-Statement zuerst der Text SNMP: geschrieben und anschließend in Klammern die MIB und mit Beistrich getrennt die Bezeichnung. Die MIBs werden durch Strichpunkte getrennt.
Dadurch ergibt sich folgende Syntax:
SNMP:(1.3.6.1.2.1.4.20.1.1,IPAddress;1.3.6.1.2.1.4.20.1.3,SubnetMask;1.3.6.1.2.1.4.20.1.2,InterfaceID)
Um Werte auszugeben, die für jedes SNMP-Gerät nur einmal vorkommen, wird das Statement mit SNMP-Single begonnen.
Dafür wird diese Syntax verwendet:
SNMP-Single: (1.3.6.1.2.1.43.8.2.1.14.1.1,Manufacturer;1.3.6.1.2.1.43.5.1.1.17.1,SerialNumber)
Wird für einen Wert eine Division zweier Spalten benötigt, wie z.B. beim Stand des Toners, werden die beiden MIBs der Spalten mit einem Schrägstrich getrennt und bei der Ausführung des Statements wird der Quotient in dieser Spalte ausgegeben.
Das Statement hat folgende Syntax:
SNMP-Single: (1.3.6.1.2.1.43.11.1.1.9.1.1/1.3.6.1.2.1.43.11.1.1.8.1.1,TonerBlack)
Anschließend werden die Spalten der Tabelle angelegt. Als Feldname wird die Bezeichnung verwendet, die im Statement für diese MIB verwendet wurde.
IT-Asset Statements
Es ist möglich IT-Assets an einer beliebigen Stelle im Baum auszugeben, zum Beispiel unterhalb eines Kontakts, dem sie zugewiesen wurden. Dafür muss eine Sicht mit SQL-Statement erstellt werden das alle benötigten ObjectIDs auflistet. Der PropertyName wird mit dem Namen der Eigenschaft abgeglichen und der ObjectValue mit dem Primärschlüssel des übergeordneten Objekts. Da die Spalte ObjectValue vom Typ Text ist, muss die {FilterID} mit ’ ’ als Text angegeben werden. Durch eine Abfrage auf die {AccountID} kann gefiltert werden, dass nur Daten der jeweiligen Firma angezeigt werden. Im SQL Statement muss nur die ObjectID enthalten sein und die ObjectID muss als Spalte angelegt werden. Anschließend kann diese Sicht für ein Metaobjekt gewählt werden um die IT Assets anzuzeigen. Das folgende SQL-Statement kann als Basis für das IT-Asset-Statement verwendet werden.
select tGOValue.ObjectID
from tGODirectory, tGO, tGOValue, tGOProperty
where tGODirectory.DirectoryID = tGO.DirectoryID and
tGO.ObjectID = tGOValue.ObjectID and
tGOValue.PropertyID = tGOProperty.PropertyID
and tGOProperty.PropertyName = 'Name of the Property' and
tGOValue.ObjectValue = '{FilterID}' and
tGODirectory.AccountID = {AccountID}
Datenfelder
Datenfelder stellen in einer Tabelle die verschiedenen Spalten dar. Den Feldern werden in Docusnap bestimmte Typen zugewiesen und auch die sprachliche Darstellung (Deutsch oder Englisch) erfolgt auf Basis dieser Metabeschreibung.
Eigenschaft | Beschreibung |
---|---|
Feldname | Hier wird ein eindeutiger Feldname vergeben. Verweisfelder sollten immer auf der Endung ID enden, um sie besser identifizieren zu können. Felder, die nicht vom Hersteller definiert werden, erhalten als Präfix ein x, um Namenskollisionen zu vermeiden. |
Datentyp | Typ des Feldes Blob: Binärfeld zur Speicherung von Binärdaten wie z.B. Anlagen Boolean: Ja/Nein-Feld Byte: Nummerisches Ganzzahlfeld mit Werten von 0 bis 255 Date: Datumsfeld Decimal: Dezimalfeld für Gleitkommazahlen GUID: GUID-Wert Kombination: Feld zur Kombination von mehreren Feldern. Feldnamen werden mit @-Zeichen identifiziert, normale Texte mit Hochkommas ‘Text’ geklammert. Durch den Operator + können die Werte verbunden werden. Texte in <> Klammern werden nur angezeigt, wenn nach ihnen noch Texte folgen. Beispiel: @Lastname + '<, >' + @Firstname Ausgabe: Maier, Franz oder, falls kein Vorname ausgefüllt ist, Maier Kombinationsfelder sollten ausschließlich als Anzeigefelder benutzt werden. Int: Ganzzahl BigInt: Der Datentyp BigInt ist für Fälle bestimmt, in denen ganzzahlige Werte den durch den Datentyp int unterstützten Bereich überschreiten. Memo: Text ohne Längenbeschränkung String: Text SID: Konvertiert eine SID in den zugehörigen ADS Namen. Die Konvertierung ist nur möglich, wenn die Tabelle oder Sicht an einer Stelle eingebunden wird, bei der sich irgendwo in der übergeordneten Struktur der Knoten für die Firma befindet. Version: Versionen stehen meist in einem String-Feld und würden daher alphabetisch sortiert werden. Um Version 12 nach Version 4 auszugeben, wird der Datentyp Version verwendet. Zeit: Der Datentyp Zeit wird verwendet um einen Zeitpunkt auszugeben, wenn der Wert in Ticks inventarisiert wird. |
Referenz | Über das Feld Referenz ist es möglich, eine ID in einen lesbaren Namen zu transferieren. Dazu muss ein Verweis auf eine Tabelle [TabellenName] oder ein Verweis auf einen Initialwert {WertName} eingegeben werden. Wenn das Referenzfeld befüllt ist, nimmt Docusnap den nummerischen Inhalt des Feldes und führt eine Abfrage auf der angegebenen Tabelle oder in den Initialwerten mit Filter auf den jeweiligen Primärschlüssel durch. Ausgegeben wird dann der Wert, der in der Zieltabelle als Anzeigefeld definiert ist. Beispiel: Feld DomainID, Referenz [tdomains] Statt z.B. der DomainID 1 wird dann docusnap.intern ausgegeben. |
Name, Text (Deutsch, Englisch) | Bezeichnung des Feldes in den jeweiligen Sprachen. Dieser Wert ist auch später in den Listen als Spaltenüberschrift sichtbar. |
Sortierung | Die Reihenfolge der Felder in Listen ist nicht alphabetisch, sondern über diesen Wert bestimmt. |
Anzeigegröße | Hier kann eine Spaltenbreite in den Ausgabelisten definiert werden (in Pixel). Falls kein Wert angegeben wird, verwendet Docusnap einen Standardwert von 80 Pixel. |
Feldlänge | Dieses Feld kann nur bei dem Datentyp String definiert werden. Hier kann die maximale zulässige Anzahl von Zeichen bestimmt werden. |
Import-Verweis | Dieses Feld definiert Felder von Verweisen, die für den Datenimport abgeglichen werden müssen. Das sind im wesentlichen Verweise wie z. B. Kommentartypen, Passworttypen usw. |
Faktor | Hier kann ein Divisor zur Umrechnung von Zahlenwerten bestimmt werden. Das Feld ist nur bei nummerischen Datentypen aktiv. Zum Beispiel würde ein Faktor von 1024 einen Wert von Byte in Kilobyte umrechnen. |
Zahlenformat | Hier können nach Standardkonventionen Formatierungen für Zahlenwerte vorgenommen werden. Gültige Platzhalter sind das #-Zeichen für beliebige Zahlenwerte und die Ziffer 0 für Zahlenwerte, die, wenn sie zu klein sind, mit führenden 0 aufgefüllt werden. Tausendertrennzeichen ist das Komma “,”, das Kommazeichen ist der “.”. Beispiele: #,##0.00 MB 00 h |
Icon | Mit der Eigenschaft Icon kann pro Feld ein spezifisches Icon hinterlegt werden. Dies ist nur notwendig, wenn das Metaobjekt, welches auf die Tabelle verweist, eine vertikale Ausrichtung hat. |
Namespace | Wenn die Tabellen des Herstellers um Spalten erweitert werden, dann kann für die erstellte Spalte der Namespace gewählt oder ein neuer eingetragen werden. Beim Export eines Customizings kann über die Namespaces definiert werden, welche Spalten berücksichtigt werden sollen. Der Namespace der Spalte kann nach dem Speichern nicht mehr geändert werden. |
Feld in Listen anzeigen | Wenn diese Option aktiviert ist, ist das Feld in den Listen von Docusnap sichtbar. |
Feld in Webclient anzeigen | Wenn diese Option aktiviert ist, wird das Feld in den Listen im Webclient angezeigt. Wenn bei einer Tabelle keine Spalten für den Webclient ausgewählt wurden, setzt Docusnap diese Option für die nach der Sortierung ersten drei Spalten. Diese Auswahl kann im Nachhinein bearbeitet werden. |
Nicht vergleichen | Durch Aktivieren dieser Option kann verhindert werden, dass dieses Feld in den Datenvergleich einbezogen wird. Das ist z.B. beim verfügbaren Speicherplatz auf einer Festplatte sinnvoll, da dieser praktisch immer verändert sein wird. |
NULL-Werte nicht anzeigen | Wenn bei der Ausgabe der Tabelle Vertikal ausgewählt wird, wird durch diese Option festgelegt, ob diese Spalte ausgegeben wird, wenn der Wert in der Datenbank NULL ist. |
ADS Eigenschaften ausgeben
Die Werte der Active Directory Eigenschaften werden in den Tabellen tADSObjectValue (nur ein Wert pro AD Objekt) und in der Tabelle tADSObjectMultiValue (mehrere Werte pro AD Objekt möglich) gespeichert. Einige dieser Werte müssen für die Ausgabe unterschiedlich formatiert werden. In den Tabellen gibt es die Spalte ADSPropertyID, der Wert dieser Spalte wird von Docusnap verwendet um die AD Eigenschaften in der Spalte ADSObjectValue richtig darzustellen. Wenn eine Tabelle oder eine Sicht eine ADSObjectValue Spalte enthält wird immer eine ADSPropertyID Spalte erwartet.
Wenn eine Sicht erstellt wird, in der mehrere Spalten mit speziellen AD Eigenschaften enthalten sind, kann die Formatierung nicht über die ADSPropertyID Spalte definiert werden. Dafür wird bei der jeweiligen Spalte eine Referenz erstellt. Mit AD_PROP_ wird definiert, dass es sich um eine Referenz für AD Eigenschaften handelt. Beispielsweise wird im Feld Referenz {AD_PROP_whenCreated} für die Eigenschaft whenCreated (Erstelldatum des AD Objekts) eingetragen. Die Spalte, die den Wert enthält, darf nicht ADSObjectValue heißen, sondern wird im SQL Statement mit AS umbenannt.
Export und Import der Datenbank
Wenn die Daten von benutzerdefinierten Tabellen beim Datenbankimport bzw. -export berücksichtigt werden sollen, müssen diese Tabellen im Importbaum eingefügt werden.