Ereignisaktion - Kurzfassung
Zweck: Öffnet eine View, an die Formulardaten bzw. eine Suche oder geeignete Sucheinschränkung übergeben werden können, und wartet optional auf die Rückgabe eines Datenobjekts bzw. das Schließen der View.
Tooltip
Verwendung:
Sofern im Ausführungskontext aufgrund von Berechtigungen und Zuordnungskriterien Zugriff auf die Zu öffnende View besteht, wird diese mit den parametrierten Einstellungen und unter Berücksichtigung der optional bereitgestellten Formulardaten geöffnet.
Views vom Typ "Erfassungsmaske" (
detailsWindow) oder "Kombinierte Ansicht" (listDetailsWindow) zeigen die Daten einer per Formulardaten "mitgegebenen" oder referenzierten Entität direkt an.Beim Öffnen einer View vom Typ "Übersicht" (
listSearchWindow) mit geeigneten Formulardaten (Entität oder Referenz), wird die zugehörige Erfassungsmaske (detailsWindow) in einer zweiten View geöffnet.Beim Öffnen von Views der Typen "Übersicht" (
listSearchWindow) und "Kombinierte Ansicht" (listDetailsWindow) können die Formulardaten alternativ auch eine "Einschränkung" für die angezeigte Liste vorgeben:
Aus einer "Suche" ('
Search-Datenobjekt) wird in eine Sub-Suche-Einschränkung umgewandelt, eine "Sucheinschränkung" wird direkt mit einer ggf. vordefinierten Einschränkung für die Zu öffnende View UND-verknüpft.Ob die Ereignisverarbeitung bis zum Schließen der geöffneten View unterbrochen wird, hängt vom Parameter Wartezeit Wertrückgabe ab:
Mit einer Wartezeit Wertrückgabe > 0 (Sekunden), wird die Ereignisverarbeitung erst nach dem Schließen der geöffneten View fortgesetzt.
Ohne Wartezeit wird die Ereignisverarbeitung sofort nach dem Öffnen der View und ohne Rückgabewert fortgesetzt.
Eine Wertrückgabe aus einer View in eine per Variablenname des Rückgabeobjekts benannte Variable ist möglich, wenn die folgenden Bedingungen erfüllt sind:
Wartezeit Wertrückgabe > 0 (endliche Wartezeit)
Zu öffnende View ist eine Erfassungsmaske oder Kombinierte Ansicht, die über eine Schließen anfordern-Aktion geschlossen wird, der den Rückgabewert als Eingabewert (
$input) zugeordnet ist.
Erscheinungsbild und Verhalten der geöffneten View können mit weiteren Parametern beeinflusst werden.
Parameter:
Zu öffnende View (Text/Wert-Konfiguration): Viewname oder Menüknotenname für die zu öffnende View
Formulardaten (Wert-Konfiguration): kann auf vielfältige Art (s. oben) optional genutzt werden, um den in der View angezeigten Inhalt zu definieren bzw. zu steuern.
Variablenname des Rückgabeobjekts (Text): Benennt eine Variable, der ein im Kontext einer Erfassungsmaske per Schließen anfordern definierter Rückgabewert zugeordnet wird.
Wartezeit Wertrückgabe (Ganzzahl → Sekunden): Ein Wert >0 definiert die maximale Wartezeit bis die View automatisch geschlossen wird.
Darf nur einmal geöffnet sein? (Option): Wenn ausgewählt (Standard) wird eine ggf. bereits geöffnete nicht-modale Instanz der View genutzt anstatt eine neue zu öffnen.
Modal (Option): Wenn (abweichend vom Standard) ausgewählt, erscheint die Zu öffnende View als Fenster innerhalb der aktuellen View. Außerdem werden zusätzliche Parameter verfügbar:
Vollbild (Option): Wenn (abweichend vom Standard) ausgewählt, erscheint die Zu öffnende View den innerhalb der aktuellen View flächendeckend. Sonst: als Dialogfenster.
Breite, Höhe, Min. Breite, Min. Höhe (Ganzzahl → Pixel): Vorgaben für die Größe des Dialogfensters (nicht relevant für Vollbild)
Größe veränderbar (Auswahl): entscheidet, ob die Höhe und oder Breite des Dialogfensters zur Laufzeit anpassbar sind.
Schließbar (Option): Wenn ausgewählt (Standard), erscheint das "X"-Symbol rechts oben im Vollbild-/Dialogfenster, sonst nicht.
Zeige "Zurück Button" (Option): Wenn (abweichend vom Standard) ausgewählt, erscheint ein Ribbon Button "Zurück" zum Schließen der View.
Nach dem Commit öffnen: Öffnet die View erst, wenn das Ereignis vollständig abgearbeitet und die Datenbanktransaktion abgeschlossen wurde.
Output: Rückgabeobjekt aus der View (soweit geeignet parametriert)
Siehe auch: Öffne View (Formulardesigner) (Verhaltensweise), Öffne Portal (Aktion)

