Start >

Importskript anpassen

Nachfolgend wird das Importskript erläutert, damit Sie die für Ihren Anwendungsfall erforderlichen Änderungen vornehmen können.

Grundlegende Informationen zur Skriptsprache sowie eine entsprechende Referenz finden Sie im Handbuch Sprachreferenz.

Variablen definieren

Im ersten Schritt deklarieren wir die benötigten Variablen. Dies darf nur beim ersten Durchlauf des Skripts geschehen und erfolgt daher über die Abfrage, ob eine der betreffenden Variablen bereits deklariert ist oder nicht. Die Variable vz dient der Ermittlung des Vorzeichens für den Buchungsbetrag und die Variable valid zur Kennzeichnung einer gültigen Buchung.

' Aktionen nur im ersten Durchlauf ausführen: Variablen deklarieren
if ( NOT HasVariable("valid") )
dim valid as boolean
dim vz as number
endif

Beginn der Importdaten festlegen

Die Umsatzdaten in einem Kontoauszug beginnen üblicherweise nicht bereits in der ersten Zeile. Deshalb legen wir als Nächstes fest, ab welcher Zeile der Importdatei die Daten importiert werden sollen.

' Die Umsatzdaten beginnen erst ab Zeile 6, die Zeilen davor verwerfen
set zeile to zeile + 1
if ( zeile < 6 )
set Vorlage_Zeile_OK to FALSE
exit
endif

Plausibilitätsprüfung einfügen

Beim Analysieren der Exportdatei haben wir festgestellt, dass wir auf Daten bis zur Spalte 15 (Wertstellungsdatum) zugreifen müssen. Das bedeutet, eine Datei mit weniger Spalten kann nicht korrekt verarbeitet werden, und der Importvorgang soll in diesem Fall abgebrochen werden.

Deshalb fügen wir eine Plausibilitätsprüfung in das Importskript ein:

' Abbrechen, wenn nicht mindestens 15 Felder in Importdatei vorhanden sind
if ( NOT HasVariable("Spalte_015") )
beep
msgBox("Fehler beim Lesen der Bank X-Exportdatei (Ungültiges Datensatzformat)!")
set Vorlage_Import_OK to FALSE
exit
endif

Innerhalb des Importskripts können Sie auf die Felder der Importdatei über den Bezeichner Spalte_xxx zugreifen, wobei xxx durch die Spaltennummer inkl. der führenden Null(en) ersetzt wird. Es stehen so viele Spalten zur Verfügung, wie in der Exportdatei vorhanden sind. Der Test HasVariable("Spalte_015") wird also fehlschlagen (FALSE), wenn weniger als 15 Spalten vorhanden sind.

Mit msgBox("...") legen Sie die Fehlermeldung fest, die angezeigt werden soll, wenn die zu importierende Datei weniger Spalten enthält, als erforderlich (in unserem Beispiel weniger als 15 Spalten).

Nach der Fehlermeldung müssen Sie noch festlegen, dass der Importvorgang komplett abgebrochen werden soll:
Setzen Sie dazu die Variable Vorlage_Import_OK auf FALSE und verlassen Sie das Skript mit exit. (Wenn Sie nur exit verwenden, ohne die Statusvariable auf FALSE zu setzen, dann wird das Skript mit der nächsten Importzeile fortgesetzt.)

Vorzeichen des Betrags ermitteln

Nun müssen wir das Vorzeichen des Betrags ermitteln: Ist das eigene Bankkonto (wird über die Konstante BANKKONTO_BEZEICHNUNG übergeben) das Quellkonto (Spalte 1), dann ist die Buchung eine Ausgabe, andernfalls eine Einnahme.

' Vorzeichen des Buchungsbetrags ermitteln
if ( Spalte_001 = BANKKONTO_BEZEICHNUNG AND Spalte_002 <> BANKKONTO_BEZEICHNUNG )
set vz to -1
set valid to TRUE
elseif ( Spalte_002 = BANKKONTO_BEZEICHNUNG AND Spalte_001 <> BANKKONTO_BEZEICHNUNG )
set vz to 1
set valid to TRUE
endif

if ( NOT valid )
beep
msgBox("Fehler beim Lesen der Bank X-Datei (Das Bankkonto '" + BANKKONTO_BEZEICHNUNG + "'
wurde nicht gefunden)!")
set Vorlage_Import_OK to FALSE
exit
endif

Datenfelder zuordnen

Jetzt können wir die Importfelder den Feldern der Buchungsvorlage zuordnen. Beim Betrag wird das ermittelte Vorzeichen berücksichtigt, beim Datum wird ein möglicherweise vorhandenes Wertstellungsdatum vorrangig vor dem Buchungsdatum verwendet. Weitere Informationen dazu finden Sie unter dem Thema Datenfelder zuordnen.

' ---------------------------------------------------------------------------------
' Importfelder den Datenfeldern zuordnen
' ---------------------------------------------------------------------------------

' Betrag (Vorzeichen umwandeln)
set Vorlage_Betrag to FTextToNumber(Spalte_003) * vz

' Text
set Vorlage_Text to Spalte_004

' Datum
if ( Spalte_015 = "" )
' Buchungsdatum verwenden
set Vorlage_Datum to TextToDate(Spalte_008)
else
' Wertstellungdatum verwenden
set Vorlage_Datum to TextToDate(Spalte_015)
endif

' Notizen
set Vorlage_Notizen to Spalte_007

An dieser Stelle kann die Importdefinition gesichert werden und ist vollständig arbeitsfähig. Es werden der Buchungsvorlage alle wichtigen in der Importdatei vorhandenen Daten zugeordnet.

Optional können Sie dem Skript weitere Befehle zur automatischen Belegvervollständigung hinzufügen.

Nächster Schritt: