Daten-Import

Aus FaktuLux
Wechseln zu: Navigation, Suche

Zur Ausführung eines Daten-Import wählen Sie im Hauptfenster den Menüpunkt Datenbank / Import.

Über den Daten-Import können nicht nur neue Adressen und Artikel importiert, sondern auch vorhandene geändert werden. So lassen sich z.B. ganze Artikellisten von Lieferanten aktuell halten.

Für die Definition eines Daten-Imports verwendet FaktuLux den Formular-Editor. Somit steht Ihnen die gleiche Flexibilität wie bei der Erstellung eines Ausdrucks oder Exports zur Verfügung. Die Tabelle, in die Daten importiert werden sollen, wird über das separate Feld Tabelle im Bereich Zuordnung des Formulars festgelegt. Der Import-Assistent hilft bei der Erstellung des Formulars.

Derzeit lassen sich nur importieren:

  • Adressen, Ansprechpartner, Zusatzadressen
  • Artikel

In der Initialisierung werden Zeilenweise abgelegt:

Dateiname    Der Name der zu importierenden Datei inkl. Verzeichnis.
             Befindet sich im Dateinamen ein Sternchen (*), wird ein
             Datei-Auswahldialog mit entsprechendem Filter geöffnet.
             Für das Verzeichnis gelten folgende Platzhalter: 
             %P - Programmverzeichnis
             %D - Datenverzeichnis
             %A - Adressen-Verzeichnis
             %R - Artikelverzeichnis
             %B - Belegeverzeichnis
Trennung     Gibt das Zeichen an, mit dem die Spalten getrennt sind.
Maskierung   Optionales Maskierungszeichen, in das die Inhalte
             eingeschlossen sind.
Startzeile   Zeilennummer der ersten Zeile, die zu verarbeitende Daten
             enthält.
Index        In der Index-Zeile geben Sie an, wie der Primärschlüssel
             der zu importierenden Datensätze ermittelt, bzw. vergeben
             werden soll.
             Der folgende Punkt befasst sich eingehend mit den Möglichkeiten.

Der Primärschlüssel

In der Index-Zeile steht, wie der Primärschlüssel zu ermitteln ist. Er kann neu vergeben, oder aus einer Spalte der Import-Datei extrahiert werden.

n - Neu vergeben (entspricht auch dem Fehlen der Index-Zeile)
N - Neu vergeben und während des Import eine Kopie der importierten
    Datei mit vergebenen Schlüsseln in einer zusätzlichen Spalte
    anlegen. So können Fehler beim Import mittels eines zweiten
    Durchlaufes mit einem angepassten Formular korrigiert werden.

Der Buchstabe 'n' oder 'N' muß ohne Klammern als erstes Zeichen in der Zeile stehen. Wenn die Tabelle, in die Sie importieren, die Primärschlüssel nicht automatisch vergibt, müssen Sie hintern dem n/N einen Anfangswert für den Primärschlüssel angeben. Für jeden neuen Datensatz wird der Schlüssel dann erhöht. Für Artikelnummern können Sie nicht nur Ziffern sondern auch Großbuchstaben verwenden. Diese werden ebenfalls erhöht und übertragen. So folgt z.B. auf B999 die C000 und auf 2Z die 3A. Alle übrigen Zeichen bleiben unverändert und werden beim Übertrag übersprungen. So folgt z.B. auf 1-999 die 2-000, auf 12F#99 die 12G#00. Achten Sie darauf, dass der gewählte Bereich groß genug ist, da keine neuen Stellen hinzugefügt werden. Kann der Wert nicht weiter erhöht werden, da er nur noch aus den Zeichen '9' und 'Z' besteht, bricht der Import ab, d.h. auf 999 folgt nicht 1000! Ebenso bricht der Import ab, wenn einer der Primärschlüssel bereits vergeben ist!

Möchten Sie den Inhalt einer Spalte zur Findung des Primärschlüssels verwenden, so geben Sie zuerst die Nummer der Spalte an. Die erste Spalte hat dabei die Nummer 1 (nicht 0). Ist der Inhalt der Spalte ein Leerstring, wird die entsprechende Zeile der Importdatei übersprungen. Zum Import von Ansprechpartnern und Zusatzadressen muß die Spalte angegeben werden, in der sich die zugehörige Adressnummer befindet und diese Adresse muß existieren.

