Verstecke letzte Bearbeiter
awa 20.6 1 {{content/}}
2
awa 20.3 3 {{figure image="dbcounter_plugin_installation_de.png"}}
4 Das Datenbankzähler-Plugin kann sowohl als Mandant-Plugin als auch als System-Plugin installiert werden. Das Plugin selber benötigt keine Konfiguration.
5 {{/figure}}
6
awa 20.26 7 Das Datenbankzähler-Plugin ermöglicht es, einen oder mehrere globale Zähler in einer Datenbank anzulegen. Der Zählwert kann innerhalb der [[Statusverarbeitung>>doc:Formcycle.UserInterface.MyForms.WorkflowProcessing.WebHome]] erhöht, erniedrigt, ausgelesen oder zurückgesetzt werden. Mögliche Anwendungsfälle sind etwa:
awa 20.2 8
9 * Ein Teilnahmeformular, in dem die Anzahl der Teilnehmer gezählt wird und weitere Anmeldungen ab einer bestimmten Grenze blockiert werden.
10 * Das Generieren einer ID für einen Formularvorgang, die unabhängig von der FORMCYCLE-internen Prozess-ID ist. Dies ist speziell dann sinnvoll, wenn die ID einem bestimmten Muster folgen soll oder in regelmäßigen Abständen zurückgesetzt werden muss.
awa 20.3 11 * Das n-fache Durchlaufen der Aktionen eines Status, wobei //n// in Abhängigkeit einer Formulareingabe festgelegt wird.
12
awa 20.4 13 Zudem ist es auch möglich, den aktuellen Wert eines Zählers über einen [[Platzhalter>>doc:Formcycle.UserInterface.Variables]] in der Verarbeitung oder [[per AJAX>>doc:Formcycle.FormDesigner.CodingPanel.ScriptTab.WebHome]] im Formular abzufragen.
awa 20.5 14
15 Jeder Zähler besitzt sowohl einen Namen als auch eine eindeutige [[UUID>>https://de.wikipedia.org/wiki/Universally_Unique_Identifier]]. Die UUID dient zur eindeutigen Identifikation Zählers und wird bei der Abfrage per AJAX verwendet.
16
17 == Aktionverarbeitung "Counter" ==
18
awa 20.27 19 Nach Installation 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 Zählers geändert werden. Hier ist es auch möglich, den Zähler in regelmäßigen Abständen zurückzusetzen.
awa 20.5 20
21 === Allgemeine Einstellungen ===
22
23 {{figure image="dbcounter_plugin_action_base_settings_de.png"}}
awa 20.7 24 Die Grundeinstellungen für die Verarbeitungsaktion //Counter//. Hier kann festgelegt werden, welcher Zähler in welcher Weise geändert werden soll.
awa 20.5 25 {{/figure}}
26
27 ; 1 - Zählername
28 : Auswahl des Zählers, dessen Wert geändert werden soll. Für jeden Zähler wird sowohl sein Name als auch seine UUID angezeigt. Die UUID dient der eindeutigen Identifikation des Zählers und wird etwa bei der Abfrage per AJAX 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.
29 ; 2 - Zählaktion
30 : Gibt an, in welcher Art und Weise der Wert des Zählers geändert werden soll. Möglich Optionen sind:
31 :; Hochzählen
32 :: Erhöht den Wert des Zählers um die eingegebene Zahl.
33 :; Herunterzählen
34 :: Erniedrigt den Wert des Zählers um die eingegebene Zahl.
35 :; Zähler auf Startwert zurücksetzen
36 :: Setzt den Wert des Zählers auf den eingegebenen Startwert zurück.
37 ; 3 - Schrittweite
38 : Anzahl, um die der Zähler hoch beziehungsweise herunter gesetzt werden soll.
awa 20.7 39 ; 4 - Startwert
awa 20.5 40 : Initialer Wert des Zählers, den dieser annimmt, wenn er angelegt wird. Es ist auch möglich, den Zähler auf diesen Startwert zurückzusetzen.
awa 20.7 41 ; 5 - Automatisch zurücksetzen
awa 20.5 42 : Ist diese Option aktiviert, erscheint eine weitere Konfigurationsmöglichkeit zum Einstellen, wann der Zähler automatisch auf den Startwert zurückgesetzt werden soll. Dies kann etwa beim Überschreiten eines bestimmten Werts oder in regelmäßigen Zeitabständen erfolgen.
43
awa 20.11 44 === Automatisches Zurücksetzen ===
awa 20.7 45
46 {{figure image="dbcounter_plugin_action_reset_greater_or_equal_de.png"}}
47 Die Konfiguration zum Zurücksetzen eines Zählers, wenn dessen Wert eine bestimmte Grenze übersteigt.
48 {{/figure}}
49
50 {{figure image="dbcounter_plugin_action_reset_daily_de.png"}}
51 Die Konfiguration zum täglichen Zurücksetzen eines Zählers.
52 {{/figure}}
53
54 {{figure image="dbcounter_plugin_action_reset_weekly_de.png"}}
55 Die Konfiguration zum wöchentlichen Zurücksetzen eines Zählers.
56 {{/figure}}
57
58 {{figure image="dbcounter_plugin_action_reset_monthly_de.png"}}
59 Die Konfiguration zum monatlichen Zurücksetzen eines Zählers.
60 {{/figure}}
61
62 {{figure image="dbcounter_plugin_action_reset_yearly_de.png"}}
63 Die Konfiguration zum jährlichen Zurücksetzen eines Zählers.
64 {{/figure}}
65
awa 20.13 66 {{info}}
67 Geschieht ein Zurücksetzen des Zählers, so ist nach Ausführung der aktuellen Aktion der Wert des Zählers gleich dem Startwert, wie er in den allgemeinen Einstellung eingegeben wurde. 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 //39//, der Startwert //11//. Die erste Counter-Aktion, die an einem Tag ausgeführt wird, setzt nun dern 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.
68 {{/info}}
69
awa 20.14 70 Es ist möglich, den Zähler in regelmäßigen Abständen zurückzusetzen. Diese Option ist nur verfügbar, wenn als Zählaktion nicht //Zähler auf Startwert zurücksetzen// gewählt wurde. Zudem muss in den allgemeinen Einstellungen die Option //Automatische zurücksetzen// aktiviert sein. Es kann dann ausgewählt werden, wann der Zähler zurückgesetzt werden soll.
awa 20.7 71
awa 20.14 72 Hierbei 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.
73
awa 20.11 74 ; 1 - Bedingung
75 : Hier kann festgelegt werden, wann und unter welchen Umständen der Zähler zurückgesetzt werden soll.
76 :; Zähler größer gleich
77 :: 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 in (2) festgelegten Wert ist.
78 :; Zähler kleiner gleich
79 :: 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 in (2) festgelegten Wert ist.
80 :; täglich
81 :: Der Zähler wird jeden Tag zur bei (2) gewählten Uhrzeit auf den Startwert zurückgesetzt.
awa 20.15 82 :; wöchentlich
awa 20.12 83 :: Der Zähler wird an jedem unter (2) gewählten Wochentag zu der unter (3) gewählten Uhrzeit zurückgesetzt.
awa 20.11 84 :; monatlich
85 :: Der Zähler wird jeden Monat zum unter (2) gewählten Tag zu der unter (3) gewählten Uhrzeit zurückgesetzt.
86 :; jährlich
87 :: Der Zähler wird jedes Jahr zum unter (2) und (3) gewählten Tag zu der unter (4) gewählten Uhrzeit zurückgesetzt
awa 20.16 88
awa 20.17 89 === Allgemeine Rückgabeparameter ===
awa 20.16 90
91 {{figure image="dbcounter_plugin_action_return_parameters_de.png"}}
92 Einstellungen für die Rückgabeparameter, die später über Platzhalter verfügbar sind.
93 {{/figure}}
94
awa 20.27 95 Manchmal ist es notwendig, auf den neuen Zählwert zugreifen zu können. 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 die Rückgabeparameter Aktion zugegriffen werden kann. Beispielsweise trage die Zähleraktion den Namen //CountUp//. Dann kann über den Platzhalter //[%$CountUp.RESULT[0].count%]// auf den aktuellen Zählwert zugegriffen werden, falls unter (3) bei den allgemeinen Rückgabeparameter der Wert //count// eingetragen wurde. Folgende Rückgabeparameter sind verfügbar:
awa 20.16 96
awa 20.19 97 ; 1 - ResultCode
awa 20.17 98 : Ein nummerischer Zahlenwert, der angibt, ob die Zählaktion erfolgreich war oder nicht. Folgende Ergebnisnummern sind möglich:
awa 20.18 99 :; 1 (OK)
awa 20.17 100 :: Die Zählaktion wurde erfolgreich abgearbeitet.
awa 20.18 101 :; 10 (UNKNOWN_ACTION_ERROR)
awa 20.17 102 :: 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.
awa 20.18 103 :; 11 (PARSING_ERROR)
awa 20.17 104 :: Ein konfigurierter Wert hat nicht den erwarteten Datentyp, etwa wenn für die Schrittweite des Zählers keine syntaktisch korrekte Zahl eingegeben wurde.
awa 20.18 105 :; 40 (INTERNAL_ERROR)
awa 20.17 106 :: Es ist ein anderer Fehler aufgetreten, der nicht näher klassifiziert werden kann.
107 ; 2 - ResultMessage
awa 20.19 108 : Eine englische Beschreibung des Resultats (Erfolg oder Fehler).
awa 20.17 109 ; 3 - Counter
110 : Der neue nummerische Wert des Zählers, nachdem die Zählaktion ausgeführt wurde.
111 ; 4 - IsReset
112 : Entweder //true//, falls der Zähler durch die aktuelle Aktion zurückgesetzt wurde; oder //false//, wenn er nicht zurückgesetzt wurde.
113 ; 5 - CounterAfterReset
114 : Falls der Zähler zurückgesetzt wurde: Der nummerische Wert des Zählers vor dem Zurücksetzen.
115
awa 20.21 116 == Systemplatzhalter-Plugin ==
awa 20.20 117
118 {{figure image="dbcounter-plugin-placeholder_de.png"}}
awa 20.21 119 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.
awa 20.20 120 {{/figure}}
121
awa 20.26 122 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:
awa 20.20 123
awa 20.21 124 {{code}}
125 [%$DBCOUNTER.<Zählername>%]
126 {{/code}}
awa 20.20 127
awa 20.21 128 Um also etwa auf den Zähler mit dem Name //test// zuzugreifen, muss der folgende Platzhalter genutzt werden:
129
130 {{code}}
131 [%$DBCOUNTER.test%]
132 {{/code}}
133
awa 20.24 134 == Servlet-Aktions-Plugin ==
awa 20.21 135
awa 20.22 136 {{figure image="dbcounter_plugin_servlet_action.png"}}
awa 20.24 137 Beispiel zum Auslesen eines Zählers im Formular mittels AJAX. Die URL wird anhand der im Formular zur Verfügung stehenden Metadaten aufgebaut. Hiermit wird vermieden, die URL hart im Quelltext zu hinterlegen, was zu Fehlern führt, wenn sich etwa der Server oder der Kontextpfad ändern sollte.
awa 20.22 138 {{/figure}}
awa 20.23 139
140 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 AJAX-Anfrage abgerufen werden soll. Die URL für das Servlet baut sich nach dem folgenden Schema auf:
141
142 {{code}}
143 https://<HOST>/<FORMCYCLE_CONTEXT_PATH>/plugin?name=Servlet%20Counter&client-id=<MANDANT_ID>&id=<ZAEHLER_UUID>
144 {{/code}}
145
gru 20.28 146 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 UUID //bc49d3b0-f869-4e59-864e-ddcc2925ed63// besitzt, dann lautet die URL:
awa 20.23 147
148 {{code}}
149 https://localhost:8080/xima-formcycle/plugin?name=Servlet%20Counter&client-id=1&id=bc49d3b0-f869-4e59-864e-ddcc2925ed63
150 {{/code}}
151
152 Alternativ ist es auch möglich, statt der //client-id// die ID des Formulars zu verwenden. Diese IDs lediglich verwendet, um das Servlet-Aktions-Plugin zu bestimmen, welches ausgeführt werden soll, und werden von diesem konkreten Plugin nicht ausgewertet:
153
154 {{code}}
155 https://<HOST>/<FORMCYCLE_CONTEXT_PATH>/plugin?name=Servlet%20Counter&project-id=<FORMULAR_ID>&id=<ZAEHLER_UUID>
156 {{/code}}
awa 20.24 157
158 Nach Ausführung des Servlet-Aktions-Plugin wird das Ergebnis als JSON-Objekt zurückgeliefert, siehe hierzu auch die Abbildung. Dieses JSON-Objekt hat die folgenden Einträge:
159
160 ; Status
161 : Gibt an, ob der Servlet-Aufruf erfolgreich war. Der Wert ist ein weiteres JSON-Objekt mit folgenden Einträgen:
162 :; Msg
163 :: Ein nummerischer Wert, der angibt, ob der Servlet-Aufruf erfolgreich war. Mögliche Werte sind:
awa 20.27 164 ::; 0 (OK)
165 ::: Die Servlet-Anfrage war erfolgreich.
166 ::; 12 (NO_REQUEST_ID_ERROR)
167 ::: Die Server-Anfrage enthielt keine Zähler-UUID.
168 ::; 13 (NO_COUNTER_TO_UUID_ERROR)
169 ::: Es existiert kein Zähler mit der angefragten UUID.
170 ::; 40 (INTERNAL_ERROR)
171 ::: Es ist ein anderer Fehler aufgetreten, der nicht näher klassifiziert werden kann.
awa 20.24 172 :; Code
173 :: Eine englische Beschreibung des Resultats (Erfolg oder Fehler).
174 ; Counter
awa 20.25 175 : Informationen zum angefragten Zähler. Der Wert ist ein weiteres JSON-Objekt mit folgenden Einträgen:
awa 20.24 176 : Der aktuelle nummerische Wert des Zählers.
177 :; LastChange
178 :: 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.
179 :; LastChangeTimestamp
180 :: 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.
181 :; Value
182 :: Der aktuelle nummerische Wert des Zählers.
183 :; UUID
awa 20.25 184 :: Die UUID des angefragten Zählers, dessen Wert ausgelesen wurde.
awa 20.24 185 :; Name
awa 20.25 186 :: Der Name des angefragten Zählers, dessen Wert ausgelesen wurde.
Copyright 2000-2025