Verstecke letzte Bearbeiter
gru 1.1 1 {{content/}}
2
nlo 7.1 3 {{id name="fig_data_source"/}}
nlo 11.1 4 {{figure image="data_source_de.png"}}Konfigurationsoberfläche zum Anlegen von Datenquellen: (1) Liste existierender Datenquellen, (2) Bereich zum Editieren der selektierten Datenquelle, (3) Einstellungspanel der Datenquelle, (4) Servlet-URL der Datenquelle, um auf diese zugreifen zu können.{{/figure}}
nlo 7.1 5
gru 1.1 6 Die Quellen bzw. Datenquellen werden als Text im Format CSV, JSON oder XML hinterlegt und können über den {{designer case="acc"/}} bzw. das Formular verarbeitet werden.
7
8 Um auch im Skriptbereich per Javaskript auf die Datenquellen Zugriff zu haben, werden alle Datenquellen in eine JSON-Struktur umgewandelt und im Objekt {{code}}XFC_METADATA.urls.datasource_[csv|json|xml]{{/code}} zugänglich gemacht. Die Struktur dieser JSON-Struktur für die verschiedenen Datenquellen ist im jeweiligen Abschnitt erläutert.
9
nlo 10.1 10 == Anlegen einer Datenquelle ==
nlo 9.1 11
nlo 14.1 12 Öffnen Sie das Modul "Daten > Quellen" und klicken Sie auf die Schaltfläche "Neu" {{ficon name="plus-circle-outline"/}} in der Kopfzeile der Liste (siehe Punkt 1 in der [[Abbildung>>||anchor="fig_data_source"]]). Daraufhin werden Sie aufgefordert eine leere Datenquelle anzulegen oder diese aus einer Datei zu importieren. Es können drei Typen von Datenquellen angelegt werden: //XML//, //CSV// und //JSON//.
nlo 9.1 13
nlo 16.1 14 {{lightbox image="data_source_new_de.png" title="Datenquellen können aus Dateien importiert oder neu angelegt werden"/}}
nlo 11.1 15
nlo 14.2 16 === Importieren von Datenquellen aus Dateien ===
17
nlo 15.1 18 Folgende Dateitypen können verwendet werden, um Datenquellen zu importieren:
nlo 14.2 19
nlo 15.1 20 * **XML**: //.xml//
21 * **CSV**: //.csv//, //.xls//, //.xlsx//
22 * **JSON**: //.json//
nlo 14.2 23
nlo 19.1 24 __CSV-Datenquellen__
nlo 17.1 25
nlo 20.1 26 CSV-Datenquellen können aus unterschiedlichen Dateitypen importiert werden:
27
28 * //.csv//
29 Es öffnet sich ein Dialog zur Konfiguration des Imports:
30 ** **Trennzeichen**: Welches Trennzeichen wird in der Datei verwendet, um Datenfelder/Spalten voneinander zu trennen (typischerweise: Komma)?
31 ** **Textqualifizierer**: Welches Feldbegrenzerzeichen wird in der Datei verwendet? Dieses Zeichen wird verwendet um Sonderzeichen innerhalb der Datenfelder nutzen zu können (z. B. Komma in Dezimalzahlwerten).
32 ** **Beginnen ab Zeile**: Gibt an, ab welcher Zeile die CSV-Datei importiert werden soll.
33 ** **Leere Zeilen ignorieren**: Wenn aktiviert werden leere Zeilen beim Import ignoriert.
34
nlo 19.1 35 __Drag&Drop__
36
37 Datenquellen können auch per Drag&Drop importiert werden. Wird eine Datei über die Liste (grüner Bereich gezogen), so wird eine neue Datenquelle vom entsprechenden Typ angelegt (bei Excel-Dateien wird eine Datenquelle pro Arbeitsblatt angelegt). Wird die Datenquelle allerdings über den Editierbereich einer bereits existierenden Datenquelle gezogen, so wird diese aktualisiert. Die Änderungen werden allerdings erst mit einem Klick auf "Speichern" {{icon name="save"/}} übernommen.
38
gru 1.1 39 == CSV ==
40
41 Hier können Sie Datensätze im CSV-Format eingeben.
42
43 * Wählen Sie unter //Typ// die Option //CSV//.
44 * Vergeben Sie einen eindeutigen Namen.
45 * Im Feld //Wert// geben Sie die Daten separiert mit einem Komma ein.
46
nlo 7.1 47 {{figure image="datenquelle_csv_8.png"}}
gru 1.1 48 Die JSON-Struktur der CSV-Datenquelle. Auf diese JSON-Struktur kann dann per Javaskript über {{code}}XFC_METADATA.urls.datasource_[csv|json|xml]{{/code}} zugegriffen werden.
49 {{/figure}}
50
51 === Beispiel für eine CSV-Datenquelle ===
52
53 {{info}}
54 Die CSV-Daten werden intern in ein JSON-Objekt umgewandelt, sodass die erste Zeile der //CSV-Datei// immer die Objektnamen für den späteren Zugriff definiert.
55 {{/info}}
56
57 {{code}}
58 Wert 1.1, Wert 1.2, Wert 1.3, Wert 1.4, ...
59 {{/code}}
60
61 Das Auslesen der Werte im {{designer case="dat"/}} erfolgt über das //Servlet// mit Namen //datenquellecsv//.
62
63 === Servlet-Parameter ===
64
65 {{info}}
66 **Servlet-URL**
67 http(s):~/~/<server>/formcycle/datenquellecsv?mandantName=<Mandant-Name>&name=<Datenquellen-Name>
68 {{/info}}
69
gru 1.3 70 Bei Zugriff aus dem {{designer case="dat"/}} verwenden Sie immer das globale Variablen-Objekt //XFC_METADATA//, siehe hierzu auch [[Globale Designer Variablen>>doc:Main.Formular-Metadaten]]. Beispielsweise kann wie folgt darauf zugegriffen werden: {{code}}XFC_METADATA.urls.datasource_csv{{/code}}.
gru 1.1 71
72 Folgende Parameter sind möglich:
73
74 |=Parametername|=Beschreibung|=Erforderlich
75 |name|Muss dem Namen der CSV-Datenquelle entsprechen.|Ja
76 |mandantName|Muss dem Namen des Mandanten entsprechen, unter welchen diese Datenquelle erstellt wurde.|Ja, wenn //projektId// nicht gegeben.
77 |projektId|Muss der ID des Formulars entsprechen. Diese Information kann über {{code}}XFC_METADATA.currentProject.id{{/code}} abgerufen werden.|Ja, wenn //mandantName// nicht gegeben.
78 |kopfzeile|Gibt eine Komma-separierte Liste der Spaltennamen der CSV-Tabelle an. Ist dieser nicht angegeben, so wird hierfür die erste Zeile der CSV-Tabelle verwendet.|Nein
79 |spaltenNamen|Gibt eine kommaseparierte Liste der Spalten an, welche Spalten vom //Servlet// mit den entsprechenden Werten zurückgeliefert werden. Hierbei werden je nach Verwendung die Namen der Spalten aus dem Parameter //kopfzeile// oder die Namen der ersten Zeile der //CSV//-Datenquelle erwartet.|Nein
80 |csvTrennzeichen|Gibt das Trennzeichen zwischen den einzelnen Datenzellen an. Wird dieses nicht gesetzt, wird hier standardmäßig ein Komma {{code}},{{/code}} benutzt.|Nein
81 |csvQuote|Das Trennzeichen, mit dem die Werte der Zeilen getrennt sind. Wird dieses nicht gesetzt, wird hier standardmäßig ein Anführungszeichen verwendet {{code}}"{{/code}}.| Nein
82
83 === Anwendungsbeispiel ===
84
85 {{figure image="datenquelle_csv_7.png" width="300"}}
86 Ein Beispiel dafür, wie eine CSV-Datenquelle aussehen kann. Die Spalten werden durch Kommas getrennt.
87 {{/figure}}
88
89 {{code language="csv"}}
90 anrede,vorname,nachname,plz,ort
91 Herr,Max,Mustermann,1000,Musterhausen
92 Frau,Monika,Mustermann,2000,Musterdorf
93 Frau, Luise,Musterfrau,3000,Musterstadt
94
95 {{/code}}
96
97
98
99
gru 1.3 100 Im {{designer case="dat"/}} wird dann folgendes Skript im [[Skriptbereich>>doc:Main.TAB - Script]] verwendet.
gru 1.1 101
102 {{code language="javascript"}}
103 $.getJSON( XFC_METADATA.urls.datasource_csv + "?name=Demo&mandantName=xima.de", function(json) {
104 var obj = json.returnValue[0]
105
106 $('[name=tfAnrede]').val(obj.anrede)
107 $('[name=tfVorname]').val(obj.vorname)
108 $('[name=tfName]').val(obj.nachname)
109 $('[name=tfPLZ]').val(obj.plz)
110 $('[name=tfOrt]').val(obj.ort)
111 })
112 {{/code}}
113
114 {{lightbox image="datenquelle_csv_4.png" width="300"/}}
115
116 Dieses Beispiel als Datenquelle für den {{designer case="acc"/}} [[zum Herunterladen>>attach:beispiel_datenquelle_csv.json||rel="__blank"]].
117
118 === Sonderfall Auswahlelement ===
119
nlo 4.1 120 {{figure image="data_source_csv_designer_de.png"}}
gru 1.1 121 Die Anbindung einer Datenquelle an eine Auswahlelement erfolgt direkt im {{designer case="dat"/}}
122 {{/figure}}
123
gru 1.3 124 Soll die //CSV//-Datenquelle direkt in ein [[Auswahlelement>>doc:Main.Auswahl]] geladen werden, erfolgt dies über die Eigenschaften des Auswahlelements im {{designer case="dat"/}}.
gru 1.1 125
gru 1.3 126 Der Inhalt der CSV-Datenquelle wird folgendermaßen in einem [[Auswahlelement>>doc:Main.Auswahl]] verarbeitet.
gru 1.1 127
128 {{code}}
129 sichtbarer wert, übertragener, wert, optionaler wert, optionaler wert, ...
130 {{/code}}
131
132 Werden mehr als der sichtbare und übertragene Wert angegeben, also optionale Werte, so können diese im Javaskript über den folgenden jQuery-Selektor abgerufen werden.
133
134 {{code language="javascript"}}
135 $('[name=sel2]').find('option:selected').attr('col0');
136 {{/code}}
137
138 Jeder optionale Wert wird am Auswahlelement als Attribut {{code}}col + Index des optionalen Wert{{/code}} gespeichert. Bei z.B. drei optionalen Werten würde es also //col0//, //col1// und //col2// geben.
139
140 == XML ==
141
gru 1.3 142 Die XML Datenquelle verhält sich analog zur //CSV//-Datenquelle, kann jedoch nicht direkt an ein [[Auswahlelement>>doc:Main.Auswahl]] gebunden werden.
gru 1.1 143
144 {{figure image="datenquelle_xml.png" width="300"}}
145 Die JSON-Struktur der XML-Datenquelle. Auf diese JSON-Struktur kann dann per Javaskript über {{code}}XFC_METADATA.urls.datasource_[csv|json|xml]{{/code}} zugegriffen werden.
146 {{/figure}}
147
148 === Beispiel für eine XML-Datenquelle ===
149
150 {{code language="xml"}}
151 <root>
152 <person>
153 <anrede>
154 Herr
155 </anrede>
156 <vorname>
157 Max
158 </vorname>
159 <nachname>
160 Mustermann
161 </nachname>
162 </person>
163 <person>
164 <anrede>
165 Frau
166 </anrede>
167 <vorname>
168 Monika
169 </vorname>
170 <nachname>
171 Musterfrau
172 </nachname>
173 </person>
174 </root>
175 {{/code}}
176
177
178 === Servlet-Parameter ===
179
180 {{info}}
181 **Servlet-URL**
182 http(s):~/~/<server>/formcycle/datenquellexml?mandantName=<Mandant-Name>&name=<Datenquellen-Name>
183 {{/info}}
184
gru 1.3 185 Bei Zugriff aus dem {{designer case="dat"/}} verwenden Sie immer das globale Variablen-Objekt //XFC_METADATA//, siehe hierzu auch [[Globale Designer Variablen>>doc:Main.Formular-Metadaten]]. Beispielsweise kann wie folgt darauf zugegriffen werden: {{code language="javascript"}}XFC_METADATA.urls.datasource_xml{{/code}}.
gru 1.1 186
187 Folgende Parameter sind möglich:
188
189 |=Parametername|=Beschreibung|=Erforderlich
190 |mandantName|Muss dem Namen des Mandanten entsprechen, unter welchem diese Datenquelle erstellt wurde.|Ja
191 |name|Muss dem Namen der CSV-Datenquelle entsprechen.|Ja
192
193 == JSON ==
194
gru 1.3 195 Die //JSON//-Datenquelle verhält sich analog zur //CSV//-Datenquelle, kann jedoch nicht direkt an ein [[Auswahlelement>>doc:Main.Auswahl]] gebunden werden.
gru 1.1 196
197 {{figure image="datenquelle_json.png" width="300"}}
198 Die JSON-Struktur der JSON-Datenquelle. Sie ist identisch mit der JSON-Datenquelle. Auf diese JSON-Struktur kann dann per Javaskript über {{code}}XFC_METADATA.urls.datasource_[csv|json|xml]{{/code}} zugegriffen werden.
199 {{/figure}}
200
201 === Beispiel für eine JSON-Datenquelle ===
202
203 {{code language="json"}}
204 {"person":[
205 {
206 'anrede':'Herr',
207 'vorname':'Max',
208 'nachname':'Mustermann'
209 },
210 {
211 'anrede':'Frau',
212 'vorname':'Monika',
213 'nachname':'Musterfrau'
214 }
215 ]}
216 {{/code}}
217
218 === Servlet-Parameter ===
219
220 {{info}}
221 **Servlet-URL**
222 http(s):~/~/<server>/formcycle/datenquellejson?mandantName=<Mandant-Name>&name=<Datenquellen-Name>
223 {{/info}}
224
gru 1.3 225 Bei Zugriff aus dem {{designer case="dat"/}} verwenden Sie immer das globale Variablenobjekt //XFC_METADATA//, siehe hierzu auch [[Globale Designer Variablen>>doc:Main.Formular-Metadaten]]. Beispielweise kann wie folgt darauf zugegriffen werden: {{code language="javascript"}}XFC_METADATA.urls.datasource_json{{/code}}.
gru 1.1 226
227 Folgende Parameter sind möglich:
228
229 |=Parametername|=Beschreibung|=Erforderlich
230 |mandantName| Muss dem Namen des Mandanten entsprechen, unter welchen diese Datenquelle erstellt wurde.|Ja
231 |name| Muss dem Namen der CSV-Datenquelle entsprechen.|Ja
Copyright 2000-2025