Integrating external data
Die Specops Inventory-Datenbank und die Berichtslösung sind mit Blick auf externe Verbindungen konzipiert. Externe Daten können in die Specops Inventory-Daten importiert und der Bericht-Engine zur Verfügung gestellt werden. Diese Informationen können dann mit allen anderen Inventarinformationen kombiniert werden, wenn neue Berichte erstellt oder die Standardberichte bearbeitet werden.
Die einzige Anforderung an die externen Daten ist, dass sie mit Computer- oder Benutzernamen verbunden werden können. Alternativ können die Active Directory-Computer- oder Benutzer-GUIDs verwendet werden, um die Verbindung herzustellen. Der Import externer Daten erfordert auch einige SQL-Server- und SQL-Kenntnisse und möglicherweise Skripterfahrung.
Hinweis: Viele Eigenschaften der Active Directory-Computer- und Benutzerobjekte werden standardmäßig von Specops Inventory inventarisiert. Wenn Sie Ihre Daten in eines dieser Felder einfügen können, sind Sie fertig.
Datenbankdesign
Die zentralste Tabelle in der Specops Inventory-Datenbank heißt soPrinicpal. Diese Tabelle enthält alle Computer und Benutzer, die inventarisiert wurden. Die wichtigen Spalten für dieses Dokument sind:
Spalte | Beschreibung |
---|---|
ID | Der interne Specops Inventory-Schlüssel für den Computer oder Benutzer. Dies ist ein generierter Wert und alle Verbindungen zu Computern oder Benutzern in der Datenbank verwenden diesen Schlüssel. |
Name | Der Name des Computers oder Benutzers. Dies ist der NETBios-Name des Objekts, der Domänenname ist nicht enthalten. |
Domain | Der Name der Domäne des Computers oder Benutzers. Dies ist der NETBios-Name der Domäne. Zum Beispiel „Specopssoft“ oder „OurEnterprise“. |
Guid | Der eindeutige Bezeichner für das Objekt im Active Directory. |
Typ | Dies ist ein Flag, das angibt, welche Art von Objekt die Zeile enthält. 0 bedeutet, es ist ein Computer, 1 bedeutet, es ist ein Benutzer. |
Die folgende Tabelle zeigt einige Beispieldaten aus der soPrincipal-Tabelle:
ID | Name | Domain | Guid | Typ |
---|---|---|---|---|
1 | computer17 | specopssoft | 9802ab9a-d331–431b-9621–5a995f05fe52 | 0 |
3 | computer06 | specopssoft | f85091c9-cac6–4c39–9e17–0ad7e656d2de | 0 |
4 | Bob | specopssoft | 649a191f-a240–4a33–9b5c-f6e1a69be3d5 | 1 |
6 | computer21 | specopssoft | 2121f3e2–8f3f-4b14–88e6-ffd9d61c95ca | 0 |
Alle Informationen, die für die Berichterstellung in der Datenbank verwendet werden, sind über die Id-Spalte mit der soPrincipal-Tabelle verbunden. Zum Beispiel sieht die Computerhardware-Tabelle ungefähr so aus:
PrincipalID | Hersteller | Modell |
---|---|---|
1 | Dell | Latitude xyz |
2 | Dell | Inspiron abc |
3 | HP | HP whatever ABC |
Für jede Zeile in dieser Tabelle verbindet das PrincipalId-Feld die Zeile mit dem entsprechenden Computer in der soPrincipal-Tabelle.
Externe Daten in die Datenbank einfügen
Um die externen Daten in die Specops Inventory-Datenbank zu bekommen, muss eine neue Tabelle in der Datenbank erstellt und dann mit den externen Daten gefüllt werden. Zum Beispiel könnten wir die folgende Tabelle erstellen:
Spaltenname | Datentyp |
---|---|
PrincipalID | int |
Kaufdatum | datetime |
Hinweis
Es muss eine Spalte namens PrincipalId in der Tabelle geben. Diese Spalte wird verwendet, um die Zeilen mit dem entsprechenden Computer beim Erstellen der Berichte abzugleichen.
Es wird auch empfohlen, eine Fremdschlüsselbeschränkung zwischen der PrincipalId-Spalte in der neuen Tabelle und der Id-Spalte in soPrincipal zu erstellen.
Wenn die Tabelle erstellt wurde, könnten wir sie dann manuell mit Kaufdaten und dem entsprechenden Computer in der soPrincipal-Tabelle füllen. Nehmen wir an, wir erstellen eine Tabelle namens soInvComputerPurchaseDate.
PrincipalId | Kaufdatum |
---|---|
1 | 7/8/2006 |
3 | 2/9/2006 |
6 | 4/12/2005 |
Wir könnten diese Informationen jetzt zu unseren bestehenden Berichten hinzufügen. In der realen Welt ist diese manuelle Zuordnung jedoch normalerweise nicht machbar oder empfohlen. Wie automatisieren wir das? Nun, das hängt alles davon ab, welche Art von Daten Sie importieren und in welchem Format sie verfügbar sind. Folgendes muss getan werden:
Bringen Sie die Daten in eine Tabelle in einer SQL-Server-Datenbank, dies kann in einer separaten Datenbank sein, muss nicht die Specops Inventory-Datenbank sein. Diese Tabelle dient als Zwischentabelle, von der aus die Daten in die tatsächliche Specops Inventory-Tabelle verschoben werden (die, die wir oben erstellt haben). Um die Daten in die Zwischentabelle zu bekommen, können Sie eine Datenquelle einrichten und die SQL-Server-Datenimport-Engine verwenden (die Datenquelle könnte eine Oracle-Datenbank, ein Excel-Dokument oder eine andere Art von ODBC-Quelle sein). Sie können dies dann als geplanten Job einrichten, der regelmäßig ausgeführt wird, wenn sich die Quelldaten wahrscheinlich ändern. Nehmen wir an, die Zwischentabelle heißt ComputerPurchaseDateStaging und sieht so aus:
ComputerName | Kaufdatum |
---|---|
Computer 17 | 7/8/2006 |
Computer 06 | 2/9/2006 |
Computer 21 | 4/12/2005 |
In dieser Tabelle haben wir die Computernamen, die jetzt mit den Computernamen in der soPrincipal-Tabelle abgeglichen werden können. Dies ist der entscheidende Teil, wir müssen Computernamen haben, die mit den Computern in der soPrincipal-Tabelle abgeglichen werden können. Um die Daten aus dieser Zwischentabelle zu erhalten, müssten wir die folgende SQL-Anweisung ausführen:
INSERT
INTO soInvComputerPurchaseDate
SELECT p.Id, s.TimeOfPurchase
FROM soPrincipal p, ComputerPurchaseDateStaging s
WHERE s.ComputerName = p.Name
AND p.Type = 0
Dies wird Daten in die soInvComputerPurchase-Tabelle einfügen, genau wie wir es im manuellen Beispiel oben gemacht haben. Die Ausführung dieser SQL-Anweisung sollte ebenfalls geplant werden, um nach dem Importjob ausgeführt zu werden.
Die neue Tabelle als Berichtquelle hinzufügen
Jetzt, da wir die Daten in der Specops Inventory-Datenbank haben, gibt es einen letzten Schritt, bevor die Daten als Berichtquelle verfügbar werden. Es gibt eine Tabelle in der Datenbank, die die Namen aller Tabellen (oder Ansichten) enthält, die in Berichten verwendet werden dürfen. Die Tabelle heißt soRepReportView. Fügen Sie eine Zeile wie die folgende in diese Tabelle ein:
Id | Name | Join Type | Anzeigename |
---|---|---|---|
(generiert) | soInvComputerPurchaseDate | Principal | Computerkaufdatum |
Hinweis
Sie sollten keine Zahl in das Id-Feld eingeben, dieser Wert wird automatisch generiert.