Seitenhistorie
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“
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“
Bankumsatz- und Kontoauszugsdaten
DATEV Account | DATEV-Konto | repräsentiert ein Konto im DATEV-Kontenrahmen | |
DATEV Account Class | DATEV-Kontenklasse | repräsentiert eine Klasse des DATEV-Kontenrahmens | |
DATEV Account Type | DATEV-Kontentyp | repräsentiert ein Kontentyp des DATEV-Kontenrahmens | |
DATEV Export | DATEV-Export | steuert 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 Information | DATEV-Information | Informationsprotokoll für DATEV-Exporte | |
Aktion | DATEV 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“ | |
Attributgruppe | DATEV Export |
| |
Report & Formular | DATEV Client Billing Export | Vorlage für Rechnungsexporte | |
DATEV Client Export | Vorlage für Kundenexporte | ||
DATEV Turnover Export | Vorlage für Umsatzexporte | ||
Dynamische Businessobjekte | DATEV 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. |
datev. |
db | Klassen für Datenbankzugriffe |
, d.h. für die Ausführung der Report-Datenquellen | |
org.nuclet. |
datev.job |
Java-Regeln zur Steuerung von Jobs („Jobsteuerung“) |
org.nuclet. |
datev.logic |
Geschäftslogik |
org.nuclet. |
MT940-Parserfunktionalität
datev.rule |
Steuerung von Insert-/Update-/Delete-Events |
org.nuclet. |
org.nuclet.mt940.wrapper
datev.wrapper | Wrapper-Klassen |
als Nuclet-Schnittstelle |
Parameter |
DATEV File Directory |
legt das |
Ausgangsverzeichnis der |
CSV- |
Exportdateien fest |
DATEV File Encoding | bestimmt den Zeichensatz, der in den |
CSV- |
Exportdateien genutzt wird |
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 |
DATEV- |
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
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 |
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 |
„DATEV Export Type“ |
DATEV_ |
File_ |
Encoding.csv |
Stammdatensätze für Businessobjekt |
Beispieldateien
Kontoauszug_001.sta
MT940-Importbeispiel
Kontoauszug_002.sta
„DATEV File Encoding“ |
Tabelle 1: Nuclet-Bestandteile
...
Hinweis |
---|
...
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.
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. |
datev. |
db |
|
| |
org.nuclet. |
AbstractMT940Logic
datev.job | AbstractCreateDATEVExport |
| |
org.nuclet. |
datev. |
logic |
AbstractDATEVLogic |
|
|
org.nuclet. |
datev.rule |
|
-
- AbstractCurrencyFacade
- AbstractReferenceFacade
| |
org.nuclet. |
datev.wrapper |
AbstractReferenceWrapper |
|
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".