Zeige letzte Bearbeiter
1 {{content/}}
2
3 {{id name="fig_data_source"/}}
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}}
5
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
10 == Anlegen einer Datenquelle ==
11
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//.
13
14 {{lightbox image="data_source_new_de.png" title="Datenquellen können aus Dateien importiert oder neu angelegt werden"/}}
15
16 Jede Datenquelle benötigt:
17
18 * einen eindeutigen Namen (im Einstellungspanel: siehe Punkt 3 in der [[Abbildung>>||anchor="fig_data_source"]])
19 * die eigentlichen Daten im Editierbereich (siehe Punkt 2 in der [[Abbildung>>||anchor="fig_data_source"]])
20
21 === Importieren von Datenquellen aus Dateien ===
22
23 Folgende Dateitypen können verwendet werden, um Datenquellen zu importieren:
24
25 * **XML**: //.xml//
26 * **CSV**: //.csv//, //.xls//, //.xlsx// (Excel)
27 * **JSON**: //.json//
28
29 __CSV-Datenquellen__
30
31 CSV-Datenquellen können aus unterschiedlichen Dateitypen importiert werden:
32
33 * //.csv//
34 Es öffnet sich ein Dialog zur Konfiguration des Imports:
35 ** **Trennzeichen**: Gibt an welches Trennzeichen in der Datei verwendet wird, um Datenfelder/Spalten voneinander zu trennen (typischerweise: Komma).
36 ** **Textqualifizierer**: Gibt an welches Feldbegrenzerzeichen in der Datei verwendet wird. Dieses Zeichen wird verwendet, um Sonderzeichen innerhalb der Datenfelder nutzen zu können (z. B. Komma in Dezimalzahlwerten).
37 ** **Beginnen ab Zeile**: Gibt an, ab welcher Zeile die CSV-Datei importiert werden soll.
38 ** **Leere Zeilen ignorieren**: Wenn aktiviert werden leere Zeilen beim Import ignoriert.
39
40 {{lightbox image="data_source_import_csv_de.png" title="Importdialog für CSV-Dateien"/}}
41
42 * //.xls//, //.xlsx//
43 Es öffnet sich ein Dialog zur Konfiguration des Imports:
44 ** **Zu importierende Tabellen**: Gibt an welche Arbeitsblätter/Tabellen aus der Datei importiert werden sollen.
45
46 {{lightbox image="data_source_import_excel_de.png" title="Importdialog für Excel-Dateien"/}}
47
48 __Drag&Drop__
49
50 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.
51
52 == CSV ==
53
54 {{figure image="data_source_csv_servlet_json.png"}}
55 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.
56 {{/figure}}
57
58 CSV-Datenquellen können in einer Quellcode-Ansicht oder in einer Tabellenansicht dargestellt werden. Die Ansicht kann mit einem Klick auf die entsprechende Schaltfläche {{ficon name="table-large"/}}/{{icon name="code"/}} in der Fußzeile unterhalb des Editierbereichs geändert werden.
59
60 //Quellcode-Ansicht einer CSV-Datenquelle//:
61 {{lightbox name="data_source_csv_source.png" title="Quellcode-Ansicht einer CSV-Datenquelle"/}}
62 //Tabellenansicht einer CSV-Datenquelle//:
63 {{lightbox name="data_source_csv_table.png" title="Tabellenansicht einer CSV-Datenquelle"/}}
64
65 **Erste Zeile ist Header**
66
67 === Beispiel für eine CSV-Datenquelle ===
68
69 {{info}}
70 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.
71 {{/info}}
72
73 {{code}}
74 anrede,vorname,nachname,plz,ort
75 Herr,Max,Mustermann,1000,Musterhausen
76 Frau,Monika,Mustermann,2000,Musterdorf
77 Frau, Luise,Musterfrau,3000,Musterstadt
78 {{/code}}
79
80 Das Auslesen der Werte im {{designer case="dat"/}} erfolgt über das //Servlet// mit Namen //datenquellecsv//.
81
82 === Servlet-Parameter ===
83
84 {{info}}
85 **Servlet-URL**
86 http(s):~/~/<server>/formcycle/datenquellecsv?mandantName=<Mandant-Name>&name=<Datenquellen-Name>
87 {{/info}}
88
89 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}}.
90
91 Folgende Parameter sind möglich:
92
93 |=Parametername|=Beschreibung|=Erforderlich
94 |name|Muss dem Namen der CSV-Datenquelle entsprechen.|Ja
95 |mandantName|Muss dem Namen des Mandanten entsprechen, unter welchen diese Datenquelle erstellt wurde.|Ja, wenn //projektId// nicht gegeben.
96 |projektId|Muss der ID des Formulars entsprechen. Diese Information kann über {{code}}XFC_METADATA.currentProject.id{{/code}} abgerufen werden.|Ja, wenn //mandantName// nicht gegeben.
97 |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
98 |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
99 |csvTrennzeichen|Gibt das Trennzeichen zwischen den einzelnen Datenzellen an. Wird dieses nicht gesetzt, wird hier standardmäßig ein Komma {{code}},{{/code}} benutzt.|Nein
100 |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
101
102 === Anwendungsbeispiel ===
103
104 {{figure image="datenquelle_csv_7.png" width="300"}}
105 Ein Beispiel dafür, wie eine CSV-Datenquelle aussehen kann. Die Spalten werden durch Kommas getrennt.
106 {{/figure}}
107
108 {{code language="csv"}}
109 anrede,vorname,nachname,plz,ort
110 Herr,Max,Mustermann,1000,Musterhausen
111 Frau,Monika,Mustermann,2000,Musterdorf
112 Frau, Luise,Musterfrau,3000,Musterstadt
113
114 {{/code}}
115
116
117
118
119 Im {{designer case="dat"/}} wird dann folgendes Skript im [[Skriptbereich>>doc:Main.TAB - Script]] verwendet.
120
121 {{code language="javascript"}}
122 $.getJSON( XFC_METADATA.urls.datasource_csv + "?name=Demo&mandantName=xima.de", function(json) {
123 var obj = json.returnValue[0]
124
125 $('[name=tfAnrede]').val(obj.anrede)
126 $('[name=tfVorname]').val(obj.vorname)
127 $('[name=tfName]').val(obj.nachname)
128 $('[name=tfPLZ]').val(obj.plz)
129 $('[name=tfOrt]').val(obj.ort)
130 })
131 {{/code}}
132
133 {{lightbox image="datenquelle_csv_4.png" width="300"/}}
134
135 Dieses Beispiel als Datenquelle für den {{designer case="acc"/}} [[zum Herunterladen>>attach:beispiel_datenquelle_csv.json||rel="__blank"]].
136
137 === Sonderfall Auswahlelement ===
138
139 {{figure image="data_source_csv_designer_de.png"}}
140 Die Anbindung einer Datenquelle an eine Auswahlelement erfolgt direkt im {{designer case="dat"/}}
141 {{/figure}}
142
143 Soll die //CSV//-Datenquelle direkt in ein [[Auswahlelement>>doc:Main.Auswahl]] geladen werden, erfolgt dies über die Eigenschaften des Auswahlelements im {{designer case="dat"/}}.
144
145 Der Inhalt der CSV-Datenquelle wird folgendermaßen in einem [[Auswahlelement>>doc:Main.Auswahl]] verarbeitet.
146
147 {{code}}
148 sichtbarer wert, übertragener, wert, optionaler wert, optionaler wert, ...
149 {{/code}}
150
151 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.
152
153 {{code language="javascript"}}
154 $('[name=sel2]').find('option:selected').attr('col0');
155 {{/code}}
156
157 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.
158
159 == XML ==
160
161 Die XML Datenquelle verhält sich analog zur //CSV//-Datenquelle, kann jedoch nicht direkt an ein [[Auswahlelement>>doc:Main.Auswahl]] gebunden werden.
162
163 {{figure image="datenquelle_xml.png" width="300"}}
164 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.
165 {{/figure}}
166
167 === Beispiel für eine XML-Datenquelle ===
168
169 {{code language="xml"}}
170 <root>
171 <person>
172 <anrede>
173 Herr
174 </anrede>
175 <vorname>
176 Max
177 </vorname>
178 <nachname>
179 Mustermann
180 </nachname>
181 </person>
182 <person>
183 <anrede>
184 Frau
185 </anrede>
186 <vorname>
187 Monika
188 </vorname>
189 <nachname>
190 Musterfrau
191 </nachname>
192 </person>
193 </root>
194 {{/code}}
195
196
197 === Servlet-Parameter ===
198
199 {{info}}
200 **Servlet-URL**
201 http(s):~/~/<server>/formcycle/datenquellexml?mandantName=<Mandant-Name>&name=<Datenquellen-Name>
202 {{/info}}
203
204 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}}.
205
206 Folgende Parameter sind möglich:
207
208 |=Parametername|=Beschreibung|=Erforderlich
209 |mandantName|Muss dem Namen des Mandanten entsprechen, unter welchem diese Datenquelle erstellt wurde.|Ja
210 |name|Muss dem Namen der CSV-Datenquelle entsprechen.|Ja
211
212 == JSON ==
213
214 Die //JSON//-Datenquelle verhält sich analog zur //CSV//-Datenquelle, kann jedoch nicht direkt an ein [[Auswahlelement>>doc:Main.Auswahl]] gebunden werden.
215
216 {{figure image="datenquelle_json.png" width="300"}}
217 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.
218 {{/figure}}
219
220 === Beispiel für eine JSON-Datenquelle ===
221
222 {{code language="json"}}
223 {"person":[
224 {
225 'anrede':'Herr',
226 'vorname':'Max',
227 'nachname':'Mustermann'
228 },
229 {
230 'anrede':'Frau',
231 'vorname':'Monika',
232 'nachname':'Musterfrau'
233 }
234 ]}
235 {{/code}}
236
237 === Servlet-Parameter ===
238
239 {{info}}
240 **Servlet-URL**
241 http(s):~/~/<server>/formcycle/datenquellejson?mandantName=<Mandant-Name>&name=<Datenquellen-Name>
242 {{/info}}
243
244 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}}.
245
246 Folgende Parameter sind möglich:
247
248 |=Parametername|=Beschreibung|=Erforderlich
249 |mandantName| Muss dem Namen des Mandanten entsprechen, unter welchen diese Datenquelle erstellt wurde.|Ja
250 |name| Muss dem Namen der CSV-Datenquelle entsprechen.|Ja
Copyright 2000-2025