Extension Guide

Ticket Usability für Matrix42 – SLA-Balken

Ticket Usability für Matrix42: SLA-Fortschrittsbalken, linearer Fortschrittsbalken und Status-Chip als Layout-Designer-Controls für Tickets.

Torben Soennecken 1. Februar 2026 Aktualisiert 5. Juli 2026

RootITUp.Ticket.Usability stellt drei wiederverwendbare UI-Controls für Matrix42-Layouts bereit: einen SLA-Fortschrittsbalken, der Fortschritt, Restzeit und Zieltermin eines Tickets aus dessen SLA-Daten berechnet, einen generischen linearen Fortschrittsbalken und einen schreibgeschützten Status-Chip. Alle drei nutzen die CSS-Variablen des Matrix42-Themes.

Verfügbare Komponenten

Die Komponenten werden als PDR-Control-Descriptors installiert. In Klammern der Titel, unter dem das Control im Layout Designer erscheint.

HTML-TagTitel (Layout Designer)Funktion
rootitup-service-level-agreement-progress-barSLA Progress BarSLA-Fortschrittsbalken mit automatischer Berechnung
rootitup-progress-barLinearer FortschrittsbalkenGenerischer Fortschrittsbalken (0–100)
rootitup-chip-readonlyReadonly ChipFarbiger Status-Chip (schreibgeschützt)

Hinweis: Für den SLA-Fortschrittsbalken liefert das Paket nur einen englischen Titel („SLA Progress Bar”) aus; für die beiden anderen Controls ist zusätzlich eine deutsche Bezeichnung enthalten.

Architektur

Die Extension wird als Front-End Workspace ausgeliefert (Files/WM/workspaces/RootITUp_Ticket_Usability/). Das AngularJS-Modul RootITUp.Ticket.Usability registriert sich über mx.workspacesConfig.registerModule("RootITUp.Ticket.Usability") und definiert die drei Controls als AngularJS-Komponenten.

Genutzte Matrix42-Services

  • mx.sb.public.service – HTTP-Aufrufe (http.post/http.get) und Benachrichtigungen (notification.warning)
  • mx.internationalization – Datumsformatierung (formatUTCDate)

Data-Query-Abhängigkeit

Der SLA-Fortschrittsbalken benötigt eine mitgelieferte Data Query mit der ID:

5ed9627f-38f9-cf02-b4fa-08de22b89aeb

Diese schreibgeschützte Data Query (Name: RootITUp.Ticket.Usability, Datendefinition SPSActivityClassBase) wird mit der Extension installiert und liefert je Ticket-ObjectId die für die SLA-Berechnung nötigen Spalten: ObjectId, State, SLA, SLAPriority, Priority, CreatedDate, ReactionPoint, SolutionPoint, ServiceTimeProfileObjectId, ActualReactionDate und ActualSolutionDate. Der Zugriff über eine Data Query vermeidet zusätzliche Web-Service-Berechtigungen.

Installation

  1. Matrix42 Administration öffnen
  2. Zur Extension Gallery navigieren
  3. Nach „RootITUp.Ticket.Usability” suchen
  4. Auf „Install” klicken und die Installation abschließen

Diese Extension ist kostenlos verfügbar.

Technische Rahmenbedingungen aus dem Konfigurationspaket:

  • Mindestversion: Matrix42 Digital Workspace Platform 12.1.3 (MinimalRequiredProductVersion)
  • Setup: Die Installation recycelt die Web-Anwendung (RecycleWebApplication); kein Maintenance-Mode, kein Neustart der Windows-Dienste erforderlich.
  • Inhalt: drei PDR-Control-Descriptors und eine PDR-Data-Query; keine abhängigen Pakete.

Konfiguration (Integration)

Nach der Installation stehen die drei Controls im Layout Designer zur Verfügung und können in ein Ticket-Layout (z. B. Vorschau oder Dialog) eingefügt werden.

SLA-Fortschrittsbalken einbinden

  1. Layout im Layout Designer öffnen (z. B. das gewünschte Ticket-Formular)
  2. Control platzieren: rootitup-service-level-agreement-progress-bar einfügen
  3. object-id binden: die ObjectId des Tickets bzw. der Aktivität zuweisen (Pflichtwert)
  4. type festlegen: 'reaction' oder 'solution' (Pflichtwert)
  5. Optional Beschriftungspräfixe und Schwellenwerte setzen

Status-Chip einbinden

  1. Control platzieren: rootitup-chip-readonly einfügen
  2. text binden: den anzuzeigenden Status-Text (Pflichtwert)
  3. color binden: eine CSS-Farbe bzw. Theme-Variable (Pflichtwert)

Komponenten im Detail

