Verstecke letzte Bearbeiter
awa 20.6 1 {{content/}}
2
awa 28.2 3 {{figure image="plugin_dbcounter_workflow_select_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. 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.
awa 20.3 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
awa 28.2 9 * Ein Teilnahmeformular, in dem die Anzahl der Teilnehmer pro Termin gezählt wird und weitere Anmeldungen ab einer bestimmten Grenze blockiert werden.
awa 20.2 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 30.11 13 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.
awa 30.10 14
awa 30.11 15 Der Stand aller angelegten Zähler kann in einer separaten Menüseite im Backend eingesehen werden. Dort ist es auch möglich, die Zähler zu verwalten, also etwa deren Wert zu ändern, neue Zähler anzulegen oder bestehende Zähler zu löschen.
awa 20.5 16
awa 30.11 17 Weiterhin 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.
18
awa 20.5 19 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.
20
21 == Aktionverarbeitung "Counter" ==
22
awa 28.2 23 {{figure image="plugin_dbcounter_action_counter_de.png"}}
24 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).
25 {{/figure}}
awa 20.5 26
awa 30.11 27 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 Zählers geändert werden.
awa 20.5 28
awa 28.2 29 Im Unterschied zur Aktion //Variable// muss und kann hier der Zähler fest ausgewählt werden. Der Zähler sollte vorher auf der Zählerübersichtsseite (siehe unten) angelegt werden. Daher eignet sich diese Aktion besonders für globale Zähler, wie etwa für die Generierung einer fortlaufenden Vorgangs-ID.
awa 20.5 30
awa 28.2 31 ; Zählername
32 : Auswahl des Zählers, dessen Wert geändert werden soll. Der Zähler sollte vorher auf der Zählerübersichtsseite angelegt werden, kann aber auch hier neu erstellt werden. 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.
33 ; Zählaktion
awa 20.5 34 : Gibt an, in welcher Art und Weise der Wert des Zählers geändert werden soll. Möglich Optionen sind:
35 :; Hochzählen
36 :: Erhöht den Wert des Zählers um die eingegebene Zahl.
37 :; Herunterzählen
38 :: Erniedrigt den Wert des Zählers um die eingegebene Zahl.
39 :; Zähler auf Startwert zurücksetzen
40 :: Setzt den Wert des Zählers auf den eingegebenen Startwert zurück.
awa 28.2 41 ; Schrittweite
awa 20.5 42 : Anzahl, um die der Zähler hoch beziehungsweise herunter gesetzt werden soll.
awa 28.2 43 ; Globale Einstellungen nutzen (deprecated)
44 : 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 weiter unter im Abschnitt zur Zählerübersichtsseite beschrieben sind.
awa 20.5 45
awa 30.11 46 == Aktionsverarbeitung "Variable" ==
47
48 {{figure image="plugin_dbcounter_action_variable_de.png"}}
49 Die Einstellungen für die Verarbeitungsaktion //Variable//. Mit dieser Aktion kann der Zählername dynamisch festgelegt werden, etwa durch den Wert eines Formularelements.
50 {{/figure}}
51
52 Nach Installation dieses Plugins gibt es in der [[Status- und Aktionsverarbeitung>>doc:Formcycle.UserInterface.MyForms.WorkflowProcessing.WebHome]] eine neue Aktion namens //Variable//. Mit dieser Aktion kann der aktuelle Zählwert eines dynamisch festlegbaren Zählers geändert werden.
53
awa 30.12 54 Im Unterschied zur Aktion //Counter// kann bei dieser Aktion ein Zähler über seinen Namen ausgewählt werden. Der Name kann frei über [[Platzhalter>>doc:Formcycle.UserInterface.Variables]] zusammengefasst werden. Wenn es den Zähler noch nicht gibt, wird ein neuer Zähler mit dem Namen angelegt.
awa 30.11 55
awa 30.12 56 Daher eignet sich diese Aktion besonders, wenn es
awa 30.11 57
awa 30.12 58
awa 28.2 59 == Rückgabeparameter der Aktionen ==
awa 20.7 60
awa 30.2 61 {{figure image="plugin_dbcounter_action_return_parameters_de.png"}}
62 Einstellungen für die Rückgabeparameter der Aktion, die später über Aktionsplatzhalter verfügbar sind.
awa 20.16 63 {{/figure}}
64
awa 30.2 65 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:
awa 20.16 66
awa 30.2 67 ; ResultCode
awa 20.17 68 : Ein nummerischer Zahlenwert, der angibt, ob die Zählaktion erfolgreich war oder nicht. Folgende Ergebnisnummern sind möglich:
awa 20.18 69 :; 1 (OK)
awa 20.17 70 :: Die Zählaktion wurde erfolgreich abgearbeitet.
awa 20.18 71 :; 10 (UNKNOWN_ACTION_ERROR)
awa 20.17 72 :: 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 73 :; 11 (PARSING_ERROR)
awa 20.17 74 :: 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 75 :; 40 (INTERNAL_ERROR)
awa 20.17 76 :: Es ist ein anderer Fehler aufgetreten, der nicht näher klassifiziert werden kann.
awa 30.2 77 ; ResultMessage
awa 20.19 78 : Eine englische Beschreibung des Resultats (Erfolg oder Fehler).
awa 30.2 79 ; Counter
awa 20.17 80 : Der neue nummerische Wert des Zählers, nachdem die Zählaktion ausgeführt wurde.
awa 30.2 81 ; IsReset
awa 20.17 82 : Entweder //true//, falls der Zähler durch die aktuelle Aktion zurückgesetzt wurde; oder //false//, wenn er nicht zurückgesetzt wurde.
awa 30.2 83 ; CounterAfterReset
awa 20.17 84 : Falls der Zähler zurückgesetzt wurde: Der nummerische Wert des Zählers vor dem Zurücksetzen.
85
awa 20.21 86 == Systemplatzhalter-Plugin ==
awa 20.20 87
88 {{figure image="dbcounter-plugin-placeholder_de.png"}}
awa 20.21 89 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 90 {{/figure}}
91
awa 20.26 92 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 93
awa 30.9 94 {{code language="none"}}
awa 20.21 95 [%$DBCOUNTER.<Zählername>%]
96 {{/code}}
awa 20.20 97
awa 30.3 98 Um also etwa auf den Zähler mit dem Namen //test// zuzugreifen, muss der folgende Platzhalter genutzt werden:
awa 20.21 99
awa 30.9 100 {{code language="none"}}
awa 20.21 101 [%$DBCOUNTER.test%]
102 {{/code}}
103
awa 30.3 104 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:
105
awa 30.9 106 {{code language="none"}}
awa 30.3 107 [%$DBCOUNTER(<Zählername>, <Startwert>)%]
108 {{/code}}
109
110 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:
111
awa 30.9 112 {{code language="none"}}
awa 30.3 113 [%$DBCOUNTER(teilnehmer-2020-03-17, 0)%]
114 {{/code}}
115
awa 20.24 116 == Servlet-Aktions-Plugin ==
awa 20.21 117
awa 20.22 118 {{figure image="dbcounter_plugin_servlet_action.png"}}
awa 20.24 119 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 120 {{/figure}}
awa 20.23 121
122 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:
123
awa 30.10 124 {{code language="none"}}
awa 30.4 125 https://<Host>/<FORMCYCLE-Kontextpfad>/plugin?name=Servlet%20Counter&client-id=<Mandant-ID>&id=<Zähler-UUID>
awa 20.23 126 {{/code}}
127
gru 20.28 128 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 129
awa 30.10 130 {{code language="none"}}
awa 20.23 131 https://localhost:8080/xima-formcycle/plugin?name=Servlet%20Counter&client-id=1&id=bc49d3b0-f869-4e59-864e-ddcc2925ed63
132 {{/code}}
133
134 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:
135
awa 30.10 136 {{code language="none"}}
awa 30.4 137 https://<Host>/<FORMCYCLE-Kontextpfad>/plugin?name=Servlet%20Counter&project-id=<Formular-ID>&id=<Zähler-UUID>
awa 20.23 138 {{/code}}
awa 20.24 139
awa 30.4 140 === HTTP-Parameter
141
142 Zusätzlich zu den oben genannten Parametern gibt es noch weitere Parameter, die an die URL angehängt werden können. Im Folgenden werden alle verfügbaren Parameter kurz erläutert.
143
awa 30.5 144 ; name
145 : Der Name des aufzurufenden Servlet-Aktions-Plugins, in dem Fall also //Servlet Counter//
146 ; client-id
awa 30.6 147 : ID 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// or //project-id// angegeben werden.
awa 30.5 148 ; project-id
149 : ID eines Formulars, in dem das Zähler-Plugin zur Verfügung steht. Es darf nur entweder //client-id// or //project-id// angegeben werden.
awa 30.6 150 ; id
151 : UUID des Zählers, auf den zugegriffen werden soll. Existiert der Zähler mit der angegebenen UUID noch nicht, wird ein entsprechender Fehler-Code zurückgeliefert (siehe unten). Es darf nur entwender eine //id// oder ein //counter-name// angegeben werden.
152 ; counter-name
153 : 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.
154 ; counter-initial
awa 30.7 155 : Optional. Initialer Wert des Counters, wenn dieser noch nicht existiert. Dieser Parameter darf nur angegeben werden, wenn auch //counter-name// angegeben wird.
awa 30.6 156 ; counter-array
awa 30.8 157 : 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 AJAX mehrere Zähler auf einmal abgefragt werden sollen. So kann die Anzahl an HTTP-Anfrage reduziert werden.
awa 30.4 158
159 === HTTP-Antwort
160
awa 30.8 161 Nach Ausführung des Servlet-Aktions-Plugin wird das Ergebnis als JSON-Objekt zurückgeliefert, siehe hierzu auch die Abbildung. Falls der Parameter //counter-array// auf //true// gesetzt wurde, wird stattdessem ein JSON-Array zurückgegeben, wobei jeder Eintrag ein JSON-Objekt mit den unten beschriebenen Einträgen ist.
awa 20.24 162
awa 30.8 163 Das JSON-Objekt hat die folgenden Einträge:
164
awa 20.24 165 ; Status
166 : Gibt an, ob der Servlet-Aufruf erfolgreich war. Der Wert ist ein weiteres JSON-Objekt mit folgenden Einträgen:
167 :; Msg
168 :: Ein nummerischer Wert, der angibt, ob der Servlet-Aufruf erfolgreich war. Mögliche Werte sind:
awa 20.27 169 ::; 0 (OK)
170 ::: Die Servlet-Anfrage war erfolgreich.
171 ::; 12 (NO_REQUEST_ID_ERROR)
172 ::: Die Server-Anfrage enthielt keine Zähler-UUID.
173 ::; 13 (NO_COUNTER_TO_UUID_ERROR)
174 ::: Es existiert kein Zähler mit der angefragten UUID.
175 ::; 40 (INTERNAL_ERROR)
176 ::: Es ist ein anderer Fehler aufgetreten, der nicht näher klassifiziert werden kann.
awa 20.24 177 :; Code
178 :: Eine englische Beschreibung des Resultats (Erfolg oder Fehler).
179 ; Counter
awa 20.25 180 : Informationen zum angefragten Zähler. Der Wert ist ein weiteres JSON-Objekt mit folgenden Einträgen:
awa 20.24 181 : Der aktuelle nummerische Wert des Zählers.
182 :; LastChange
183 :: 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.
184 :; LastChangeTimestamp
185 :: 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.
186 :; Value
187 :: Der aktuelle nummerische Wert des Zählers.
188 :; UUID
awa 20.25 189 :: Die UUID des angefragten Zählers, dessen Wert ausgelesen wurde.
awa 20.24 190 :; Name
awa 20.25 191 :: Der Name des angefragten Zählers, dessen Wert ausgelesen wurde.
Copyright 2000-2025