Quellen



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.

Die Quellen bzw. Datenquellen werden als Text im Format CSV, JSON oder XML hinterlegt und können über den Xima® Formcycle-Designer bzw. das Formular verarbeitet werden.

Um auch im Skriptbereich per Javaskript auf die Datenquellen Zugriff zu haben, werden alle Datenquellen in eine JSON-Struktur umgewandelt und im Objekt XFC_METADATA.urls.datasource_[csv|json|xml] zugänglich gemacht. Die Struktur dieser JSON-Struktur für die verschiedenen Datenquellen ist im jeweiligen Abschnitt erläutert.

Servlet-URL
Die Servlet-URL einer Datenquelle wird nach dem Anlegen in der Konfigurationsoberfläche dargestellt (siehe Punkt 4 in der Abbildung) und ist im JS-Objekt XFC_METADATA.urls.datasource_[csv|json|xml] verfügbar.

Anlegen einer Datenquelle

Öffnen Sie das Modul "Daten > Quellen" und klicken Sie auf die Schaltfläche "Neu" in der Kopfzeile der Liste (siehe Punkt 1 in der Abbildung). 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.

Jede Datenquelle benötigt:

  • einen eindeutigen Namen (im Einstellungspanel: siehe Punkt 3 in der Abbildung)
  • die eigentlichen Daten im Editierbereich (siehe Punkt 2 in der Abbildung)

Importieren von Datenquellen aus Dateien

Folgende Dateitypen können verwendet werden, um Datenquellen zu importieren:

  • XML: .xml
  • CSV: .csv, .xls, .xlsx (Excel)
  • JSON: .json


CSV-Datenquellen

CSV-Datenquellen können aus unterschiedlichen Dateitypen importiert werden:

  • .csv
    Es öffnet sich ein Dialog zur Konfiguration des Imports:
    • Trennzeichen: Gibt an welches Trennzeichen in der Datei verwendet wird, um Datenfelder/Spalten voneinander zu trennen (typischerweise: Komma).
    • 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).
    • Beginnen ab Zeile: Gibt an, ab welcher Zeile die CSV-Datei importiert werden soll.
    • Leere Zeilen ignorieren: Wenn aktiviert werden leere Zeilen beim Import ignoriert.

  • .xls, .xlsx
    Es öffnet sich ein Dialog zur Konfiguration des Imports:
    • Zu importierende Tabellen: Gibt an welche Arbeitsblätter/Tabellen aus der Datei importiert werden sollen.

Drag&Drop

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"   übernommen.

CSV

Die JSON-Struktur einer CSV-Datenquelle. Auf diese JSON-Struktur kann per Javascript über XFC_METADATA.urls.datasource_csv zugegriffen werden. (1) Links ist die JSON-Struktur der Datenquelle dargestellt, bei welcher die erste Zeile nicht als Header verwendet wird. Stattdessen werden Header in Form von colX verwendet. (2) Rechts ist die Datenquelle zu sehen, wenn die erste Zeile als Header verwendet wird.

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 /  in der Fußzeile unterhalb des Editierbereichs geändert werden.

Quellcode-Ansicht einer CSV-Datenquelle: (CSV Dateiformat)


Tabellenansicht einer CSV-Datenquelle:

Bearbeitung von CSV-Tabellen

Zum Bearbeitung einer CSV-Tabelle befinden sich unterhalb des Editierbereichs eine Reihe von Schaltflächen:

  • Einfügen: Fügt neue Zeilen oder Spalten relativ zur derzeit selektierten Zelle ein.
  • Entfernen: Entfernt die selektierte(n) Zeile(n) oder Spalte(n) oder leert die selektierte Zelle.
  •   Importieren: Öffnet den Dialog zum Importieren von CSV-Datenquellen.
  •   Quellcode-Ansicht: Wechselt in die Quellcode-Ansicht.

Header von CSV-Datenquellen

Für CSV-Datenquellen gibt es eine zusätzliche Option in den Datenquelleinstellungen. Die Option Erste Zeile ist Header regelt den Zugriff auf die Werte der Datenquelle über das entsprechende Servlet (XFC_METADATA.urls.datasource_csv):

  • Aktiviert:
    Die Zellen der erste Zeile werden als Schlüssel bzw. keys für den Zugriff auf die Werte der jeweiligen Spalte verwendet (siehe Anwendungsbeispiel).
  • Deaktiviert:
    Die Schlüssel bzw. keys für den Zugriff auf die Werte der einzelnen Datensätze/Zeilen sind durchnummeriert, beginnend mit 0. Diese Schlüssel haben folgende Form: colX, wobei X für den Index der Spalte steht.

CSV-Datenquellen können im Xima® Formcycle-Designer über das Servlet mit Namen XFC_METADATA.urls.datasource_csv ausgelsen werden.

Servlet-Parameter

Servlet-URL
http(s)://<server>/formcycle/datenquellecsv?mandantName=<Mandant-Name>&name=<Datenquellen-Name>

Bei Zugriff aus dem Xima® Formcycle-Designer verwenden Sie immer das globale Variablen-Objekt XFC_METADATA, siehe hierzu auch Globale Designer Variablen. Beispielsweise kann wie folgt darauf zugegriffen werden: XFC_METADATA.urls.datasource_csv.

Folgende Parameter sind möglich:

