Roman Maire
Jira Service Desk: Strukturierter Import mit Insight
Ausgangslage
Eine häufige Anforderung für Service Desk ist es, Bestellungen darüber abwickeln zu können. Um die Daten zu managen, bietet sich die App Insight – Asset Management an, die kürzlich von Atlassian übernommen wurde. Mit ihr können Daten als Objekte mit Verknüpfungen untereinander abgebildet werden. In diesem Beispiel soll ein Prozess zur Bestellung von Software abgebildet werden. Jedes Softwarepaket hat ein paar Attribute wie Name und Version. Zusätzlich ist jede Software in eine Kategorie und eine Stufe (z.B. Preiskategorie) eingeteilt, die wiederum eigene Objekte bilden. Dieser Aufbau erlaubt es z.B. lange Listen von Programmen nach Kategorie zu filtern, und ermöglicht Unterkategorien im Request-Formular:


Das Objektschema in Insight ist folgendermaßen aufgebaut:

Bei den Attributen des Software-Objektes sieht man auch die beiden Referenzen auf die Kategorie und die Stufe:
Nun will man aber normalerweise sein Software-Inventar nicht von Hand eintragen und nachführen, meistens existieren die Daten ja schon in irgendeinem anderen System oder wenigstens in einer Excel-Tabelle. Solange man aus dem Quellsystem einen CSV-Export machen kann, ist es auch möglich, die Daten in Insight zu verwenden.
Beispielhaft werden folgende Daten verwendet:
Bezeichnung;Release;Kategorie;Stufe
Windows 7;3.7;Betriebssystem;Stufe 1
Windows 10;1.3;Betriebssystem;Stufe 1
Java 8 Runtime;1.8.265;Treiber;Stufe 1
Logitech Mouse Driver;5.5;Treiber;Stufe1
Microsoft Office 2016;2.74;Bürosoftware;Stufe 2
Microsoft Office 365;1.65.2;Bürosoftware;Stufe 2
Adobe Acrobat Reader;77.7;Reader;Stufe 2
Adobe Acrobat;12.2;Kreativsoftware;Stufe 2
Adobe Photoshop;4.5;Kreativsoftware;Stufe 2
Citrix Receiver;2.3.5b;Utility;Stufe 2
WinRAR;7.15.1;Utility;Stufe 2
Insight Import
Die Importer findet man im entsprechenden Insight Schema unter Object Schema > Configure > Import


Dort klickt man Create Configuration und wählt de CSV Import aus.

Im folgenden Dialog muss man File auswählen, und über den Button Upload File die CSV-Datei hochladen. Möchte man den Vorgang automatisieren, und regelmäßig aktualisieren, kann man die Datei auch über eine URL zur Verfügung stellen, z.B. als Confluence Anhang. Weiter muss noch der Delimeter richtig eingestellt werden, in diesem Fall auf ein Semikolon.

Im nächsten Dialog wird Automatically synchronize ausgeschaltet, da der Import vorerst nur manuell ausgelöst werden soll. Zudem wird ein Insight Manager Benutzer ausgewählt, der die Rechte hat, die Daten zu importieren.

Der letzte Dialog wird übersprungen, wir haben schon ein Schema, und Insight würde unpassende neue Schemas extra für den Import erstellen, also weder etwas auswählen, noch auf einen der beiden Create Buttons klicken.

Der Import wird aber jetzt noch nicht funktionieren, da wir noch kein Mapping haben. Insight weiß nicht, welche Spalte es in welches Objektattribut schreiben soll. Das konzeptionelle Problem, dass wir hier haben ist folgendes: Die CSV Datei hat eine flache Struktur, wir benötigen aber einen Import, der uns nebst der Software-Objekte auch gleich die Kategorien und die Stufen erstellt. In Insight erreichen wir das, indem wir für jedes der Objekte ein eigenes Object type mapping erstellen.

