Wiki-Quellcode von Zähler


Zeige letzte Bearbeiter
1 {{content/}}
2
3 {{id name="fig_counter"/}}
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}}
5
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.
7
8 == Anlegen eines Zählers ==
9
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.
11
12 == Konfigurationsoptionen ==
13
14 ; Name
15 : Name des Zählers
16 ; Aktueller Wert
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.
18 ; Automatisch zurücksetzen
19 : Wenn diese Option aktiviert wurde, kann über die folgenden Optionen festgelegt werden, unter welchen Bedingungen der Zähl zurückgesetzt werden soll:
20 :; Startwert
21 :: Wert auf den der Zähler zurückgesetzt werden soll
22 :; Bedingung
23 :: Bedingung unter welcher der Zähler zurückgesetzt werden soll. Zur Auswahl stehen die folgenden Optionen:
24 ::: - Zähler größer gleich
25 ::: - Zähler kleiner gleich
26 ::: - täglich
27 ::: - wöchentlich
28 ::: - monatlich
29 ::: - jährlich
30 :: Entsprechend der hier getroffenen Auswahl werden die folgenden Felder sichtbar:
31 ::; Wert
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.
33 ::; um
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.
35 ::; An den Tagen
36 ::: Wochentag, an dem das Zurücksetzen stattfinden soll. Nur verfügbar, wenn //wöchentlich// als Bedingung ausgewählt wurde.
37 ::; Jeweils am
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.
39 ::; Monat
40 ::: Monat, in dem der Zähler zurückgesetzt werden soll. Nur verfügbar, wenn //jährlich// als Bedingung ausgewählt wurde.
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
51 == Platzhalter ==
52
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:
54
55 {{code language="none"}}[%$COUNTER_CLIENT.<Name des Zählers>%]{{/code}}
56
57
58 == Zugriff auf Zählerwert per Servlet ==
59
60 === Servlet-URL und Parameter ===
61
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:
63
64 {{code language="none"}}https://<Serveradresse>/formcycle/form/clientcounter/?frid=<gültige FRID>&name=<Name des Zählers>{{/code}}
65 und
66 {{code language="none"}}https://<Serveradresse>/formcycle/form/clientcounter/?frid=<gültige FRID>&uuid=<UUID des Zählers>{{/code}}
67
68
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
71 === Rückgabewerte ===
72
73 Das Erebnis wird als JSON zurückgegeben. Neben dem eigentlichen Wert sind auch andere Informationen zurückgegeben. Die Antwort hat die folgende Struktur:
74 ; success
75 : Boolscher Wert, der aussagt, ob der Zählerwert erfolgreich ausgelesen werden konnte.
76 ; msg
77 : Servernachricht bezüglich der Anfrage, welche zur Fehlersuche verwendet werden kann. Ein erfolgreicher Zugriff liefert z.B. //Counter found//.
78 ; result
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:
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
91 === Beispiel für eine AJAX-Anfrage im Formular ===
92
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:
94
95 {{code language="javascript"}}
96 $.ajax({
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 {
107 console.warn("Zugriff auf Zähler Beispielzähler fehlgeschlagen:", data.msg);
108 }
109 }).catch(function(jqXHR, errorTextStatus, errorThrown) {
110 console.warn("Zugriff auf Zähler Beispielzähler fehlgeschlagen:", errorThrown, "(" + errorTextStatus + ")");
111 });
112 {{/code}}
113
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
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.
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.