Status-Chip (rootitup-chip-readonly)

Ein schreibgeschützter Chip zur Anzeige eines Status-Labels. Aus der übergebenen Farbe leitet die Komponente Textfarbe und einen Hintergrund mit 15 % Deckkraft ab.

Eigenschaften

EigenschaftHTML-AttributTypPflichtStandard
texttextStringJa
colorcolorCSS-FarbeJavar(--mx-content-hint-color)

Verwendung

<rootitup-chip-readonly
  text="'Aktiv'"
  color="'var(--mx-success-color)'">
</rootitup-chip-readonly>

Farbkorrektur

Die Komponente korrigiert bestimmte Farbformate automatisch:

EingabeKorrekturRegel
0xFF00FF#FF00FFPräfix 0x wird durch # ersetzt
#FFFF00FF#FF00FFbei mehr als 7 Zeichen werden die letzten 6 verwendet

Ohne Farbe wird var(--mx-content-hint-color) verwendet.

Linearer Fortschrittsbalken (rootitup-progress-bar)

Generischer Fortschrittsbalken mit Beschriftungen und optionalem Pausenzustand. Der Fortschrittswert wird automatisch auf 0–100 begrenzt.

Eigenschaften

EigenschaftHTML-AttributTypPflichtStandard
labelLeftlabel-leftStringJa
labelRightlabel-rightStringNein
labelBottomlabel-bottomStringNein
progressprogressNumber (0–100)Ja0
colorcolorCSS-FarbeJavar(--mx-active-color)
isPausedis-pausedBooleanNeinfalse
pausedTextpaused-textStringNein"Paused"

Verwendung

<rootitup-progress-bar
  label-left="'Reaktionszeit'"
  label-right="'2h 30m verbleibend'"
  progress="65"
  color="'var(--mx-warning-color)'">
</rootitup-progress-bar>

SLA-Fortschrittsbalken (rootitup-service-level-agreement-progress-bar)

Spezialisierter Fortschrittsbalken für die SLA-Anzeige. Er ermittelt Fortschritt, verbleibende Zeit und Zieltermin automatisch aus den SLA-Daten des Tickets. Intern rendert er den linearen Fortschrittsbalken.

Eigenschaften

EigenschaftHTML-AttributTypPflichtStandard
object-idobject-idObjekt/GUIDJa
typetype'reaction' / 'solution'Ja
labelLeftlabel-leftStringJa¹"Reaction Time" / "Solution Time"
labelRightPrefixlabel-right-prefixStringNein
labelBottomPrefixlabel-bottom-prefixStringNein
slaWarningThresholdsla-warning-thresholdNumberNein75
slaBreachThresholdsla-breach-thresholdNumberNein90

¹ Im Control-Descriptor als Pflichtfeld markiert; bleibt es leer, setzt die Komponente je nach type das Standardlabel „Reaction Time” bzw. „Solution Time”.

Verwendung

<!-- Reaktionszeit -->
<rootitup-service-level-agreement-progress-bar
  object-id="…ObjectId des Tickets…"
  type="'reaction'"
  label-left="'Reaktionszeit'">
</rootitup-service-level-agreement-progress-bar>

<!-- Lösungszeit mit angepassten Schwellen -->
<rootitup-service-level-agreement-progress-bar
  object-id="…ObjectId des Tickets…"
  type="'solution'"
  label-right-prefix="'Verbleibend: '"
  label-bottom-prefix="'Fällig: '"
  sla-warning-threshold="80"
  sla-breach-threshold="95">
</rootitup-service-level-agreement-progress-bar>

Farblogik

Die Balkenfarbe wird über Theme-Variablen gesetzt und richtet sich nach dem SLA-Status. Die tatsächlich dargestellte Farbe hängt vom konfigurierten Matrix42-Theme ab; die angegebenen Hex-Werte sind die Standardwerte des Themes.

