Überblick
Kurzbeschreibung
Das MT940-Nuclet bietet die Möglichkeit
elektronische Kontoauszüge, die im MT940-Format vorliegen, automatisiert einzulesen
die eingelesenen Daten in eine Struktur von Nuclos-Entitäten zu übertragen
die Bankumsätze anhand des Verwendungszwecks automatisch anderen Entitäten (je nach Anwendungszweck, bspw. Ihren Rechnungen) zuzuorden
Nuclet-Bestandteile
Das MT940-Nuclet umfasst im Rahmen der .nuclet-Datei
sieben Entitäten (für Kontoauszüge, Bankumsätze und diverse Stammdaten),
sechs Layouts,
ein Statusmodell (für Bankumsätze),
diverse Java-Regeln (verteilt auf Packages),
eine Jobsteuerung (zur Steuerung des Import-Jobs),
drei Strukturdefinitionen (für den Import von Stammdaten) und
zwei Nuclet-Abhängigkeiten.
Darüberhinaus werden in der ZIP-Datei folgende Komponenten mitgeliefert:
drei CSV-Dateien für Objektimporte sowie
zwei MT940-Beispieldateien mit Kontauszügen.
Typ | Name, englisch | Name, deutsch | Kurzbeschreibung |
---|---|---|---|
Entität | 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 Entität „Bank Statement“ |
| Bank Transaction |
| Layout für Entität „Bank Transaction“ |
| Bank Transaction Type |
| Layout für Entität „Bank Transaction Type“ |
| Banking Business Line |
| Layout für Entität „Banking Business Line“ |
| Debit/Credit Mark |
| Layout für Entität „Debit/Credit Mark“ |
Statusmodell | Bank Transaction |
| Statusmodell für die Entität „Bank Transaction“ |
Java-Package | org.nuclet.mt940.job |
| Java-Regeln zur Steuerung von Jobs („Jobsteuerung“) |
| org.nuclet.mt940.logic |
| Geschäftslogik |
| org.nuclet.mt940.parser |
| MT940-Parserfunktionalität |
| org.nuclet.mt940.rule |
| Steuerung von Insert-/Update-/Delete-Events |
Jobsteuerung | MT940 Import |
| Fristenjob für den automatisierten MT940-Import |
Strukturdefinition | Bank Transaction Type |
| Importstruktur für Entität „Bank Transaction Type“ |
| Banking Business Line |
| Importstruktur für Entität „Banking Business Line“ |
| Debit/Credit Mark |
| Importstruktur für Entität „Debit/Credit Mark“ |
Nuclet-Abhängigkeit | org.nuclet.Common |
| allgemeine Helferfunktionalität |
| org.nuclet.Currency |
| Währungs-Nuclet mit EZB-Schnittstelle |
Objektimporte | Banking_Business_Line.csv |
| Stammdatensätze für Entität „Banking Business Line“ |
| Bank_Transaction_Type.csv |
| Stammdatensätze für Entität „Bank Transaction Type“ |
| Debit_Credit_Mark.csv |
| Stammdatensätze für Entität „Debit/Credit Mark“ |
Beispieldateien | Kontoauszug_001.sta |
| MT940-Importbeispiel |
| Kontoauszug_002.sta |
| MT940-Importbeispiel |
Tabelle 1: Nuclet-Bestandteile
Java-Package-Struktur
Die Java-Regeln sind in drei Packages unterteilt:
Regeln für maskengesteuerte Events (org.nuclet.mt940.rule)
Regeln zur Steuerung von System-Jobs (org.nuclet.mt940.job)
Regeln für die Geschäftslogik (org.nuclet.mt940.logic)
Regeln zum Einlesen und Verarbeiten von MT940-Dateien (org.nuclet.mt940.parser)
Die Abhängigkeiten der Packages sind in der folgenden Abbildung veranschaulicht.
In dreien dieser vier Java-Packages stellt eine abstrakte Java-Klasse die Basisfunktionalität über die deklarierten und (größtenteils) definierten Methoden. Die Import-Prozesse sind entlang der vordeklarierten Methoden dieser abstrakten Klassen festgelegt und bedürfen für den normalen Anwendungsfall keiner weiteren Anpassung.
Java-Package | abstrakte Klassen | konkrete Implementierungen |
org.nucket.mt940.job | AbstractMT940Importer | MT940Importer |
org.nuclet.mt940.logic | AbstractMT940Logic | MT940Logic |
org.nuclet.mt940.parser | AbstractMT940Parser | MT940Parser, MT940SparkasseParser |
org.nuclet.mt940.rule | - | - |
Tabelle 2: Java-Package-Struktur
Anwendungsspezifische Anpassungen sollten 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 allgemeingültige Verhalten genutzt wird. Die Initialisierung des Parsers erfolgt im Konstruktur der Klasse org.nuclet.mt940.job.MT940Importer und könnte dort jederzeit auf das sparkassenspezifische Verhalten oder eine eigene Implementierung umdirgiert werden.
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 MT940Parser(context); }
Der Java-Sourcecode ist mit @replace!-Tags an all jenen Stellen markiert, wo anwendungsspezifisches Verhalten hinzugefügt werden kann. Dazu mehr im nächsten Abschnitt "Integration".
Integration
Notwendige Schritte zur Integration
Die Integration des MT940-Nuclets erfolgt in 8 Schritten:
Download
Nuclet-Import
Objektimporte anlegen
Objektimporte ausführen
Anpassungen im Entitäten-Wizard
Einrichtung eines Eingangsverzeichnisses
Konfiguration der Systemparaemter (entfällt bis auf weiteres)
Sourcecode-Anpassungen in Java-Regeln
Alle Integrationschritte werden im folgenden im Detail erläutert.
Schritt 1: Download
Download der ZIP-Datei „MT940-v2.0.0.zip“ auf der Nuclos-Webpage unter „Nuclos Services“ > „Download“ > „Nuclet Download“. Das ZIP anschließend lokal entpacken.
Schritt 2: Nuclet-Import
Import des MT940-Nuclets unter „Konfiguration“ > „Nuclet Management“ > „Importieren“ in Ihre bestehende Nuclos-Instanz, Auswahl der Datei „MT940-v2.0.0.nuclet“
Schritt 3: Objektimporte anlegen
Objektimporte („Konfiguration“ > „Import & Export“) anlegen zu den Strukturdefinitionen „Bank Transaction Type“, „Banking Business Line“ und „Debit/Credit Mark“. Für die Importe können die mitgelieferten CSV-Dateien „Bank_Transaction_Type.csv“, „Banking_Business_Line.csv“ und „Debit_Credit_Mark.csv“ (zu finden im Unterverzeichnis „data“ der ZIP-Datei) verwendet werden.
Achtung: Es besteht eine Abhängigkeit zwischen „Bank Transaction Type“ und „Banking Business Line“; die Bankgeschäftssparten („Banking Business Line“) müssen vor den Bankgeschäftsvorfällen („Bank Transaction Type“) importiert werden.
Hinweis: Die CSV-Dateien beziehen sich auf die Spezifikationen der Sparkassen. Sollte das MT940-Format Ihrer Hausbank von der vorliegenden Implementierung abweichen bzw. sollten die Inhalte der MT940-Dateien hinsichtlich anders zu interpretieren sein, müssen Sie die zu importierenden Stammdaten selbst anlegen. Dies betrifft nur die beiden Entitäten „Banking Business Line“ (Bankgeschäftssparten) und „Bank Transaction Type“ (Bankgeschäftsvorfällen).
Schritt 4: Objektimporte ausführen
Die in Schritt 3 angelegten Objektimporte ausführen, so dass alle notwendigen Stammdaten im System sind.
Schritt 5: Anpassungen im Entitäten-Wizard
Variante SINGLE: In der Entität „Bankumsatz“ („Bank Transaction“) verweist das Attribut „Referenz“ („Reference“) auf ein Objekt vom Typ der Dummy-Entität „MT940-Referenz“ („MT940 Reference“). Dieses Referenz-Attribut dient der Zuordnung von Bankumsätzen zu Rechnungen, etc., je nach Anwendungszweck. Bitte über den Entitäten-Wizard das Attribut dahingehend bearbeiten, dass die für Sie richtige Entität referenziert wird.
Variante MULTIPLE: Für den Fall, dass es in Ihren Geschäftsprozessen üblich ist, einem Bankumsatz mehrere Referenzen (Rechnungen, o.a.) zuzuordnen, verwenden Sie bitte die Zwischenentität „Referenz-2-Bankumsatz“ („Bank Transaction Ref“). Diese Entität dient der Abbildung dieser n-m-Beziehungen. In diesem Fall müsste das Attribut „Referenz“ also in dieser Entität angepasst werden wie in Punkt 7. beschrieben.
Die Java-Regeln lassen sich über den System-Parameter MT940_REFERENCE_TYPE auf die zu bevorzugte und zu verwendende Variante abstimmen; siehe dazu auch Schritt 7 (Konfiguration der System-Parameter).
Anmerkung: Eine weitere, denkbare Variante wäre, eine feste Anzahl (1-n) von Referenzen in der Entität Bankumsatz zuzulassen. Entität und Java-Regeln wären dementsprechend anzupassen.
Schritt 6: Einrichten eines Eingangsverzeichnisses
Einrichtung eines Dateiverzeichnis für den Eingang der MT940-Dateien. Das Verzeichnis sollte auf dem Server liegen