getRichClientApi()

dashlet.getRichClientApi() liefert den typisierten Zugriff auf die vollständige osjx*-Bridge des Rich Clients. Der Handle ist synchron (die Bridge ist ein synchroner COM-/JS-Aufruf): jede Methode liefert ihren Wert oder wirft synchron. Beide Handle-Accessors (getRichClientApi / getWebclientApi) sind pro Umgebung verfügbar und schlagen hart fehl — eine fehlende Umgebung ist nie ein stiller null-Rückgang.

1. Signatur

const rich: RichClientApi = dashlet.getRichClientApi();

Der Accessor ist gecacht: jeder wiederholte Aufruf liefert dieselbe Instanz (Identität per ===). Die Handle-Methoden lesen die Bridge pro Aufruf (verzögert) — ein später injizierter oder ausgetauschter Bridge-Zustand wird sofort sichtbar, nicht erst nach neuem Handle.

2. Methoden

Methode Bridge-Mitglied Verhalten

getEnvironment(code)

osjxGetEnvironment(code)

Roher Slot-Lesevorgang: der Stringwert, wie von der Bridge geliefert (kein Trimmen — das Nachlauf-Leerzeichen der Version in Slot 10 bleibt erhalten), oder null. Siehe die Slot-Tabelle unten.

getSelectedObjects()

osjxGetSelectedObjects

Die rohe Auswahl-Zeichenkette osid,objectTypeId;… — '', wenn nichts ausgewählt ist (ein echter Wert, nicht null). Für die normalisierte SelectedEntry[]-Form gibt es die Fassade getSelectedObjects().

openDataSheet(objectId, readOnly)

osjxOpenDataSheet

Öffnet das Datenblatt von objectId nur-lesend (readOnly = true) oder editierbar.

openObject(objectId)

osjxOpenObject

Öffnet das Objekt in seiner natürlichen Ansicht.

openLocation(objectId)

osjxOpenLocation

Öffnet die Position (Vorschau) des Objekts.

openResultList(json)

osjxOpenResultList

Öffnet die Ergebnisliste; json ist die rohe JSON-Zeichenkette (z. B. {"title":"…","hits":[…]}).

refreshObjectInLists(objectId)

osjxRefreshObjectInLists

Aktualisiert das Objekt in offenen Ergebnislisten.

getBrowserEnvironment()

osjxGetBrowserEnvironment

Roher Lesevorgang des Browser-Umfeld-Objekts (unknown) — null, wenn die Bridge-Oberfläche dieses Mitglied nicht trägt.

setBrowserCaption(caption)

osjxSetBrowserCaption

Setzt die Vorschau-Überschrift.

has(method)

— (Live-Probe)

true genau dann, wenn das Bridge-Mitglied existiert und eine Funktion ist — bei jedem Aufruf frisch sondiert (keine Caches).

call(method, params?)

beliebiges Mitglied

Der dokumentierte Escape-Hatch: der rohe, typisierte Bridge-Durchlauf für nicht katalogisierte osjx*-Mitglieder. Synchron, throw-safe.

3. Die getEnvironment(n)-Slot-Tabelle

Slot Bedeutung Anmerkung

3

Anmeldename (userName)

10

Clientversion

Roher Wert: das Nachlauf-Leerzeichen bleibt erhalten (entfernt/ normalisiert nur in InitContext.clientVersion).

14

Vollständiger Name (fullName)

16

E-Mail

18

User-GUID

24

Sprache (GUI-Kurzcode)

'' ist ein echter Wert — Version 10.10 liefert am Start leere Werte (Warm-up), siehe unten.

27

Session-GUID

sonst

nicht dokumentiert

Die Host-Markierung „Unbekannter Parameter: N" wird gefiltert — die Methode liefert null statt der Markierung.

null und '' sind streng getrennt: null bedeutet „nicht lesbar" (fehlendes Mitglied, ausnahmswerfender Aufruf, unbekannter Slot), '' ist ein echter leerer Wert. Zur Unterscheidung, ob das Mitglied selbst fehlt, dient rich.has('osjxGetEnvironment'); die Fassade getSelectedObjects() liefert die normalisierte Auswahl-Form.

4. call() — der dokumentierte Escape-Hatch

rich.call('osjxGetEnvironment', [3]) ruft ein beliebiges osjx*-Mitglied mit dem Parameter-Array auf und liefert den Rohwert (oder undefined). Ein fehlendes Mitglied wirft die beschreibende TypeError (siehe Fehler); ein werfender Bridge-Aufruf wird in die beschreibende Error umgewandelt. Die katalogisierten Methoden (Tabelle oben) sind der bevorzugte Weg — call ist der dokumentierte Ausweichweg für nicht katalogisierte Endpunkte.

5. Reduzierte Bridge und verzögertes Lesen

Die Erkennungs-Semantik bleibt unverändert: eine reduzierte COM-OpenBrowser-Bridge (nur osjxGetBrowserEnvironment
osjxSetBrowserCaption, ohne das Dashlet-Marker-Mitglied osjxGetSelectedObjects) ist keine Dashlet-Bridge — das Umfeld löst sich auf standalone auf, wo der Accessor den Wrong-Environment-Fehler wirft (siehe Fehler). Nach einer richClient-Auflösung (volle Bridge zum Zeitpunkt der Erkennung) liest der Handle die Bridge pro Aufruf; zeigt sich zum Aufrufzeitpunkt nur eine reduzierte Oberfläche, wird das ehrlich abgebildet: Lesevorgänge liefern null, Schreib-Methoden werfen die beschreibende TypeError, has() liefert false für die fehlenden Mitglieder, die Browser-Mitglieder funktionieren.

6. v10.10 Warm-up (rohe Lesevorgänge)

Bei Clientversion 10.10 liefert osjxGetEnvironment(n) am Start leere Werte, bis das Warm-up abgeschlossen ist. Der Handle liest die Bridge live — ein getEnvironment(…)-Aufruf vor dem Warm-up-Ende liefert daher '' (der echte Leerwert), danach den Wert. Die Bibliothek führt dafür ein eigenes begrenztes Warm-up mit Aktualisierung und Neu-Emission des Kontexts durch (siehe Umgebungen — v10.10 Warm-up).

7. Fehler

  • Error('dashlet destroyed') — das Dashlet wurde vor dem Aufruf zerstört (Accessor wie Handle-Methoden).

  • TypeError: Dashlet.getRichClientApi(): the environment is not resolved yet - await the dashlet.init promise first — der Aufruf erfolgte, bevor die Umgebung aufgelöst war.

  • TypeError: Dashlet.getRichClientApi(): the rich client API handle is only available in the richClient environment (current: …) — Aufruf in der falschen Umgebung (der aktuelle Wert wird genannt).

  • TypeError: Dashlet: the rich-client bridge does not expose "…" (bridge method missing) — Schreiben/call auf ein fehlendes Bridge-Mitglied.

  • Error: Dashlet: rich-client bridge call "…" failed: … — der Bridge-Aufruf selbst hat eine Ausnahme geworfen.