Hinweis anzeigen (Popup)

Siehe auch: Hinweis anzeigen, Abbrechen

Ereignisaktion - Kurzfassung

Zweck: Zeigt in einer interaktiven Sitzung dem Benutzer einen Hinweis (als Notification oder Alert) mit konfigurierbarem Inhalt an.

Die Ereignisaktion Hinweis anzeigen (Popup) zeigt den Benutzer in einer interaktiven Sitzung einen konfigurierbaren Hinweis an, der entweder als Notification (am rechten Bildschirmrand) eines bestimmten Typs oder als Alert (zentrierter Dialog mit "OK"-Button zum quittieren der Meldung) erscheint.

ANMERKUNG◄ Die Aktion Hinweis anzeigen (im Kontext von Verhalten in Formularen) und die Ereignisaktion Abbrechen können Hinweise mit derselben "Mimik" ausgeben, wobei der Hinweistyp namentlich nicht komplett übereinstimmt. Auch funktionale Details unterscheiden sich (s. "Konfiguration").

Konfiguration

images/download/attachments/177912202/image-2024-9-18_10-7-38-version-1-modificationdate-1726646858244-api-v2.png

Parameter "Typ"

Der Parameter Typ definiert das Erscheinungsbild des Hinweises zur Laufzeit und hat auch funktionale Auswirkungen:

Typ

Merkmale

Beispiel

Alert
(entspricht "Hinweisbox" beim Hinweis anzeigen und "Semantic Exception" in der Abbrechen)

Es erscheint ein Dialog, der per "OK" Button oder per X-Symbol (rechts oben) geschlossen werden

HINWEISE

  • Alerts erscheinen stets zentriert in Bezug auf den gesamte Browserfenster und können vom Benutzer weder verschoben noch in ihrer Größe verändert werden. Sie überdecken die Client-Sitzung mit einer Schattierung, die den Zugriff auf anderen interaktive Client-Funktionen sperrt.

  • Allerdings wird die Ereignisbehandlung nicht angehalten bis der Benutzer einen per Hinweis anzeigen (Popup) angezeigten Alert schließt, sondern läuft im Hintergrund weiter. Werden dabei weitere Alerts geöffnet, erscheinen diese ggf. "gestapelt", so dass der zuletzt angezeigte in der Regel zuerst quittiert werden muss.

  • Der Parameter Schließen nach (Sekunden) gilt nicht für den Typ "Alert"!


images/download/attachments/177912202/image2020-7-9_16-16-24-version-1-modificationdate-1726646464263-api-v2.png

Info

(Styles-Eigenschaften strongBackgroundColor, strongBackgroundContrastColor,
successColor für das Icon)

Es erscheint eine Notification (s. Abbildungen rechts), die am rechten Rand des Browserfensters ggf. unterhalb von früheren Notifications eingereiht wird.

HINWEISE

  • Notifications können über das X-Symbol (rechts oben) geschlossen werden.

  • Der Parameter Schließen nach (Sekunden) in Konfiguration bestimmt nach welcher Zeit ein angezeigter Hinweis automatisch wieder verschwindet (Einstellung: >0 Sekunden) bzw. ob er "unbegrenzt" (bis zum interaktiven Schließen) angezeigt bleiben soll (Einstellung: 0 Sekunden)

  • Die Anzeigedauer bzw. das interaktive Schließen von Notifications hat keinen Einfluss auf die Ereignisbehandlung, die nicht angehalten sondern nach dem Anzeigen einer Notification unmittelbar fortgesetzt wird.

  • Wenn viele Notifications gleichzeitig angezeigt werden, werden sie ggf. außerhalb des sichtbaren Anzeigebereichs dargestellt, so dass der Benutzer sie überhaupt nicht zu Gesicht bekommt, oder erst, wenn sie "aufrücken", weil oberhalb angezeigte Notifications automatisch oder interaktiv geschlossen werden.

Die Farben von Text und Hintergrund können für alle Hinweistypen über die links angegebenen Styles-Eigenschaften abweichend vom rechts abgebildeten Standard definiert werden. Allerdings ist zu berücksichtigen, dass Anpassungen für den Anwendungsbereich des Styles global (für alle Hinweise des Typs) gelten und dieselben Farbwerte auch vom System erzeugte Notifications und andere Funktionalitäten (Abbrechen, Hinweis anzeigen, Hinweis setzen, usw.) oder Farbwerte direkt oder indirekte (über Vererbung, s. Styles) betreffen können.

images/download/attachments/177912202/image2020-7-9_15-41-2-version-1-modificationdate-1726646464261-api-v2.png

Error

(Styles-Eigenschaften errorColor, errorContrastColor)

images/download/attachments/177912202/image2020-7-9_16-4-32-version-1-modificationdate-1726646464258-api-v2.png

Warn

(Styles-Eigenschaften warnColor, warnContrastColor)

images/download/attachments/177912202/image2020-7-9_15-53-10-version-1-modificationdate-1726646464256-api-v2.png

Success

(Styles-Eigenschaften warnColor, warnContrastColor)