Die Ereignisaktion Öffne View (Aktion) öffnet eine View, an die Formulardaten übergeben werden können, und wartet optional auf die Rückgabe eines Datenobjekts bzw. das Schließen der View.
Views sind Erfassungsmasken, Übersichten (inkl. Eigene Übersichten), Portale, Dashboard oder andere vom System bereitgestellte Ansichten (z. B. im Menüpunkt Verwaltung).
HINWEIS
Views können im Kontext von Formularen auch direkt per Verhalten Öffne View (Formulardesigner) geöffnet werden.
Spezifische Konfigurationsmöglichkeiten für Portale unterstützt die ansonsten analog strukturierte Ereignisaktion Öffne Portal (Aktion).
Wird die Option Nach dem Commit öffnen aktiviert, wird sichergestellt, dass die View erst nach erfolgreichem abschließen der Datenbanktransaktion geöffnet wird. So lässt sich sicherstellen, dass etwaig getätigte Änderungen auch wirklich vollständig getätigt wurden bevor die View geöffnet wird. Wartezeit und Rückgabewert sind dabei hinfällig.
Konfiguration
Die Konfiguration der Ereignisaktion Öffne View (Aktion) deckt vielfältige Anwendungsszenarien ab und bietet deshalb zahlreiche Parameter an. Diese werden nachfolgend tabellarisch und gruppiert nach Schwerpunkten vorgestellt. Dabei zeigt die rechte Spalte der Tabelle immer den betreffenden Abschnitt des Konfigurationsdialogs.
Auswahl der zu öffnenden View | |
|---|---|
Die zu öffnende View kann entweder per direkte Texteingabe oder über einen Wertauslöser adressiert werden. Eine View wird nur geöffnet, wenn ...
Ob die folgenden Beispielwerte für den Parameter Zu öffnende View funktionieren, hängt teilweise zusätzlich davon ab, welche Module von Lobster Data Platform / Orchestration lizenziert sind:
|
HINWEIS Per Klick auf den grauen Pfeil links unten im Eingabefeld für den Parameter Portal XML kann vom Direkteingabemodus zur Definition eines Wertauflösers gewechselt werden:
|
Wenn eine View nicht geöffnet werden kann, tritt keine Exception auf. Die Ereignisbehandlung wird dann in der Regel sofort fortgesetzt, also auch ohne eine ggf. parametrierte Wartezeit Wertrückgabe (s. u.) abzuwarten. Wie kann man den Viewnamen und den Menüknotennamen ermitteln? Viewname und Menüknotenname einer bereits geöffneten View können per Klick auf das ?-Symbol rechts oben im Fenstertitel ermittelt werden, was am Beispiel einer Erfassungsmaske für Bestellungen folgende Meldung ergibt (Textmarkierung nachträglich hinzugefügt): Die erste markierte Zeile definiert den Viewnamen einer Detailsicht ( WICHTIG Zum Öffnen einer View darf nicht die Kurzschreibweise aus der Zeile oberhalb verwendet werden, in der anstelle des vollständigen Klassennamens das zugehörige Namespace-Präfix erscheint. Auch die Kontexteinträge mit dem Wildcard-Symbol * sind nicht geeignet, um die View zu adressieren. Die zweite markierte Zeile definiert den Menüknotennamen ( HINWEIS Der Menüknotennamen erscheint hier nicht, wenn eine View nicht über die Hauptmenüleiste geöffnet wurde, sondern z. B. per Öffne View (Aktion) oder per Klick auf eine Funktion im Ribbon ("Neu" oder "Bearbeiten") einer Übersicht. Dann besteht auch kein Zugriff auf Hilfethemen (s. Online-Hilfe), die mit dem Menüknotennamen verknüpft sind. | |
Datenzuweisung für die zu öffnende View | |
Die Wert-Konfiguration für den Parameter Formulardaten kann auf unterschiedliche Weise genutzt werden, dynamisch ermittelte Informationen an die Zu öffnende View zu übergeben, sofern diese das überhaupt vorsieht. Entscheidend ist dabei der Datentyp, der vom Wertauflöser zurückgegeben wird in Kombination mit dem Typ der zu öffnenden View. |
|
Öffnen einer View vom Typ Erfassungsmaske (
Öffnen einer View vom Typ Übersicht (
WICHTIG Im Kontext einer der Suche (erster Fall oben) können Joins verwendet werden, um die Suche direkt (als
| |
Datenrückgabe aus der View (optional) | |
Der optionale Parameter Variablenname des Rückgabeobjekts kann verwendet werden, um den Namen einer Variablen anzugeben, über die auf Rückgabedaten aus der geöffneten View zugegriffen werden kann, sofern ...
Verstreicht eine Wartezeit Wertrückgabe (>0 Sekunden) ohne dass Schließen anfordern ausgeführt wird, wird die View automatisch geschlossen und die Rückgabedaten sind leer. Ist dagegen als Wartezeit Wertrückgabe der Wert 0 (Standard) eingestellt, wird die Ereignisverarbeitung sofort nach dem Öffnen der View und ohne Rückgabedaten abzuwarten fortgesetzt. HINWEIS Der Parameter Wartezeit Wertrückgabe kann auch ohne Angaben für Variablenname des Rückgabeobjekts genutzt werden, um eine bestimmte View für begrenzte Zeit anzuzeigen. ACHTUNG Wenn eine Erfassungsmaske nach Ablauf der Wartezeit Wertrückgabe geschlossen wird, gehen ungespeicherte Änderungen ohne Rückfrage verloren. |
Wird das Portal geschlossen, ohne dass dabei die Schließen anfordern-Aktion mit den zurückzugebenden Daten als Eingabewert ( |
Anzeigeverhalten der View | |
Wenn die Option Modal nicht ausgewählt ist (Standard), soll die View als eigenständige View geöffnet werden. Dann entscheidet die Option Darf nur einmal geöffnet sein?, ob die View auch dann geöffnet wird, wenn schon (mindestens) eine Instanz der View nicht-modal - also als eigenständige View - geöffnet ist. Ist die Option Modal ausgewählt, wird die View beim Öffnen innerhalb der aktuellen View angezeigt. Die Option Darf nur einmal geöffnet sein? wird dann nicht beachtet. In der Konfiguration erscheinen außerdem zusätzliche Optionen:
|
|
HINWEIS Der Zurück Button kann als Ribbon-Makro beeinflusst werden, indem die Unterkategorie |
|
ACHTUNG Wenn beim Öffnen einer View die Option Modal ausgewählt und die Option Schließbar abgewählt ist, sollte sichergestellt sein, dass eine anderweitige Methode das Schließen der View ermöglicht:
Ist keine dieser Optionen anwendbar, kann eine modal geöffnete View, die nicht Schließbar ist, nur noch geschlossen werden, indem die übergeordnete View geschlossen wird. | |
Die Option Nach dem Commit öffnen ist per Standard abgewählt, sodass die Zu öffnende View beim Ausführen von Öffne View (Aktion) unverzüglich ausgeführt wird.
ANMERKUNG Um "nach dem Commit" eine View mit Datenrückgabe zu öffnen, sollte eine Eigenes Aktionsevent auslösen (Aktion) mit der entsprechenden Option ausgeführt werden. In der Ereignisbehandlung für das ausgelöste Ereignis kann dann Öffne View (Aktion) ohne die Option Nach dem Commit öffnen aber dafür mit "Datenrückgabe" ausgeführt werden. |
|
Beispiel
Anforderungen:
Wenn beim Anmelden einer Lobster Data Platform / Orchestration-Sitzung der URL-Parameter (s. URL-Parameter)
myOrderdie (interne) ID einer Bestellung (s. Bestellungen) als Wert enthält, soll unmittelbar nach der Anmeldung eine Erfassungsmaske für Bestellungen mit den Details der in der URL adressierten Bestellung erscheinen.Drückt der Benutzer für eine der in dieser Erfassungsmaske angezeigten Positionen den Button "Auswahl", soll die Erfassungsmaske geschlossen und eine Übersicht mit allen Bestellungen geöffnet werden, die eine Position mit demselben Artikel beinhalten.
Laufzeitbeispiel:
Im Beispiel wird der URL zum Aufrufen des Clients der Parameter
Noch bevor die eigentliche Sitzung beginnt, erscheint eine Erfassungsmaske mit Details zu der Bestellung mit der ID 4351 in einer kompakten, modal geöffneten Erfassungsmaske. Diese URL könnte z. B. durch das Scannen eines Barcodes aufgerufen werden. ANMERKUNG Das Feld "ID" wurde im Beispiel zur Verdeutlichung sichtbar im Formularlayout eingebunden, was in der Praxis weder üblich noch erforderlich ist. |
|
ANMERKUNG Das Auswahlkriterium (übereinstimmende "Warenbeschreibung") für die anzuzeigenden Bestellungen wurde im Beispiel zur Vereinfachung bewusst oberflächlich gewählt. In einer praktischen Anwendung wären komplexere Kriterien (z. B. eine Kombination von Zeitraum der Erstellung, Arbeitsstatus, Artikelnummer, EAN usw.) typisch. |
|
Konfiguration:
Der Screenshot rechts zeigt die zu erstellende Ereignisbehandlung zunächst im Überblick. Anschließend werden Konfigurationsdetails abschnittweise beschrieben.
ANMERKUNG Hier wird weder explizit geprüft, ob der übergebene String als
ANMERKUNG Auf eine Kontrolle, ob in der Erfassungsmaske überhaupt eine Position ausgewählt wurde wird hier verzichtet. In der Praxis wäre eine Wenn Dann Sonst-Ereignisaktion zu empfehlen, die die Ausführen mit-Ereignisaktion nur ausführt, wenn die Variable |
|
Die folgenden Abschnitte beschreiben Details der oben im Überblick gezeigten Konfiguration.
Zum Öffnen der Erfassungsmaske mit den Details der per URL-Parameter bestimmten Bestellung wird die erste Öffne View (Aktion)-Ereignisaktion wie rechts abgebildet parametriert:
|
|
Die nachfolgende Ausführen mit-Ereignisaktion wird wie rechts abgebildet konfiguriert, um ausgehend von der als Rückgabewert in der Variablen
HINWEIS Der statische XML-String für das
HINWEIS Alternativ kann ein |
|
| |
ACHTUNG Dieser Lösungsansatz definiert mit Blick auf die Performance nicht die Best Practice für den Einsatz von Öffne View (Aktion).
Das Konfigurationsbeispiel kombiniert mehrere Schritte (Detailansicht öffnen → Auswahl/Rückgabewert abwarten → Übersicht öffnen) zu einem in sich geschlossenen Ablauf innerhalb derselben Ereignisbehandlung.
Diese Vorgehensweise mag kompakt, übersichtlich und wartungsfreundlich sein, kann aber die System-Performance negativ beeinflussen.
Warum?
Das Auslösen der Ereignisbehandlung belegt auf dem für den Lobster Data Platform / Orchestration-Server einen Thread, der erst mit deren Abschluss wieder freigegeben wird.
Die erste Instanz der Öffne View (Aktion)-Instanz soll ausdrücklich einen Rückgabewert abwarten, so dass der zugehörige Thread belegt bleibt, bis die geöffnete View automatisch oder nach Ablauf der Wartezeit geschlossen wird.
Da der Server nicht unbegrenzt viele Threads gleichzeitig "bedienen" kann, kann die längerfristige Belegung von Threads zu einem Engpass bei der Zuordnung und damit einer Warteschlage für Serveranfragen führen.
Solche Szenarien sind meistens vermeidbar, indem man den Ablauf in zwei Abschnitte gliedert:
Die Ereignisbehandlung öffnet die View, in der die Auswahl stattfinden soll, ohne eine Datenrückgabe abzuwarten. Damit ist der Server-Thread sofort wieder frei.
Die View behandelt die Logik für die Auswahlentscheidung (clientseitig) und wendet sich - sofern überhaupt nötig - erst dann wieder an den Server, um Aktionen auszuführen, wenn der Benutzer sich entschieden hat.













