Änderungen von Dokument Zähler


Von Version 3.3
bearbeitet von gru
am 19.08.2021, 11:09
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 3.18
bearbeitet von gru
am 30.08.2021, 15:14
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Titel
... ... @@ -1,1 +1,1 @@
1 -Counter
1 +Zähler
Inhalt
... ... @@ -16,7 +16,7 @@
16 16  ; Aktueller Wert
17 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 18  ; Automatisch zurücksetzen
19 -: Wenn diese Option aktiviert wurde, kann über die folgenden Optionen festgelegt werden, unter welchen Bedingungen der Zähl zurückgesetzzt werden soll:
19 +: Wenn diese Option aktiviert wurde, kann über die folgenden Optionen festgelegt werden, unter welchen Bedingungen der Zähl zurückgesetzt werden soll:
20 20  :; Startwert
21 21  :: Wert auf den der Zähler zurückgesetzt werden soll
22 22  :; Bedingung
... ... @@ -48,3 +48,64 @@
48 48  ; Geändert am
49 49  : Zeitpunkt, an dem zum letzten Mal Änderungen am Zähler vorgenommen wurden
50 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 +== Zugriff auf Zählerwert per Servlet ==
58 +
59 +=== Servlet-URL und Parameter ===
60 +
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:
62 +
63 +{{code language="none"}}https://<Serveradresse>/formcycle/form/clientcounter/?frid=<gültige FRID>&name=<Name des Zählers>{{/code}}
64 +und
65 +{{code language="none"}}https://<Serveradresse>/formcycle/form/clientcounter/?frid=<gültige FRID>&uuid=<UUID des Zählers>{{/code}}
66 +
67 +
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 +
70 +=== Rückgabewerte ===
71 +
72 +Das Erebnis wird als JSON zurückgegeben. Neben dem eigentlichen Wert sind auch andere Informationen zurückgegeben. Die Antwort hat die folgende Struktur:
73 +; success
74 +: Boolscher Wert, der aussagt, ob der Zählerwert erfolgreich ausgelesen werden konnte.
75 +; msg
76 +: Servernachricht bezüglich der Anfrage, welche zur Fehlersuche verwendet werden kann. Ein erfolgreicher Zugriff liefert z.B. //Counter found//.
77 +; result
78 +: Antwort auf die Anfrage. Wenn die Anfrage erfolgreich war, sind die folgenden Unterpunkte enthalten:
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 +
90 +=== Beispiel für eine AJAX-Anfrage im Formular ===
91 +
92 +Eine bespielhafte AJAX-Anfrage, welche den aktuellen Zählerwert des Zählers //Beispielzähler// in das Feld //tf1// schreibt, könnte also wie folgt aussehen:
93 +
94 +{{code language="javascript"}}
95 +$.ajax({
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 {
106 + console.warn("Zugriff auf Zähler Beispielzähler fehlgeschlagen:",data.msg);
107 + }
108 +}).catch(function(jqXHR, errorTextStatus, errorThrown) {
109 + console.warn("Zugriff auf Zähler Beispielzähler fehlgeschlagen:", errorThrown, "(" + errorTextStatus + ")");
110 +});
111 +{{/code}}