Versionen im Vergleich

Schlüssel

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

...

Name:MT940
Package:org.nuclet.mt940
Namensraum:940

Version:

1.1.0.1

Datum:2408.0408.2013

Überblick


Kurzbeschreibung

...

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 sparkassenspezifische 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 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 MT940ParserMT940SparkasseParser(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".

...

Parameter

Kurzbeschreibung

MT940_DIRECTORY

Dateiverzeichnis für den Eingang von MT940-Dateien

MT940_FILE_ENCODING

Zeichensatz der einzulesenden MT940-Dateien

MT940_FILE_EXTENSION

Dateiendung der einzulesenden MT940-Dateien, alle anderen Dateitypen werden ignoriert

MT940_REFERENCE_TYPE

verwendeter Referenz-Typus, unterstützt werden SINGLE und MULTIPLE

...

Java-Package

Java-Klasse

Kurzbeschreibung

org.nuclet.mt940.job

MT940ImportJob

Konfiguration des Eingangsverzeichnisses (MT940_DIRECTORY, s.o.)

 MT940ImportJob

Konfiguration des Zeichensatz der einzulesenden MT940-Dateien

 MT940ImportJob

Konfiguration des Dateiendung der einzulesenden MT940-Dateien

 

MT940ImportJob

Konfiguration des verwendeten Referenz-Typus (MT940_REFERENCE_TYPE)

 

MT940Importer

Behandlung des Referenzobjekts zu einem Bankumsatz nach erfolgter Zuordnung in Methode processReference()

org.nuclet.mt940.logic

MT940Logic

Auslesen aller beim Import und der Zuordnung zu berücksichtigenden Referenzobjekte in Methode getReferences()

org.nuclet.mt940.rule

CheckBankTransactionRef

Behandlung der Referenzobjekte beim manuellen Zuordnen/Entfernen zu/von einem Bankumsatz in Methode checkReferences()

...

  • MT940_DIRECTORY: legt das Eingangsverzeichnis der MT940-Dateien fest

  • MT940_FILE_ENCODING: definiert den Zeichensatz der einzulesenden Dateien
  • MT940_FILE_EXTENSION: definiert die Dateiendung der einzulesenden Dateien
  • MT940_REFERENCE_REFERENCE_TYPE: definiert, ob einem Bankumsatz genau eine (SINGLE) oder beliebig viele (MULTIPLE) Referenzen zugeordnet werden können.

...

Codeblock
languagejava
titleorg.nuclet.mt940.job.MT940ImportJob
@Rule(name="MT940 Import Job", description="MT940 Import Job")
public class MT940ImportJob implements JobRule 
{
    // @replace!
    //
    // Configure the constants MT940_DIRECTORY, MT940_REFERENCE_TYPE with your own values:
    //
    private static final String MT940_DIRECTORY = "/opt/nuclets/data/mt940";
    private static final String MT940_FILE_ENCODING = "ISO-88591-15";
    private static final String MT940_FILE_EXTENSION = ".sta";
	private static final String MT940_REFERENCE_TYPE = "SINGLE"; // supported values are: { SINGLE, MULTIPLE }
  
    (...)
}

...

Codeblock
languagejava
titleorg.nuclet.mt940.logic.MT90Logic
  
/**
  * Fetches all references that need to be considered during the MT940 import process, e.g.
  * all open client billings/invoices that have not yet been linked to other bank transactions
  * 
  * @note A dummy implementation of <code>org.nuclet.mt940.logic.AbstractMt940Logic</code> has 
  * been  provided with this class here, its methods are meant to be implemented with user 
  * specific behaviour.
  * 
  * @return all references that need to be considered during the MT940 import process; the return
  * value comes as as <code>Map</code> in which the <code>BusinessObject</code> represents the
  * map's key while the text, which is meant to be used to link the reference to a bank
  * transaction, represents the map's value
  * 
  * @throws BusinessException might be thrown in case of errors or other exceptions
  *
  */
 public Map<BusinessObject, String> getReferences() throws BusinessException
 {
     final HashMap<BusinessObject, String> mpReferences = new HashMap<BusinessObject, String>();
       
     // @replace!
     // Please, replace this code fragment here with your specific code fitting your needs.
     // 
     // - MT940Reference is just a placeholder for the BusinessObject you'd like to use.
     // - If your aim was to link your client billings to your bank transactions, the client 
     //    billings being represented by the Nuclos-entity "Client Billing", you would use the 
     //    related BusinessObject-class "ClientBilling" here.
     // - Please, expand the query below to a more specific form.
     //
     // - A specific code example could look like this:
     //
     //   Query<ClientBilling> qryGetReferences = QueryProvider.create(ClientBilling.class);                        
     //
     //   qryGetReferences.where(ClientBilling.IsOpen.eq(Boolean.TRUE))
     //       .and(ClientBilling.HasReferencebeenSet.eq(Boolean.FALSE))
     //       .and(ClientBilling.Date.gte(new Date()));
     //
     //   List<ClientBilling> lstReferences = QueryProvider.execute(qryGetReferences);                
     //
     //   for (final ClientBilling billing : lstReferences) {
     //       mpReference.put(billing, billing.getBillingNumber();
     //   }
     //
     //   return references;
     //           
     final Query<MT940Reference> qryGetReferences = QueryProvider.create(MT940Reference.class);                        
     final List<MT940Reference> lstReferences = QueryProvider.execute(qryGetReferences);
       
     for (final MT940Reference reference : lstReferences) {
         mpReferences.put(reference, reference.getReferenceNumber());
     }

     return mpReferences;   
  
}


d) CheckBankTransactionRef

...