Versionen im Vergleich

Schlüssel

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

...

Hinweis
titleVoraussetzungen ab Version 1.1.0

Seit Version 1.1.0 ist keine Währungsentität mehr im Nuclet enthalten. Eine Währungsentität muss also im Zielsystem existieren oder angelegt werden. Zwingend notwendig für diese Währungsentität ist, dass ein Attribut existiert, in dem der dreistellige ISO-4217-Währungscode als Identifizierungsmerkmal gespeichert wird (siehe dazu auch Wikipedia).

 

Ü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 ("Referenzen", das sind je nach Anwendungszweck bspw. Ihren Rechnungen) zuzuorden

Für die den Bankumsätzen zugeordneten Objekten (Rechnungen, o.ä.) wird bei Zahlungseingang automatisiert ein Statuswechsel durchgeführt (bspw. von "offen" nach "bezahlt").

 

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),

  • zwei Attributgruppen,
  • diverse Java-Regeln (verteilt auf Packages),

  • drei System-Parameter,
  • 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, SINGLE

...

 

...

Layout für Entität „Bank Transaction“

...

alternatives Layout für die Entität „Bank Transaction“ mit Mehfachbezug

...

 

...

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“

...

Bankumsatz- und Kontoauszugsdaten

...

den Bankumsätzen zugeordnete Refererenzen

...

Java-Package

...

org.nuclet.mt940.facade

...

 

...

Klassen für Datenbankzugriffe

...

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

...

org.nuclet.mt940.wrapper

...

Wrapper-Klassen (als Nuclet-Schnittstelle)

...

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

...

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

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 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)

  • Regeln für Datenbankzugriffe (org.nuclet.mt940.facade)
  • Wrapper-Klassen als Nuclet-Schnittstelle (org.nuclet.mt940.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 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.

In den Paketen für Datenbankzugriffe (org.nuclet.mt940.facade) und Wrapper-Klassen (org.nuclet.mt940.wrapper) 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).

 

...

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

...

-

...

-

...

  • AbstractCurrencyFacade
  • AbstractReferenceFacade

...

  • CurrencyFacade
  • ReferenceFacade

...

  • AbstractConditionsOfPaymentWrapper
  • AbstractCurrencyWrapper
  • AbstractReferenceWrapper

...

  • ConditionsOfPaymentWrapper
  • CurrencyWrapper
  • ReferenceWrapper

...

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 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.

 

Codeblock
languagejava
titleorg.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 nächsten Abschnitt "Integration".

Integration

 

Notwendige Schritte zur Integration

...