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:
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;Stufe 1
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
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ässig 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.
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 weiss 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.
Dasselbe wiederholen wir für Kategorie und Stufe. Insight zeigt uns jetzt aber an, dass es die Zuweisungen noch nicht machen kann. Es weiss 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 weiss, 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 sogenanter 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:
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:
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. Wir freuen uns auf Ihre Anfrage!