Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.
1.1 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-Exporte zur Weiterverarbeitung in DATEV auszufü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 DATEV: Funktion".

 
1.2 Nuclet-Bestandteile

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

  • sieben Businessobjekte (für Kontoauszüge, Bankumsätze und diverse Stammdaten),DATEV-Exporte und zugehörige Stammdaten, inkl. DATEV-Kontenrahmen),

  • drei Aktionen (für die einzelnen Exporttypen)
  • neun sechs Layouts,

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

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

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

  • drei zwei 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 zwei CSV-Dateien für Objektimporte sowiezwei MT940-Beispieldateien mit Kontauszügen..

 

Typ

Name, englisch

Name, deutsch

Kurzbeschreibung

Businessobjekt

Bank Statement

Kontoauszug

 

 

Bank Transaction

Bankumsatz

 

 

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

 

Layout

Bank Statement

 

Layout für Businessobjekt „Bank Statement“

 

Bank Transaction, SINGLE

 

Layout für Businessobjekt „Bank Transaction“

 Bank Transaction, MULTIPLE 

alternatives Layout für das Businessobjekt „Bank Transaction“ mit Mehfachbezug

 

Bank Transaction Type

 

Layout für Businessobjekt „Bank Transaction Type“

 

Banking Business Line

 

Layout für Businessobjekt „Banking Business Line“

 

Debit/Credit Mark

 

Layout für Businessobjekt „Debit/Credit Mark“

Statusmodell

Bank Transaction

 

Statusmodell für das Businessobjekt „Bank Transaction“

AttributgruppeBank Transaction Data 

Bankumsatz- und Kontoauszugsdaten

 Bank Transaction References den Bankumsätzen zugeordnete Refererenzen
DATEV AccountDATEV-Kontorepräsentiert ein Konto im DATEV-Kontenrahmen

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

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 File Encoding

DATEV-Zeichensatz

Dateizeichensatz, z.B. "ISO-8859-1", "UTF-8"


DATEV InformationDATEV-InformationInformationsprotokoll für DATEV-Exporte
AktionDATEV Client Billing Export
für Rechnungsexporte

DATEV Client Export
für Kundenexporte

DATEV Turnover Export
für Umsatzexporte

Layout

DATEV Account


Layout für Businessobjekt „DATEV Account“


DATEV Account Class


Layout für Businessobjekt „DATEV Account Class“


DATEV Account Type

Layout für das Businessobjekt "DATEV Account Type“


DATEV Client Billing Export


Layout für Businessobjekt „DATEV Export“, Exporttyp: Kundenrechnungen


DATEV Client Export
Layout für Businessobjekt „DATEV Export“, Exporttyp: Kunden

DATEV Export
allgemeines Layout für Businessobjekt „DATEV Export“


DATEV Export Type


Layout für Businessobjekt „DATEV Export Type“


DATEV File Encoding
Layout für Businessobjekt „DATEV File Encoding“

DATEV Turnover Export
Layout für Businessobjekt „DATEV Export“, Exporttyp: Umsätze

Statusmodell

DATEV Export


Statusmodell für das Businessobjekt „DATEV Export“

AttributgruppeDATEV Export

 

Report & FormularDATEV Client Billing Export
Vorlage für Rechnungsexporte

DATEV Client Export
Vorlage für Kundenexporte

DATEV Turnover Export
Vorlage für Umsatzexporte
Dynamische BusinessobjekteDATEV Client Billing References
alle Referenzen, bezogen auf einen Rechnungsexport

DATEV Client References
alle Referenzen, bezogen auf einen Kundenexport

DATEV Turnover References
alle Referenzen, bezogen auf einen Umsatzexport

Java-Package

org.nuclet.

mt940

datev.

facade 

db


Klassen für Datenbankzugriffe

 

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


org.nuclet.
mt940
datev.job
 

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

 


org.nuclet.

mt940

datev.logic

 


Geschäftslogik

 


org.nuclet.
mt940.parser

 

MT940-Parserfunktionalität

 

org.nuclet.mt940
datev.rule
 

