Datenbankzähler-Plugin
Plugin-Download (erfordert Anmeldung)
Funktionsbeschreibung
Das kostenpflichtige Datenbankzähler-Plugin ermöglicht es, mehrere globale Zähler zu erstellen und zu verwalten. Der Zählwert kann innerhalb der Platzhalter ausgelesen, erhöht, verringert oder zurückgesetzt werden und ist als Statusverarbeitung verfügbar. Über AJAX-Requests kann der Wert von einem oder mehreren Zählern ermittelt werden, z.B. im JavaScript-Code eines Formulars.
Installation
Das Plugin kann als Mandant-Plugin oder System-Plugin installiert werden. Eine Anleitung zur Installation von Plugins finden Sie hier. Zu beachten ist hierbei, dass das Plugin nur genau einmal auf dem Xima® Formcycle Server installiert werden darf.
Beispiel für die Verwendung
Im folgenden wird anhand eines Beispielprojekts die Verwendung von verschiedene Komponeten des Datenbankzähler-Plugins demonstriert. Das Ziel des Beispiels ist es, für eine Veranstaltung mit 15 Teilnehmern einen Zähler anzulegen und das Anmelden von mehr als 15 Teilnehmern zu verhindern.
Anlegen eines Zählers
Nach der Installation des Plugins gibt es im Hauptmenü der Xima® Formcycle Oberfläche einen neuen Menüeintrag Zählerkonfiguration. 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.
Konfiguration der Statusverarbeitungsaktion
Nachdem der Zähler erstellt wurde, kann in einem Formular im Workflow 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.
Verwenden von Platzhaltern für die Prüfung der Formulareingänge
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 und ein Status eingefügt werden.
Zunächst wird ein neuer Status Keine Plätze verfügbar eingefügt. In diesem kann über eine Aktion vom Typ Abschlusseite ein Template ausgewählt werden, welches dem Nutzer anzeigt, dass es keine freien Plätze mehr gegeben hat. Für diesen Zweck existiert kein vorgefertigtes HTML-Template, weshalb dies selbst erstellt werden muss. Über eine Aktion vom Typ Vorgang löschen wird der eingegangene Vorgang anschließend wieder gelöscht.
Im Status Eingegangen muss eine Aktion vom Typ Statusänderung eingefügt werden, welche so konfiguriert ist, dass sie in den Ziel-Status Keine Plätze verfügbar wechselt. Über eine Abarbeitungsbedingung an der Aktion Statusänderung ist es möglich, zu prüfen, ob der Zählerwert beim Eingang des Fomulars bereits 0 ist. Nur in diesem Fall soll die Aktion abgearbeitet werden. Für diese Prüfung kann der Platzhalter [%$$DBCOUNTER.BeispielZaehler%] als Formularelement verwendet werden.
Verwendung von Platzhaltern im Formular
Um dem Benutzer beim Öffnen des Formulars die Anzahl der zu diesem Zeitpunkt noch verfügbaren Plätze anzuzeigen, kann ein weiteres Eingabefeld verwendet. Dieses wird so Konfiguriert, dass es vom Benutzer nicht editiert werden kann und über den Platzhalter [%$$DBCOUNTER.BeispielZaehler%] beim Aufruf des Formulars mit dem aktuellen Zählerwert befüllt wird.
Um zu verhindern, dass das Formular abgesendet werden kann, wenn es keine freien Plätze mehr gibt, kann im Xima® Formcycle-Designer für die Schaltfläche zum Absenden eine Verstecken wenn-Bedingung konfiguriert werden. Über diese wird die Schaltfläche unsichtbar, wenn das der Wert im gerade angelegten Eingabeelement (und damit der Wert des Zähler) 0 ist.
Herunterladen des Beispielformulars
Das Formular mit allen gemachten Einstellungen kann Zählerkonfiguration angelegt werden und dieser muss in der Aktion Counter ausgewählt werden. Beim Import des Formulars kann außerdem ein HTML-Template mit importiert werden, welches dem Absender eines Formulars mittteilt, dass es keine weiteren freien Plätze gibt.
heruntergeladen werden. Damit das Formular funktioniert, muss jedoch ein eigener Zähler unterEinstellungen im Menüpunkt "Zählerkonfiguration"
Nach Installation des Datenbankzähler-Plugin 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.
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.
Zählerdaten
In der Liste links kann ein Zähler ausgewählt werden. Nach Auswahl erscheinen die folgenden Informationen zum ausgewählten Zähler:
Weiterhin können die folgenden Eigenschaften des Zählers bearbeitet werden:
- Zählername
- Der Name dieses Zählers. Wird der Name geändert, sollte beachtet werden, dass Platzhalter und Ajax-Abfragen, wo der Name des Zählers verwendet wird, ebenfalls angepasst werden müssen. Ajax-Abfrage bei denen die Uuid des Zählers verwendet wird müssen hingegen nicht angepasst werden, da die Uuid des Zählers sich nicht ändert.
- Aktueller Wert
- Der aktuelle Wert des Zählers. Kann über die Stift-Schaltfläche bearbeitet werden.
- Beschreibung
- Eine optionale Beschreibung des Zählers, die auch nur in diesem Backend-Menü einsehbar ist.
- Automatisch zurücksetzen
- Wenn diese Option aktiviert ist, wird der Zähler in periodischen Abständen auf den Startwert zurückgesetzt.
Automatisches Zurücksetzen
Folgende Eigenschaften erscheinen, wenn die Option Automatisch Zurücksetzen ausgewählt wurde:
- Bedingung
- 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:
- Zähler größer gleich
- 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.
- Zähler kleiner gleich
- 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.
- täglich
- Der Zähler wird jeden Tag zur gewählten Uhrzeit auf den Startwert zurückgesetzt.
- wöchentlich
- Der Zähler wird an jedem gewählten Wochentag zu der gewählten Uhrzeit zurückgesetzt.
- monatlich
- Der Zähler wird jeden Monat zum gewählten Tag zu der gewählten Uhrzeit zurückgesetzt.
- jährlich
- Der Zähler wird jedes Jahr zum gewählten Tag zu der gewählten Uhrzeit zurückgesetzt
Zähler-Metadaten
In diesem Bereich werden Meta-Informationen zum aktuell ausgewählten Zähler ausgegeben.
- Uuid
- Eine eindeutige id des Zählers, die etwa beim Abruf des Zählerwerts per Ajax (siehe Servlet-Aktions-Plugin unten) verwendet wird.
- Angelegt am
- Das Datum, an dem der Zähler erstellt wurde.
- Geändert am
- Das Datum, an dem der Wert des Zählers zuletzt geändert wurde.
Zähler-Zugriffmöglichkeiten
Hier wir eine Url für den direkten Zugriff auf den Zählerwert per AJAX-Request angegeben und ein JavaScript-Template für das Ausführen eines solchen AJAX-Requests innerhalb eines Formulars bereitgestellt. Bei dem JavaScript-Code ist zu beachten, dass dieser die jQuery-Funktion $.ajax() verwendet, welche noch um Funktionen für das Behandeln von des zurückgegebenen Wertes ergänzt werden muss (z.B. Funktion über das Hinzufügen einer success-Funktion).
Aktionsverarbeitung "Counter"
Nach Installation des Datenbankzähler-Plugins gibt es im Workflow eine neue Aktion namens Counter. Mit dieser Aktion kann der aktuelle Zählwert eines Zählers verändert werden.
Im der Aktion muss der Zähler fest ausgewählt werden und muss daher zuvor in der Zählerkonfiguration (siehe oben) angelegt werden.
Parameter der Aktion
- Zählername
- Auswahl des Zählers, dessen Wert geändert werden soll. Der Zähler muss vorher in der Zählerkonfiguration angelegt 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.
- Zählaktion
- Gibt an, in welcher Art und Weise der Wert des Zählers geändert werden soll. Möglich Optionen sind:
- Hochzählen
- Erhöht den Wert des Zählers um die eingegebene Zahl.
- Herunterzählen
- Erniedrigt den Wert des Zählers um die eingegebene Zahl.
- Zähler auf Startwert zurücksetzen
- Setzt den Wert des Zählers auf den eingegebenen Startwert zurück.
- Schrittweite
- 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.
Rückgabeparameter der Aktion
Manchmal ist es notwendig, auf das Ergebnis der Zählaktion zugreifen zu können, wie zum Beispiel den aktuellen Wert oder den Statuscode. Dies kann über Aktionsplatzhalter 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].Counter%] auf den aktuellen Zählwert zugegriffen werden. Folgende Rückgabeparameter sind verfügbar:
- ResultCode
- Ein nummerischer Zahlenwert, der angibt, ob die Zählaktion erfolgreich war oder nicht. Folgende Ergebnisnummern sind möglich:
- 1 (OK)
- Die Zählaktion wurde erfolgreich abgearbeitet.
- 10 (UNKNOWN_ACTION_ERROR)
- 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.
- 11 (PARSING_ERROR)
- Ein konfigurierter Wert hat nicht den erwarteten Datentyp, etwa wenn für die Schrittweite des Zählers keine syntaktisch korrekte Zahl eingegeben wurde.
- 40 (INTERNAL_ERROR)
- Es ist ein anderer Fehler aufgetreten, der nicht näher klassifiziert werden kann.
- ResultMessage
- Eine englische Beschreibung des Resultats (Erfolg oder Fehler).
- Counter
- Der neue nummerische Wert des Zählers, nachdem die Zählaktion ausgeführt wurde.
- IsReset
- Entweder true, falls der Zähler durch die aktuelle Aktion zurückgesetzt wurde; oder false, wenn er nicht zurückgesetzt wurde.
- CounterAfterReset
- Falls der Zähler zurückgesetzt wurde: Der nummerische Wert des Zählers vor dem Zurücksetzen.
Platzhalter
Nach Installation des Plugins ist ein neuer Template-Platzhalter verfügbar, über den auf den aktuellen Wert der Zähler zugegriffen werden kann. Dies ist zum Beispiel 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:
Um also etwa auf den Zähler mit dem Namen test zuzugreifen, muss der folgende Platzhalter genutzt werden:
Servlet-Aktions-Plugin / Zugriff auf Zählerwert mittels AJAX-Reques
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 Ajax-Anfrage zu ermitteln. In der Zählerkonfiguration wird eine JavaScript-Vorlage für einen Ajax-Zugriff innerhalb eines Formulars für den jeweils gerade ausgewählten Zähler bereitgestellt.
Für den Zugriff auf den Wert eines Zählers per AJAX muss eine Url verwendet werden, welche dem folgenden Schema entsprechen muss:
Falls Xima® 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, lautet die Url dementsprechend:
Alternativ ist es auch möglich, statt der client-id die id des Formulars zu verwenden:
HTTP-Parameter
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.
- name
- Der Name des aufzurufenden Servlet-Aktions-Plugins, in dem Fall also Servlet Counter
- client-id
- 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 oder project-id angegeben werden.
- project-id
- id eines Formulars, in dem das Zähler-Plugin zur Verfügung steht. Es darf nur entweder client-id oder project-id angegeben werden.
- id
- 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.
- counter-name
- 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.
- counter-initial
- 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.
- counter-array
- 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.
HTTP-Antwort
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.
Das Json-Objekt hat die folgenden Einträge:
- Status
- Gibt an, ob der Servlet-Aufruf erfolgreich war. Der Wert ist ein weiteres Json-Objekt mit folgenden Einträgen:
- Msg
- Ein nummerischer Wert, der angibt, ob der Servlet-Aufruf erfolgreich war. Mögliche Werte sind:
- 0 (OK)
- Die Servlet-Anfrage war erfolgreich.
- 12 (NO_REQUEST_ID_ERROR)
- Die Server-Anfrage enthielt keine Zähler-Uuid.
- 13 (NO_COUNTER_TO_UUID_ERROR)
- Es existiert kein Zähler mit der angefragten Uuid.
- 40 (INTERNAL_ERROR)
- Es ist ein anderer Fehler aufgetreten, der nicht näher klassifiziert werden kann.
- Code
- Eine englische Beschreibung des Resultats (Erfolg oder Fehler).
- Counter
- Informationen zum angefragten Zähler. Exisitert nur, wenn der angefragte Zähler existiert. Der Wert selbst ist ein weiteres Json-Objekt mit folgenden Einträgen:
- LastChange
- 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.
- LastChangeTimestamp
- 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.
- Name
- Der Name des angefragten Zählers, dessen Wert ausgelesen wurde.
- Uuid
- Die Uuid des angefragten Zählers, dessen Wert ausgelesen wurde.
- Value
- Der aktuelle nummerische Wert des Zählers.
Versionshistorie
In diesem Abschnitt werden die vorhandenen Versionen des Zähler-Plugins und die jeweiligen Änderungen in dieser Version beschrieben.
4.0.0
- Verbesserung der Oberfläche für die Zählerkonfiguration
- Entfernen der Aktion Variable ändern
- Einführen neuer Template-Platzhalter.
3.0.0
- Fehler in Zählerverwaltung für bestehende Zähler beim Update auf Version 2.3.3 des Plugins behoben.
2.3.3
- Rechtschreibfehler korrigiert
2.3.2
- Fehler in UI behoben: Checkbox Globale Einstellungen nutzen unter Zählereigenschaften bei Aktion Counter schaltet wieder die darauffolgenden Einstellungen sichtbar beziehungsweise unsichtbar.
- Kleinere Rechtschreibfehler korrigiert.
2.3.1
- Fehler in Mysql behoben, sodass dieses Plugin nun auch mit diesem Datenbankverwaltungssystem funktioniert.
2.3.0
- Neue Aktion: Variable ändern
- 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.
- Neuer Platzhalter: DBCOUNTER(name, initialValue). Legt Zähler neu an, wenn der noch nicht existiert.
- 3 neue Parameter für Servlet-Plugin: counter-name, counter-initial und counter-array.
2.2.0
- Reset (wenn notwendig) auch beim Auslesen des Zählers
- Portalseite (Zählerkonfiguration) im Backend für die Konfiguration der Zähler
- Einstellungen zum Zurücksetzen und zum initialen Wert jetzt nicht mehr in Aktionsverarbeitungskonfiguration, sondern auf der Portalseite.
2.1.0
- Anpassungen für Xima® Formcycle Version 6.1.6
- CounterPlugin und ServletCounterPlugin hatten die gleichen Namen, dies führte zu Problemen.
- Fehler beim Zurücksetzen der Zähler behoben
- Im Servlet-Aktions-Plugin gibt es einen neuen Rückgabewert: Counter.LastChangeTimestamp
- Neues System-Platzhalter-Plugin zum Auslesen des Wertes eines Zähler über Platzhalter: [%DBCOUNTER.name%]
2.0.0
- Portierung auf Xima® Formcycle Version 6.0.2
1.0.1
- Bugfix: Zähler wurde beim ersten Aufruf nicht gesetzt
1.0.0
- Initiale Version