images/download/attachments/177912202/image2020-7-9_15-45-5-version-1-modificationdate-1726646464253-api-v2.png

Option "Ausführung beim Commit"

Wird die Option Ausführung beim Commit abweichend vom Standard gesetzt, dann erscheint der betreffende Hinweis erst bzw. nur dann, wenn am Ende der Ereignisverarbeitung (also ggf. nach Abarbeiten einer kompletten Ereigniskette) ein "Commit" auf der Datenbank erfolgt. Dies ist nur dann der Fall, wenn die Ereignisbehandlung überhaupt im Kontext einer Transaktion ausgelöst wird und fehlerfrei und ohne Abbrechen (also ohne Rollback) abläuft.

WICHTIG◄ In Zusammenhang mit der Option Ausführung beim Commit ist es wichtig die folgenden Aspekte zu berücksichtigen:

  • Ein Eigenes Aktionsevent bedingt nicht automatisch einen transaktionalen Kontext. Ohne diesen werden Hinweise, für die die Option Ausführung beim Commit gesetzt ist, nicht angezeigt.

  • Auch beim Ausführen von Tests für Ereignisbehandlungen entfällt der "Commit", so dass Hinweise, für die die Option Ausführung beim Commit gesetzt ist, nicht erscheinen.

  • Die Wertauflöser für den Inhalt von Titel und Meldung eines Hinweises werden erst beim Commit verarbeitet, wenn die Option Ausführung beim Commit gesetzt ist. Dies bedeutet, dass der Inhalt der Meldung (soweit überhaupt relevant) den Datenstand von Variablen und Objekten berücksichtigt, der zum Zeitpunkt des Commits gilt und nicht den zum Zeitpunkt der Ausführung der Hinweis anzeigen (Popup)-Ereignisaktion. Die einzige Information, die zum Zeitpunkt der Ereignisaktion zur späteren Verwendung "festgehalten" wird, ist das aktuelle Bezugsobjekt (entity). Allerdings wird auch dabei nur eine Referenz "gemerkt" und nicht etwa ein Schnappschuss erstellt, so dass Wertauflöser, die sich auf das Bezugsobjekt beziehen, wiederum den ggf. abweichenden Datenstand beim Commit "auflösen".

Parameter "Titel" und "Meldung"

Als Wert für die Parameter Titel und Meldung werden Zeichenfolgen erwartet, die abhängig vom Typ (s. o.) an unterschiedlichen Positionen im Hinweisformat erscheinen.

HINWEIS◄ Für den Parameter Titel erscheint der Standardwert "Title", wenn die vom Wertauflöser zurückgegebene Zeichenfolge keine Zeichen enthält oder "kein Wert" (null) zurückgegeben wird.

Liefert einer der verwendeten Wertauflöser zur Laufzeit einen anderen Datentyp als String, also keine Zeichenfolge als Rückgabewert, dann wird versucht den Rückgabewert automatisch in eine Zeichenfolge zu konvertieren:

  • Aus einem booleschen Wert wird dabei z. B. der Textwert true oder false.

  • Anstelle eines komplexen Datenobjekts für eine Entität z. B. vom Typ Benutzer erscheint ein Textwert wie 1901:de.lobster.scm.base.security.user.User@5ffd2762.

  • Wird eine Liste zurückgegeben, dann wird jedes Element in eine Zeichenfolge konvertiert und die Zeichenfolgen aller Elemente erscheinen kommasepariert zwischen eckigen Klammern. Wie der folgende Ausdruck verdeutlicht greift dieses Konzept auch rekursiv, wenn ein Listenwert wiederum eine Liste ist:

    [2021, ist ein gutes Jahr für, [Entscheidungen, Wein, Lobster]]
  • Anstelle der Lokalisierung für den Wert einer Dynamischen Aufzählung erscheint dessen interner Name (name), z. B. CNE für den Firmentyp "Empfänger".
    HINWEIS◄ Im Kontext eines Formulars greifen per Hinweis anzeigen erzeugte Hinweise ggf. automatisch auf die Sprachverwaltung bzw. Firmenspezifische Sprachanpassungen zu, um lokalisierbare Inhalte im Titel- oder Meldungstext zu berücksichtigen. .Hinweis anzeigen (Popup) v4.12.0 greift dagegen immer auf den betreffenden internen Namen eines lokalisierbaren Inhalts zu und berücksichtigt Lokalisierungen nur, wenn der Wertauflöser Wert aus Sprachverwaltung verwendet wird (siehe Beispiel).

Parameter "Schließen nach Sekunden"

Die Angabe für den Parameter Schließen nach Sekunden betrifft nur Hinweise mit einem Typ aus der Kategorie Notification, da der Typ Alert nicht automatisch geschlossen wird.

Mit einem Wert von 0 Sekunden wird eine Notification unbegrenzt angezeigt, also bis der Benutzer das X-Symbol verwendet, um sie zu schließen.

Beispiel

Beim Auslösen ausgewählter Ereignisse für alle Objekte die dem Typ "Geschäftstransaktionsobjekt" entsprechen, soll ein Hinweis vom Typ Notification: Info erscheinen, wenn ein "Super user limited" (Rolle) angemeldet ist.

