Dokument anzeigen (Ereignisaktion)

Ereignisaktion - Kurzfassung

Zweck: Öffnet ein einzelnes über seine ID identifiziertes Dokument in einem zusätzlichen Browser-Tab, sofern Lesezugriff für das Dokument besteht.


HINWEIS◄ Diese Ereignisaktion ist nur verfügbar, wenn das funktionale Erweiterungsmodul "Dokumentenmanagement" installiert und lizenziert ist.


Die Ereignisaktion Dokument anzeigen (Ereignisaktion) öffnet ein einzelnes über seine ID identifiziertes Dokument (s. Dokumente) im Browser, sofern Lesezugriff für das Dokument besteht.

  • Falls der verwendete Browser den Inhalt des Dokuments den beim Hochladen automatisch ermittelten Inhaltstyp (contentType) direkt anzeigen kann, erscheint dieser in einem neuen Browser-Tab.

  • Anderenfalls kann der Browser den Inhalt des Dokuments an eine vorbestimmte oder interaktiv auswählbare Applikation übergeben oder als Download bereitstellen. Details hängen vom Browser und ggf. eingerichteten Präferenzen des Benutzers ab.

Fehlerbehandlung:

WICHTIG◄ In allen nachfolgend genannten Konstellationen wird die Ereignisbehandlung fortgesetzt. Die Fehlermeldung betrifft nur die Ausgabe im Browser-Tab!

Dokument-ID
existiert?

Rollenberechtigungen
für "Dokument"

Zugriff per Besitz
bzw. Freigabe für "Lesen"

Fehlermeldung im geöffneten Browser-Tab
► Fazit

images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/error.svg

unerheblich

unerheblich

NullPointerException
Die Ereignisaktion kann ohne ein Dokument nicht ausgeführt werden.

images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/check.svg

images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/error.svg "Lesen"
UND
images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/error.svg "Details anzeigen"

unerheblich

Failed to read: Access denied: Can't access Document for Read

Die Rolle gewährt keinen Lesezugriff auf Dokumente.

images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/error.svg "Lesen"
UND
images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/check.svg "Details anzeigen"

images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/check.svg

images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/error.svg

Failed to read: Owner access denied: Can't access Document for Read

Der Lesezugriff auf das Dokument scheitert mangels Besitz/Freigabe für "Lesen".

images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/check.svg "Lesen"

Konfiguration

images/download/attachments/177907981/image-2024-8-12_17-2-57-version-1-modificationdate-1723474977189-api-v2.png

Der Wertauflöser für den Parameter Dokumenten-ID akzeptiert alternativ folgende Rückgabewerte:

  • Einen Long-Wert, der die ID (id) des anzuzeigenden Dokuments angibt.

  • Einen Textwert, der in einen Long-Wert konvertierbar ist, der die ID (id) des anzuzeigenden Dokuments angibt.

  • Eine Entität vom Typ "Dokument" (Dokumente), die angezeigt werden soll.

HINWEIS◄ Auch wenn anstelle einer ID ein komplettes Dokument als Datenobjekt übergeben wird, wird immer nur der serverseitig gespeicherte Dokumentinhalt angezeigt und nicht etwa der ggf. abweichende Inhalt im Feld documentContent des übergebenen (volatilen) Datenobjekts.

Beispiel

Auf der Positionsebene einer Bestellung sollen per Klick auf einen Button "Details" alle hochgeladenen Dokumente angezeigt werden, die sich per "Referenz" auf die für die Position angegebene "EAN Nummer" (Textattribut) beziehen. Anhand dieser Dokumente (Produktbilder, PDF-Dokumente, etc.) soll der Anwender weitere Merkmale für die Position (z. B. eine treffende "Warenbeschreibung") ausfüllen.

Laufzeitbeispiel:

images/download/attachments/177907981/image2021-5-25_9-56-2-version-1-modificationdate-1723474966431-api-v2.png

  • Sobald eine "EAN Nummer" für eine Position vorliegt, erscheint der Button "Details". Ob für die "EAN Nummer" tatsächlich Dokumente hochgeladen wurden, soll hier keine Rolle spielen.

  • Per Klick auf den Button werden Dokumente gesucht, die sich auf die angegebene "EAN Nummer" beziehen, und - sofern vorhanden und innerhalb der aktuellen Sitzung im Zugriff - in zusätzlich geöffneten Browser-Tabs angezeigt.

    images/download/attachments/177907981/image2021-5-25_9-53-49-version-1-modificationdate-1723474966433-api-v2.png

