Extension Guide

Contextual Tab Launcher – Dokumentation

Dokumentation für den Contextual Tab Launcher: Öffnet Matrix42-Objekte in einer anderen Anwendung in neuem Browser-Tab.

Torben Soennecken 24. Januar 2026

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:

  1. Liest das ausgewählte Objekt aus dem Grid
  2. Ermittelt die Zielanwendung aus den Controller Parameters
  3. Erstellt einen Deep-Link zur Objektvorschau
  4. Öffnet die URL in einem neuen Browser-Tab

Architektur

Das AngularJS-Modul RootITUp.Pandora.OpenInNewApp registriert sich über mx.workspacesConfig.registerModule().

Genutzte Matrix42-Services

ServiceFunktion
$windowÖffnet URLs in neuem Tab
mx.shell.ConfigLiest basePath für URL-Konstruktion
mx.sb.public.serviceZeigt Benachrichtigungen an
mx.shell.AppsServiceFindet Zielanwendung nach Namen

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

  1. Matrix42 Administration öffnen
  2. Zu Administration → Extensions → Extension Gallery navigieren
  3. Nach „Contextual Tab Launcher” von RootITUp suchen
  4. 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:

AnwendungController Parameter
Administration/Solution BuilderSolutionBuilder
Service CatalogServiceCatalog
Asset ManagementAssets
Service DeskServiceDesk

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:

EigenschaftWert
NameIn Administration öffnen
Custom ControllerRootITUp.Pandora.OpenInNewApp.OpenInNewAppController
Controller ParametersSolutionBuilder
ZielEinzelnes Objekt

Eigene Aktion: „Im Service Catalog öffnen”

EigenschaftWert
NameIm Service Catalog öffnen
Custom ControllerRootITUp.Pandora.OpenInNewApp.OpenInNewAppController
Controller ParametersServiceCatalog
ZielEinzelnes Objekt
Sichtbar inAssets, Service Desk
KonfigurationselementSPSActivityTypeIncident, SPSActivityTypeServiceRequest

Fehlerbehandlung

Der Controller zeigt verständliche Benachrichtigungen bei Fehlern:

FehlerMeldung
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:

EigenschaftFallbackBeschreibung
_idIdObjectId des Objekts
_typeTypeKonfigurationselement (z. B. SPSActivityTypeIncident)
_archivedArchivierungsstatus (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-SolutionBuilderSolutionBuilder).

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.

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.

War dieser Artikel hilfreich?

Wir freuen uns über Feedback.