5.2 Kommunikation

5.2 Kommunikation

5.2.1 Einleitung

Die Kommunikation zwischen den Clients in all ihren Facetten und dem frei gestaltbaren modalen Dialog wird über Callback-Mechanismen vollzogen. Speziell für den enaio® webclient wird über window.postMessage() (postMessages) eine Cross-Origin-Kommunikation zwischen dem Window-Objekt des enaio® webclient und dem iFrame des modalen Dialoges sicher nutzbar. Um die Anbindung einfach nutzbar zu machen, wird eine Kommunikationsbibliothek bereitgestellt, die diese Kommunikation übernimmt und zudem eine Kompatibilität zwischen den Clients bietet.

Die Kommunikationsbibliothek ist pflichtmäßig bei neuen Projekten zu verwenden!

 

5.2.2 Kommunikation Clients ↔ Dashlet

Um die Kommunikation so einfach wie möglich zu gestalten, steht Ihnen eine Kommunikationsbibliothek zur Einbindung in das Dashlet zur Verfügung. Die Bibliothek besteht aus drei Javascript-Dateien und übernimmt sämtliche Kommunikation via Callback-Mechanismen mit den Clients. Darüber hinaus verfügt sie über eine Kompatibilitätsschicht, sodass die angebotenen Methoden mit dem enaio® client sowie dem enaio® webclient verwendet werden können.

5.2.3 Einbinden der Kommunikationsbibliothek

Die neueste Version ist auf NPM verfügbar. Wir empfehlen die Installation über NPM und die Integration der Bibliothek in das Dashlet.

>> Kommunikationsbibliothek aus dem NPM Registery herunterladen

Eine Anleitung zur Einrichtung und Verwendung finden Sie direkt auf der Seite der NPM-Kommunikationsbibliothek.

5.2.4 Kompatibilität zum enaio® client

Die Dashletkommunikation vom enaio® webclient und enaio® client unterscheiden sich durch die Asynchronität der Aufrufe. Während alle Methoden beim enaio® webclient asynchron sind, sind sie beim enaio® client synchron. Da in Javascript jedoch auch synchrone Aufrufe mittels await aufgerufen werden können, sind in der Kommunikationsbibliothek alle Methoden asynchron konzipiert. Vereinzelt, insbesondere bei den Callback-Methoden zur Initialisierung und Aktualisierung, können Unterschiede in den zurückgegebenen Daten existieren. Auf diese wird jedoch bei der jeweiligen Methode oder bei dem jeweiligen Event explizit darauf hingewiesen.

5.2.5 Versionshistorie der Kommunikationsbibliothek

Die Kommunikationsbibliothek wird von der Dashlet API sowie der ModalDialog API verwendet.

Version

Datum

Änderungen

1.0.0

22.08.2023

Initiale Version. Sie löst das händische Post-Messaging ab und vereinfacht die Entwicklung von Dashlets.

1.1.0

13.11.2023

Kommunikationsbibliothek erweitert zur Programmierung modaler Dialoge

1.2.0 

14.12.2023

Fehlerbehebung und das "onInit" Event für Workflows ergänzt (modaler Dialog)

1.2.1

08.04.2024

Fehlerbehebungen (z. B. für die Property "selectedEntries")

1.3.1

23.05.2024

Neue Methoden für den modalen Dialog "setDialogCaption" und "getWorkflowVariableByName" sowie veränderte Methoden "getEnvironment" (neu: "clientVersion") und "setFieldValueByInternal"  (liefert nicht mehr das gesamte JSON zurück)

2.0.0

03.07.2024

Neue Methode für den modalen Dialog "setWorkflowVariableByName"

2.0.1

04.07.2024 (Beta - RC1)

Das Feld "require": "./dist/module.js" wurde zum Feld "exports" in der package.json hinzugefügt

2.0.1

03.09.2024 (stable)

Fehlerbehebungen (Siehe dazu: HOTFIX communication library 2.0.1 (for 11.10.0))

2.0.2

25.11.2024 (stable)

Library steht als Common.js und ESM Projekt zur Verfügung | Die Methode "Standort öffnen" - OpenLocation() - funktioniert im enaio® client wie gewünscht

2.0.3

10.03.2025 (stable)

Neue Methode für den modalen Dialog "resetSessionTimeout (modaler Dialog)", neue Methode für Dashlets "resetSessionTimeout (Dashlet)" sowie neue Sub-Property "sessionTimeout" für "onInit (Dashlet)" und "onUpdate (Dashlet)"

2.0.4

10.06.2025 (stable)

Neue Property zum aktuellen Standort (locationInfo) für "onInit (Dashlet)" und "onUpdate (Dashlet)"

2.0.5

28.10.2025 (stable)

  • Automatische Zuordnung spezifischer objectTypeId Werte zu -1 für typenlose Dokumente

  • Betroffene Werte: 13107200 (interner Ablage) und 19660800 (Workflowablage) → -1

  • Gewährleistet Konsistenz zwischen enaio® webclient und enaio® client

  • Betrifft Eigenschaften: selectedEntries[].objectTypeId, lastSelectedEntry.objectTypeId, osDashletInit.objecttype