ParameternameBeschreibungErforderlich
nameMuss dem Namen der CSV-Datenquelle entsprechen.Ja
mandantNameMuss dem Namen des Mandanten entsprechen, unter welchen diese Datenquelle erstellt wurde.Ja, wenn projektId nicht gegeben.
projektIdMuss der ID des Formulars entsprechen. Diese Information kann über XFC_METADATA.currentProject.id abgerufen werden.Ja, wenn mandantName nicht gegeben.
kopfzeileGibt 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
spaltenNamenGibt 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
csvTrennzeichenGibt das Trennzeichen zwischen den einzelnen Datenzellen an. Wird dieses nicht gesetzt, wird hier standardmäßig ein Komma , benutzt.Nein
csvQuoteDas Trennzeichen, mit dem die Werte der Zeilen getrennt sind. Wird dieses nicht gesetzt, wird hier standardmäßig ein Anführungszeichen verwendet ". Nein

Anwendungsbeispiel

Es wurde eine CSV-Datenquelle mit folgendem Inhalt angelegt, bei welcher die erste Zeile als Header verwendet wird.

anrede,vorname,nachname,plz,ort
Herr,Max,Mustermann,1000,Musterhausen
Frau,Monika,Mustermann,2000,Musterdorf
Frau, Luise,Musterfrau,3000,Musterstadt

Im Xima® Formcycle-Designer wird dann folgendes Skript im Skriptbereich verwendet, um die Felder im Formular vorzubefüllen.

$.getJSON( XFC_METADATA.urls.datasource_csv + "?name=Demo&mandantName=xima.de", function(json) {
   var obj = json.returnValue[0];

    $('[name=tfAnrede]').val(obj.anrede);
    $('[name=tfVorname]').val(obj.vorname);
    $('[name=tfName]').val(obj.nachname);
    $('[name=tfPLZ]').val(obj.plz);
    $('[name=tfOrt]').val(obj.ort);
 });

Dieses Beispielformular für den Xima® Formcycle-Designer zum Herunterladen.

Sonderfall Auswahlelement

Die Anbindung einer Datenquelle an eine Auswahlelement erfolgt direkt im Xima® Formcycle-Designer

Soll die CSV-Datenquelle direkt in ein Auswahlelement geladen werden, erfolgt dies über die Eigenschaften des Auswahlelements im Xima® Formcycle-Designer.

Der Inhalt der CSV-Datenquelle wird folgendermaßen in einem Auswahlelement verarbeitet:

sichtbarer wert, übertragener wert, optionaler wert, optionaler wert, ...

Die Spalten der Datenquelle werden für Auswahlelemente wie folgt bezeichnet:
col + Index der Spalte.

Beitzt die Datenquelle mehr als 2 Spalten, besitzt sie optionale Werte. Auf die optionalen Werte kann im Javascript über den folgenden jQuery-Selektor zugegriffen werden:

$('[name=sel2]').find('option:selected').attr('col2');

Die optionalen Werte beginnen also mit Spaltenindex 2.
Ist die erste Zeile als Header markiert, so wird diese für das Auswahlelement ignoriert.

XML

Die XML Datenquelle verhält sich analog zur CSV-Datenquelle, kann jedoch nicht direkt an ein Auswahlelement gebunden werden.

Die JSON-Struktur der XML-Datenquelle. Auf diese JSON-Struktur kann dann per Javascript über XFC_METADATA.urls.datasource_xml zugegriffen werden.

Beispiel für eine XML-Datenquelle

<root>
 <person>
   <anrede>
      Herr
   </anrede>
   <vorname>
      Max
   </vorname>
   <nachname>
      Mustermann
   </nachname>
 </person>
  <person>
   <anrede>
      Frau
   </anrede>
   <vorname>
      Monika
   </vorname>
   <nachname>
      Musterfrau
   </nachname>
 </person>
</root>

Servlet-Parameter

Servlet-URL
http(s)://<server>/formcycle/datenquellexml?mandantName=<Mandant-Name>&name=<Datenquellen-Name>

Bei Zugriff aus dem Xima® Formcycle-Designer verwenden Sie immer das globale Variablen-Objekt XFC_METADATA, siehe hierzu auch Globale Designer Variablen. Beispielsweise kann wie folgt darauf zugegriffen werden: XFC_METADATA.urls.datasource_xml.

Folgende Parameter sind möglich:

ParameternameBeschreibungErforderlich
mandantNameMuss dem Namen des Mandanten entsprechen, unter welchem diese Datenquelle erstellt wurde.Ja
nameMuss dem Namen der CSV-Datenquelle entsprechen.Ja

JSON

Die JSON-Datenquelle verhält sich analog zur CSV-Datenquelle, kann jedoch nicht direkt an ein Auswahlelement gebunden werden.

Die JSON-Struktur der JSON-Datenquelle. Sie ist identisch mit der JSON-Datenquelle. Auf diese JSON-Struktur kann dann per Javascript über XFC_METADATA.urls.datasource_json zugegriffen werden.

Beispiel für eine JSON-Datenquelle

{"person":[
  {
     "anrede":"Herr",
     "vorname":"Max",
     "nachname":"Mustermann"
  },
  {
     "anrede":"Frau",
     "vorname":"Monika",
     "nachname":"Musterfrau"
  }
]}

Servlet-Parameter

Servlet-URL
http(s)://<server>/formcycle/datenquellejson?mandantName=<Mandant-Name>&name=<Datenquellen-Name>

Bei Zugriff aus dem Xima® Formcycle-Designer verwenden Sie immer das globale Variablenobjekt XFC_METADATA, siehe hierzu auch Globale Designer Variablen. Beispielweise kann wie folgt darauf zugegriffen werden: XFC_METADATA.urls.datasource_json.

Folgende Parameter sind möglich:

ParameternameBeschreibungErforderlich
mandantName Muss dem Namen des Mandanten entsprechen, unter welchen diese Datenquelle erstellt wurde.Ja
name Muss dem Namen der CSV-Datenquelle entsprechen.Ja