Der Hinweis soll zeitlich unbegrenzt geöffnet bleiben und dem "Super user limited" Auskunft über den Typ des Objekts (in der Meldung) und das ausgelöste Ereignis (im Titel) bereitstellen, wie im folgenden Laufzeitbeispiel für das "Löschen"-Ereignis bei einer Bestellung zu sehen:

images/download/attachments/177912202/image2021-4-29_13-10-36-version-1-modificationdate-1726646464251-api-v2.png

Konfiguration:

Eine Ereignisbehandlung wird angelegt und wie rechts abgebildet konfiguriert:

  • Als Auslösende Ereignisse werden hier die Standardereignisse "Erstellen" und "Löschen" (s. Allgemein (Ereignisse)) und ein Eigenes Aktionsevent "Xf Test" aufgeführt.

  • Als Prüfende Regel wird eine UND-Verknüpfung aus einer Typprüfung auf den Typ "Geschäftstransaktionsobjekt" und einer Rollenregel konfiguriert, die den Anwendungsbereich der Ereignisbehandlung Das auf die Rolle "Super user limited" beschränkt.

    HINWEIS◄ Der in der Typprüfung angegebene Typ "Geschäftstransaktionsobjekt" ist ein übergeordneter Typ für alle Geschäftsobjekte (Sendungen, Bestellungen, Manifeste, Allgemeines Geschäftsobjekt). In der Meldung soll trotzdem der konkrete Typ der jeweils anliegenden Entität ersichtlich sein.

images/download/attachments/177912202/image2021-4-29_13-25-6-version-1-modificationdate-1726646464249-api-v2.png

Als einzige Aktion bei bestandener Regel wird hier eine Hinweis anzeigen (Popup)-Ereignisaktion konfiguriert wie rechts dargestellt:

  • Der Typ "Info" spezifiziert die Ausgabe einer Notification mit den betreffenden Erscheinungsbild.

  • Auf die Option Ausführung beim Commit wurde hier verzichtet, da bereits der Versuch ein Geschäftstransaktionsobjekt zu löschen oder zu erstellen sofort angezeigt werden soll. Außerdem würde sonst durch das Eigene Aktionsevent "Xf Test", das keine Transaktion impliziert, kein Hinweis ausgelöst.

  • Im Parameter Titel wird der Wertauflöser Auslösendes Ereignis verwendet, um anzuzeigen, welches auslösende Ereignis eingetreten ist.

  • Der Parameter Meldung stellt auf die Variable entityClass ab, die vom System automatisch mit der Klasse, also dem konkreten Typ des Bezugsobjekts belegt wird.

  • Dem Parameter Schließen nach (Sekunden) wird der Wert 0 zugewiesen, damit die Anzeigedauer für die Notification unbegrenzt ist.

images/download/attachments/177912202/image2021-4-29_13-36-42-version-1-modificationdate-1726646464238-api-v2.png

Variante:

Anstelle der internen Bezeichner (name für das Auslösende Ereignis, Klassenname für den Geschäftsobjekttyp) sollen durch die folgende Konfiguration der Ereignisaktion .Hinweis anzeigen (Popup) v4.12.0 die entsprechenden Texte aus der Sprachverwaltung angezeigt werden:

images/download/attachments/177912202/image2021-4-29_14-20-48-version-1-modificationdate-1726646464226-api-v2.png

Die Ereignisaktion Hinweis anzeigen (Popup) wird innerhalb der bestehenden Ereignisbehandlung wie rechts abgebildet rekonfiguriert:

  • Der Titel wird nun durch einen Wertauflöser vom Typ Wert aus Sprachverwaltung definiert, der als Bundle den Klassennamen de.lobster.scm.actionevent.CommonActionEvent
    (Allgemein (Ereignisse)) und als Resource den Rückgabewert des schon vorher verwendeten Wertauflösers Auslösendes Ereignis angibt.

    ANMERKUNG◄ Der passende Bundle-Name konnte in diesem Fall durch "Rückwärtssuche" in der Sprachverwaltung ermittelt werden, indem auf den ausgegebenen Name (name) "DELETE" als Resource Name gefiltert wurde um dann den plausibelsten Bundle name auszuwählen. Man muss solche "Interna" des Systems also nicht erraten oder auswendig lernen!

images/download/attachments/177912202/image2021-4-29_14-2-24-version-1-modificationdate-1726646464231-api-v2.png

  • Auch für die Meldung wird der Wert aus Sprachverwaltung-Wertauflöser eingesetzt. Allerdings wird hier der veränderliche Bestandteil in Form der Variablen entityClass im Parameter Bundle verknüpft, während für die Resource der statische Text $name angegeben wird.

    ANMERKUNG◄ Dies vertraut auf die Konvention, dass die Definition jeder Klasse in Lobster Data Platform / Orchestration durch eine Kombination von Bundle name = vollständiger Klassenname und Resource name = $name lokalisiert wird.

images/download/attachments/177912202/image2021-4-29_14-2-51-version-1-modificationdate-1726646464229-api-v2.png