Wiki-Quellcode von Zähler


Verstecke letzte Bearbeiter
gru 1.2 1 {{content/}}
2
3 {{id name="fig_counter"/}}
4 {{figure image="counter_de.png"}}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}}
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 1.2 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 3.15 54
gru 3.6 55 {{code language="none"}}[%$COUNTER_CLIENT.<Name des Zählers>%]{{/code}}
gru 3.7 56
57 == Zugriff auf Zählerwert per Servlet ==
58
gru 3.12 59 === Servlet-URL und Parameter ===
60
gru 3.7 61 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 62
gru 3.16 63 {{code language="none"}}https://<Serveradresse>/formcycle/form/clientcounter/?frid=<gültige FRID>&name=<Name des Zählers>{{/code}}
gru 3.10 64 und
gru 3.16 65 {{code language="none"}}https://<Serveradresse>/formcycle/form/clientcounter/?frid=<gültige FRID>&uuid=<UUID des Zählers>{{/code}}
gru 3.7 66
gru 3.11 67
gru 3.7 68 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.
69
gru 3.12 70 === Rückgabewerte ===
gru 3.8 71
gru 3.16 72 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 73 ; success
gru 3.16 74 : Boolscher Wert, der aussagt, ob der Zählerwert erfolgreich ausgelesen werden konnte.
gru 3.7 75 ; msg
76 : Servernachricht bezüglich der Anfrage, welche zur Fehlersuche verwendet werden kann. Ein erfolgreicher Zugriff liefert z.B. //Counter found//.
77 ; result
gru 3.16 78 : Antwort auf die Anfrage. Wenn die Anfrage erfolgreich war, sind die folgenden Unterpunkte enthalten:
gru 3.7 79 :; lastChange
80 :: Formatierte Ausgabe von Datum und Uhrzeit der letzten Änderung des Zählerwertes
81 :; lastChangeTimestamp
82 :: Epoche der letzten Änderung des Zählerwertes
83 :; name
84 :: Name des Zählers
85 :; uuid
86 :: UUID des Zählers
87 :; value
88 :: Aktueller Zählerwert
89
gru 3.12 90 === Beispiel für eine AJAX-Anfrage im Formular ===
91
gru 3.19 92 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 93
94 {{code language="javascript"}}
95 $.ajax({
gru 3.18 96 method: "GET",
97 url: XFC_METADATA.urls.counter_client,
98 data: {
99 name: "Beispielzähler",
100 frid: XFC_METADATA.currentSessionFRID,
101 }
102 }).then(function(data) {
103 if (data.success) {
104 $('[data-name="tf1"]').val(data.result.value);
105 } else {
gru 3.20 106 console.warn("Zugriff auf Zähler Beispielzähler fehlgeschlagen:", data.msg);
gru 3.18 107 }
108 }).catch(function(jqXHR, errorTextStatus, errorThrown) {
109 console.warn("Zugriff auf Zähler Beispielzähler fehlgeschlagen:", errorThrown, "(" + errorTextStatus + ")");
gru 3.12 110 });
111 {{/code}}
gru 3.21 112
gru 3.22 113 === Einfügen eines Templates für eine AJAX-Anfrage im Formular ===
114
115 {{figure image="counter_query_de.png"}}Auswahl des Templates für die Zähler-Abfrage im JavaScript-Bereich des Formulardesigners.{{/figure}}
116
117 Ein Template, welches der obenstehenen Beispielfunktion ähnliche ist, kann auch per Autocomplete direkt im JavaScript-Bereich des Formulardesigners eingefügt werden. Hierzu muss hintereinander {{code language=none}}Zähler{{/code}}eingegeben werden und die vom Autocomplete vorgeschlagene Option //Zähler-Abfrage// mit einem Klick oder mit den Pfeiltasten ausgewählt und der der Enter-Taste bestätigt werden.
118
119 Nachdem das Template eingefügt wurde, müssen die benötigten Funktionaltitäten hinzugefügt und der Name des Zählers abgeändert werden.