Versionen im Vergleich

Schlüssel

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

Das MT940DATEV-Nuclet bietet die Möglichkeit

  • elektronische Kontoauszüge, die im MT940-Format vorliegen, automatisiert einzulesen

  • die eingelesenen Daten in eine Struktur von Nuclos-Businessobjekten zu übertragen

  • die Bankumsätze anhand des Verwendungszwecks automatisch andere Businessobjekte ("Referenzen", das sind je nach Anwendungszweck bspw. Ihren Rechnungen) zuzuorden

, CSV-Importe zur Weiterverarbeitung in DATEV durchzuführen.

Das Nuclet sieht drei Arten von DATEV-Exporten vor (Kundenexporte, Rechnungsexporte und Umsatzexporte), kann jedoch leicht für weitere Exportarten angepasst werdenFür die den Bankumsätzen zugeordneten Objekten (Rechnungen, o.ä.) wird bei Zahlungseingang automatisiert ein Statuswechsel durchgeführt (bspw. von "offen" nach "bezahlt").

Mehr zu Funktionsumfang und implementierten Abläufen dieses Nuclets finden Sie im Abschnitt "2 Funktion".


Nuclet-Bestandteile

Das MT940DATEV-Nuclet umfasst im Rahmen der .nuclet-Datei

  • sieben neun Businessobjekte (für Kontoauszüge, Bankumsätze und diverse Stammdaten),

  • sechs acht Layouts,

  • ein Statusmodell (für Bankumsätze),die DATEV-Exporte),

  • eine Attributgruppe,
  • drei Report-Datenquellenzwei Attributgruppen,
  • diverse Java-Regeln (verteilt auf Packages),

  • drei acht Nuclet-Parameter,
  • eine drei Jobsteuerung (zur Steuerung des der Import-Jobs),

  • drei vier Strukturdefinitionen (für den Import von Stammdaten) und

  • zwei eine Nuclet-AbhängigkeitenAbhängigkeit.

Darüberhinaus werden in der ZIP-Datei folgende Komponenten mitgeliefert:

  • drei vier CSV-Dateien für Objektimporte sowiezwei MT940-Beispieldateien mit Kontauszügen.


  Banking Business Line „Banking Business Line“Debit/Credit Mark „Debit/Credit Mark“org.nuclet.mt940.parserMT940 Import MT940ImportBanking Business Line „Banking Business Line“DebitCredit_Mark „Debit/Credit Mark“

Typ

Name, englisch

Name, deutsch

Kurzbeschreibung

Businessobjekt

Bank Statement

Kontoauszug

DATEV AccountDATEV-Kontorepräsentiert ein Konto im DATEV-Kontenrahmen
 

Bank Transaction

Bankumsatz

DATEV Account ClassDATEV-Kontenklasserepräsentiert eine Klasse des DATEV-Kontenrahmens
 

Bank Transaction Type

Bankgeschäftsvorfall

 

 

Banking Business Line

Bankgeschäftssparte

 

 

Debit/Credit Mark

Soll-Haben-Kennung

 

 

MT940 Reference

MT940-Referenz

 

 

Bank Transaction Ref

Referenz-2-Bankumsatz

 

DATEV Account TypeDATEV-Kontentyprepräsentiert ein Kontentyp des DATEV-Kontenrahmens
 DATEV ExportDATEV-Exportsteuert und repräsentiert jeweils einen DATEV-Export

 

DATEV Export Type

DATEV-Exportart

z.B. "Kundenexport", "Rechnungsexport", "Umsatzexport"

 

DATEV Information

DATEV-Information

Informationsprotokoll für DATEV-Exporte

 

Field Separator

Feldtrennzeichen

Feld- bzw. Spaltentrennzeichen für die CSV-Importe

 File EncodingZeichensatzDateizeichensatz, z.B. "ISO-8859-1", "UTF-8"

 

Text Separator

Texttrennzeichen

Texttrennzeichen für die CSV-Importe

Layout

DATEV Account

Layout

Bank Statement

 

Layout für Businessobjekt „Bank Statement“„DATEV Account“

 Bank Transaction, SINGLE

DATEV Account Class

 

Layout für Businessobjekt „Bank Transaction“„DATEV Account Class“

 Bank Transaction, MULTIPLEDATEV Account Type 

alternatives Layout für das Businessobjekt „Bank Transaction“ mit Mehfachbezug"DATEV Account Type“

 

DATEV Export

 

Layout für Businessobjekt „DATEV Export“

 

Bank Transaction DATEV Export Type

 

Layout für Businessobjekt „Bank Transaction Type“„DATEV Export Type“

 

Field Separator

 

Layout für Businessobjekt „Field Separator“

 File Encoding Layout für Businessobjekt „File Encoding“
 Text Separator Layout für Businessobjekt „Text Separator“

StatusmodellBank

TransactionDATEV Export

 

Statusmodell für das Businessobjekt „Bank Transaction“„DATEV Export“

