Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.
Auszug
hiddentrue

Nuclos Strukturdefinition: CSV Import, Mapping, Spaltennummer, Groovy, Berechnungsausdruck, Identifizierer, RFC 4180, Direktimport.

globe with meridians Sprache: Deutsch · English

open book Strukturdefinition

CSV-Spalten auf BO-Felder mappen – Importmodi, Groovy-Berechnung, Format und Identifizierer.

Status
colourGrey
titleReferenz
Status
colourBlue
titleAnwendungsentwickler
Status
colourGreen
titleStand: Jul 2026
Status
colourGrey
titlegilt fuer Nuclos 4.2026.x

Panel
bgColor#F4F5F7

Auf dieser Seite

Inhalt
maxLevel2
minLevel2

Definition

Menüaufruf: (Konfiguration) - (Import & Export)  - (Strukturdefinition)

In der Maske Strukturdefinition für Objektimport wird die Zuordnung zwischen der Spalte in der Quelldatei und dem Nuclos-Feld vorgenommen.

Konfiguration

Name → Name der Strukturdefinition 

Wozu eine Strukturdefinition?

Die Strukturdefinition ordnet die Spalten einer Quelldatei (CSV) den Feldern eines Businessobjekts zu. Menü: Konfiguration → Import & Export → Strukturdefinition.

Grundeinstellungen

FeldBedeutung
NameBezeichnung der Strukturdefinition.
KopfzeilenAnzahl der zu ignorierenden Zeilen (z.​B

...

. Spaltenüberschriften).
Importmodus

...

Standardimport (mit Nuclos-Speichermechanismen

...

und Regeln) oder Direktimport (direkt in die

...

DB, ohne

...

Regeln

...

).
Feldtrennzeichen

...

Spaltentrenner der CSV

...

(

...

meist ;

...

).
Businessobjekt

...

Ziel-BO des Imports.

Anlage-/Update-Verhalten

OptionWirkung
Nur Datensätze einfügenes wird

...

stets ein neuer Datensatz angelegt; Eindeutigkeitsverletzungen führen zu Fehlern.
Bestehende Datensätze

...

aktualisierenvorhandene Datensätze (per Identifizierer) werden aktualisiert.
Nicht mehr vorhandene Datensätze

...

löschenDatensätze, die in der Importdatei

...

fehlen, werden entfernt

...

.
Image Modified

Strukturdefinition für Objektimport.

Attribute zuordnen

...

Je Zeile ein Attribut des BOs mit der Spaltennummer der

...

Datei verknüpfen. Mit

...

Bestehende Attribute nicht überschreiben

...

lässt sich das Überschreiben auf Feldebene

...

eingrenzen.

...

Boolean Attribute

...

Boolean-Werte erkennen true/false

...

, 1/0

...

, j/n u.​a.

Berechnungsausdruck (Groovy

...

)

...

Statt einer Spaltennummer kann ein

...

Attribut per Groovy-Script

...

je Zeile berechnet werden. Verfügbare Variablen: values (String[]

...

,

...

0-indiziert), line (

...

Integer

...

) und log (

...

ImportLogger)

...

.

...

Ist ein Script hinterlegt, darf keine Spaltennummer angegeben werden.

Beispiel für Boolean-Feld:

Codeblock
languagejava

...

if (values[2] == null || values[2].isEmpty()) {
    log.info("FALSE "+values[2]);
    return false;
} else {
    log.info("TRUE "+values[2]);
    return true;
}

Beispiel für Double-Feld:

Codeblock
if (values[2] == null) {
    return null;
}
else {
    return Double.parseDouble(values[2]) * 1000;
}
Oder auch 
return 45.0d 

Beispiel für Referenz-Feld:

Referenzfelder dürfen nur Long, null oder Leerstring (≡ null) liefern:

Codeblock
languagejava

...

if (values[0] == "Frau") {
    return 40000001;
}
else if (values[0] == "Herr") {
    return 40000002;
}
return null;

Für Referenzfelder darf das Script natürlich nur Zahlen (Long), null oder leere Strings zurück liefern. Ein Leerstring wird ebenfalls als null behandelt.

...

Datumswert:

Codeblock
languagejava
java.text.SimpleDateFormat dateFormat = new java.text.SimpleDateFormat("dd.MM.yyyy");
java.util.Date date = dateFormat.parse("25.02.2020");

return date;

Format (Parsestring)

Das Feld Format hat, abhängig von dem Datentypen, in die die Eingabe umgewandelt wird, verschiedene Bedeutungen.

Info

Die Implementierung erfolgt in org.nuclos.common2.fileimport.parser.CsvFileImportParserFactory. Dieser Klasse können Entwickler weitere Details entnehmen.

...

Wird nur genutzt, wenn kein Script hinterlegt ist.

...

Bedeutung je Datentyp:

TypFormat
String

...

Das Format hat die Form '<match>#<replacement>'. Dabei ist <match> eine Regex, die auf die Eingabe angewendet wird. Das initiale Ergebnis ist <replacement>.

