Extension Guide

Contextual Tab Launcher für Matrix42

Contextual Tab Launcher für Matrix42: ein ausgewähltes Objekt per Pandora-Action in einer anderen Anwendung in einem neuen Browser-Tab öffnen.

Torben Soennecken 24. Januar 2026 Aktualisiert 5. Juli 2026

Der Contextual Tab Launcher öffnet ein ausgewähltes Matrix42-Objekt in einer anderen Anwendung – in einem neuen Browser-Tab. Die Extension liefert dafür einen Custom Controller für Pandora Actions sowie eine einsatzbereite Beispielaktion. Mit dieser Beispielaktion lässt sich z. B. eine Workflow-Instanz aus dem Service Desk oder Service Catalog mit einem Klick in der Administration öffnen.

Funktionsweise

Die Extension stellt einen Custom Controller für Pandora Actions bereit. Beim Ausführen der Aktion:

  1. liest der Controller das ausgewählte Objekt aus der Übersicht,
  2. ermittelt die Zielanwendung aus den Controller Parameters,
  3. erstellt einen Deep-Link zur Vorschau des Objekts,
  4. und öffnet die URL in einem neuen Browser-Tab ($window.open(url, "_blank")).

Architektur

Das AngularJS-Modul RootITUp.Pandora.OpenInNewApp registriert den Controller RootITUp.Pandora.OpenInNewApp.OpenInNewAppController und meldet sich über window.mx.workspacesConfig.registerModule("RootITUp.Pandora.OpenInNewApp") beim Workspaces-Loader an. Ausgeliefert wird das Modul als Workspace-Bundle (module.js).

Genutzte Matrix42-Services

Der Controller injiziert vier Shell-Services:

ServiceVerwendung
$windowÖffnet die URL in einem neuen Tab
mx.shell.ConfigLiefert settings.basePath für die URL-Konstruktion
mx.sb.public.serviceZeigt Fehler- und Warnbenachrichtigungen an
mx.shell.AppsServiceLiefert die Anwendungen (getApplications()) zur Namenssuche

Der Controller erzeugt eine relative URL nach folgendem Schema (ohne führenden Host, ohne abschließenden Schrägstrich vor ?):

<basePath>app-<appName>?view-options=<URL-kodiertes JSON>

basePath stammt aus mx.shell.Config (settings.basePath, Standard "/"). $window.open löst die relative URL gegen den aktuellen Origin auf. Das view-options-Objekt hat folgende Struktur (Beispielwerte illustrativ; type entspricht dem Konfigurationselement des Objekts):

{
  "objectId": "<ObjectId>",
  "type": "PLSLWorkflowProcessInstanceType",
  "archived": "0",
  "viewType": "preview"
}

archived ist die Zeichenkette "1" oder "0"; viewType ist stets "preview".

Installation

Der Contextual Tab Launcher wird über die Matrix42 Extension Gallery installiert (Paket-Id 3d4efc0f-164b-c06b-a406-08ddf9e10915).

  1. Matrix42 Administration öffnen.
  2. Die Extension Gallery aufrufen und nach „Contextual Tab Launcher” von RootITUp suchen.
  3. Auf „Install” klicken und die Installation abschließen.

Voraussetzung: Matrix42 Digital Workspace Platform ab Version 12.0.0 (MinimalRequiredProductVersion). Die Installation legt die Beispielaktion an und stellt das Controller-Bundle bereit; ein Neustart der Dienste ist nicht erforderlich.

Nach der Installation steht die Beispielaktion „In Administration öffnen” zur Verfügung.

Konfiguration: Eigene Aktion einrichten

Um den Custom Controller auf ein anderes Objekt oder eine andere Anwendung anzuwenden, legen Sie eine Pandora Action an (in der Administration oder als Konfigurationspaket) und setzen die folgenden Eigenschaften.

1. Aktion anlegen

In der Administration-Anwendung eine neue Aktion (PDRActionType) anlegen oder eine bestehende auswählen. (Den genauen Menüpfad zu den Actions entnehmen Sie Ihrer Administrationsoberfläche.)

2. Implementierungstyp: Custom Controller

Als Implementierungstyp „Custom Controller” wählen (auf der Wire-Ebene ImplementationType="c"). Im Feld „Controller” die Controller-Klasse eintragen:

RootITUp.Pandora.OpenInNewApp.OpenInNewAppController

3. Zielanwendung definieren

Im Feld „Controller Parameters” den Namen der Ziel-Anwendung eintragen. Der Controller vergleicht diesen Wert case-insensitiv mit dem name der Anwendungen aus getApplications().

AnwendungController ParameterStatus
AdministrationSolutionBuilderin der Beispielaktion verwendet
andere Anwendungenapp-Name aus der URLsiehe Hinweis unten

Hinweis: Der zu verwendende Name ist der interne Anwendungsname, nicht zwingend der Anzeigename – die Administration heißt intern SolutionBuilder. Den korrekten Namen lesen Sie aus der URL der Zielanwendung ab: der Teil nach app- (z. B. app-SolutionBuilderSolutionBuilder).