AttributgruppeBank Transaction Data 

Bankumsatz- und Kontoauszugsdaten

DATEV Export 


Report & FormularDATEV Client Billing Vorlage für Rechnungsexporte
 DATEV Clients Vorlage für Kundenexporte
 DATEV Turnover Vorlage für Umsatzexporte Bank Transaction References den Bankumsätzen zugeordnete Refererenzen

Java-Package

org.nuclet.mt940datev.facadedb

 

Klassen für Datenbankzugriffe, d.h. für die Ausführung der Report-Datenquellen

 org.nuclet.mt940datev.job 

Java-Regeln zur Steuerung von Jobs („Jobsteuerung“)

 

org.nuclet.mt940datev.logic

 

Geschäftslogik

ParameterDATEV File Directory legt das Ausgangsverzeichnis der CSV-Exportdateien fest
 DATEV File Encoding 

MT940-Parserfunktionalität

 

org.nuclet.mt940.rule

 

Steuerung von Insert-/Update-/Delete-Events

 org.nuclet.mt940.statemodel Definition von Statuswechseln (als Nuclet-Schnittstelle)
 

org.nuclet.mt940.wrapper

 

Wrapper-Klassen (als Nuclet-Schnittstelle)

ParameterMT940 File Directory legt das Eingangsverzeichnis der MT940-Dateien fest
 MT940 File Encoding bestimmt den Zeichensatz, der in den MT940-Dateien genutzt wird
 MT940 File Extension definiert die Dateinamenerweiterung der MT940-Dateien
bestimmt den Zeichensatz, der in den CSV-Exportdateien genutzt wird
 DATEV Header Row legt fest, ob eine Titelzeile in den Exportdateien erscheinen soll
 DATEV Field Separator bestimmt das Standard-Feldtrennzeichen
 DATEV Text Separator bestimmt das Standard-Texttrennzeichen
 DATEV Client Billing Export Prefix legt den Namensrumpf für DATEV-Rechnungsexporte fest
 DATEV Client Export Prefix legt den Namensrumpf für DATEV-Kundenexporte fest
 DATEV Turnover Export Prefix legt den Namensrumpf für DATEV-Umsatzexporte fest

Jobsteuerung

DATEV Client Billing Export

 

Fristenjob für den automatisierten DATEV-Rechnungsexport

 DATEV Client Export Fristenjob für den automatisierten DATEV-Kundenexport
 DATEV Turnover Export

Jobsteuerung

 Fristenjob für den automatisierten DATEV-Umsatzexport

Strukturdefinition

Bank Transaction DATEV Export Type

 

Importstruktur für Businessobjekt „Bank Transaction Type“„DATEV Export Type“

 

Field Separator

 

Importstruktur für Businessobjekt „Field Separator“

 File Encoding Importstruktur für Businessobjekt „File Encoding“

 Debit

/Credit MarkText Separator

 

Importstruktur für Businessobjekt „Debit/Credit Mark“„Text Separator“

Nuclet-Abhängigkeit

org.nuclet.Common

 

allgemeine Helferfunktionalität

Objektimporte

BankingDATEV_BusinessExport_LineType.csv

 

Stammdatensätze für Businessobjekt „Banking Business Line“„DATEV Export Type“

 

BankField_Transaction_TypeSeparator.csv

 

Stammdatensätze für Businessobjekt „Bank Transaction Type“„Field Separator“

 File_Encoding.csv Stammdatensätze für Businessobjekt

Beispieldateien

Kontoauszug_001.sta

 

MT940-Importbeispiel

„File Encoding“

 

Text_Separator.csv

 

Stammdatensätze für Businessobjekt „Text Separator“

 

Kontoauszug_002.sta

 

MT940-Importbeispiel

Tabelle 1: Nuclet-Bestandteile

...

 

Hinweis

Achtung: Bitte beachten Sie, dass durch die Nuclet-Abhängigkeit zu  org.nuclet.Common  bei einer Integration des Nuclets weitere Komponenten ins System importiert werden, die hier nicht im einzelnen aufgeführt werden. Details zu den Bestandteilen des  Common-Nuclets finden Sie in der Dokumentation dieses Nuclets.

 


 

Java-Package-Struktur

Die Java-Regeln sind in sieben drei Packages unterteilt:

  • Regeln für maskengesteuerte Events (org.nuclet.mt940.rule)Regeln zur Steuerung von System-Jobs (org.nuclet.mt940datev.job)

  • Regeln für die Geschäftslogik (org.nuclet.mt940datev.logic)

  • Regeln zum Einlesen und Verarbeiten von MT940-Dateien (org.nuclet.mt940.parser)

  • unterstützende Regeln für Datenbankzugriffe (org.nuclet.mt940.facade)Wrapper-Klassen als Nuclet-Schnittstelle über Report-Datenquellen (org.nuclet.mt940datev.wrapperdb)
  • Statuswechsel-Definitionen als Nuclet-Schnittstelle (org.nuclet.mt940.statemodel)