Konfiguration:

Obwohl die für die Zuordnung der Dokumente notwendige Suche und das Anzeigen der "gefundenen" Dokumente Server-Kommunikation erfordert, kann die Aufgabenstellung durch einen Client Workflow gelöst werden.

Für den Button wird das Verhalten "showDetails" angelegt und wie rechts abgebildet konfiguriert:

  • Als Auslöser wird - typisch für den Button - Angeklickt ausgewählt.

  • Innerhalb der Verhaltenweise Client Workflow wird der per Standard mit Name "value" bereitgestellte Parameter umbenannt in "eanNumber". Als Ausdruck wird ein Verweis auf das Textfeld-Element für das Textattribut "EAN Number" (hier: $el(179)) anstelle des Standardwerts ($input) zugewiesen.

  • Der unten im Detail vorgestellte Client Workflow beinhaltet sämtliche erforderlichen "Aktivitäten" und stellt auch keine Rückmeldung bereit. Insofern sind auch keine Aktionen (bei "wahr" oder bei "falsch") erforderlich und der Ergebnisausdruck ist unerheblich.

ANMERKUNG◄ Wenn für den Client Workflow wie hier abgebildet kein Element verknüpft wird, steht im Kontext einer Erfassungsmaske für Bestellungen die betreffende Bestellung insgesamt als Eingabewert zur Verfügung. Ohne abweichende Spezifikation für den Ergebnisausdruck steht dann der ggf. im Client Workflow bearbeitete Stand dieses Datenobjekts für die Aktionen bei "wahr" und die Aktionen bei "falsch" zur Verfügung. Hier wird davon aber kein Gebrauch gemacht.

images/download/attachments/177907981/image2021-5-25_10-2-51-version-1-modificationdate-1723474966429-api-v2.png

Ein Klick auf den Button "Bearbeiten" in der Konfiguration für die Verhaltensweise Client Workflow öffnet den zugehörigen Editor:

  • Eine Prüfende Regel ist für den Workflow eigentlich unerheblich. Daher wird hier eine Statische Regel mit der Standardbedingung "true" verwendet, so dass die Aktionen bei bestandener Regel unbedingt ausgeführt werden. Denkbar wäre an dieser Stelle eine Prüfung, ob für die Variable eanNumber ein Wert vorliegt, über die der Wert des Textattributs "EAN Nummer" übergeben wird.

  • Unter den Aktionen bei bestandener Regel wird zunächst eine Suche (Ereignisaktion) ausgeführt, die hier nicht im Detail vorgestellt wird. Die Beschriftung des Bausteins ("reference = eanNumber") verweist auf die "Bedingung" für gesuchte Dokumente, nämlich dass deren Eintrag für das Feld "Referenz" (reference) mit dem Wert des Textattributs "EAN Nummer" (hier: Variable eanNumber) komplett übereinstimmen muss. Die Suche wird als "Tupel-Suche" ausgeführt, die das Feld ID (id) für alle gefundenen Dokumente als einzige Spalte (Feldprojektion) liefert. Der Rückgabewert der Tupel-Suche wird als "Suchwert" in der Variablen documents gespeichert.

  • Die folgende Ereignisaktion Für jeden Eintrag wiederholen (Schleife) iteriert über die "Zeilen" aus dem "Suchwert", also eine "Liste von Client-Objekten". Mit jedem einzelnen Client-Objekt wird Dokument anzeigen (Ereignisaktion) ausgeführt, wobei das einzige Objekt-Feld id dem Parameter zugewiesen wird.

ANMERKUNG◄ Im Beispiel wird unterstellt, dass beim Hochladen von Dokumenten für bestimmte Artikel im Feld "Referenz" die betreffende "EAN Nummer" angegeben wird. Ob ausgehend von dieser Angabe das Dokument beim Hochladen tatsächlich zugewiesen wurde (s. Dokumente zuweisen), ist für die Zuordnung durch die Suche (Ereignisaktion) im Client Workflow unerheblich. Die "Referenz" wird hier - komplett an der eigentlichen Zuweisungslogik für Dokumente vorbei - als Suchkriterium verwendet, um "passende" Dokumente zu suchen. Ggf. könnte ein zusätzliches Suchkriterium (z. B. für den Dokumententyp) verwendet werden, um Zufallsfunde zu verhindern.

images/download/attachments/177907981/image-2024-8-13_9-24-40-version-1-modificationdate-1723533879898-api-v2.png