Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

Daten aus einem Datapool können zum Validieren des eingegebenen Werts in einem Formularelement verwendet werden. Diese Lösung braucht keine eigene Anzeige im Datapool, die Konfiguration wird direkt im Bereich "Validierung" Formular. Diese wird danach in ein Formularelement eingebunden.

Datengrundlage dieses Beispiels: Flüsse

Image Removed

Neue Anzeige erstellen

Wechseln Sie im Datapool in den Reiter Anzeigen und erstellen Sie eine neue Anzeige. Geben Sie einen aussagekräftigen Namen ein und wählen Sie als Typ den Wert Code-Set.

Image Removed

In der folgenden Eingabemaske definieren Sie die Auswahloption: 

Image Removed

  1. Name der Spalte, welche die eindeutige ID der Datensätze enthält: Rang > 7
  2. Name der Spalte, welche angezeigt werden soll
    1. den Wert einer Spalte 1:1 anzeigen: Name > Rhein
    2. Werte aus verschiedenen Spalten kombiniert anzeigen: Name + " (" + Laenge + L_in + "), " + Muendung > Rhein (1233km), Nordsee

Wichtig: Jeweils für alle Sprachen (DE / FR / IT / EN) die Anzeigespalte definieren!

b. Werte aus verschiedenen Spalten kombiniert anzeigenImage Removed

Beispiel Feiertage im Formular "Alle Elemente"

Nur Kanton Bern intern erreichbar

https://www.betest.sites.be.ch/de/start/testfaelle/online-formulare/prod/alle_elemente.html

Image Removed

Ausgabe als Datapool (ungestylt. Tipp: in neuem Fenster öffnen)

Lösung

Die erste Auswahl in Deutsch steuert über eine Regel, was in der zweiten Auswahl (Feiertag in FR) angezeigt werden soll.

Die Auswahl (Feiertag in FR) ist ebenfalls ein "Dropdown". Beide Dropdown-Auswahlfelder verwenden dieselbe Spalte aus dem Datapool (Code-ID) als "Value". Somit kann aufgrund der dieser der jeweilde Wert aus der Spalte übernommen werden.

Image Removed

  1. Die Anzeigen auswahl und auswahlFR verwenden beide die Spalte "tag" als Code-ID.
  2. Code-ID ist somit bei beiden Dropdowns der "value" (z.B. karfreitag2025)
  3. So kann aufgrund der Wahl beim Dropdown mit der Anzeige des Textes aus der Spalte "auswahl" derjenige Text aus der Spalte "auswahlFR" genommen werden, welcher beim value "karfreitag2025" zutrifft.

Image Removed

Für die übername eines Wertes muss somit eine Auswahl verwendet werden. Dieses Dropdown muss nicht sichtbar im Formular sein. Über einer Regel kann der "DisplayValue" in eine Textfeld übernommen werden.

Image Removed

Im Beispiel wird nebem dem DisplayValue auch der Value als Text ausgegeben. Die entsprechende Regel liegt auf dem Feld "auswahlFR".

Codeblock
languagejs
titleRegel zur Setzen des Wertes
setValue(node(f_ausgabeFRtext),displayValue(node(f_wertausDP)) + " (value: " + nodeValue(node(f_wertausDP))+ ")")

Dokumentation PlugIn

erfolgt direkt im Formularfeld. Typische Anwendungsfälle sind Formulare, die nur mit einem gültigen Zugangscode aufgerufen / ausgefüllt werden können. 

Ist die Überprüfung positiv, können weitere Werte in andere Formularfelder geladen werden (wie Name, Vorname, etc.). 

Vorbedingung: Die auszulesenden Spalten im Datapool und die zu befüllenden Formularfelder müssen identisch benannt werden, also beide mit "Nachname". 

Schritt 1: Datapool anlegen

Zuerst die Datengrundlage für den Datapool zusammenstellen. Dazu eine CSV-Datei mit den benötigten Angaben füllen und speichern. 
Beispiel-Datenquelle: 

Image Added

Danach einen neuen Datapool gem. Anleitung (s. Erstellung eines Datapools) erstellen.

Die bereitgestellte CSV-Datei als Datenquelle in den Datapool laden und die Felder automatisch aus der CSV-Datei generieren. Dazu auf das Zauberstab-Icon klicken: 

Image Added

