Bankdefinition DKB

Kommentare

6 Kommentare

  • Avatar
    Stefano Kowalke (Bearbeitet )

    Moin Marc Funk,

    Edit: falsche Erklärung gelöscht.

    Schau Dir mal meine Importdefinition an:
    https://github.com/Konafets/mo-bank-import-definitions/blob/main/GLS-Gemeinschaftsbank.txt

    Um zu steuern, dass Aktionen nur beim ersten Durchlauf ausgeführt werden, habe ich eine selbst definierte Variable genommen.

    Zumal habe ich dort alle Spalten einmal in Variablen gespeichert, damit wird das weitere Script etwas übersichtlicher und besser lesbarer.

    0
    Aktionen für Kommentare Permalink
  • Avatar
    Marc Funk

    Ich bastle grad die Definition - jedoch verstehe ich nicht ganz diesen Befehl:

    if ( zeile < 14 )
        set Vorlage_Zeile_OK to FALSE
        exit
    endif

    Wo kommt die 14 her? Eigentlich heißt es doch, wenn die CSV weniger als 14 Zeilen besitzt, soll er auf FALSE setzen oder?

    0
    Aktionen für Kommentare Permalink
  • Avatar
    Marc Funk

    Folgende Definition habe ich erstellt - jetzt hab ich nach dem Import nur noch 6 Zeilen...

    ' ---------------------------------------------------------------------------------
    '    Importdefinition für DKB-Bank-Umsatzdateien
    '    Importeinstellungen:
    '    Quelle                     : Textdatei (*)
    '    Trennzeichen für Felder    : Semikolon
    '    Trennzeichen für Datensätze: LF
    '    Zeichensatz für            : IsoLatin1 (Windows)
    '    Text in Anführungszeichen  : Doppelt "
    ' ---------------------------------------------------------------------------------

    ' Aktionen nur im ersten Durchlauf ausführen: Variablen deklarieren
    if ( NOT HasVariable("valid") )
        dim valid as boolean
        dim zeile as number
        dim buchungsdatum as text
        dim valuta as text
        dim empfaenger as text
        dim sender as text
        dim buchungstext as text
        dim betrag as number
        dim iban as text
    endif

    ' Die Umsatzdaten beginnen erst ab Zeile 8, die Zeilen davor verwerfen
    set zeile to zeile + 7

    ' Zeilen ohne Valuta und ohne Sender werden nicht
    if (Spalte_002 = "" AND Spalte_004 = "")
        set Vorlage_Zeile_OK to FALSE
        exit
    endif

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

    ' ---------------------------------------------------------------------------------
    ' Die Spalten den Variablen zuordnen
    ' ---------------------------------------------------------------------------------

    set buchungsdatum to Spalte_001
    set valuta to Spalte_002
    set empfaenger to Spalte_004
    set sender to Spalte_004
    set buchungstext to Spalte_005
    set betrag to FTextToNumber(Spalte_008)
    set iban to Spalte_006


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

    ' Datum
    set Vorlage_Datum to TextToDate(valuta)

    ' Text
    set Vorlage_Text to buchungstext

    ' Betrag (Vorzeichen umwandeln)
    set Vorlage_Betrag to betrag

    ' Notizen
    set Vorlage_Notizen to sender

    ' Referenz
    set Vorlage_Referenz to iban

    ' Nummernkreis
    set Vorlage_Nummernkreis to "Standard"

    ' ---------------------------------------------------------------------------------
    ' Optional: Belegvervollständigung
    ' ---------------------------------------------------------------------------------

    ' Debitoren-/Kreditorenkonto bei gefundenem OP zuweisen
    set Vorlage_Konto to GetKontoDebitor(Vorlage_Text, Vorlage_Betrag)
    set Vorlage_Konto to IfThen(Vorlage_Konto = "", GetKontoKreditor(Vorlage_Text, Vorlage_Betrag), Vorlage_Konto)

    0
    Aktionen für Kommentare Permalink
  • Avatar
    Stefano Kowalke (Bearbeitet )

    Moin Marc Funk,

    ich habe gerade diese Importdefinition erstellt:

    https://gist.github.com/Konafets/0cda830499f4262b3b2bd8d48e548932


    Meine Erklärung von oben habe ich gelöscht, da sie fehlerhaft war.

    Man muss sich das Skript als Automaten vorstellen, welcher zeilen-basiert operiert. Er kann jedoch nicht von alleine die Zeilen durchlaufen, sondern man muss ihm mittels `set zeile to zeile + 1` mitteilen, dass auf der nächsten Zeile operieren soll.

    Das von Dir genannte Snippet mit der 14 bzw. in meinem Gist mit der 8 sorgt dafür, dass der Import erst ab der gewünschten Zeile beginnt.

    set zeile to zeile + 1 ' Springe in die nächste Zeile
    if ( zeile < 8 ) ' Überprüfe ob die Zeile kleiner 8 ist
      set Vorlage_Zeile_OK to FALSE ' Verwerfe die aktuelle Zeile
      exit ' Starte das Skript neu
    endif
    0
    Aktionen für Kommentare Permalink
  • Avatar
    Marc Funk

    Hallo Stefano Kowalke!

    Danke für die Definition. Ich habe nur noch den Buchungstext angepasst, da dieser in einer anderen Zeile steht. Kannst du bei Github die Definition mit einfügen? Hier der komplett fertige Code:

    ' ---------------------------------------------------------------------------------
    '    Importdefinition für DKB-Umsatzdateien
    '    Importeinstellungen:
    '    Quelle                     : Textdatei (*)
    '    Trennzeichen für Felder    : Semikolon
    '    Trennzeichen für Datensätze: LF
    '    Zeichensatz für            : UTF8
    '    Text in Anführungszeichen  : "
    ' ---------------------------------------------------------------------------------

    ' Aktionen nur im ersten Durchlauf ausführen: Variablen deklarieren
    if ( NOT HasVariable("zeile") )
        dim zeile as number
        dim buchungsdatum as text
        dim valuta as text
        dim empfaenger as text
        dim sender as text
        dim buchungstext as text
        dim verwendungszweck as text
        dim betrag as number
        dim iban as text
        dim blz as text
        dim kundenref as text
    endif

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

    ' Abbrechen, wenn nicht mindestens 11 Felder in Importdatei vorhanden sind
    if ( NOT HasVariable("Spalte_011") )
        beep
        msgBox("Fehler beim Lesen der DKB-Exportatei (Ungültiges Datensatzformat)!")
        set Vorlage_Import_OK to FALSE
        exit
    endif

    ' ---------------------------------------------------------------------------------
    ' Die Spalten den Variablen zuordnen
    ' ---------------------------------------------------------------------------------
    set buchungsdatum to Spalte_001
    set valuta to Spalte_002
    set buchungstext to Spalte_005
    set empfaenger to Spalte_004
    set verwendungszweck to Spalte_005
    set iban to Spalte_006
    set blz to Spalte_007
    set betrag to FTextToNumber(Spalte_008)
    set kundenref to Spalte_011


    ' Datum (Wertstellungdatum verwenden)
    set Vorlage_Datum to TextToDate(valuta)

    ' Text
    if ( buchungstext <> "" )
        set Vorlage_Text to buchungstext
    endif

    ' Text
    if ( kundenref <> "" )
        set Vorlage_Referenz to kundenref
    endif

    if ( empfaenger <> "" )
        set Vorlage_Notizen to empfaenger + " " + verwendungszweck
    endif

    ' Betrag
    set Vorlage_Betrag to betrag

    ' Nummernkreis
    set Vorlage_Nummernkreis to "Standard"

    ' ---------------------------------------------------------------------------------
    ' Optional: Belegvervollständigung
    ' ---------------------------------------------------------------------------------

    ' Debitoren-/Kreditorenkonto bei gefundenem OP zuweisen
    set Vorlage_Konto to GetKontoDebitor(Vorlage_Text, Vorlage_Betrag)
    set Vorlage_Konto to IfThen(Vorlage_Konto = "", GetKontoKreditor(Vorlage_Text, Vorlage_Betrag), Vorlage_Konto)

     

    0
    Aktionen für Kommentare Permalink
  • Avatar
    Stefano Kowalke

    Moin Marc Funk,

    ich habe die Definition gerade in das Repository aufgenommen. Danke für die Bereitstellung und Dein OK für die Veröffentlichung.

    Beste Grüße
    Stefano

    0
    Aktionen für Kommentare Permalink

Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.