Der Inhalt der Spalte kann angepasst werden, um z.B. bei Adressen einen bestimmten Nummernkreis vorzugeben, oder bei Artikeln für einen bestimmten Lieferanten eine Kennung einzufügen. Jeder Parameter wird mit einem Semikolon abgetrennt. Die Parameter werden in der Reihenfolge abgearbeitet, in der sie hintereinander stehen.

Mögliche Werte sind:

L<Zeichen><Länge>   - Fügt links <Zeichen> ein, bis <Länge> erreicht,
                      ist der Inhalt länger als <Länge>, wird links
                      gekürzt
R<Zeichen><Länge>   - Hängt rechts <Zeichen> an, bis <Länge> erreicht,
                      ist der Inhalt länger als <Länge>, wird rechts
                      gekürzt
l<Zeichen><Länge>   - Fügt links <Zeichen> ein, bis <Länge> erreicht,
                      ist der Inhalt länger als <Länge>, wird aber
                      NICHT gekürzt
r<Zeichen><Länge>   - Hängt rechts <Zeichen> an, bis <Länge> erreicht,
                      ist der Inhalt länger als <Länge>, wird aber
                      NICHT gekürzt
C<Position>,<Anzahl>- Kopiert ab <Position> <Anzahl> Zeichen aus dem
                      Gesamttext heraus. Die beiden Werte müssen durch 
                      Komma getrennt werden.
K<Zeichen>            Entfernt alle <Zeichen> aus dem Feld. Es können auch
                      mehrere Zeichen angegeben werden, die aber nur entfernt
                      werden, wenn sie in der angegebenen Reihenfolge auftauchen.
                      Bei der Übergabe von nummerischen Werten ist z.B.
                      ein Tausender-Trennpunkt unzulässig.
D<Position>,<Anzahl>- Löscht ab <Position> <Anzahl> Zeichen. Die beiden
                      Werte müssen durch Komma getrennt werden.
                      Wird keine Position angegeben (auch nicht 0),
                      werden <Anzahl> Zeichen vom Ende gelöscht.
U                   - Wandelt alle Kleinbuchstaben in Großbuchstaben um.
F<Text>             - Setzt <Text> voran (in front)
B<Text>             - Hängt <Text> hinten an (behind it)

Außerdem können Sie festlegen, dass entweder nur vorhandene Datensätze aktualisiert werden, oder nicht vorhandene neu angelegt werden. Ist kein Wert angegeben, wird beides durchgeführt.

A - Neue Datensätze anlegen (Append)
E - Vorhandene Datensätze ändern (Edit)

Ist der resultierende Primärschlüssel ein Leerstring, wird die entsprechende Zeile der Importdatei übersprungen.

Beispiele:
==========
2;L05;F1 - Füllt den Inhalt der zweiten Spalte links mit Nullen auf oder
           kürzt diesen auf die Länge von fünf Zeichen und setzt dann
           eine 1 voran.
           So würde aus dem Spalteninhalt "123" der Primärschlüssel
           "100123".
1;FABC;E - Setzt vor den Inhalt der ersten Spalte die Kennung ABC, nur
           vorhandene Datensätze werden geändert

Zuweisung der Spalten im Formular

Im Fomular werden die Spalten der zu importierenden Tabelle durch Bereiche {W} getrennt. In den Zeilen vor dem ersten Bereich können Sie Variablen der zu importierenden Tabelle initialisieren, bevor die erste Spalte verarbeitet wird. Dieser Bereich wird nur bei neuen Datensätzen abgearbeitet. Ist ein Datensatz bereits vorhanden und soll nur z.B. zum Preisupdate geändert werden, wird keine Initialisierung durchgeführt!

Spalten mittels Bereichen verarbeiten

Jeder Bereich kann beliebig viele Zeilen umfassen, in denen der Wert der Spalte verarbeitet und Variablen zugewiesen werden. Über Bedingungen und Berechnungen ist so fast alles möglich.

Folgende Befehle können verwendet werden:

@ - Repräsentiert den Inhalt der Spalte aus der Steuerdatei
# - Ausgabe-Puffer: Dieser ist zu Beginn jeder Spalte leer und
    sammelt alles, was in normalen Formularen zum Drucker ausgegeben
    würde. Soll der Inhalt für eine spätere Spalte gespeichert werden,
    so muß er einer Variablen zugewiesen werden. Variablen werden nur
    zu Beginn jeder Import-Zeile geleert.
$ - Repräsentiert den definierten Primärschlüssel
    Die Zuweisung zum entsprechenden Feld der Tabelle findet bei der
    Anlage von neuen Datensätzen automatisch statt und muß nicht im
    Formular erfolgen.
    Mittels Zusatz N (ganzer Befehl: {$N}) können Sie ermitteln, ob es
    sich um einen neuen Datensatz handelt (Ergebnis=1), oder bereits
    ein Datensatz mit entsprechendem Primärschlüssel existiert (E=0).
Q - Bricht den Import der aktuellen Zeile ab
    Mit Hilfe dieses Befehles können einzelne Zeilen beim Import
    unter bestimmten Bedingungen im Formular übersprungen werden.

Für die Anpassung der Inhalte können die gleichen Parameter verwandt werden, wie für die Definition des Primärschlüssels. Folgende zusätzliche Parameter steuern die Art der Zuweisung:

X - Durch einfache Zuweisung mittels @ und # wird der Feldinhalt nur überschrieben,
    wenn der entsprechende Puffer NICHT LEER ist! Andernfalls bleibt der Inhalt
    des Feldes erhalten. Möchten Sie den Inhalt löschen, wenn z.B. die entsprechende
    Spalte der importierten Datei keinen Inhalt hat, so müssen Sie den Parameter X
    verwenden. Bedenken Sie, dass eine Initialisierung von Feldern zu Begin des
    Imports keinen Sinn ergibt, wenn Sie anschließend deren Inhalt in jedem Fall
    überschreiben.
+ - Mittels + ist es möglich, den Inhalt eines Puffers an ein Feld anzuhängen.
    Bei Memo-Feldern wird zusätzlich ein Zeilenumbruch durchgeführt. So können
    Sie Informationen, für die Sie kein spezielles Datenbankfeld verwenden
    möchten, in einem Memofeld sammeln.

Die Parameter können in beliebiger Reihenfolge durch Semikolon getrennt kombiniert werden.

Bespiele:
=========
Den Inhalt der Spalte dem Datenbankfeld "Name" zuweisen

  {V.Name=@}

Den Inhalt der Spalte dem Datenbankfeld "Telefon1" zuweisen, bzw.
das Feld leeren, wenn die Spalte leer ist.

  {V.Telefon1=@X}

Hat die Spalte einen Inhalt, diesen mit vorangestellter Beschriftung in
den Puffer schreiben und an das Memo "Notizen" anhängen.

  [{@}<>
  Zusatz: {@}{V.Notizen=#+}
  ]

  oder

  {N}Zusatz: {@}{V.Notizen=#+}

Zuerst wird der Text "Zusatz: " in den Puffer geschrieben, dannach der Inhalt
der Spalte. Anschließend wird das Ergebnis an das Datenbankfeld angehängt.

Nur ausführen, wenn es sich um einen neuen Datensatz handelt.

  [{$N}=1
  
  ]

Ist der Inhalt der Spalte leer, dann "D" zuweisen, andernfalls
den Inhalt in Großbuchstaben zuweisen.

  [{@}=
  {V.LandIDa=D}
  |
  {V.LandIDa=@U}
  ]

Möchten Sie einer Variablen als erstes Zeichen tatsächlich eines der
Zeichen @, #, $ oder V zuweisen, so müssen Sie die Zuweisung in Hochkommata
einschließen, da diese reservierten Zeichen den entsprechenden Inhalt
repräsentieren bzw. eine Variablenzuweisung einleiten. Selbiges gilt
für den Operator +.

  {V.Name2='@HOME'}

Oder Sie verwenden den Druckpuffer #

  @HOME{V.Name2=#}

Beides weist dem Feld Name2 den Text "@HOME" zu. Steht das Zeichen nicht
an erster Stelle, kann es ohne Maskierung zugewiesen werden, z.B.

  {V.WaehrungIDa=US$}

Den Inhalt der Spalte als Kennung in den Länderkennungen anlegen (Append),
sofern diese noch nicht vorhanden ist. Alle Felder, für die ein Inhalt
vorgeschrieben ist, werden mit einem "x" vorbelegt. Die entsprechenden
Bezeichnungen können Sie dann nach dem Import händig ergänzen.

  {VA60.@}

Boolsche Variablen können über folgende Werte zugewiesen werden. Groß-/
Kleinschreibung spielt dabei keine Rolle:

Haken gesetzt: true, wahr, ja, 1
Haken nicht gesetzt: false, unwahr, falsch, nein, 0

Zur Zuweisung des Spalteninhaltes an eine Datumsvariable (Vd.0-Vd.9)
müssen @@ verwenden, da das einfach @ das Druckdatum repräsentiert.

  {Vd.0=@@}

Beim Import neuer Adressen wird der Match-Code vor dem Speichern automatisch
generiert, sofern das Feld leer ist und nicht anderweitig zugewiesen wurde.
Aktualisiert man hingegen Adressen über die Import-Funktion und möchte,
dass der Match-Code vor dem Speichern neu ermittelt wird, so muß man an
beliebiger Stelle den Befehl {MC} (Großschreibung beachten) einfügen.

Der Import-Assistent

Den Import-Assistenten erreichen Sie im Formular-Editor über den Menüpunkt Konfiguration / Datenimport-Assistent. Den Formular-Editor widerum erreichen Sie aus dem Hauptfenster von FaktuLux über den Menüpunkt System / Belege/Formulare.

Zuerst müssen Sie über einen Datei-Auswahldialog die Datei angeben, aus der die Datensätze importiert werden sollen. Im anschließenden Dialog werde Dateiname und max. 50 Zeilen des Inhaltes angezeigt.

Trennzeichen

  • Tabulator
  • Semikolon
  • Komma
  • Leerzeichen
  • Anderes:

Wählen Sie, durch welches Zeichen die einzelnen Spalten voneinander getrennt werden.

Maskierungszeichen

  • keine
  • Anführungszeichen (")
  • Hochkomma (')
  • Anderes:

Auch wenn nicht alle Spalten maskiert sind, müssen Sie das Maskierungszeichen hier angeben. Es wird nur entfernt, wenn es am Beginn und am Ende eines Inhaltes steht.

Tabelle & Optionen

Wählen Sie zuerst die Tabelle, in die die Daten importiert werden sollen.

Startzeile wird in der Regel eine der ersten beiden sein. Sind in der ersten Zeile Spaltennamen angegeben, wählen Sie Zeile zwei.

Sollen neue Datensätze importiert werden? Ergibt sich der Index nicht aus einer Spalte, sind alle Datensätze für FaktuLux neu. Es gibt keine Möglichkeit, beim Import bereits vorhandene Datensätze zu erkennen, beispielsweise Adressen anhand von Name und Wohnort.

Sollen vorhandene Datensätze geändert werden? Ist dies der Fall, muss sich der Index zum Zugriff auf die Datensätze in einer Spalte befinden, bzw. sich aus dem Inhalt einer Spalte konstruieren lassen.

Index

Zuletzt wählen Sie, wie der Primärschlüssel eines jeden Datensatzes ermittelt wird. In der Regel haben Adressen bereits eine Nummer. Diese kann aber auch ein Debitoren- oder Kreditorenkonto sein. Möchten Sie diese nicht auch als Adressnummer verwenden, können Sie Neu zuweisen wählen und die Kontonummer dem entsprechenden Feld zuweisen. Bei Neu mit Protokolldatei wird während des Imports eine Kopie der Importdatei angelegt und die neu vergebene Nummer als eigene Spalte an jede Zeile angehangen. Diese neue Datei ist hilfreich, wenn Sie beim Import Felder falsch oder gar nicht zugewiesen haben und Sie die importierten Adressen durch einen erneuten Import überarbeiten wollen.

Möchten Sie beim Import von Artikeln den Inhalt einer Spalte anpassen, bevor Sie ihn als Artikelnummer verwenden, wählen Sie hier die Spalte aus und passen anschließend das vom Assistenten erzeugte Formular an. Wie Sie dabei den Primärschlüssel manipulieren, steht weiter oben.

Beim Import von Ansprechpartnern und Zusatzadressen muss der Primärschlüssel der zugehörigen Adresse in einer Spalte der Importdatei hinterlegt sein.