Skip to main content

Berichte automatisiert erstellen

Sie können Jobs anlegen, mit denen Berichte automatisiert erzeugt und in einem Ticket versendet werden.

So könnten Sie sich beispielsweise jeden Montag, um 6:00 Uhr über die Anzahl offener Störungstickets pro Organisation informieren lassen. Das nachfolgende Beispiel soll veranschaulichen, wie solch ein Job konfiguriert werden könnte.

KIX Pro ermöglicht, Berichte in weiteren Ausgabeformaten zu erstellen (Atom Feed, Excel, HTML, JSON, PDF, XML). Durch Extraktion der Berichtsinhalte können diese direkt in den Nachrichtentext eines Ticket eingefügt und/oder als Artikelanhang gesendet werden.

Der Job hat folgende Aufgaben (in angegebener Reihenfolge):

  1. jeden Montag um 6:00 Uhr einen Bericht im HTML-Format auf Basis einer bestehenden Berichtsdefinition erstellt

  2. Die HTML-Tabelle aus dem Bericht extrahiert.

  3. ein neues Ticket versendet, welches die HTML-Tabelle des Berichts im Nachrichtentext enthält.

Diese mit einem Job automatisch generierten Berichte werden - analog zu den manuell erstellten Berichten - in der Übersicht Berichte im Modul Berichte aufgeführt.

Vorbedingungen

Der Job benötigt zum Erstellen des Berichts eine bereits existierende Berichtsdefinition als Grundlage. Legen Sie dazu ggf. eine Berichtsdefinition an (s. auch: Wie erstelle ich eine Berichtsdefinition?)

Das Statement einer Berichtsdefinition könnte wie folgt lauten:

select o.name as "organisation", tt.name as "type", ts.name as "state", count(*) as "total"
   from organisation o, ticket_type tt, ticket_state ts, ticket t
      where t.type_id = tt.id
      and t.ticket_state_id = ts.id
      and t.organisation_id = o.id
      and tt.id in (${Parameters.TypeIDList})
      and o.id in (${Parameters.OrganisationIDList})
      and ts.id in (${Parameters.StateIDList})
   group by o.name, tt.name, ts.name
   order by o.name, tt.name, ts.name

Da die HTML-Tabelle des Berichts extrahiert werden soll, muss der Bericht als HTML-Datei erstellt werden können. Dazu ist in der Berichtsdefinition als Ausgabeformat "HTML" anzugeben.

Beispielkonfiguration des Jobs

  • Job Informationen

    • Job Typ: Reporting

    • Name: Name des Jobs (z. B. Wochenbericht)

    • Gültigkeit: gültig

  • Ausführungsplan

    • Wochentag(e): Montag

    • Zeit: 6:00 Uhr

    • Events: keine

  • Aktionen (in angegebener Reihenfolge)

    Informationen zu den im Job verwendeten Aktionen finden Sie in der Übersicht der Macro Actions

    1. Aktion: Bericht erstellen -  Erstellt den Bericht auf Basis der angegebenen Berichtsdefinition

      Zur Auswahl stehen die in der Berichtsdefinition festgelegten Parameter. Tragen Sie die vom Job zu verwendenden Parameterwerte ein, damit der Job diese beim Erstellen des Berichts setzen kann. 

      Im Beispiel wird der Bericht in der Objektvariablen varWeekReport gespeichert (Feld Bericht). Wird keine Variable dekliniert, wird der Bericht in der Variablen Report gespeichert. Dann kann mit $ {Report.Results:n.Attribut} auf den erstellten Bericht referenziert werden.

      Sie können nur Ausgabeformate angeben, die bereits in der Berichtsdefinition festgelegt wurden.

      Im Beispiel wird der Bericht als HTML ausgegeben, sodass die HTML-Tabelle mit der nächsten Aktion extrahiert werden kann.

      job-reporting_1MA-bericht-erstellen_pro.png
    2. Aktion: Text entnehmen - Extrahiert die HTML-Tabelle aus dem erzeugten Bericht.

      Diese Macro Action kann mittels RegEx Text extrahieren. Entsprechend dem verwendeten Regulären Ausdruck können sowohl der ganze Text als auch einzelne Textteile extrahiert werden. Der zu extrahierende Text muss bereits existieren (z. B. in einer Variablen).

      job-reporting_2MA_extract-text_pro.png
      • ExtractedText: Deklaration der Variable, welche die HTML-Tabelle des Berichts aufnimmt.

        Im Beispiel wird die HTML-Tabelle des Berichts extrahiert und in der Variable varTableWeekReport gespeichert.

        Auf varTableWeekReport wird später in der Aktion Macro ausführen referenziert, um den extrahierten Text im Nachrichtentext auszugeben.

      • RegEx: Regulärer Ausdruck, welcher den entnommenen Text eingeschränkt.

        Im Beispiel finden keine Einschränkungen statt. Der gesamte Body-Inhalts des HTML-Berichts wird extrahiert. Der Ausdruck lautet somit: <body>(.*?)</body>

      • Text: Definiert, welcher Text zu extrahieren ist.

        Die angegebene Variable definiert, woher der Text extrahiert wird. Im Beispiel ist dies die in der 1. Aktion deklinierte Objektvariable.

        Variablen können komplexe Objekte repräsentieren. Der Zugriff auf die Result-Eigenschaften erfolgt mittels Punkt (.). Ist die Eigenschaft ein Array, kann mittels :<index> auf ein Element des Arrays zugegriffen werden.

        Die Variable ${varWeekReport.Results:0.Content} setzt sich somit wie folgt zusammen:

        • Die Variable varWeekReport besitzt die Eigenschaft Results. Results ist ein Array, welches die Berichte in den jeweiligen Ausgabeformaten (HTML, CSV, JSON, XLSX, etc.) beinhaltet.

          • mittels Zugriff auf :0 wird das erste Ausgabeformat verwendet (hier: HTML)

            • vom Ausgabeformat wird die Eigenschaft Content verwendet. Diese bezieht sich auf den gesamten Dateiinhalt. Im Beispiel: das gesamte HTML-Dokument.

    3. Aktion: Macro ausführen - Führt ein Makro aus. (hier: neues Ticket anlegen).

      Diese Macro Action führt weitere Macros aus. Im Beispiel wird ein neues Ticket mit folgenden Informationen erstellt:

      • die erforderlichen Ticketangaben wie Status, Priorität, Betreff, Kanal etc.

      • durch Angabe der Variablen ${varWeekReport.1} wird der extrahierte Text (s. 2. Aktion "Text entnehmen") im Nachrichteninhalt ausgegeben.

      job-reporting_3MA_macro-ausfuehren-start1.png
      job-reporting_3MA_macro-ausfuehren-2.png

Ergebnis

Nach Ausführung des Jobs existiert ein neues Ticket. Das Ticket enthält den Bericht im Nachrichtentext und im Artikelanhang die CSV-Datei des Berichts.

job-reporting_ergebnis-pro1.png

Anmerkung

Die Validierung der Macro Actions erfolgt erst bei Ausführung des Jobs.

Hinweise zu eventuellen Fehlern finden Sie im kix.log (Menü System > Logs) oder im job.log (Detailansicht des Jobs > Tab Historie).