Seitenhistorie
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.
Typ | Name, englisch | Name, deutsch | Kurzbeschreibung | ||||
---|---|---|---|---|---|---|---|
Businessobjekt | Bank Statement | Kontoauszug | DATEV Account | DATEV-Konto | repräsentiert ein Konto im DATEV-Kontenrahmen | ||
Bank Transaction | Bankumsatz | DATEV Account Class | DATEV-Kontenklasse | reprä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 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 Information | DATEV-Information | Informationsprotokoll für DATEV-Exporte | ||||
| Field Separator | Feldtrennzeichen | Feld- bzw. Spaltentrennzeichen für die CSV-Importe | ||||
File Encoding | Zeichensatz | Dateizeichensatz, 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, MULTIPLE | DATEV 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“ | ||||
Banking Business Line | File Encoding | Layout für Businessobjekt | „Banking Business Line“„File Encoding“ | ||||
Debit/Credit Mark | Text Separator | Layout für Businessobjekt | „Debit/Credit Mark“„Text Separator“ | ||||
StatusmodellBank | TransactionDATEV Export |
| Statusmodell für das Businessobjekt „Bank Transaction“„DATEV Export“ | ||||
Attributgruppe | Bank Transaction Data | Bankumsatz- und Kontoauszugsdaten | DATEV Export | ||||
Report & Formular | DATEV 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 | ||||
Parameter | DATEV File Directory | legt das Ausgangsverzeichnis der CSV-Exportdateien fest | |||||
org.nuclet.mt940.parser | 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) | ||||||
Parameter | MT940 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 | MT940 ImportFristenjob für den automatisierten | MT940DATEV- | ImportUmsatzexport | |||
Strukturdefinition | Bank Transaction DATEV Export Type |
| Importstruktur für Businessobjekt „Bank Transaction Type“„DATEV Export Type“ | ||||
| Field Separator |
| Importstruktur für Businessobjekt „Field Separator“ | ||||
Banking Business Line | File Encoding | Importstruktur für Businessobjekt | „Banking Business Line“„File Encoding“ | ||||
Debit | /Credit MarkText Separator |
| Importstruktur für Businessobjekt „Debit/Credit Mark“„Text Separator“ | ||||
Nuclet-Abhängigkeit |
| 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“ | ||||
Debit | File_ | Credit_MarkEncoding.csv | Stammdatensätze für Businessobjekt | „Debit/Credit Mark“||||
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 |
---|
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.
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 | |||||
org.nucket.mt940datev.jobdb | AbstractMT940Importer | MT940Importer | org.nuclet.mt940.logic | AbstractMT940Logic |
| ||
org.nuclet. | mt940datev. | parserjob | AbstractMT940ParserMT940Parser |
| org.nuclet.mt940.rule | - | -
|
org.nuclet. | mt940datev. | facadelogic |
|
| |||
org.nuclet.mt940.wrapper |
|
| |||||
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".
...