Wiki-Quellcode von Datenbankzähler-Plugin


Zeige letzte Bearbeiter
1 [[**Plugin-Download**>>url:https://customer.formcycle.eu/index.php/apps/files/?dir=/FORMCYCLE%20-%20Plugins%20Customer/fc-plugin-bundle-dbcounter&fileid=5521||target="_blank"]] (erfordert Anmeldung)
2
3 {{content/}}
4
5 == Funktionsbeschreibung ==
6
7 Das kostenpflichtige Datenbankzähler-Plugin ermöglicht es, mehrere globale Zähler zu erstellen und zu verwalten. Der Zählwert kann innerhalb der [[Platzhalter>>doc:Formcycle.UserInterface.MyForms.WorkflowProcessing.WebHome]] ausgelesen, erhöht, verringert oder zurückgesetzt werden und ist als [[Statusverarbeitung>>doc:Formcycle.UserInterface.Variables.WebHome]] verfügbar. Über AJAX-Requests kann der Wert von einem oder mehreren Zählern ermittelt werden, z.B. im JavaScript-Code eines Formulars.
8
9 == Installation ==
10
11 Das Plugin kann als Mandant-Plugin oder System-Plugin installiert werden. Eine Anleitung zur Installation von Plugins finden Sie [[hier>>doc:Formcycle.UserInterface.Client.Plugins.WebHome]]. Zu beachten ist hierbei, dass das Plugin nur genau einmal auf dem {{formcycle/}} Server installiert werden darf.
12
13 {{info}}
14 Durch dieses Plugin wird ein [[Rollenrecht>>doc:Formcycle.UserInterface.UserSettings.Roles]] erstellt, welches steuert, ob ein Benutzer Zugriff den Menüpunkt zur Konfiguration der Zähler hat. Diese Berechtigungen sollten nach der Installtion vergeben werden.
15 {{/info}}
16
17 == Verwendung anhand von Beispielen ==
18
19 Im folgenden wird anhand eines Beispielprojekts die Verwendung von verschiedene Komponeten des Plugin-Bundles demonstriert. Das Ziel des Beispiels ist es, für eine Veranstaltung mit 15 Teilnehmern . Dabei werden verschiedene Funktionalitäten des Plugin-Bundles verwendet. Die folgenden Schritte können prinzipiell anhand jedes Formulars nachvollzogen werden. Einzige Voraussetzung ist das Vorhandensein einer Schaltfläche zum Absenden des Formulars.
20
21 === Anlegen eines Zählers ===
22
23 {{figure image="1_Beispiel_Zaehler.png" width="600"}}
24 Anlegen und konfigurieren eines neuen Zählers mit dem Namen //BeispielZaehler//.
25 {{/figure}}
26
27 {{figure image="2_Beispiel_Wert.png" width="600"}}
28 Setzen des Wertes des Zählers auf die für das Beispiel gewünschte Teilnehmeranzahl.
29 {{/figure}}
30
31 Nach der Installation des Plugin-Bundles gibt es im Hauptmenü der {{formcycle/}} Oberfläche einen neuen Menüeintrag [[//Zählerkonfiguration>>||anchor="HEinstellungenimMenFCpunkt22ZE4hlerkonfiguration22"]]. Dort kann über den einen Klick auf die Plus-Schaltfläche ein neuer Zähler angelegt werden. Für diesen muss ein //Zählername// angegeben werden. Über den Stift-Schaltfläche für //Aktueller Wert// kann der Wert des Zählers gesetzt werden. Nachdem dort der Wert 15 eingegeben wurde, muss dieser über die Haken-Schaltfläche bestätigt werden. Anschließend muss über die //Speichern//-Schaltfläche unten rechts der Zähler gespeichert werden.
32
33 === Konfiguration der Statusverarbeitungsaktion ===
34
35 {{figure image="3_Beispiel_Aktion.png" width="600"}}
36 Konfigurieren einer //Counter//-Plugin-Aktion, welche den Wert des Zählers //BeispielZaehler// um 1 verringert.
37 {{/figure}}
38
39 Nachdem der Zähler erstellt wurde, kann in einem Formular in der [[Statusverarbeitung>>doc:Formcycle.UserInterface.Variables.WebHome]] eine Plugin-Aktion vom Typ //Counter// angelegt werden. Diese muss so konfiguriert werden, dass der Zähler beim Eingang des Formulars um 1 verringert wird. Dafür muss unter //Zählername// der Zähler //BeispielZaehler// und bei //Zählaktion// die Option //Herunterzählen// ausgewählt werden.
40
41 === Verwenden von Platzhaltern für die Prüfung der Formulareingänge ===
42
43 {{figure image="3_Beispiel_Aktion.png" width="600"}}
44 Zusätzliche Aktionen im Status //Eingegangen//, um zu prüfen, ob es beim Eingang des Formulars noch einen Platz gab.
45 {{/figure}}
46
47 {{figure image="4_Beispiel_Aktion.png" width="600"}}
48 Konfigurieren einer Bedingung für die //Counter//-Plugin-Aktion, welche den Wert des Zählers //BeispielZaehler// um 1 verringert.
49 {{/figure}}
50
51 Um zu verhindern, dass das Formular normal eingeht, wenn es keine freien Plätze mehr gibt und um den Benutzer darüber zu informieren, dass er leider keinen Platz mehr bekommen hat, muss in der Verarbeitung weitere Aktionen eingefügt werden.
52
53 Über eine Bedingung an der Aktion //TODO// ist es möglich, zu prüfen, ob der Zählerwert beim Eingang des Fomulars bereits 0 ist. Ist dies der Fall, werden nur
54
55 === Verwendung von Platzhaltern im Formular ===
56
57 {{figure image="5_Beispiel_Zahlfeld.png" width="600"}}
58 Weiteres Eingabefeld zum Anzeigen der Anzahl der noch verfügbaren Plätze und die dafür nötigen Einstellungen im {{designer/}}.
59 {{/figure}}
60
61 Um dem Benutzer beim Öffnen des Formulars die Anzahl der zu diesem Zeitpunkt noch verfügbaren Plätze anzuzeigen, wird in diesem Beispiel ein weiteres Eingabefeld verwendet. Dieses wird so Konfiguriert, dass es vom Benutzer nicht editiert werden kann und über den PLlatzhalter {{code language="none"}}TODO{{/code}} beim Aufruf des Formulars mit dem aktuellen Zählerwert befüllt wird.
62
63 {{velocity}}
64 ##=== Auslesen des Zählerwertes per JavaScript ===
65 ##
66 ##Auslesen und Verändern der Zählerwerte in der Verarbeitung
67 {{/velocity}}
68 === Herunterladen des Beispielformulars ===
69
70 Das Formular mit allen gemachten Einstellungen kann **HIER** heruntergeladen werden. Damit das Formular funktioniert, muss jedoch ein eigener Zähler unter [[//Zählerkonfiguration>>||anchor="HEinstellungenimMenFCpunkt22ZE4hlerkonfiguration22"]] angelegt werden und dieser muss in der Aktion //Counter// ausgewählt werden.
71
72 == Einstellungen im Menüpunkt "Zählerkonfiguration" ==
73
74 {{figure image="6_plugin_dbcounter_config_base_de.png" width="600"}}
75 Das Menü mit einer Übersicht über alle vorhandenen Zähler. Hier können auch neue Zähler hinzugefügt und bestehende {{/figure}}
76
77 Nach Installation des Datenbankzähler-Plugin-Bundle erscheint links im Hauptmenü ein neuer Menüeintrag mit dem Namen //Zählerkonfiguration//. In diesem Menü findet sich eine Übersicht mit Informationen über alle vorhandenen Zähler, etwa deren Namen und aktuellen Wert. Weiterhin ist es auch möglich, neue Zähler anzulegen oder bestehende Zähler zu bearbeiten und zu löschen.
78
79 Ein neuer Zähler wird durch Drücken auf das Plus-Symbol links oben angelegt. Ein bestehender Zähler wird Betätigen des Papierkorb-Symbols links oben gelöscht.
80
81 === Eigenschaften ===
82
83 In der Liste links kann ein Zähler ausgewählt werden. Nach Auswahl erscheinen die folgenden Informationen zum ausgewählten Zähler:
84
85 ; {{smallcaps}}Uuid{{/smallcaps}}
86 : Eine eindeutige {{smallcaps}}id{{/smallcaps}} des Zählers, die etwa beim Abruf des Zählerwerts per {{smallcaps}}Ajax{{/smallcaps}} (siehe Servlet-Aktions-Plugin unten) verwendet wird.
87 ; Aktueller Wert
88 : Der aktuelle Wert des Zählers.
89 ; Erstellt am
90 : Das Datum, an dem der Zähler erstellt wurde.
91 ; Geändert am
92 : Das Datum, an dem der Wert des Zählers zuletzt geändert wurde.
93
94 Weiterhin können die folgenden Eigenschaften des Zählers bearbeitet werden:
95
96 ; Zählername
97 : Der Name dieses Zählers. Wird der Name geändert, sollte beachtet werden, dass Platzhalter und {{smallcaps}}Ajax{{/smallcaps}}-Abfragen, wo der Name des Zählers verwendet wird, ebenfalls angepasst werden müssen. {{smallcaps}}Ajax{{/smallcaps}}-Abfrage bei denen die {{smallcaps}}Uuid{{/smallcaps}} des Zählers verwendet wird müssen hingegen nicht angepasst werden, da die {{smallcaps}}Uuid{{/smallcaps}} des Zählers sich nicht ändert.
98 ; Beschreibung
99 : Eine optionale Beschreibung des Zählers, die auch nur in diesem Backend-Menü einsehbar ist.
100 ; Startwert
101 : Der Startwert des Zählers. Dieser wird auch benutzt, wenn in einer Aktion der Zählerwert auf den Startwert zurückgesetzt werden soll.
102 ; Automatisch zurücksetzen
103 : Wenn diese Option aktiviert ist, wird der Zähler in periodischen Abständen auf den Startwert zurückgesetzt.
104
105 === Automatisches Zurücksetzen ===
106
107 Folgende Eigenschaften erscheinen, wenn die Option //Automatisch Zurücksetzen// ausgewählt wurde:
108
109 {{info}}
110 Geschieht ein Zurücksetzen des Zählers, so ist nach Ausführung der aktuellen Verarbeitungsaktion (//Counter oder Variable) //der Wert des Zählers gleich dem Startwert. Zum Beispiel: Die Counter-Aktion sei so eingestellt, dass der Zähler um //3// erhöht wird. Weiterhin soll der Zähler täglich zurückgesetzt werden. Der aktuelle Wert sei //37//, der Startwert //11//. Die erste Counter-Aktion, die an einem Tag ausgeführt wird, setzt nun der Wert des Zählers auf den Wert //11// zurück. Das Hochzählen um 3 erfolgt erst ab der zweiten Counter-Aktion an einem Tag.
111 {{/info}}
112
113 {{info}}
114 Es ist zu beachten, dass der Zähler nicht in einem Hintergrundprozess zurückgesetzt wird, sondern erst wenn die Verarbeitungsaktion //Counter// ausgeführt wird. Genauer: Der Zählwert wird bei Ausführung der Aktion zurückgesetzt (anstelle erhöht oder erniedrigt zu werden), falls zwischen dem Zeitpunkt, an dem der Zählwert zuletzt geändert wurde, und dem aktuellen Zeitpunkt des Servers ein Zeitpunkt liegt, an dem der Zähler gemäß Konfiguration zurückgesetzt hätte werden müssen.
115 {{/info}}
116
117 ; Bedingung
118 : Hier kann festgelegt werden, wann und unter welchen Umständen der Zähler zurückgesetzt werden soll. Es kann zwischen folgenden Optionen gewählt werden:
119 :; Zähler größer gleich
120 :: Nur verfügbar, wenn als Zählaktion //Hochzählen// gewählt wurde. Der Zähler wird auf den Startwert zurückgesetzt, wenn durch die aktuelle Aktion der Wert des Zählers so geändert wird, dass dieser größer oder gleich dem festgelegten Wert ist.
121 :; Zähler kleiner gleich
122 :: Nur verfügbar, wenn als Zählaktion //Herunterzählen// gewählt wurde. Der Zähler wird auf den Startwert zurückgesetzt, wenn durch die aktuelle Aktion der Wert des Zählers so geändert wird, dass dieser kleiner oder gleich dem festgelegten Wert ist.
123 :; täglich
124 :: Der Zähler wird jeden Tag zur gewählten Uhrzeit auf den Startwert zurückgesetzt.
125 :; wöchentlich
126 :: Der Zähler wird an jedem gewählten Wochentag zu der gewählten Uhrzeit zurückgesetzt.
127 :; monatlich
128 :: Der Zähler wird jeden Monat zum gewählten Tag zu der gewählten Uhrzeit zurückgesetzt.
129 :; jährlich
130 :: Der Zähler wird jedes Jahr zum gewählten Tag zu der gewählten Uhrzeit zurückgesetzt
131
132 == Aktionsverarbeitung "Counter" ==
133
134 {{figure image="7_plugin_dbcounter_action_counter_de.png"}}
135 Die Einstellungen für die Verarbeitungsaktion //Counter//. Hier kann festgelegt werden, welcher Zähler in welcher Weise geändert werden soll (hochzählen, herunterzählen etc).
136 {{/figure}}
137
138 Nach Installation dieses Plugins gibt es in der [[Status- und Aktionsverarbeitung>>doc:Formcycle.UserInterface.MyForms.WorkflowProcessing.WebHome]] eine neue Aktion namens //Counter//. Mit dieser Aktion kann der aktuelle Zählwert eines statischen Zählers geändert werden.
139
140 Im der Aktion muss der Zähler fest ausgewählt werden und muss daher zuvor in der [[//Zählerkonfiguration>>||anchor="HEinstellungenimMenFCpunkt22ZE4hlerkonfiguration22"]] (siehe oben) angelegt werden.
141
142 ; Zählername
143 : Auswahl des Zählers, dessen Wert geändert werden soll. Der Zähler sollte vorher in der Zählerkonfiguration angelegt werden, kann aber auch hier neu erstellt werden. Für jeden Zähler wird sowohl sein Name als auch seine {{smallcaps}}Uuid{{/smallcaps}} angezeigt. Die {{smallcaps}}Uuid{{/smallcaps}} dient der eindeutigen Identifikation des Zählers und wird etwa bei der Abfrage per {{smallcaps}}Ajax{{/smallcaps}} verwendet. Um einen Zähler zu löschen, wird dieser ausgewählt und das Papierkorb-Symbol rechts neben der Auswahl betätigt. Um einen neuen Zähler hinzuzufügen, wird zuerst auf das Plus-Symbol gedrückt, anschließend der gewünschte Name des Zählers eingegeben und schließlich der neue Zähler durch Drücken des Plus-Symbols angelegt.
144 ; Zählaktion
145 : Gibt an, in welcher Art und Weise der Wert des Zählers geändert werden soll. Möglich Optionen sind:
146 :; Hochzählen
147 :: Erhöht den Wert des Zählers um die eingegebene Zahl.
148 :; Herunterzählen
149 :: Erniedrigt den Wert des Zählers um die eingegebene Zahl.
150 :; Zähler auf Startwert zurücksetzen
151 :: Setzt den Wert des Zählers auf den eingegebenen Startwert zurück.
152 ; Schrittweite
153 : Anzahl, um die der Zähler hoch beziehungsweise herunter gesetzt werden soll.
154 ; Globale Einstellungen nutzen (deprecated)
155 : Diese Option sollte angehakt bleiben und dient nur der Abwärtskompatibilität zu älteren Versionen des Plugins. Bei älteren Versionen gab es nicht die Möglichkeit, eine Menüseite im Backend für die Zählerkonfiguration anzulegen, daher musste dies in der Aktionsverarbeitung geschehen. Ist diese Option deaktiviert, erscheinen weitere Einstellungen, die oben im Abschnitt zur Zählerkonfiguration beschrieben sind.
156
157 == Rückgabeparameter der Aktionen ==
158
159 {{figure image="plugin_dbcounter_action_return_parameters_de.png"}}
160 Einstellungen für die Rückgabeparameter der Aktion, die später über Aktionsplatzhalter verfügbar sind.
161 {{/figure}}
162
163 Manchmal ist es notwendig, auf das Ergebnis der Zählaktion zugreifen zu können, etwa den aktuellen Wert oder den Statuscode. Dies kann über [[Aktionsplatzhalter>>doc:Formcycle.UserInterface.Variables]] geschehen, welche auf die Rückgabewerte einer Aktion zugreifen. In den allgemeinen Rückgabeparametern kann eingestellt werden, über welchem Schlüssel auf die Rückgabeparameter Aktion zugegriffen werden kann. Beispielsweise trage die Zähleraktion den Namen //CountUp//. Dann kann über den Platzhalter //[%$CountUp.RESULT[0].currentValue%]// auf den aktuellen Zählwert zugegriffen werden, falls unter bei den allgemeinen Rückgabeparameter der Wert //currentValue// im mittleren Eingabefelder //Counter// eingetragen wurde. Folgende Rückgabeparameter sind verfügbar:
164
165 ; ResultCode
166 : Ein nummerischer Zahlenwert, der angibt, ob die Zählaktion erfolgreich war oder nicht. Folgende Ergebnisnummern sind möglich:
167 :; 1 (OK)
168 :: Die Zählaktion wurde erfolgreich abgearbeitet.
169 :; 10 (UNKNOWN_ACTION_ERROR)
170 :: Die Zählaktion kann nicht ausgeführt werden, da eine unbekannte Zählaktion ausgewählt wurde. Aktuell werden die Zählaktionen //Hochzählen//, //Herunterzählen// und //Auf den Startwert zurücksetzen// unterstützt.
171 :; 11 (PARSING_ERROR)
172 :: Ein konfigurierter Wert hat nicht den erwarteten Datentyp, etwa wenn für die Schrittweite des Zählers keine syntaktisch korrekte Zahl eingegeben wurde.
173 :; 40 (INTERNAL_ERROR)
174 :: Es ist ein anderer Fehler aufgetreten, der nicht näher klassifiziert werden kann.
175 ; ResultMessage
176 : Eine englische Beschreibung des Resultats (Erfolg oder Fehler).
177 ; Counter
178 : Der neue nummerische Wert des Zählers, nachdem die Zählaktion ausgeführt wurde.
179 ; IsReset
180 : Entweder //true//, falls der Zähler durch die aktuelle Aktion zurückgesetzt wurde; oder //false//, wenn er nicht zurückgesetzt wurde.
181 ; CounterAfterReset
182 : Falls der Zähler zurückgesetzt wurde: Der nummerische Wert des Zählers vor dem Zurücksetzen.
183
184 == Systemplatzhalter-Plugin ==
185
186 {{figure image="dbcounter-plugin-placeholder_de.png"}}
187 Ein Beispiel für den Platzhalter zum Auslesen des Zählwerts. Hier wird ein Zähler ausgelesen, der die Anzahl an Anmeldungen für eine Veranstaltung zählt. Dann wird geprüft, ob der Zählwert die maximale Anzahl an Anmeldungen übersteigt. Basierend auf dieser Prüfung kann dem Nutzer dann ein Fehler angezeigt werden, falls die Veranstaltung bereits ausgebucht ist. Hierbei handelt es sich um eine serverseitige Prüfung zur Validierung, bereits im Formular bei der Anmeldung sollte dem Nutzer natürlich schon die Information gegeben werden, ob überhaupt noch Plätze frei sind.
188 {{/figure}}
189
190 Nach Installation des Plugins ist ein neuer [[Systemplatzhalter>>doc:Formcycle.UserInterface.Variables]] verfügbar, über den auf den aktuellen Wert eines Zählers zugegriffen werden kann. Dies ist etwa nützlich, um in einer Aktionsbedingung den Zählwert nutzen und prüfen zu können. Der Platzhalter baut sich nach dem folgenden Schema auf:
191
192 {{code language="none"}}
193 [%$DBCOUNTER.<Zählername>%]
194 {{/code}}
195
196 Um also etwa auf den Zähler mit dem Namen //test// zuzugreifen, muss der folgende Platzhalter genutzt werden:
197
198 {{code language="none"}}
199 [%$DBCOUNTER.test%]
200 {{/code}}
201
202 Falls auf einen Zähler zugegriffen werden soll, bei dem nicht bekannt ist, ob es diesen schon gibt, muss der Startwert für den Zähler mit angegeben werden. Falls der Zähler noch nicht existiert, wird dann ein neuer Zähler mit diesem Startwert erstellt. Der Platzhalter baut sich dann nach folgendem Schema auf:
203
204 {{code language="none"}}
205 [%$DBCOUNTER(<Zählername>, <Startwert>)%]
206 {{/code}}
207
208 Angenommen, der Zähler heiße //teilnehmer-2020-03-17// und soll den Wert //0// erhalten, falls er noch nicht existiert. Dann kann der folgende Platzhalter genutzt werden:
209
210 {{code language="none"}}
211 [%$DBCOUNTER(teilnehmer-2020-03-17, 0)%]
212 {{/code}}
213
214 Für die Verwendung der Platzhalter innerhalb des Formulars werden
215
216
217
218
219
220
221 == Servlet-Aktions-Plugin ==
222
223 {{figure image="dbcounter_plugin_servlet_action.png"}}
224 Beispiel zum Auslesen eines Zählers im Formular mittels {{smallcaps}}Ajax{{/smallcaps}}. Die {{smallcaps}}Url{{/smallcaps}} wird anhand der im Formular zur Verfügung stehenden Metadaten aufgebaut. Hiermit wird vermieden, die {{smallcaps}}Url{{/smallcaps}} hart im Quelltext zu hinterlegen, was zu Fehlern führt, wenn sich etwa der Server oder der Kontextpfad ändern sollte.
225 {{/figure}}
226
227 Nach Installation des Plugins ist eine neue Servlet-Aktion verfügbar, mit der auf den aktuellen Wert eines Zähler zugegriffen werden kann. Dies kann dazu genutzt werden, um aus einem Formular den Wert eines Zählers per {{smallcaps}}Ajax{{/smallcaps}}-Anfrage zu ermitteln. Die {{smallcaps}}Url{{/smallcaps}} für das Servlet baut sich nach dem folgenden Schema auf:
228 In der Konfigurationsoberfläche des Zählers wird bereits eine Vorlage für einen {{smallcaps}}Ajax{{/smallcaps}}-Zugriff geliefert.
229 TODO: Für grun gelten die Regeln
230
231
232 == Zugriff auf Zählerwert mittels AJAX-Request ==
233
234 Diese werden in der Konfigurationsoberfläche des Zählers angezeigt. Die zurückgegebenen {{smallcaps}}Json{{/smallcaps}}-Objekt enthalten ein Objekt mit dem Namen Counter mit den folgenden Attributen:
235
236 ; LastChange
237 : Gibt an, ob der Servlet-Aufruf erfolgreich war. Der Wert ist ein weiteres {{smallcaps}}Json{{/smallcaps}}-Objekt mit folgenden Einträgen:
238
239 {{code language="none"}}
240 https://<Host>/<FORMCYCLE-Kontextpfad>/plugin?name=Servlet%20Counter&client-id=<Mandant-ID>&id=<Zähler-UUID>
241 {{/code}}
242
243 Falls also etwa {{formcycle/}} lokal unter dem Pfad //xima-formcycle// installiert wurde, der Zähler in einem Formular des Mandanten mit der ID //1// verwendet wird und die {{smallcaps}}Uuid{{/smallcaps}} //bc49d3b0-f869-4e59-864e-ddcc2925ed63// besitzt, dann lautet die {{smallcaps}}Url{{/smallcaps}}:
244
245 {{code language="none"}}
246 https://localhost:8080/xima-formcycle/plugin?name=Servlet%20Counter&client-id=1&id=bc49d3b0-f869-4e59-864e-ddcc2925ed63
247 {{/code}}
248
249 Alternativ ist es auch möglich, statt der //client-id// die {{smallcaps}}id{{/smallcaps}} des Formulars zu verwenden. Diese {{smallcaps}}id{{/smallcaps}}s lediglich verwendet, um das Servlet-Aktions-Plugin zu bestimmen, welches ausgeführt werden soll, und werden von diesem konkreten Plugin nicht ausgewertet:
250
251 {{code language="none"}}
252 https://<Host>/<FORMCYCLE-Kontextpfad>/plugin?name=Servlet%20Counter&project-id=<Formular-ID>&id=<Zähler-UUID>
253 {{/code}}
254
255 === HTTP-Parameter ===
256
257 Zusätzlich zu den oben genannten Parametern gibt es noch weitere Parameter, die an die {{smallcaps}}Url{{/smallcaps}} angehängt werden können. Im Folgenden werden alle verfügbaren Parameter kurz erläutert.
258
259 ; name
260 : Der Name des aufzurufenden Servlet-Aktions-Plugins, in dem Fall also //Servlet Counter//
261 ; client-id
262 : {{smallcaps}}id{{/smallcaps}} des Mandanten, in dem das Zähler-Plugin installiert wurde. Nicht nötig, falls das Plugin als System-Plugin installiert wurde. Es darf nur entweder //client-id// oder //project-id// angegeben werden.
263 ; project-id
264 : {{smallcaps}}id{{/smallcaps}} eines Formulars, in dem das Zähler-Plugin zur Verfügung steht. Es darf nur entweder //client-id// oder //project-id// angegeben werden.
265 ; id
266 : {{smallcaps}}Uuid{{/smallcaps}} des Zählers, auf den zugegriffen werden soll. Existiert der Zähler mit der angegebenen {{smallcaps}}Uuid{{/smallcaps}} noch nicht, wird ein entsprechender Fehler-Code zurückgeliefert (siehe unten). Es darf nur entwender eine //id// oder ein //counter-name// angegeben werden.
267 ; counter-name
268 : Name des Zählers, auf den zugegriffen werden soll. Existiert der Zähler mit dem angegebenen Namen noch nicht, wird ein neuer Zähler erstellt. Es darf nur entwender eine //id// oder ein //counter-name// angegeben werden.
269 ; counter-initial
270 : Optional. Initialer Wert des Counters, wenn dieser noch nicht existiert. Standardwert ist //0//. Dieser Parameter darf nur angegeben werden, wenn auch //counter-name// angegeben wird.
271 ; counter-array
272 : Optional. Entweder //true// oder //false// (Standard). Wenn auf //true// gesetzt, darf der Parameter //counter-name// beziehungsweise //id// mehrfach angegeben werden. Es wird dann Array mit den Werten den Informationen zu den einzelnen Zählern angegeben. Diese Option sollte genutzt werden, wenn in einem Formular per {{smallcaps}}Ajax{{/smallcaps}} mehrere Zähler auf einmal abgefragt werden sollen. So kann die Anzahl an {{smallcaps}}Http{{/smallcaps}}-Anfrage reduziert werden.
273
274 === HTTP-Antwort ===
275
276 Nach Ausführung des Servlet-Aktions-Plugin wird das Ergebnis als {{smallcaps}}Json{{/smallcaps}}-Objekt zurückgeliefert, siehe hierzu auch die Abbildung. Falls der Parameter //counter-array// auf //true// gesetzt wurde, wird stattdessem ein {{smallcaps}}Json{{/smallcaps}}-Array zurückgegeben, wobei jeder Eintrag ein {{smallcaps}}Json{{/smallcaps}}-Objekt mit den unten beschriebenen Einträgen ist.
277
278 Das {{smallcaps}}Json{{/smallcaps}}-Objekt hat die folgenden Einträge:
279
280 ; Status
281 : Gibt an, ob der Servlet-Aufruf erfolgreich war. Der Wert ist ein weiteres {{smallcaps}}Json{{/smallcaps}}-Objekt mit folgenden Einträgen:
282 :; Msg
283 :: Ein nummerischer Wert, der angibt, ob der Servlet-Aufruf erfolgreich war. Mögliche Werte sind:
284 ::; 0 (OK)
285 ::: Die Servlet-Anfrage war erfolgreich.
286 ::; 12 (NO_REQUEST_ID_ERROR)
287 ::: Die Server-Anfrage enthielt keine Zähler-{{smallcaps}}Uuid{{/smallcaps}}.
288 ::; 13 (NO_COUNTER_TO_UUID_ERROR)
289 ::: Es existiert kein Zähler mit der angefragten {{smallcaps}}Uuid{{/smallcaps}}.
290 ::; 40 (INTERNAL_ERROR)
291 ::: Es ist ein anderer Fehler aufgetreten, der nicht näher klassifiziert werden kann.
292 :; Code
293 :: Eine englische Beschreibung des Resultats (Erfolg oder Fehler).
294 ; Counter
295 : Informationen zum angefragten Zähler. Exisitert nur, wenn der angefragte Zähler existiert. Der Wert selbst ist ein weiteres {{smallcaps}}Json{{/smallcaps}}-Objekt mit folgenden Einträgen:
296 :; LastChange
297 :: Das Datum mit Uhrzeit, an dem der Zähler zuletzt geändert wurde. Das Datum wird mit dem Datums- und Zeitformat der aktuellen Server-Locale formattiert.
298 :; LastChangeTimestamp
299 :: Das Datum mit Uhrzeit, an dem der Zähler zuletzt geändert wurde. Der Zeitstempel ist eine ganze Zahl, welche die Anzahl an Millisekunden seit dem 1. Januar, 1970, 00:00:00 GMT angibt.
300 :; Name
301 :: Der Name des angefragten Zählers, dessen Wert ausgelesen wurde.
302 :; {{smallcaps}}Uuid{{/smallcaps}}
303 :: Die {{smallcaps}}Uuid{{/smallcaps}} des angefragten Zählers, dessen Wert ausgelesen wurde.
304 :; Value
305 :: Der aktuelle nummerische Wert des Zählers.
306
307 == Versionshistorie ==
308
309 In diesem Abschnitt werden die vorhandenen Versionen des Zähler-Plugins und die jeweiligen Änderungen in dieser Version beschrieben.
310
311 === 4.0.0 ===
312
313 * Verbesserung der Oberfläche für die Zählerkonfiguration
314 * Entfernen der Aktion //Variable ändern//
315
316 === 3.0.0 ===
317
318 * Fehler in Zählerverwaltung für bestehende Zähler beim Update auf Version 2.3.3 des Plugins behoben.
319 {{info}}Nach dem Update müssen alle Zähler neu angelegt werden.{{/info}}
320
321 === 2.3.3 ===
322
323 * Rechtschreibfehler korrigiert
324
325 === 2.3.2 ===
326
327 * Fehler in UI behoben: Checkbox //Globale Einstellungen nutzen// unter Zählereigenschaften bei Aktion //Counter// schaltet wieder die darauffolgenden Einstellungen sichtbar beziehungsweise unsichtbar.
328 * Kleinere Rechtschreibfehler korrigiert.
329
330 === 2.3.1 ===
331
332 * Fehler in {{smallcaps}}Mysql{{/smallcaps}} behoben, sodass dieses Plugin nun auch mit diesem Datenbankverwaltungssystem funktioniert.
333
334 === 2.3.0 ===
335
336 * Neue Aktion: Variable ändern
337 * Hier kann der Zählername frei vergeben werden, auch per Platzhalter. Dafür ist aber ein initialer Wert notwendig. Optional kann eine initiale Konfiuration für das Zurücksetzen eingegeben werden.
338 * Neuer Platzhalter: //DBCOUNTER(name, initialValue)//. Legt Zähler neu an, wenn der noch nicht existiert.
339 * 3 neue Parameter für Servlet-Plugin: //counter-name//, //counter-initial// und //counter-array//.
340
341 === 2.2.0 ===
342
343 * Reset (wenn notwendig) auch beim Auslesen des Zählers
344 * Portalseite (//Zählerkonfiguration//) im Backend für die Konfiguration der Zähler
345 * Einstellungen zum Zurücksetzen und zum initialen Wert jetzt nicht mehr in Aktionsverarbeitungskonfiguration, sondern auf der Portalseite.
346
347 === 2.1.0 ===
348
349 * Anpassungen für {{formcycle/}} Version 6.1.6
350 * //CounterPlugin// und //ServletCounterPlugin// hatten die gleichen Namen, dies führte zu Problemen.
351 * Fehler beim Zurücksetzen der Zähler behoben
352 * Im Servlet-Aktions-Plugin gibt es einen neuen Rückgabewert: //Counter.LastChangeTimestamp//
353 * Neues System-Platzhalter-Plugin zum Auslesen des Wertes eines Zähler über Platzhalter: //[%DBCOUNTER.name%]//
354
355 === 2.0.0 ===
356
357 * Portierung auf {{formcycle/}} Version 6.0.2
358
359 === 1.0.1 ===
360
361 * Bugfix: Zähler wurde beim ersten Aufruf nicht gesetzt
362
363 === 1.0.0 ===
364
365 * Initiale Version