Als Erstes erstellen wir ein Mapping für den Typ Software:

Dasselbe wiederholen wir für Kategorie und Stufe. Insight zeigt uns jetzt aber an, dass es die Zuweisungen noch nicht machen kann. Es weiß noch nicht, welche Spalte auf welches Feld im Objekt kommt.

Praktischerweise kann aber die Spalte über ein Dropdownmenü ausgewählt werden. Insight verarbeitet automatisch die Spaltentitel in der CSV-Datei:

Mit Klick auf Update kann das Mapping übernommen werden. Dieser Schritt wird für jede Spalte wiederholt, die importiert werden soll. Hier ist wichtig, dass dem Importer mitgeteilt wird, wie die Objktreferenzen Kategorie und Stufe abzubilden sind. In den entsprechenden Attributzeilen steht die Spalte Object Mapping (IQL) zur Verfügung, da Insight ja aus dem Schema weiß, dass diese Attribute auf andere Objekte verweisen. In diesem Feld kann man dem Importer vorgeben, wo der entsprechende Wert hin soll. Dabei verwendet man die sogenannte Insight Query Language (IQL), auf die ich hier nicht detailliert eingehen kann. Die Dokumentation dazu ist aber weiter unten verlinkt.

Die Spalte Kategorie in der Datei wird mit dem Attribut Kategorie auf dem Software-Objekt verknüpft. das IQL-Query Name = ${Kategorie} sagt Insight, dass das Attribut Name auf dem Objekt Kategorie mit dem Wert aus der Datei-Spalte Kategorie verknüpft wird. Der Wert ${Kategorie} ist ein sogenannter Placeholder, der auf das entsprechende Feld in der CSV-DAtei verweist. Mehr dazu kann der verlinkten Dokumentation entnommen werden. Dasselbe wird mit dem Attribut Stufe gemacht.
Das Mapping muss nun über das Zahnrad noch aktiviert werden:

Die komplette Import-Konfiguration muss auch noch aktiviert werden.

Wenn nur die Software-Objekte importiert werden sollen, wäre jetzt fertig, und man könnte den Import ausführen. Das würde aber voraussetzen, dass die Objekte für Kategorie und Stufe schon existieren. Möchte man, dass sie auch gleich erstellt werden, wenn ein neues Objekt gefunden wird, muss man auch dafür Mappings erstellen. Diese sind jetzt aber wesentlich simpler, da sie keine Objektreferenzen enthalten:

Dasselbe für Stufe:

In beiden Mappings müssen wir nur das Attribut Name mit der entsprechenden Spalte in der CSV-Datei verbinden. Nach dem Aktivieren beider Mappings ist der Importer für einen Test bereit:

Unter dem Zahnrad kann man nun Synchronize auswählen, und den Import starten. Die Daten sollten jetzt, auf die Objekttypen verteilt, im Insight Schema auftauchen:

Alternativen zum Datenimport
Falls Sie Daten externer Datenquellen direkt in Jira oder Jira Service Desk darstellen möchten, ohne diese zu importieren, bietet sich die App Elements Connect an. Falls Sie Ihr Netzwerk automatisch auf Assets scannen und diese in Insight importieren möchten, bietet sich ergänzend zu Insight – Asset Management die App Insight Discovery an.
Weiterführende Dokumentation
Insight Imports: https://documentation.mindville.com/insight/5.4/insight-manager-s-guide/import-and-synchronization Insight Placeholders: https://documentation.mindville.com/insight/5.4/insight-advanced-usage-guide/insight-with-placeholders Insight Query Langugage: https://documentation.mindville.com/insight/5.4/insight-user-s-guide/iql-insight-query-language
Haben Sie Fragen oder Anregungen zum diesem Blog-Beitrag? Dürfen wir Sie unterstützen? Schreiben Sie uns auf hallo@zuara.ch oder rufen Sie uns an: 031 302 60 00.