Den Datapool speichern und schliessen, es müssen keine weiteren Anzeigen definiert oder Einstellungen angepasst werden. 

Tipp: Die GUID-Nummer des Datapools notieren, diese wird später noch gebraucht. 

2. Schritt: Formular aufbauen

Ein neues Formular aufbauen und die benötigten Felder anlegen. Bitte beachten, dass die Felder, die mit Daten aus dem Datapool befüllt werden sollen, gleich benannt werden wie die Spalten im Datapool: 

Image Added

Für die Eingabe des Zugangscodes (Token) ein Feld vom Typ Textfeld erstellen. 

Im Popup-Fenster mit den Feldeigenschaften den Reiter Eigenschaften aufrufen und eine neue Eigenschaft mit dem Key dataPoolField und dem Wert Token anlegen. So wird definiert, dass bei der Überprüfung des Zugangscodes (Eingabe in diesem Feld) mit der Datapool-Spalte Token verglichen wird: 

Image Added 


Im Reiter Validierung einen neuen Datensatz mit der Klassifizierung Fehler erstellen.
Die Checkbox Syntax (java expression parser) verwenden? aktivieren. Im nun sichtbaren Eingabefeld JEP Syntax die Konfiguration eingeben:  

Image Added

Beispielkonfiguration:

searchAndMapDatapoolFields("49ce37db-bfcd-4677-bc76-e98624046704", node("."), Nachname, Vorname, Email) == false


  • GUID das Datapools
  • Kommagetrennte Liste der Felder, die mit den Daten aus dem Datapool befüllt werden sollen

Zu guter Letzt noch eine Validierungsnachricht hinterlegen, die den Fehler sinnvoll beschreibt, sollte der eingegebene Zugangscode nicht im Datapool gefunden werden. Die reine Validierung ist mit diesem Schritt abgeschlossen: 

Formular beim AufrufFormular nach Eingabe des Zugangscodes

Image Added

Image Added

3. Schritt: Zugriffsbeschränkung

In der beschriebenen Umsetzung wurden bis jetzt noch keine Zugriffsbeschränkungen definiert; alle Formularelemente sind mit und ohne Eingabe des Zugriffscodes sichtbar. Ein häufiger praktischer Anwendungsfall ist, dass ein Formular nur mit gültigem Zugriffscode ausgefüllt werden kann. Das wird mit den bekannten Sichtbarkeitsregeln umgesetzt. Die Bedingung, ob Formularelemente / Seiten sichtbar sind, bauen wir wie folgt auf: 

Formularfeld "Token"

Im Formular ein neues Formularfeld vom Typ Textfeld mit dem Namen Token erstellen. Im Reiter Editierbarkeit die JEP Syntax false eingeben. So ist das Feld für Eingaben durch die BenutzerInnen gesperrt:  

Image Added

In dieses Feld laden wir aus dem Datapool die Spalte Token. Dazu die Validierung im Feld Zugangscode anpassen:   

searchAndMapDatapoolFields("49ce37db-bfcd-4677-bc76-e98624046704", node("."), Token, Nachname, Vorname, Email) == false

Somit wird bei der Eingabe der Zugangscode via Datapool validiert.
Ist der Zugangscode valide, wird der Zugangscode aus dem Datapool (Spalte Token) ins Feld Token geschrieben. Ergo sind die Werte aus den Feldern Zugangscode und Token identisch.
Wird der eingegebene Zugangscode nicht gefunden, bleibt das Feld Token leer und die Werte aus den Feldern Zugangscode und Token NICHT identisch. 

Daraus lässt sich eine Sichtbarkeitsregel für alle Formularelemente bauen, die erst nach Eingabe eines validen Zugangscodes sichtbar sein sollen.

Feld Zugangscode ist nicht leer

und

die Werte der Felder Zugangscode und Token sind identisch

Zugangscode != "" && Zugangscode != NULL
&&
Zugangscode == Token

Alle Formularelemente, die nur bei validem Zugangscode sichtbar sein sollen, erhalten die Sichtbarkeitsregel. Werden Elemente in Gruppen zusammengefasst, erhält die Gruppe die Sichtbarkeitsregel. 

Zugangscode != "" && Zugangscode != NULL&&Zugangscode == Token

Image Added

Formular beim AufrufFormular nach Eingabe des Zugangscodes

Image Added

Image Added

...