4. Einzelauswahl festlegen

Die Eigenschaft „Ziel” auf „Einzelnes Objekt” setzen (Target=1). Der Controller verarbeitet das erste ausgewählte Objekt.

Bei Mehrfachauswahl zeigt der Controller eine Warnung an und öffnet nur das erste Objekt.

5. Sichtbarkeit und Zielgruppe

  • Konfigurationselement(e) festlegen, auf denen die Aktion erscheint (TypeFilter=1 + SchemaTypes).
  • Sichtbarkeit in Anwendungen konfigurieren – ohne Zuordnung ist die Aktion in allen Anwendungen sichtbar.
  • Zielgruppe (Audience) bei Bedarf setzen.
  • Speichern und schließen.

Ausgelieferte Beispielaktion: „In Administration öffnen”

Diese Aktion wird mit der Extension installiert und öffnet eine Workflow-Instanz in der Administration:

EigenschaftWert
Name (EN)Open in Administration
Name (DE, LCID 7)In Administration öffnen
Name (FR, LCID 12)Ouvrir dans l’administration
Name (PL, LCID 21)Otwórz w administracji
Interner NameRootITUp.Pandora.OpenInAdministration
ImplementierungstypCustom Controller
ControllerRootITUp.Pandora.OpenInNewApp.OpenInNewAppController
Controller ParametersSolutionBuilder
ZielEinzelnes Objekt (Target=1)
KonfigurationselementPLSLWorkflowProcessInstanceType (TypeFilter=1)
Sichtbar inService Desk, Service Catalog
Iconopen_in_new

Fehlerbehandlung

Der Controller zeigt bei fehlender Konfiguration oder Auswahl Benachrichtigungen an:

SituationMeldungTyp
Kein Objekt ausgewählt„No object selected. Please select an object to open in the target application.”Fehler
Controller Parameters fehlen„Action is not configured with the target application name.”Fehler
Zielanwendung nicht gefunden„Target application “{name}” not found.”Fehler
Mehrfachauswahl„This action only supports a single object. Opening the first selected item.”Warnung

Technische Details

Objektkontext

Der Controller extrahiert aus dem ausgewählten Objekt:

EigenschaftFallbackBeschreibung
_idIdObjectId des Objekts
_typeTypeKonfigurationselement des Objekts
_archivedSteuert den Parameter archived ("1"/"0")

Anwendungssuche

Die Zielanwendung wird über mx.shell.AppsService.getApplications() ermittelt. Der Vergleich mit den Controller Parameters erfolgt über den name der Anwendung und ist case-insensitiv.

Changelog

Version 1.0 – Initial Release (22.09.2025)
  • Custom Controller RootITUp.Pandora.OpenInNewApp.OpenInNewAppController für Pandora Actions
  • Öffnet ein ausgewähltes Objekt in einer anderen Matrix42-Anwendung in einem neuen Browser-Tab
  • Deep-Link zur Objektvorschau (viewType: "preview")
  • Zielanwendung über die Controller Parameters konfigurierbar
  • Validierung mit Fehler- und Warnbenachrichtigungen
  • Beispielaktion „In Administration öffnen” (RootITUp.Pandora.OpenInAdministration) enthalten, sichtbar in Service Desk und Service Catalog, für PLSLWorkflowProcessInstanceType
  • Kompatibel mit der Matrix42 Digital Workspace Platform ab 12.0.0
  • Keine DLL erforderlich – Konfiguration plus ein JavaScript-Bundle

Häufig gestellte Fragen

Welche Anwendungen lassen sich als Ziel verwenden?

Alle Anwendungen, die mx.shell.AppsService.getApplications() liefert. In den Controller Parameters tragen Sie den name der Anwendung ein; der Vergleich ist case-insensitiv. In der Beispielaktion ist dies SolutionBuilder (Administration).

Wie finde ich den korrekten Anwendungsnamen?

Prüfen Sie die URL der Zielanwendung im Browser. Der Anwendungsname steht nach app- (z. B. app-SolutionBuilderSolutionBuilder). Der interne Name kann vom Anzeigenamen abweichen.

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. Konfigurieren Sie die Aktion mit „Ziel = Einzelnes Objekt”.

Öffnet sich die Vorschau oder das Bearbeitungsformular?

Die Vorschau: Der Controller setzt viewType: "preview".

Werden archivierte Objekte berücksichtigt?

Ja. Der Controller liest _archived aus dem Objekt und setzt den Deep-Link-Parameter archived auf "1" bzw. "0".

Werden zusätzliche Berechtigungen benötigt?

Die Extension nutzt öffentliche Shell-Services der Digital Workspace Platform. Die Zielanwendung muss für die 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.

Diesen Beitrag teilen

So finden andere diese Inhalte leichter.

LinkedIn X

War dieser Artikel hilfreich?

Wir freuen uns über Feedback.