Änderungen von Dokument Datenbankzähler-Plugin


Von Version 2.1
bearbeitet von gru
am 04.03.2021, 10:12
Änderungskommentar: Imported from XAR
Auf Version 3.1
bearbeitet von gru
am 10.03.2021, 10:53
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Inhalt
... ... @@ -2,45 +2,82 @@
2 2  
3 3  {{content/}}
4 4  
5 -{{figure image="plugin_dbcounter_workflow_select_de.png" width="600"}}
6 -Das kostenpflichtige Datenbankzähler-Plugin kann sowohl als Mandant-Plugin als auch als System-Plugin installiert werden. Das Plugin selber benötigt keine Konfiguration. Nach Installation stehen zwei neue Aktionen in der Statusverarbeitung zur Verfügung: //Counter// und //Variable//. Bei //Counter// muss der Zählername fest eingegeben werden, bei //Variable// kann der Zählername dynamisch durch den Wert eines Formularfelds bestimmt werden.
7 -{{/figure}}
5 +== Funktionsbeschreibung ==
8 8  
9 -Das Datenbankzähler-Plugin ermöglicht es, einen oder mehrere globale Zähler in einer Datenbank anzulegen und in einem speziellen Hauptmenüpunkt zu verwalten. Der Zählwert kann innerhalb der [[Statusverarbeitung>>doc:Formcycle.UserInterface.MyForms.WorkflowProcessing.WebHome]] erhöht, erniedrigt, ausgelesen oder zurückgesetzt werden.
7 +Das kostenpflichtige Datenbankzähler-Plugin-Bundle ermöglicht es, in einem neuen Menüpunkt einen oder 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 ein Servlet-Aktions-Plugin kann zudem per AJAX-Request der Wert von einem oder mehreren Zählern ermittelt werden, z.B. im JavaScript-Code eines Formulars.
10 10  
11 -Mögliche Anwendungslle sind:
9 +== Installation ==
12 12  
13 -* Ein Teilnahmeformular, in dem die Anzahl der Teilnehmer pro Termin gezählt wird und weitere Anmeldungen ab einer bestimmten Grenze blockiert werden.
14 -* Das Generieren einer {{smallcaps}}id{{/smallcaps}} für einen Formularvorgang, die unabhängig von der internen {{smallcaps}}id{{/smallcaps}} von {{formcycle/}} ist. Dies ist speziell dann sinnvoll, wenn die {{smallcaps}}id{{/smallcaps}} einem bestimmten Muster folgen soll oder in regelmäßigen Abständen zurückgesetzt werden muss.
15 -* Das n-fache Durchlaufen der Aktionen eines Status, wobei //n// in Abhängigkeit einer Formulareingabe festgelegt wird.
11 +Das Plugin-Bundle 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.
16 16  
17 -Nach Installation können Zähler in einer separaten Menüseite im Backend verwaltet werden. Hier sieht man den aktuellen Stand aller bereits angelegten Zähler. Dort ist es auch möglich, den Wert der Zähler auszulesen, als auch neue Zähler anzulegen oder bestehende Zähler zu löschen.
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}}
18 18  
19 -Mit diesem Plugin stehen zwei neue Aktionen in der Statusverarbeitung zur Verfügung: //Counter// und //Variable//. Bei //Counter// muss der Zählername fest eingegeben werden, bei //Variable// kann der Zählername dynamisch durch den Wert eines Formularfelds bestimmt werden. Der genaue Unterschied sowie die Anwendungsfälle finden sich unten im entsprechenden Abschnitt dazu.
17 +== Verwendung anhand von Beispielen ==
20 20  
21 -Weiterhin ist es auch möglich, den aktuellen Wert eines Zählers über einen [[Platzhalter>>doc:Formcycle.UserInterface.Variables]] in der Verarbeitung oder [[per {{smallcaps}}Ajax{{/smallcaps}}>>doc:Formcycle.FormDesigner.CodingPanel.ScriptTab.WebHome]] im Formular abzufragen.
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.
22 22  
23 -Jeder Zähler besitzt sowohl einen Namen als auch eine eindeutige [[{{smallcaps}}Uuid{{/smallcaps}}>>https://de.wikipedia.org/wiki/Universally_Unique_Identifier]]. Die {{smallcaps}}Uuid{{/smallcaps}} dient zur eindeutigen Identifikation Zählers und wird bei der Abfrage per {{smallcaps}}Ajax{{/smallcaps}} verwendet.
21 +=== Anlegen eines Zählers ===
24 24  
25 -Dieses Plugin ist ein Plugin-Bundle und enthält zwei Verarbeitungsplugins, ein Platzhalterersetzungsplugin und ein Servlet-Plugin. Diese Plugins werden in den folgendenen Abschnitten genauer beschrieben.
23 +???
24 +{{figure image="1_Beispiel_Zaehler.png" width="600"}}
25 +Anlegen und konfigurieren eines neuen Zählers mit dem Namen //BeispielZaehler//.
26 +{{/figure}}
26 26  
27 -== Menüpunkt "Zählerkonfiguration" ==
28 +{{figure image="2_Beispiel_Wert.png" width="600"}}
29 +Setzen des Wertes des Zählers.
30 +{{/figure}}
28 28  
29 -{{info}}
30 - Durch dieses Plugin wird ein [[Rollenrecht>>doc:Formcycle.UserInterface.UserSettings.Roles]] erstellt, welches steuert, ob ein Benutzer Zugriff auf dieses Menü hat. Falls dieses Menü nicht in der Menüleiste zu sehen ist, sollte der zuständige Administrator kontaktiert werden.
31 -{{/info}}
32 +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 32  
33 -{{figure image="plugin_dbcounter_config_base_de.png" width="600"}}
34 -Das Menü mit einer Übersicht über alle vorhandenen Zähler. Hier können auch neue Zähler hinzugefügt und bestehende Zähler gelöscht werden.
34 +=== Konfiguration der Statusverarbeitungsaktion ===
35 +
36 +{{figure image="3_Beispiel_Aktion.png" width="600"}}
37 +Konfigurieren einer //Counter//-Plugin-Aktion, welche den Wert des Zählers //BeispielZaehler// um 1 verringert.
35 35  {{/figure}}
36 36  
37 -Nach Installation des Zähler-Plugins 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 löschen.
40 +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.
38 38  
42 +=== Verwenden von Platzhaltern für die Prüfung der Formulareingänge ===
43 +
44 +{{figure image="3_Beispiel_Aktion.png" width="600"}}
45 +Konfigurieren einer Bedingung für die //Counter//-Plugin-Aktion, welche den Wert des Zählers //BeispielZaehler// um 1 verringert.
46 +{{/figure}}
47 +
48 +Über eine Bedingung an der Aktion für zum verringern des Zählerwertes ist es möglich, zu prüfen, ob der Zählerwert beim Eingang des Fomulars bereits 0 ist.
49 +
50 +=== Verwendung von Platzhaltern im Formular ===
51 +
52 +{{figure image="4_Beispiel_Zahlfeld.png" width="600"}}
53 +Weiteres Eingabefeld zum Anzeigen der Anzahl der noch verfügbaren Plätze und die dafür nötigen Einstellungen im {{designer/}}.
54 +{{/figure}}
55 +
56 +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"}}YYY{{/code}} beim Aufruf des Formulars mit dem aktuellen Zählerwert befüllt wird.
57 +
58 +=== Auslesen des Zählerwertes per JavaScript ===
59 +
60 +Auslesen und Verändern der Zählerwerte in der Verarbeitung
61 +
62 +
63 +Hier einfügen.
64 +
65 +=== Herunterladen des Beispielformulars ===
66 +
67 +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.
68 +
69 +== Einstellungen im Menüpunkt "Zählerkonfiguration" ==
70 +
71 +{{figure image="5_plugin_dbcounter_config_base_de.png" width="600"}}
72 +Das Menü mit einer Übersicht über alle vorhandenen Zähler. Hier können auch neue Zähler hinzugefügt und bestehende {{/figure}}
73 +
74 +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.
75 +
39 39  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.
40 40  
41 41  === Eigenschaften ===
42 42  
43 -In der Liste links kann ein Zähler ausgewählt werden. Nach Auswahl erscheinen die folgenden Informationen zu dem Zähler:
80 +In der Liste links kann ein Zähler ausgewählt werden. Nach Auswahl erscheinen die folgenden Informationen zum ausgewählten Zähler:
44 44  
45 45  ; {{smallcaps}}Uuid{{/smallcaps}}
46 46  : 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.
... ... @@ -64,7 +64,7 @@
64 64  
65 65  === Automatisches Zurücksetzen ===
66 66  
67 -Folgende Eigenschaften erscheinen, wenn der Zähler automatisch zurückgesetzt werden soll:
104 +Folgende Eigenschaften erscheinen, wenn die Option //Automatisch Zurücksetzen// ausgewählt wurde:
68 68  
69 69  {{info}}
70 70  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.
... ... @@ -97,7 +97,7 @@
97 97  
98 98  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.
99 99  
100 -Im Unterschied zur Aktion //Variable// muss und kann hier der Zähler fest ausgewählt werden. Der hler sollte vorher in der Zählerkonfiguration (siehe oben) angelegt werden. Daher eignet sich diese Aktion besonders für globale Zähler, wie etwa für die Generierung einer fortlaufenden Vorgangs-{{smallcaps}}id{{/smallcaps}}.
137 +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.
101 101  
102 102  ; Zählername
103 103  : 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.
... ... @@ -141,17 +141,8 @@
141 141  :; Zähler auf Startwert zurücksetzen
142 142  :: Setzt den Wert des Zählers auf den eingegebenen Startwert zurück.
143 143  ; Schrittweite
144 -: Anzahl, um die der Zähler hoch beziehungsweise herunter gesetzt werden soll.
181 +: Anzahl, um die der Zähler hoch beziehungsweise herunter gesetzt werden soll. Nicht verfügbar, wenn //Zähler auf Startwert zurücksetzen// ausgewählt wurde.
145 145  
146 -=== Standardeinstellungen, falls Variable noch nicht existiert ===
147 -
148 -Falls die Variable ("Zähler") mit dem angegebenen Namen noch nicht existiert, wird ein neuer Zähler erstellt. In diesem Bereich wird festgelegt, welche Einstellungen der neu angelegte Zähler haben soll. Falls der Zähler bereits existiert, haben diese Einstellungen keine Auswirkung.
149 -
150 -; Startwert
151 -: Der Startwert des neu angelegten Zählers.
152 -; Automatisch zurücksetzen
153 -: Ob der neu angelegte Zähler automatisch zurückgesetzt werden soll. Ist diese Option aktiviert, erscheinen weitere Einstellungen, die im Abschnitt zur Zählerkonfiguration (siehe oben) genauer erläutert sind.
154 -
155 155  == Rückgabeparameter der Aktionen ==
156 156  
157 157  {{figure image="plugin_dbcounter_action_return_parameters_de.png"}}
... ... @@ -209,6 +209,13 @@
209 209  [%$DBCOUNTER(teilnehmer-2020-03-17, 0)%]
210 210  {{/code}}
211 211  
240 +Für die Verwendung der Platzhalter innerhalb des Formulars werden
241 +
242 +
243 +
244 +
245 +
246 +
212 212  == Servlet-Aktions-Plugin ==
213 213  
214 214  {{figure image="dbcounter_plugin_servlet_action.png"}}
... ... @@ -215,8 +215,18 @@
215 215  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.
216 216  {{/figure}}
217 217  
218 -Nach Installation des Plugins ist eine neue Servlet-Aktion verfügbar, mit der auf den aktuellen Wert eines Zähler zugegriffen werden kann. Dies ist etwa nützlich, wenn aus dem Formular heraus ein Zählwert per {{smallcaps}}Ajax{{/smallcaps}}-Anfrage abgerufen werden soll. Die {{smallcaps}}Url{{/smallcaps}} für das Servlet baut sich nach dem folgenden Schema auf:
253 +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:
254 +In der Konfigurationsoberfläche des Zählers wird bereits eine Vorlage für einen {{smallcaps}}Ajax{{/smallcaps}}-Zugriff geliefert.
255 +TODO: Für grun gelten die Regeln
219 219  
257 +
258 +== Zugriff auf Zählerwert mittels AJAX-Request ==
259 +
260 +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:
261 +
262 +; LastChange
263 +: Gibt an, ob der Servlet-Aufruf erfolgreich war. Der Wert ist ein weiteres {{smallcaps}}Json{{/smallcaps}}-Objekt mit folgenden Einträgen:
264 +
220 220  {{code language="none"}}
221 221  https://<Host>/<FORMCYCLE-Kontextpfad>/plugin?name=Servlet%20Counter&client-id=<Mandant-ID>&id=<Zähler-UUID>
222 222  {{/code}}
... ... @@ -273,23 +273,32 @@
273 273  :; Code
274 274  :: Eine englische Beschreibung des Resultats (Erfolg oder Fehler).
275 275  ; Counter
276 -: Informationen zum angefragten Zähler. Der Wert ist ein weiteres {{smallcaps}}Json{{/smallcaps}}-Objekt mit folgenden Einträgen:
277 -: Der aktuelle nummerische Wert des Zählers.
321 +: 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:
278 278  :; LastChange
279 279  :: 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.
280 280  :; LastChangeTimestamp
281 281  :: 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.
282 -:; Value
283 -:: Der aktuelle nummerische Wert des Zählers.
284 -:; {{smallcaps}}Uuid{{/smallcaps}}
285 -:: Die {{smallcaps}}Uuid{{/smallcaps}} des angefragten Zählers, dessen Wert ausgelesen wurde.
286 286  :; Name
287 287  :: Der Name des angefragten Zählers, dessen Wert ausgelesen wurde.
328 +:; {{smallcaps}}Uuid{{/smallcaps}}
329 +:: Die {{smallcaps}}Uuid{{/smallcaps}} des angefragten Zählers, dessen Wert ausgelesen wurde.
330 +:; Value
331 +:: Der aktuelle nummerische Wert des Zählers.
288 288  
289 289  == Versionshistorie ==
290 290  
291 291  In diesem Abschnitt werden die vorhandenen Versionen des Zähler-Plugins und die jeweiligen Änderungen in dieser Version beschrieben.
292 292  
337 +=== 4.0.0 ===
338 +
339 +* Verbesserung der Oberfläche für die Zählerkonfiguration
340 +* Entfernen der Aktion //Variable ändern//
341 +
342 +=== 3.0.0 ===
343 +
344 +* Fehler in Zählerverwaltung für bestehende Zähler beim Update auf Version 2.3.3 des Plugins behoben.
345 +{{info}}Nach dem Update müssen alle Zähler neu angelegt werden.{{/info}}
346 +
293 293  === 2.3.3 ===
294 294  
295 295  * Rechtschreibfehler korrigiert