Der Contextual Tab Launcher ermöglicht das Öffnen von Matrix42-Objekten in einer anderen Anwendung – direkt in einem neuen Browser-Tab. Ein Ticket aus der Service Desk-App lässt sich so z. B. mit einem Klick im Solution Builder öffnen.
Funktionsweise
Die Extension stellt einen Custom Controller für Pandora Actions bereit. Dieser Controller:
- Liest das ausgewählte Objekt aus dem Grid
- Ermittelt die Zielanwendung aus den Controller Parameters
- Erstellt einen Deep-Link zur Objektvorschau
- Öffnet die URL in einem neuen Browser-Tab
Architektur
Das AngularJS-Modul RootITUp.Pandora.OpenInNewApp registriert sich über mx.workspacesConfig.registerModule().
Genutzte Matrix42-Services
| Service | Funktion |
|---|---|
$window | Öffnet URLs in neuem Tab |
mx.shell.Config | Liest basePath für URL-Konstruktion |
mx.sb.public.service | Zeigt Benachrichtigungen an |
mx.shell.AppsService | Findet Zielanwendung nach Namen |
Deep-Link-Struktur
Der Controller erstellt URLs nach folgendem Schema:
https://<host>/<basePath>/app-<appName>/?view-options=<encodedJson>
Das view-options-Objekt enthält:
{
"objectId": "a1b2c3d4-...",
"type": "SPSActivityTypeIncident",
"archived": "0",
"viewType": "preview"
}
Installation
Extension Gallery
- Matrix42 Administration öffnen
- Zu Administration → Extensions → Extension Gallery navigieren
- Nach „Contextual Tab Launcher” von RootITUp suchen
- Auf „Install” klicken und warten, bis die Installation abgeschlossen ist
Nach der Installation steht die Beispielaktion „In Administration öffnen” zur Verfügung.
Konfiguration: Aktion einrichten
1. Navigation zu den Aktionen
Unter Administration → User Interface → Actions die Aktionsübersicht öffnen.
2. Aktion erstellen oder auswählen
Eine neue Aktion erstellen oder eine bestehende auswählen (z. B. für ein bestimmtes Konfigurationselement).
3. Custom Controller zuweisen
In den Eigenschaften der Aktion unter „Custom Controller” auswählen:
RootITUp.Pandora.OpenInNewApp.OpenInNewAppController
4. Zielanwendung definieren
Im Feld „Controller Parameters” den exakten Namen der Matrix42-Anwendung eintragen:
| Anwendung | Controller Parameter |
|---|---|
| Administration/Solution Builder | SolutionBuilder |
| Service Catalog | ServiceCatalog |
| Asset Management | Assets |
| Service Desk | ServiceDesk |
5. Einzelauswahl sicherstellen
Die Eigenschaft „Ziel” auf „Einzelnes Objekt” setzen.
Der Controller ist für Einzelauswahl konzipiert. Bei Mehrfachauswahl wird nur das erste Objekt geöffnet.
6. Finalisieren
- Sichtbarkeit in Anwendungen konfigurieren
- Sichtbarkeit für Konfigurationselemente festlegen
- Zielgruppe setzen
- Speichern und schließen
Beispielkonfiguration
„In Administration öffnen”
Diese Aktion wird mit der Extension ausgeliefert:
| Eigenschaft | Wert |
|---|---|
| Name | In Administration öffnen |
| Custom Controller | RootITUp.Pandora.OpenInNewApp.OpenInNewAppController |
| Controller Parameters | SolutionBuilder |
| Ziel | Einzelnes Objekt |
Eigene Aktion: „Im Service Catalog öffnen”
| Eigenschaft | Wert |
|---|---|
| Name | Im Service Catalog öffnen |
| Custom Controller | RootITUp.Pandora.OpenInNewApp.OpenInNewAppController |
| Controller Parameters | ServiceCatalog |
| Ziel | Einzelnes Objekt |
| Sichtbar in | Assets, Service Desk |
| Konfigurationselement | SPSActivityTypeIncident, SPSActivityTypeServiceRequest |
Fehlerbehandlung
Der Controller zeigt verständliche Benachrichtigungen bei Fehlern:
| Fehler | Meldung |
|---|---|
| Kein Objekt ausgewählt | „No object selected. Please select an object to open in the target application.” |
| Controller Parameters fehlen | „Action is not configured with the target application name.” |
| Zielanwendung nicht gefunden | „Target application “{name}” not found.” |
| Mehrfachauswahl | „This action only supports a single object. Opening the first selected item.” (Warnung) |
Technische Details
Objektkontext
Der Controller extrahiert folgende Eigenschaften aus dem ausgewählten Objekt:
| Eigenschaft | Fallback | Beschreibung |
|---|---|---|
_id | Id | ObjectId des Objekts |
_type | Type | Konfigurationselement (z. B. SPSActivityTypeIncident) |
_archived | – | Archivierungsstatus (für archivierte Objekte) |
Anwendungssuche
Die Anwendung wird über mxAppsService.getApplications() gesucht. Der Vergleich erfolgt case-insensitive.
Changelog
Version 1.0.0 – Initial Release (25.01.2026)
- ✨ Custom Controller für Pandora Actions
- ✨ Öffnet Objekte in beliebiger Matrix42-Anwendung
- ✨ Deep-Link-Erstellung zur Objektvorschau
- ✨ Zielanwendung via Controller Parameters konfigurierbar
- ✨ Integrierte Validierung mit Fehlermeldungen
- ✨ Beispielaktion „In Administration öffnen” enthalten
- ✅ Kein Code erforderlich – reine Konfiguration
Häufig gestellte Fragen
Welche Anwendungen lassen sich als Ziel verwenden?
Alle Matrix42-Anwendungen, die über mxAppsService.getApplications() verfügbar sind. Der Name muss exakt dem internen Anwendungsnamen entsprechen (z. B. SolutionBuilder, ServiceCatalog, Assets).
Funktioniert die Aktion mit Mehrfachauswahl?
Nein. Der Controller ist für Einzelauswahl konzipiert. Bei Mehrfachauswahl wird eine Warnung angezeigt und nur das erste Objekt geöffnet. Die Aktion sollte mit „Ziel = Einzelnes Objekt” konfiguriert werden.
Öffnet sich die Vorschau oder das Bearbeitungsformular?
Die Vorschau (viewType: "preview"). Das Standardverhalten entspricht dem Klick auf ein Objekt in einer Matrix42-Liste.
Werden archivierte Objekte unterstützt?
Ja. Der Controller prüft _archived und setzt den entsprechenden Parameter im Deep-Link. Archivierte Objekte werden korrekt in der Zielanwendung geöffnet.
Wie finde ich den korrekten Anwendungsnamen?
Im Browser die URL einer Matrix42-Anwendung prüfen. Der Anwendungsname steht nach app- (z. B. app-SolutionBuilder → SolutionBuilder).
Werden zusätzliche Berechtigungen benötigt?
Nein. Die Extension verwendet ausschließlich öffentliche Matrix42-APIs. Die Zielanwendung muss für den Nutzenden zugänglich sein.