Wiki-Quellcode von Zähler


Verstecke letzte Bearbeiter
gru 1.2 1 {{content/}}
2
3 {{id name="fig_counter"/}}
gru 5.7 4 {{figure image="counter_de.png" clear="h1"}}Konfigurationsoberfläche zum Anlegen von Zählern: (1) Liste existierender Zähler, (2) Bereich zum Editieren der selektierten Zähler, (3) Metadaten des Zählers.{{/figure}}
gru 1.2 5
gru 1.7 6 Die Werte der Zähler können mit der Aktion [[Zähler ändern>>doc:Formcycle.Designer.Workflow.Actions.ModifyCounter]] verändert und über [[Platzhalter>>doc:Formcycle.UserInterface.Variables]] ausgelesen und so zum Beispiel in [[Bedingungen>>doc:Formcycle.Designer.Workflow.FlowControl.Condition]] verwendet werden.
gru 1.2 7
8 == Anlegen eines Zählers ==
9
gru 3.3 10 Öffnen Sie das Modul "Daten > Zähler" und klicken Sie auf die Schaltfläche "Neu" {{ficon name="plus-circle-outline"/}} in der Kopfzeile der Liste (siehe Punkt 1 in der [[Abbildung>>||anchor="fig_counter"]]). Daraufhin können die entsprechenden [[Einstellungen>>||anchor="HKonfigurationsoptionen"]] für den Zähler getroffen werden. Mit einem Klick auf die Schaltfläche //Speichern// wird der Zähler angelegt.
gru 1.2 11
gru 1.6 12 == Konfigurationsoptionen ==
gru 1.2 13
14 ; Name
gru 1.6 15 : Name des Zählers
gru 1.2 16 ; Aktueller Wert
gru 1.6 17 : Hier wird der aktuelle Wert des Zählers angezeigt. Nach einen Klick auf das Stiftsymbol kann der Wert angepasst und über ein Klick auf den Haken übernommen werden.
gru 1.2 18 ; Automatisch zurücksetzen
gru 3.4 19 : Wenn diese Option aktiviert wurde, kann über die folgenden Optionen festgelegt werden, unter welchen Bedingungen der Zähl zurückgesetzt werden soll:
gru 1.3 20 :; Startwert
gru 1.2 21 :: Wert auf den der Zähler zurückgesetzt werden soll
gru 1.3 22 :; Bedingung
gru 1.2 23 :: Bedingung unter welcher der Zähler zurückgesetzt werden soll. Zur Auswahl stehen die folgenden Optionen:
gru 1.4 24 ::: - Zähler größer gleich
25 ::: - Zähler kleiner gleich
26 ::: - täglich
27 ::: - wöchentlich
28 ::: - monatlich
29 ::: - jährlich
gru 5.5 30 :: Entsprechend der hier getroffenen Auswahl werden die folgenden Felder sichtbar:
gru 1.3 31 ::; Wert
gru 1.4 32 ::: Wert mit dem der Zähler verglichen werden soll. Nur verfügbar, wenn //Zähler größer gleich// oder //Zähler kleiner gleich// als Bedingung ausgewählt wurde.
gru 1.3 33 ::; um
gru 1.4 34 ::: Uhrzeit, an der das Zurücksetzen stattfinden soll. Nur verfügbar, wenn //täglich//, //wöchentlich//, //monatlich// oder //jährlich// als Bedingung ausgewählt wurde.
gru 1.3 35 ::; An den Tagen
gru 1.4 36 ::: Wochentag, an dem das Zurücksetzen stattfinden soll. Nur verfügbar, wenn //wöchentlich// als Bedingung ausgewählt wurde.
gru 1.3 37 ::; Jeweils am
gru 1.4 38 ::: Tag in Monat, an dem der Zähler zurückgesetzt werden soll. Nur verfügbar, wenn //monatlich// oder //jährlich// als Bedingung ausgewählt wurde.
gru 1.3 39 ::; Monat
gru 1.4 40 ::: Monat, in dem der Zähler zurückgesetzt werden soll. Nur verfügbar, wenn //jährlich// als Bedingung ausgewählt wurde.
gru 1.2 41
42 Unter den Einstellungen werden zudem die folgenden Informationen unter //Zähler-Metadaten// angezeigt:
43
44 ; UUID
45 : Systeminterne UUID des Zählers
46 ; Angelegt am
47 : Zeitpunkt, an dem der Zähler erstellt wurde
48 ; Geändert am
49 : Zeitpunkt, an dem zum letzten Mal Änderungen am Zähler vorgenommen wurden
50
gru 3.6 51 == Platzhalter ==
52
gru 3.14 53 Die Werte von Zählern können über [[Platzhalter>>doc:Formcycle.UserInterface.Variables]] zum Beispiel im Workflow oder als Wert von Formularelementen ausgelesen werden. Die Syntax ist dabei wie folgt:
gru 5.6 54
gru 3.6 55 {{code language="none"}}[%$COUNTER_CLIENT.<Name des Zählers>%]{{/code}}
gru 5.6 56
gru 3.7 57
58 == Zugriff auf Zählerwert per Servlet ==
59
gru 3.12 60 === Servlet-URL und Parameter ===
61
gru 3.7 62 Der Wert der Zähler kann innerhalb von Formularen über einen Servletaufruf ermittelt werden. Es ist dabei möglich, den Zähler über seinen Namen oder seine UUID auszuwählen. Die entsprechenden {{smallcaps}}URL{{/smallcaps}}s zum Aufruf der Werte könnten zum Beispiel wie folgt aussehen:
gru 3.11 63
gru 3.16 64 {{code language="none"}}https://<Serveradresse>/formcycle/form/clientcounter/?frid=<gültige FRID>&name=<Name des Zählers>{{/code}}
gru 3.10 65 und
gru 3.16 66 {{code language="none"}}https://<Serveradresse>/formcycle/form/clientcounter/?frid=<gültige FRID>&uuid=<UUID des Zählers>{{/code}}
gru 3.7 67
gru 3.11 68
gru 3.7 69 In beiden Fällen wird eine gültige //form request id// (frid) benötigt, welche im Formular per JavaScript unter {{code language="none"}}XFC_METADATA.currentSessionFRID{{/code}} zu finden ist. Auf gleiche Art kann zudem die {{smallcaps}}URL{{/smallcaps}} des Servlets per JavaScript unter {{code language="none"}}XFC_METADATA.urls.counter_client{{/code}} ausgelesen werden. Dies ist wichtig, da sich die {{smallcaps}}URL{{/smallcaps}} bei Aufrufen über Frontend- und Masterserver unterscheidet.
70
gru 3.12 71 === Rückgabewerte ===
gru 3.8 72
gru 3.16 73 Das Erebnis wird als JSON zurückgegeben. Neben dem eigentlichen Wert sind auch andere Informationen zurückgegeben. Die Antwort hat die folgende Struktur:
gru 3.7 74 ; success
gru 3.16 75 : Boolscher Wert, der aussagt, ob der Zählerwert erfolgreich ausgelesen werden konnte.
gru 3.7 76 ; msg
77 : Servernachricht bezüglich der Anfrage, welche zur Fehlersuche verwendet werden kann. Ein erfolgreicher Zugriff liefert z.B. //Counter found//.
78 ; result
gru 5.4 79 : Antwort auf die Anfrage. Wenn die Anfrage nicht erfolgreich war, wird nur ein leeres JSON-Objektliteral zurückgegeben. War die Anfrage hingegen erfolgreich, sind die folgenden Unterpunkte im JSON-Objektliteral enthalten:
gru 3.7 80 :; lastChange
81 :: Formatierte Ausgabe von Datum und Uhrzeit der letzten Änderung des Zählerwertes
82 :; lastChangeTimestamp
83 :: Epoche der letzten Änderung des Zählerwertes
84 :; name
85 :: Name des Zählers
86 :; uuid
87 :: UUID des Zählers
88 :; value
89 :: Aktueller Zählerwert
90
gru 3.12 91 === Beispiel für eine AJAX-Anfrage im Formular ===
92
gru 3.19 93 Eine beispielhafte AJAX-Anfrage, welche den aktuellen Zählerwert des Zählers //Beispielzähler// in das Feld //tf1// schreibt, könnte also wie folgt aussehen:
gru 3.12 94
95 {{code language="javascript"}}
96 $.ajax({
gru 3.18 97 method: "GET",
98 url: XFC_METADATA.urls.counter_client,
99 data: {
100 name: "Beispielzähler",
101 frid: XFC_METADATA.currentSessionFRID,
102 }
103 }).then(function(data) {
104 if (data.success) {
105 $('[data-name="tf1"]').val(data.result.value);
106 } else {
gru 3.20 107 console.warn("Zugriff auf Zähler Beispielzähler fehlgeschlagen:", data.msg);
gru 3.18 108 }
109 }).catch(function(jqXHR, errorTextStatus, errorThrown) {
110 console.warn("Zugriff auf Zähler Beispielzähler fehlgeschlagen:", errorThrown, "(" + errorTextStatus + ")");
gru 3.12 111 });
112 {{/code}}
gru 3.21 113
gru 3.22 114 === Einfügen eines Templates für eine AJAX-Anfrage im Formular ===
115
116 {{figure image="counter_query_de.png"}}Auswahl des Templates für die Zähler-Abfrage im JavaScript-Bereich des Formulardesigners.{{/figure}}
117
gru 5.2 118 Ein Template, welches der obenstehenen Beispielfunktion ähnlich ist, kann per Autocomplete direkt im JavaScript-Bereich des Formulardesigners eingefügt werden. Hierzu muss im JavaScript-Bereich hintereinander {{code language=none}}Zähler{{/code}} eingegeben werden und die vom Autocomplete vorgeschlagene Option //Zähler-Abfrage// mit einem Klick oder mit der Enter-Taste bestätigt werden.
gru 3.22 119
120 Nachdem das Template eingefügt wurde, müssen die benötigten Funktionaltitäten hinzugefügt und der Name des Zählers abgeändert werden.