Für jeden Group Match auf der Eingabe wird im Ergebnis jeder Match des reguläre Ausdrucks '$<group_number>$' durch den Match der Gruppe ersetzt.

...

/ Number<match>#<replacement> mit Regex; Beispiel Nr(\d)+#Nr $1

...

Boolean

In diesem Fall wird das Format nicht verwendet!

Erlaubte true Werte: ja, yes, true, wahr, y, j, t, 1

Erlaubte false Werte: nein, no, false, falsch, n, f, 0

Werte, die nicht matchen, werden zu false.

Date

...

: Nr9Nr 9.
DateSimpleDateFormat; Standard dd.MM.yyyy

...

.
Boolean / BigDecimal

...

Format wird

...

nicht verwendet

...

Number (außer BigDecimal)

Wie unter String beschrieben. Am Ende wird nur-Leerzeichen zu null. Bei allem anderen wird versucht, es in den entsprechenden Zahlentyp umzuwandeln.

Datensatzidentifizierer

Das Feld Identifizierer-Attribut stellt eine Kombination aus Attributen dar, mit welchen ein Datensatz als eindeutig gekennzeichnet wird (wichtig für die Aktualisiserung von Daten).

Identifizierer des referenzierten Datensatzes

In diesem Bereich können Sie die Referenzen von Feldern festlegen. Wird unter den Attributen ein Referenzfeld markiert, so sind unter Attribut Name alle verfügbaren Felder das Referenz-Businessobjekt aufgelistet. Wählen Sie hier das Feld auf, über das das Mapping auf das Referen-Businessobjekt stattfinden soll. Zusätzlich müssen Sie die entsprechende Spaltennummer angeben. Beispiel: Es soll ein Attribut "Standort" importiert werden. Der Standort stellt ein Referenzfeld dar. In der CSV Datei steht in der Spalte "Standort" die Standortnummer, die für das Mapping verwendet werden kann. Also wählen Sie im "Identifizierer des referenzierten Datensatzes" die Nummer als Mapping Feld aus.

CSV Dateiimport

 

.

Identifizierer

Das Identifizierer-Attribut kennzeichnet einen Datensatz eindeutig (wichtig für Updates). Für Referenzfelder legt der Identifizierer des referenzierten Datensatzes fest, über welches Feld (und welche Spaltennummer) das Mapping auf das Referenz-BO erfolgt

...

.

Info
title

...

CSV-Format

Valides CSV (RFC 4180): Felder dürfen in doppelte Anführungszeichen; Felder mit Zeilenumbruch oder Feldtrennzeichen müssen gequotet werden; ein " im Wert wird durch "" maskiert.

Verwandte Seiten

electric plug Objektimport


Import ausführen.

Öffnen →

clipboard XML Strukturdefinition


XML-Import.

Öffnen →

package Import und Export


Übersicht.

Öffnen →

Da es unterschiedliche Definitionen von CSV-Formaten gibt, ist es notwendig sich an folgende Regeln zu halten damit Nuclos die Daten korrekt importieren kann:

jedes Feld kann in doppelte Anführungsstriche gesetzt werden 

Codeblock
"testA",testB,"87",900

Felder mit Zeilenumbruch müssen in Anführungsstriche gesetzt werden

Codeblock
"testA",testB,"87","900
Stück"
falls Felder in Anführungsstriche gesetzt werden, müssen Anführungsstriche innerhalb des Feldwerts mit einem vorangestellten Anführungsstrich maskiert werden
Codeblock
"TestA","24"" Monitor",87,900

soll das Feldtrennzeichen im Feldwert verwendet werden, muss dieser in Anführungsstriche gesetzt werden

Codeblock
"TestA","TestB,",87,900

Siehe hierzu auch https://tools.ietf.org/html/rfc4180

HOW TO:  Strukturdefinition

Panel
borderColorgreen
titleColorblue
borderWidth5
borderStylesolid
title How-to: Strukturdefinition anlegen

direct hit Ziel: Eine neue Strukturdefinition für den Import von Daten erstellen.

bust in silhouette Voraussetzung

  • Administrationsrechte

  • Zugriff auf den Bereich Konfiguration

    footprints Schritte

    1. Menü öffnen

    Navigiere zu:
    Konfiguration → Import & Export → Strukturdefinition

    2. Neue Strukturdefinition anlegen

    Klicke auf Neu.

    3. Basisdaten ausfüllen

    • Name vergeben

    • Ggf. Beschreibung ergänzen

    • Dateityp / Format auswählen (z. B. UTF-8)

    4. Formatparameter festlegen

    • Feldtrennzeichen definieren (meist ; oder ,)

    • Texttrennzeichen festlegen

    • Kopfzeile (falls vorhanden) konfigurieren

    • Importmodus auswählen

    5. Spalten zuordnen

    Ordne die Dateispalten den entsprechenden Feldern der Ziel-Entität zu.

    6. Speichern

    Speichern klicken.