... |
... |
@@ -50,44 +50,32 @@ |
50 |
50 |
|
51 |
51 |
== Platzhalter == |
52 |
52 |
|
53 |
|
-Die Werte von Zählern können über [[Platzhalter:doc>>Formcycle.UserInterface.Variables]] zum Beispiel im Workflow oder als Wert von Formularelementen ausgelesen werden. Die Syntax ist dabei wie folgt: |
|
53 |
+Die Werte von Zählern können über [[Platzhalter>>doc:Formcycle.UserInterface.Variables]] zum Beispiel im Workflow oder als Wert von Formularelementen ausgelesen werden. Die Syntax ist dabei wie folgt: |
|
54 |
+ |
54 |
54 |
{{code language="none"}}[%$COUNTER_CLIENT.<Name des Zählers>%]{{/code}} |
55 |
55 |
|
56 |
56 |
== Zugriff auf Zählerwert per Servlet == |
57 |
57 |
|
|
59 |
+=== Servlet-URL und Parameter === |
|
60 |
+ |
58 |
58 |
Der Wert der Zähler kann innerhalb von Formularen über einen Servletaufruf ermittelt werden. Es ist dabei möglich, den Zähler über seinen Namen oder seine UUID auszuwählen. Die entsprechenden {{smallcaps}}URL{{/smallcaps}}s zum Aufruf der Werte könnten zum Beispiel wie folgt aussehen: |
59 |
|
-{{code language="none"}}<Serveradresse>/formcycle/form/clientcounter/?frid=<gültige FRID>&name=<Name des Zählers> |
60 |
|
-<Serveradresse>/formcycle/form/clientcounter/?frid=<gültige FRID>&uuid=<UUID des Zählers>{{/code}} |
61 |
61 |
|
62 |
|
-In beiden Fällen wird eine gültige //form request id// (frid) benötigt, welche im Formular per JavaScript unter {{code language="none"}}XFC_METADATA.currentSessionFRID{{/code}} zu finden ist. Auf gleiche Art kann zudem die {{smallcaps}}URL{{/smallcaps}} des Servlets per JavaScript unter {{code language="none"}}XFC_METADATA.urls.counter_client{{/code}} ausgelesen werden. Dies ist wichtig, da sich die {{smallcaps}}URL{{/smallcaps}} bei Aufrufen über Frontend- und Masterserver unterscheidet. |
|
63 |
+{{code language="none"}}https://<Serveradresse>/formcycle/form/clientcounter/?frid=<gültige FRID>&name=<Name des Zählers>{{/code}} |
|
64 |
+und |
|
65 |
+{{code language="none"}}https://<Serveradresse>/formcycle/form/clientcounter/?frid=<gültige FRID>&uuid=<UUID des Zählers>{{/code}} |
63 |
63 |
|
64 |
|
-Eine bespielhafte JavaScript-Abfrage, welche den Zählerwert in das Feld //tf1// schreibt, könnte also wie folgt aussehen: |
65 |
65 |
|
66 |
|
-{{code language="javascript"}} |
67 |
|
-$.ajax({ |
68 |
|
- url:[ |
69 |
|
- XFC_METADATA.urls.counter_client, |
70 |
|
- "?frid=", |
71 |
|
- XFC_METADATA.currentSessionFRID, |
72 |
|
- "&name=Beispielzähler" |
73 |
|
- ].join(""), |
74 |
|
- success: function(data, textStatus, jqXHR) { |
75 |
|
- if (data.success) { |
76 |
|
- $('[data-name="tf1"]').val(data.result.value); |
77 |
|
- } else { |
78 |
|
- console.error("Zugriff auf Zähler Beispielzähler fehlgeschlagen:",data.msg); |
79 |
|
- } |
80 |
|
- } |
81 |
|
-}); |
82 |
|
-{{/code}} |
|
68 |
+In beiden Fällen wird eine gültige //form request id// (frid) benötigt, welche im Formular per JavaScript unter {{code language="none"}}XFC_METADATA.currentSessionFRID{{/code}} zu finden ist. Auf gleiche Art kann zudem die {{smallcaps}}URL{{/smallcaps}} des Servlets per JavaScript unter {{code language="none"}}XFC_METADATA.urls.counter_client{{/code}} ausgelesen werden. Dies ist wichtig, da sich die {{smallcaps}}URL{{/smallcaps}} bei Aufrufen über Frontend- und Masterserver unterscheidet. |
83 |
83 |
|
84 |
|
-Neben dem eigentlichen Wert werden auch andere Informationen zurückgegeben. Die Antwort hat die folgende Struktur: |
|
70 |
+=== Rückgabewerte === |
|
71 |
+ |
|
72 |
+Das Erebnis wird als JSON zurückgegeben. Neben dem eigentlichen Wert sind auch andere Informationen zurückgegeben. Die Antwort hat die folgende Struktur: |
85 |
85 |
; success |
86 |
|
-: Boolscher Wert, der aussagt, ob die Werte gesetzt wurden. |
|
74 |
+: Boolscher Wert, der aussagt, ob der Zählerwert erfolgreich ausgelesen werden konnte. |
87 |
87 |
; msg |
88 |
88 |
: Servernachricht bezüglich der Anfrage, welche zur Fehlersuche verwendet werden kann. Ein erfolgreicher Zugriff liefert z.B. //Counter found//. |
89 |
89 |
; result |
90 |
|
-: Antwort auf die Anfrage. Wenn die anfrage erfolgreich war, sind die folgenden Unterpunkte enthalten: |
|
78 |
+: Antwort auf die Anfrage. Wenn die Anfrage erfolgreich war, sind die folgenden Unterpunkte enthalten: |
91 |
91 |
:; lastChange |
92 |
92 |
:: Formatierte Ausgabe von Datum und Uhrzeit der letzten Änderung des Zählerwertes |
93 |
93 |
:; lastChangeTimestamp |
... |
... |
@@ -99,3 +99,33 @@ |
99 |
99 |
:; value |
100 |
100 |
:: Aktueller Zählerwert |
101 |
101 |
|
|
90 |
+=== Beispiel für eine AJAX-Anfrage im Formular === |
|
91 |
+ |
|
92 |
+Eine beispielhafte AJAX-Anfrage, welche den aktuellen Zählerwert des Zählers //Beispielzähler// in das Feld //tf1// schreibt, könnte also wie folgt aussehen: |
|
93 |
+ |
|
94 |
+{{code language="javascript"}} |
|
95 |
+$.ajax({ |
|
96 |
+ method: "GET", |
|
97 |
+ url: XFC_METADATA.urls.counter_client, |
|
98 |
+ data: { |
|
99 |
+ name: "Beispielzähler", |
|
100 |
+ frid: XFC_METADATA.currentSessionFRID, |
|
101 |
+ } |
|
102 |
+}).then(function(data) { |
|
103 |
+ if (data.success) { |
|
104 |
+ $('[data-name="tf1"]').val(data.result.value); |
|
105 |
+ } else { |
|
106 |
+ console.warn("Zugriff auf Zähler Beispielzähler fehlgeschlagen:", data.msg); |
|
107 |
+ } |
|
108 |
+}).catch(function(jqXHR, errorTextStatus, errorThrown) { |
|
109 |
+ console.warn("Zugriff auf Zähler Beispielzähler fehlgeschlagen:", errorThrown, "(" + errorTextStatus + ")"); |
|
110 |
+}); |
|
111 |
+{{/code}} |
|
112 |
+ |
|
113 |
+=== Einfügen eines Templates für eine AJAX-Anfrage im Formular === |
|
114 |
+ |
|
115 |
+{{figure image="counter_query_de.png"}}Auswahl des Templates für die Zähler-Abfrage im JavaScript-Bereich des Formulardesigners.{{/figure}} |
|
116 |
+ |
|
117 |
+Ein Template, welches der obenstehenen Beispielfunktion ähnliche ist, kann auch per Autocomplete direkt im JavaScript-Bereich des Formulardesigners eingefügt werden. Hierzu muss hintereinander {{code language=none}}Zähler{{/code}}eingegeben werden und die vom Autocomplete vorgeschlagene Option //Zähler-Abfrage// mit einem Klick oder mit den Pfeiltasten ausgewählt und der der Enter-Taste bestätigt werden. |
|
118 |
+ |
|
119 |
+Nachdem das Template eingefügt wurde, müssen die benötigten Funktionaltitäten hinzugefügt und der Name des Zählers abgeändert werden. |