call()

Der zeichenkettenbasierte Einstiegspunkt für Host-Methoden am Dashlet-Handle. Er ist ein dünner Durchgang: Die sieben portablen Methoden-Namen laufen durch denselben Dispatch-Kern wie die typisierte Fassade, so dass die beiden Oberflächen nicht divergieren können; jeder andere Name folgt dem host-spezifischen Roh-Pfad — dem dokumentierten Escape-Hatch der jeweiligen Handles (Webclient-Handle — call() bzw. Rich-Client-Handle — call()).

1. Signatur

call<T = unknown>(method: string, params?: unknown[]): Promise<T>;
  • method — der Host-Methoden-Name (z. B. 'getSelectedObjects', 'openIndexData' oder eine beliebige Roh-Host-Methode).

  • params — das Argument-Array, das mit dem Aufruf gesendet wird (Standard []).

2. Pro-Host-Dispatch

Host / Zustand Verhalten

destroyed

Wird sofort mit Error('dashlet destroyed') abgelehnt.

portabler Methoden-Name (jeder Host)

Läuft durch denselben PORTABLE-Dispatch-Kern wie die typisierte Fassade — identische Wire-Posts, identische Auflösungswerte, identische Fehlerpfade. Die sieben Namen: openIndexData, openObject, openLocation, openHitListByIds, refreshHitListObjects, getSelectedObjects, resetSessionTimeout. openHitListByIds behält seine Fire-and-forget-Regel — siehe openHitListByIds.

unbekannter Name, Rich Client

Wird mit einer beschreibenden TypeError abgelehnt (der Bridge-Lesevorgang ist maßgeblich, auch wenn ein Webclient-Origin konfiguriert ist — der Wire würde eine Nachricht posten, auf die der Rich Client nie antwortet). Der dokumentierte Rich-Client-Äquivalent ist call auf dem getRichClientApi-Handle.

unbekannter Name, Webclient

Postet [method, params, { msgId }] auf dem Wire, begrenzt durch timeoutMs; löst sich mit dem Host-Ergebnis auf, wird mit dem Host { error }-Payload abgelehnt. Der dokumentierte Webclient-Äquivalent ist call auf dem getWebclientApi-Handle.

standalone (oder noch im Erkennungsmodus ohne Wire)

Wird (begrenzt) mit TimeoutError abgelehnt — es gibt keinen Host-Antwortsweg.

Alle sieben portablen Namen teilen denselben Dispatch-Kern, so dass der zeichenkettenbasierte Aufruf und die typisierte Fassade verhaltensgleich sind, wenn die Argumentform zur pro-Methoden-Normalisierung passt. Jede portable Methode akzeptiert entweder das positionale Wire-Array oder das plain-Options-Objekt — beide normalisieren auf denselben Wire-Post. Für openIndexData sind das das Array [inNewTab, mode, objectId, objectTypeId?] oder das Objekt { inNewTab, mode, objectId, objectTypeId? }.

3. Beispiele

// portabler Name — derselbe Dispatch-Kern wie die typisierte Fassade
const sel = await dashlet.call('getSelectedObjects');

// portabler Name, positionale Array-Form — identisch mit
// dashlet.openIndexData({ inNewTab: false, mode: 'view', objectId: '1024' })
const ok = await dashlet.call('openIndexData', [false, 'view', '1024']);

// nicht-portabler Name — roher Webclient-Durchgang (jeder Host-Methoden-
// Name, der nicht zu den 7 portablen gehört, wird als
// [method, params, { msgId }] gepostet)
await dashlet.call('myOtherHostMethod', ['arg1', 'arg2']);

4. Fehler

  • Error('dashlet destroyed') — das Dashlet wurde vor dem Aufruf zerstört.

  • TypeError — eine nicht abgebildete Methode im Rich Client, oder ein beschreibender Argumentvalidierungs-Fehler aus dem portablen Kern (z. B. eine ungültige Objekt-ID).

  • TimeoutError — begrenztes Fehlen einer Antwort im Standalone, oder ein Host, der innerhalb von timeoutMs nicht geantwortet hat.

  • Das Host-{ error }-Payload — wenn der Host einen Fehler bei einem Webclient-Methodenaufruf meldet.