Dies ist der fünfte Teil einer Reihe von Blog-Beiträgen über die Jira App Insight von Mindville. Er beschreibt das Automation-Modul, mit dem sich bestimmte Geschäftsprozesse automatisieren lassen.

Wenn eine Störung an einem Server auftritt, muss die verantwortliche mitarbeitende Person per Mail informiert werden. Wenn ein Mitarbeiter ein neues Handy bekommt, dann müssen diese Informationen in der Datenbank gepflegt werden, und wenn ein Mitarbeiter die Firma verlässt, müssen diverse personenbezogene Daten gelöscht oder anonymisiert werden. Diese Tätigkeiten sind aufwändig und müssen meist manuell durchgeführt werden. Um das einfacher zu gestalten, bietet Insight das Automation-Modul. Mit ihm lassen sich Regeln definieren, um Routine-Aufgaben zu automatisieren, indem Aktionen auf ein oder mehrere Insight Objekte selbständig durchgeführt werden. Die Regeln können von einem Administrator in einem grafischen Editor ohne Programmierkenntnisse implementiert und ausgeführt werden.

Allgemein

Um die Automationen konfigurieren zu können, muss der User mindestens in der Rolle Insight Schema Manager sein. Insight Administratoren und die globale Berechtigung Jira Administrators können jederzeit auf die Insight Automation zugreifen.

Navigieren Sie zunächst zum Objektschema, für das Sie eine Automation erstellen möchten. Dort dann auf Object Schema -> Configure klicken, wo sich der Tab Automation befindet. Wurde bisher noch keine Automation erstellt, gibt es einen Button „Be the first to create one“ – ansonsten klicken Sie auf ‚Create New Rule‘.

Neben einem Namen und einer Beschreibung der Regel kann der User ausgewählt werden, für den diese Regel ausgeführt wird. Standardmäßig ist hier der aktuell eingeloggte User eingestellt, was in den meisten Fällen sinnvoll ist, um eine saubere Dokumentation der Ereignisse zu erhalten. Die einzige Ausnahme bildet die zeitgesteuerte Regelausführung: hier muss ein spezifischer User angegeben werden – es könnte ja sein, dass zum Zeitpunkt der Ausführung kein User eingeloggt ist.

Der Aufbau der Regeln folgt einer simplen WHEN → If → THEN Syntax, mit der Option, weitere Else- bzw. THEN-Pfade hinzuzufügen.

Die Automatisierungsregeln können einfach mithilfe einer grafischen Oberfläche erstellt werden

Die Automatisierungsregeln können einfach mithilfe einer grafischen Oberfläche erstellt werden.

 Trigger (WHEN)

Der erste Block beschreibt den Auslöser für die Automationsregel. Bis auf die Ausnahme von geplanten (scheduled) Triggern, werden die Regeln durch Änderungen an Objekten ausgelöst. Das heißt, eine Regel kann ausgelöst werden, wenn

  • Anhänge gelöscht oder hinzugefügt werden
  • Kommentare geändert, hinzugefügt oder gelöscht werden
  • Objekte erstellt, verändert, bewegt oder gelöscht werden
  • Als zeitgesteuertes Event (z.B. täglich, stündlich, monatlich etc.)

Fast jeden dieser Trigger kann man mit einem Klick hinzufügen – es benötigt keine weiteren Angaben im WHEN-Block. Eine Ausnahme besteht für den Trigger ‚Scheduled Event‘. Dort kann noch eine weitere Bedingung in Form eines IQL-Statements angegeben werden. Außerdem muss das Ausführungsintervall mittels eines Cron-Ausdrucks definiert werden. Wem diese Form der Syntax nicht geläufig ist, kann sich hier ganz leicht einen Ausdruck zusammenklicken.

Als Auslöser einer Regel gelten entweder User-Events oder ein zeitgesteuertes Event

Als Auslöser einer Regel gelten entweder User-Events oder ein zeitgesteuertes Event

Sollen verschiedene Trigger eine Aktion auslösen, können per ‚Add Event‘ weitere Auslöser hinzugefügt werden. Dies ist einfacher zu warten und übersichtlicher, als wenn mehrere Regeln erstellt werden. Insgesamt können maximal fünf Events mit einer Regel verknüpft werden, und es kann auch keine zusätzliche WHEN-Box (für weitere Events) hinzugefügt werden.

Bedingung (IF)