Die wesentlichen Abhängigkeiten der Packages sind in der folgenden Abbildung veranschaulicht. Die Abbildung beschränkt sich auf diejenigen Hauptpakete, die der Prozessteuerung dienen.

 

Image Removed

 


In dreien dieser vier Java-Packages Bei der Geschäftslogik stellt eine abstrakte Java-Klasse (AbstractDATEVLogic) die Basisfunktionalität über die deklarierten und (größtenteils) definierten Methoden. Die ImportExport-Prozesse sind entlang der vordeklarierten Methoden dieser abstrakten Klassen Klasse festgelegt und bedürfen für den normalen Anwendungsfall keiner weiteren Anpassung. Ergänzungen sind in konkreten Ausprägungen dieser Klasse zulässig (z.B. in der mitgelieferten Klasse DATEVLogic oder einer eigenen Implementierung).

Die Klassen in In den Paketen für Datenbankzugriffe (org.nuclet.mt940datev.facadedb) und Wrapper-Klassen für die Jobsteuerung (org.nuclet.mt940datev.wrapperjob) sind ebenfalls abstrakte Klassen definiert, deren konkrete Ausprägungen anwendungsspezifisch zu implementieren sind. Konkret bedeutet dies an dieser Stelle, Schnittstellen zum Zielnuclet herzustellen und anwendungsspezifisches Verhalten festzulegen (und zwar für Währung, Zahlungsbedingungen und Referenzen)derartig implementiert, dass sie im Normalfall keinerlei Anpassung bedürfen.

 

mt940parserAbstractMT940ParserMT940Parser
  • MT940SparkasseParser
  • -mt940facade

    Java-Package

    abstrakte Klassen

    konkrete Implementierungen

    org.nucket.mt940datev.jobdb

    AbstractMT940Importer 

    MT940Importer

    org.nuclet.mt940.logic

    AbstractMT940Logic

    • DATEVDatasourceExecutor
    • DATEVResultList
    MT940Logic
    org.nuclet.datev.job 
    • CreateDATEVClientBillingExport

    org.nuclet.mt940.rule

    -

    • CreateDATEVClientExport
    • CreateDATEVTurnoverExport

    org.nuclet.

    datev.

    logic

    • AbstractCurrencyFacade
    • AbstractReferenceFacade
    • CurrencyFacade
    • ReferenceFacade
    org.nuclet.mt940.wrapper
    • AbstractConditionsOfPaymentWrapper
    • AbstractCurrencyWrapper
    • AbstractReferenceWrapper
    • ConditionsOfPaymentWrapper
    • CurrencyWrapper
    • ReferenceWrapper
    org.nuclet.mt940.statemodel- 

    AbstractDATEVLogic

    DATEVLogic

    Tabelle 2: Java-Package-Struktur

    ...

    Anwendungsspezifische Anpassungen sollten --wie zuvor erwähnt-- nur umgesetzt werden, entweder

    • in den konkreten, bereits vorhandenen, Klassen (siehe Tabelle) oder

    • durch neue, eigene konkrete Implementierungen

    Das Package org.nuclet.mt940.parser enthält die Klasse MT940SparkasseParser, die bereits dezidiertes Verhalten für von Sparkassen gelieferte MT940-Dateien zur Verfügung stellt. Die zweite konkrete Implementierung innerhalb dieses Packages ist die Klasse MT940Parser, die über die Basisfunktionalität des AbstractMT940Parser hinaus kein zusätzliches Verhalten mitbringt. Für MT940-Dateien, die von anderen Kreditinstituten erstellt werden, müsste die Klasse MT940Parser (oder eine eigene, konkrete Implementierung des AbstractMT940Parser) ggf. mit bankspezifischem Verhalten gefüllt werden.

    Das MT940-Nuclet ist zur Zeit derart konfiguriert, dass das sparkassenspezifische Verhalten genutzt wird. Die Initialisierung des Parsers erfolgt im Konstruktur der Klasse org.nuclet.mt940.job.MT940Importer und könnte dort jederzeit auf ein anderes Verhalten, d.h. eine eigene Implementierung umdirgiert werden.

     

    org.nuclet.mt940.job.MT940Importer

     

    public MT940Importer(final JobContext context,
        final String strMT940Directory,
        final String strMT940ReferenceType)
    {
     
        super(context, strMT940Directory, strMT940ReferenceType);
     
        // @replace!
        //
        // Replace with your own logic and/or your own parser here, if you
        // need more specific behaviour.
        //
        this.logic = new MT940Logic(context, strMT940ReferenceType);
     
        this.parser = new MT940SparkasseParser(context);
     
    }

     

    ...

    Der Java-Sourcecode ist mit @replace!-Tags an all jenen Stellen markiert, wo anwendungsspezifisches Verhalten hinzugefügt werden kann. Dazu mehr im Abschnitt "4 Integration".

    ...