Steuerung von Insert-/Update-/Delete-Events
 

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

org.nuclet.mt940.wrapper

 
datev.wrapper
Wrapper-Klassen
(
als Nuclet-Schnittstelle
)
Parameter
MT940
DATEV File Directory
 

legt das
Eingangsverzeichnis
Ausgangsverzeichnis der
MT940
CSV-
Dateien  
Exportdateien fest
 MT940 File Encoding

DATEV File Encoding
bestimmt den Zeichensatz, der in den
MT940
CSV-
Dateien
Exportdateien genutzt wird
 MT940 File Extension definiert die Dateinamenerweiterung der MT940-Dateien

Jobsteuerung

MT940 Import


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

MT940

DATEV-

Import

Rechnungsexport

Strukturdefinition

Bank Transaction Type

 

Importstruktur für Businessobjekt „Bank Transaction Type“

 

Banking Business Line

 

Importstruktur für Businessobjekt „Banking Business Line“

 

Debit/Credit Mark

 

Importstruktur für Businessobjekt „Debit/Credit Mark“

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

DATEV Turnover Export
Fristenjob für den automatisierten DATEV-Umsatzexport

Strukturdefinition

DATEV Export Type


Importstruktur für Businessobjekt „DATEV Export Type“


DATEV File Encoding
Importstruktur für Businessobjekt „DATEV File Encoding“

Nuclet-Abhängigkeit

org.nuclet.Common

 

 

Bank_Transaction


allgemeine Helferfunktionalität

Objektimporte

Banking_Business_Line.csv

 

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

DATEV_Export_Type.csv

 


Stammdatensätze für Businessobjekt

„Bank Transaction

„DATEV Export Type“

 

Debit

DATEV_
Credit
File_
Mark
Encoding.csv
 

Stammdatensätze für Businessobjekt
„Debit/Credit Mark“

Beispieldateien

Kontoauszug_001.sta

 

MT940-Importbeispiel

 

Kontoauszug_002.sta

 

MT940-Importbeispiel
„DATEV File Encoding“

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 zur Steuerung von Insert-, Update-, Delete-Events und Statuswechsel
  • Regeln für die Geschäftslogik (org.nuclet.mt940datev.logic)

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

  • Regeln für Datenbankzugriffe unterstützende Regeln für Datenbankzugriffe über Report-Datenquellen (org.nuclet.mt940datev.facadedb)
  • Wrapper-Klassen als Nuclet-Schnittstelle für Businessobjekte (org.nuclet.mt940datev.wrapper)
  • 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.


Java-Package

abstrakte Klassen

konkrete Implementierungen

sonstige Klassen

org.nucket.

mt940

datev.

job

db

AbstractMT940Importer


  • DATEVDatasourceExecutor
MT940Importer
  • DATEVResultList

org.nuclet.
mt940.logic

AbstractMT940Logic

MT940Logic
datev.jobAbstractCreateDATEVExport
  • CreateDATEVClientBillingExport
  • CreateDATEVClientExport
  • CreateDATEVTurnoverExport

org.nuclet.

mt940

datev.

parser

logic

AbstractMT940Parser

AbstractDATEVLogic

MT940Parser
  • DATEVLogic
MT940SparkasseParser
  • ExportType
org.nuclet.
mt940
datev.rule
-

  • ExecuteDATEVExport

-

org.nuclet.mt940.facade
  • AbstractCurrencyFacade
  • AbstractReferenceFacade
  • CurrencyFacade
  • ReferenceFacade
    • ExecuteDATEVExportAndProcessReferences
    • InitialiseDATEVExport
    • ValidateDATEVExport

    org.nuclet.
    mt940
    datev.wrapper
    AbstractConditionsOfPaymentWrapper
  • AbstractCurrencyWrapper
  • AbstractReferenceWrapper
  • ConditionsOfPaymentWrapper
  • CurrencyWrapper
    • ReferenceWrapper
    org.nuclet.mt940.statemodel
    - 

    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 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 in Abschnitt " 4 Integration".