Diesen Block können Sie verwenden, wenn Sie die Aktionen so beschränken wollen, dass sie nur ausgeführt werden, wenn bestimmte Kriterien erfüllt sind. Man kann sie also als eine Art „Action Filter“ betrachten. Die Bedingung wird mit der hauseigenen Insight Query Language (IQL) definiert. Diese ist der Jira Query Language nicht unähnlich und ist für Jira-Erfahrene daher leicht zu lernen. Maximal fünf Bedingungen können in einem IF-Block enthalten sein. Dieses Limit lässt sich leicht ausweiten, da Bedingungen auch innerhalb „einer“ Bedingung mit AND und OR verknüpft werden können. Zusätzlich können maximal zwei alternative Wege mit ELSE-IF definiert werden. Um eine Bedingung hinzuzufügen, klicken Sie im IF-Block auf „Add Condition“. Dort dann ein IQL-Statement eintragen und mit „Add“ bestätigen.

Die Regel wird nur für Server-Objekte ausgeführt

Die Regel wird nur für Server-Objekte ausgeführt.

Aktion (THEN)

In diesem Block wird definiert, welche Aktion ausgeführt wird, wenn der Trigger aktiviert wurde und die Bedingungen im IF-Block erfüllt sind. Folgende Aktionen gibt es zur Auswahl:

  • Attribut-Wert zuweisen
  • Jira Issue erstellen
  • Einen Http-Request ausführen
  • Ein Groovy Script ausführen

Anders als bei den WHEN-Triggern, benötigt hier jede dieser Aktionen weitere Parameter für die Ausführung.

Um ein Attributwert zuzuweisen, benötigt es nur den Attributnamen und den Wert (z.B. „Status“ und „Inaktiv“). Zusätzlich kann ein sog. Idle-Intervall angegeben werden. Dies ist die Mindestleerlaufzeit zwischen zwei Ausführungen dieser Regel.

Für das Erstellen von Jira-Issues benötigt man die üblichen Informationen für ein Issue, wie Projekt, Issue-Typ und Zusammenfassung. Auch hier kann ein Idle-Intervall angegeben werden. Der Vorgangstyp muss im ausgewählten Projekt verfügbar sein, damit das Issue erstellt werden kann. Die UI schränkt die Auswahl im Dropdown leider nicht entsprechend ein. Placeholder können hier in den Feldern Summary und Description verwendet werden. So gibt es z.B. beim E-Mail-Versand die Möglichkeit, verschiedene Arten von Empfängern zu definieren. Dadurch können neben Jira Usern auch externe Mail-Adresse angeben werden. Eine dieser beiden Felder muss einen gültigen Wert enthalten.

Beim Groovy Script wird der Pfad angegeben, an dem das Skript liegt. Hier muss darauf geachtet werden, dass das Skript korrekt abgelegt ist und über die benötigten Berechtigungen verfügt. Einige Beispiele mit Groovy Skripten für Insight finden Sie hier.

Der Http-Request unterstützt die Felder GET/POST/PUT/DELETE. Hier werden nur die URL, die Zugangsdaten, sowie bei PUT/POST die zu sendenden Daten benötigt.

Für die automatisierte Issue-Erstellung kann man hier die Werte vordefinieren

Für die automatisierte Issue-Erstellung kann man hier die Werte vordefinieren.

Besonders durch die Option, Skripte in Groovy zu hinterlegen, sind den Möglichkeiten dieses Moduls kaum Grenzen gesetzt. Außer dem Groovy Script unterstützen alle Aktionen sog. Placeholderalso Variablen für bestimmte Werte, wie  Objekt IDs oder Attribute.

Ein Beispiel

  • Eine Regel hat einen Trigger: „Object Created“
  • Die Regel hat eine Bedingung: „ObjectType = „Bewerbung““
  • Die Regel hat eine Aktion: „Notification Email“

Diese Automations-Regel wird aktiviert, wenn ein Objekt erstellt wird.  Wenn es sich bei diesem Objekt um eine Bewerbung handelt, wird eine Benachrichtigungs-Mail (z.B. an HR) gesendet. Die Bewerbung könnte vorher über ein Formular in einem Jira Ticket hinzugefügt und gleichzeitig per Post Funktion als Insight-Objekt erstellt worden sein, was wiederum diese Regel auslöst. Dieses Beispiel zeigt, wie die anfangs beschriebenen Routine-Aufgaben mit wenigen Klicks automatisiert werden können.

Durch einen Klick auf „Save“ speichern Sie die Regel und gelangen auf die Liste aller Regeln. Dort können weitere administrative Tätigkeiten an den Regeln, wie Klonen, Löschen, Deaktivieren, Zurücksetzen und Ausführen, durchgeführt werden.

 

Weitere Fragen?

Dann sind wir als Atlassian Platinum Partner für Sie da.
  • Hier finden Sie ausführlichere Informationen zu unseren Atlassian-Leistungen.
  • Sie haben Interesse an einer Demo des Plugins oder wollen mehr über das Thema erfahren oder ein individuelles Angebot für das Plugin erhalten? Nehmen Sie über unser Kontaktformular mit uns Kontakt auf. Gerne helfen wir Ihnen bei der Auswahl eines Plugins für Ihre Anforderungen.