ZustandBedingungVariable (Standardwert)
OKFortschritt < Warnschwelle--mx-active-color (Aktiv-/Primärfarbe, Standard #2364e4)
WarnungFortschritt ≥ Warnschwelle--mx-warning-color (Warn-Tint, Standard #ffefb5)
KritischFortschritt ≥ Breach-Schwelle--mx-error-color (Fehler-Tint, Standard #ffcbd5)
Eingehaltenabgeschlossen, Fortschritt < 100 %--mx-success-color (Erfolgs-Tint, Standard #bef8e8)
Verletztabgeschlossen, Fortschritt ≥ 100 %--mx-error-color (Fehler-Tint, Standard #ffcbd5)
PausiertStatus 203 oder 220--mx-content-hint-color (gedämpfte Hinweisfarbe)

--mx-warning-color, --mx-error-color und --mx-success-color sind im Matrix42-Theme als dezente Hintergrund-Tints definiert. Ihre Anzeige folgt dem aktiven Theme, nicht einem festen Farbnamen.

SLA-Berechnung

  1. Data Query abrufen: POST api/dataQuery/5ed9627f-38f9-cf02-b4fa-08de22b89aeb mit einer Bedingung auf ObjectId.
  2. Priorität abgleichen: Es wird die Zeile verwendet, deren SLA-Level-Priorität (SLAPriority) mit der Ticket-Priorität (Priority) übereinstimmt und die ein Servicezeit-Profil sowie die nötigen Datumswerte besitzt.
  3. Arbeitszeit berechnen: GET api/serviceTimeProfile/{ServiceTimeProfileObjectId}/timeDifference?start=…&end=… – je einmal für Start → Zieltermin (zugeteilte Minuten) und Start → Ist/Jetzt (verstrichene Minuten).
  4. Fortschritt: min(verstrichen / zugeteilt × 100, 100).

Pausierte Status

Status-WertBedeutungVerhalten
203PausiertBalken zeigt Pause-Icon und den Status-Namen
220GelöstBalken zeigt Pause-Icon und den Status-Namen
AndereAktivnormale Fortschrittsanzeige

Zieltermin-Anzeige

Solange das SLA läuft, zeigt die untere Beschriftung den Zieltermin. Nach Abschluss wird zusätzlich das Ist-Datum mit Ergebnis angezeigt: bei eingehaltenem SLA (Fortschritt < 100 %), bei verletztem SLA (Fortschritt ≥ 100 %).

Changelog

Version 1.0 – Initial Release (01.02.2026)
  • SLA Progress Bar (rootitup-service-level-agreement-progress-bar) mit automatischer Berechnung von Fortschritt, Restzeit und Zieltermin
  • Linearer Fortschrittsbalken (rootitup-progress-bar) mit Pausenzustand
  • Readonly Chip (rootitup-chip-readonly) für farbige Status-Anzeige
  • Unterstützung für Reaktions- und Lösungszeit über Servicezeit-Profile
  • Anpassbare Warn- und Breach-Schwellen (Standard 75 % / 90 %)
  • ARIA-Attribute für Barrierefreiheit
  • Matrix42-Theme-Integration über CSS-Variablen
  • Mitgelieferte Data Query für die SLA-Daten
  • Kompatibel mit der Matrix42 Digital Workspace Platform ab 12.1.3

Häufig gestellte Fragen

Werden Servicezeit-Profile berücksichtigt?

Ja. Die SLA-Berechnung ruft api/serviceTimeProfile/{id}/timeDifference auf. Diese Matrix42-API berechnet die Arbeitszeit anhand des dem SLA zugeordneten Servicezeit-Profils.

Was passiert, wenn keine passenden SLA-Daten gefunden werden?

Die untere Beschriftung zeigt „N/A”, der Fortschritt wird auf 0 gesetzt, es erscheint eine Warn-Benachrichtigung und ein Hinweis wird in der Browser-Konsole protokolliert. Das tritt etwa auf, wenn die Ticket-Priorität keinem SLA-Level entspricht oder kein Servicezeit-Profil zugeordnet ist.

Lassen sich die Farbschwellen anpassen?

Ja, über die Eigenschaften slaWarningThreshold (Standard 75) und slaBreachThreshold (Standard 90) im Layout Designer.

Welche Ticket-Status pausieren das SLA?

Die Status-Werte 203 (Pausiert) und 220 (Gelöst). Der Balken zeigt dann ein Pause-Icon und den Status-Namen; es wird kein Fortschritt berechnet.

Werden zusätzliche Berechtigungen benötigt?

Nein. Die Extension nutzt die mitgelieferte, uneingeschränkt freigegebene Data Query sowie öffentliche Matrix42-APIs. Zusätzliche Web-Service-Berechtigungen sind nicht erforderlich.

Wie werden ungültige Farbcodes im Chip behandelt?

Der Status-Chip korrigiert Farbformate automatisch: ein 0x-Präfix wird zu #, ein Hex-Wert mit mehr als 7 Zeichen wird auf die letzten 6 Zeichen gekürzt. Fehlt die Farbe, wird var(--mx-content-hint-color) verwendet.

Noch Fragen zur Konfiguration?

Unsere Engineers stehen gerne zur Verfügung, um bei der Einrichtung oder Anpassung zu helfen.

Wir antworten in der Regel innerhalb von 24h.

Diesen Beitrag teilen

So finden andere diese Inhalte leichter.

LinkedIn X

War dieser Artikel hilfreich?

Wir freuen uns über Feedback.