Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 7 Nächste Version anzeigen »

Ziel dieses Schrittes ist, das tatsächlich im Zielnuclet verwendeten Businessobjekt an den Java-Code des SEPA-Nuclets anzubinden. Dazu wird der Ansatz verfolgt, Nuclet-unabhängige Wrapper-Klassen zu verwenden – anstelle der zu den Businessobjekten generierten Businessobjekt-Klassen.

Zu den technischen Hintergründen lesen Sie dazu bitte auch den Artikel "Schnittstellen in Java-Regeln".

 

Dieser Integrationsschritt kann erst durchgeführt werden, sobald die Vorbedingungen aus Abschnitt 3 erfüllt sind – d.h. sobald entsprechende Attribute in den genutzten Businessobjekten existieren.

 

Bei der Anbindung des SEPA-Nuclets sind Wrapper-Klassen für Debitoren (Kunden, o.ä.), Referenzen (Rechnungen, Belege, o.ä.) und Zahlungsreferenzen (Forderungen, Rechnungspositionen, o.ä.) anzupassen.

Wrapper-KlasseFunktionJava-PackageAnzupassende Methoden/Konstruktoren
DebitorWrapperAnbindung an verwendete Debitoren, Kunden, o.ä.org.nuclet.sepa.wrapper
  • DebitorWrapper()

  • getBic()
  • getDateOfSEPAMandateSignature()
  • getHasSEPAMandateChanged()
  • getIban()
  • getIsNewDebitorAgent()
  • getName()
  • getOriginalDebitorAccount()
  • getSEPAMandateIdentification()
  • getSEPASequenceTypeId()

  • setHasSEPAMandateChanged()
  • setIsNewDebitorAgent()
  • setOriginalDebitorAccount()
  • setSEPASequenceTypeId()
  • setUserContext()
ReferenceWrapperAnbindung an genutzte Referenzobjekte (Rechnungen,o.ä.)org.nuclet.sepa.wrapper
  • ReferenceWrapper()

  • getDebitorId()
  • getDirectDebitReference()
  • getReferenceDate()
PaymentReferenceWrapperAnbindung an verwendete Zahlungsreferenzobjekte (Forderungen, Rechnungspositionen, etc.)org.nuclet.mt940.wrapper
  • PaymentReferenceWrapper()

  • getAmount()
  • getReferenceId()

  • setSEPAExportDate()
  • setSEPAPaymentInformationId()

Tabelle 4.8.1: Übersicht Nuclet-Schnittstellen

 

4.7.1.1 DebitorWrapper

Die Klasse CurrencyWrapper dient als Nuclet-Schnittstelle zur tatsächlich genutzten Währungsbusinessobjekt.

Der Konstruktor der Klasse und die Methode getIso4217Code() sind mit anwendungsspezifischem Verhalten zu befüllen. Letztere Methode sollte den ISO-4217-Währungscode (siehe dazu Wikipedia) des Währunsobjektes zurückliefern.

MethodeFunktionAnpassung optional?
DebitorWrapperZuordnung des tatsächlich genutzten Businessobjektesnein
 

 

 
getBic() nein
getDateOfSEPAMandateSignature() nein
getHasSEPAMandateChanged() nein
getIban() nein
getIsNewDebitorAgent() nein
getName() nein
getOriginalDebitorAccount() nein
getSEPAMandateIdentification() nein
getSEPASequenceTypeId() nein
   
setHasSEPAMandateChanged() nein
setIsNewDebitorAgent() nein
setOriginalDebitorAccount() nein
setSEPASequenceTypeId() nein
setUserContext() nein

Tabelle 4.7.1.1: Anpassungen in DebitorWrapper

 

Beispiele dazu sind in Kommentarblöcken angegeben; diese Beispiele sind bei der Integration also an die tatsächlich genutzte Währungsbusinessobjekt (bzw. deren BusinessObject-Klasse) anzupassen.

org.nuclet.sepa.wrapper.DebitorWrapper
package org.nuclet.sepa.wrapper;


import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import org.nuclos.api.businessobject.BusinessObject;
import org.nuclos.api.businessobject.facade.Modifiable;
import org.nuclos.api.businessobject.facade.Stateful;

// @replace!
// 
// import org.nuclet.businesstemplate.Client;


/**
 * Wrapper implementation for debitors 
 * 
 * @version 1.0
 * @date 21.03.2014
 * @nuclet org.nuclet.SEPA
 * @nucletversion 1.0.0
 * @sincenucletversion 1.0.0
 * @since 21.03.2014
 * 
 * @author frank.lehmann@nuclos.de
 * 
 */
public class DebitorWrapper extends AbstractDebitorWrapper
{
    public DebitorWrapper(final Modifiable reference)
    {
        // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
        //
        // Beispiel:
        //
        // if (reference instanceof Client) {
        //    this.businessObject = reference;
        // }
    }
    
    
    /**
     * Liefert den Namen des Debitors
     * 
     */
    public String getName()
    {
        // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
        //
        // Beispiel:
        //
        // return ((Client)this.businessObject).getName();
        
        return null;
    }
    
    
    /**
     * Liefert die SEPA-Mandatskennung
     */
    public String getSEPAMandateIdentification()
    {
        // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
        //
        // Beispiel:
        //
        // return ((Client)this.businessObject).getSEPAMandateIdentification();
        
        return null;
    }
               
    /**
     * Liefert das Ausstellungsdatum des SEPA-Mandats
     */
    public Date getDateOfSEPAMandateSignature()
    {
        // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
        //
        // Beispiel:
        //
        // return ((Client)this.businessObject).getDateOfSEPAMandateSignature();
        
        return null;
    }
    
    /**
     * Liefert Informationen darüber, ob sich das SEPA-Mandat auf Debitorenseite 
     * geändert hat
     */
    public Boolean getHasSEPAMandateChanged()
    {
        // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
        //
        // Beispiel:
        //
        // return ((Client)this.businessObject).getHasSEPAMandateChanged();
        
        return null;
    }
    
    /**
     * Setzt die Informationen darüber, ob sich das SEPA-Mandat auf Debitorenseite 
     * geändert hat
     */
    public void setHasSEPAMandateChanged(final Boolean blnHasSEPAMandateChanged)
    {
        // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
        //
        // Beispiel:
        //
        // ((Client)this.businessObject).setHasSEPAMandateChanged(blnHasSEPAMandateChanged);
    }
    
    /**
     * Liefert Informationen darüber, ob sich das Kreditinstitut auf Debitorenseite
     * gewechselt wurde
     */
    public Boolean getIsNewDebitorAgent()
    {
        // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
        //
        // Beispiel:
        //
        // return ((Client)this.businessObject).getIsNewDebitorAgent();
        
        return null;
    }
    
    /**
     * Setzt die Informationen darüber, ob sich das Kreditinstitut auf Debitorenseite
     * gewechselt wurde
     */
    public void setIsNewDebitorAgent(final Boolean blnIsNewDebitorAgent)
    {
        // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
        //
        // Beispiel:
        //
        // ((Client)this.businessObject).setIsNewDebitorAgent(blnIsNewDebitorAgent);
    }
 
    /**
     * Liefert die Datenbank-ID der SEPA-Laufzeit
     * 
     */
    public Long getSEPASequenceTypeId()
    {
        // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
        //
        // Beispiel:
        //
        // return ((Client)this.businessObject).getSEPASequenceTypeId();
        
        return null;
    }
    
    /**
     * Setzt die Datenbank-ID der SEPA-Laufzeit
     * 
     */
    public void setSEPASequenceTypeId(final Long lngSEPASequenceTypeId)
    {
        // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
        //
        // Beispiel:
        //
        // ((Client)this.businessObject).setSEPASequenceTypeId(lngSEPASequenceTypeId);
    }

          
    /**
     * Liefert den BIC für SEPA-Zahlungen
     * 
     */
    public String getBic()
    {
        // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
        //
        // Beispiel:
        //
        // return ((Client)this.businessObject).getBic();
        
        return null;
    }
    

    /**
     * Liefert den IBAN für SEPA-Zahlungen
     * 
     */
    public String getIban()
    {
        // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
        //
        // Beispiel:
        //
        // return ((Client)this.businessObject).getIban();
        
        return null;
    }
    
    /**
     * Liefert die alte IBAN bei SEPA-Mandatsänderungen
     * 
     */
    public String getOriginalDebitorAccount()
    {
        // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
        //
        // Beispiel:
        //
        // return ((Client)this.businessObject).getOriginalDebitorAccount();
        
        return null;
    }
    
    /**
     * Setzt die alte IBAN bei SEPA-Mandatsänderungen
     * 
     */
    public void setOriginalDebitorAccount(final String strOriginalDebitorAccount)
    {
        // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
        //
        // Beispiel:
        //
        // ((Client)this.businessObject).setOriginalDebitorAccount(strOriginalDebitorAccount);
    }
    

}
4.8.1.2 ReferenceWrapper

Die Klasse ReferenceWrapper dient als Nuclet-Schnittstelle für tatsächlich genutzte Referenzobjekte (Rechnungen, Forderungen, Belege, etc.).

Das sind jene Objekte, die bei SEPA-Exporten als Referenz für Zahlungsanweisungen verwendet werden.

MethodeFunktionAnpassung optional?
ReferenceWrapperZuordnung des tatsächlich genutzten Businessobjektesnein
   
getDebitorId()liefert die Datenbank-ID des Debitorenja
getDirectDebitReference()

liefert das Identifizierungsmerkmal für Lastschriften (also z.B. die Rechnungsnummer)

ja
getReferenceDate()

liefert ein Referenzdatum (bspw. das Rechnungsdatum)

ja

Tabelle 4.7.1.2: Anpassungen in ReferenceWrapper

 

Beispiele dazu sind in Kommentarblöcken angegeben; diese Beispiele sind bei der Integration also an das tatsächlich genutzte Businessobjekt (bzw. deren BusinessObject-Klasse) anzupassen.

org.nuclet.sepa.wrapper.ReferenceWrapper
package org.nuclet.sepa.wrapper;


import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import org.nuclos.api.businessobject.BusinessObject;
import org.nuclos.api.businessobject.facade.Modifiable;
import org.nuclos.api.businessobject.facade.Stateful;

import de.bffs.Rechnung;


/**
 * Abstract wrapper class for debitors (client billings, invoices, etc.)
 * 
 * @version 1.0
 * @date 21.03.2014
 * @nuclet org.nuclet.SEPA
 * @nucletversion 1.0.0
 * @sincenucletversion 1.0.0
 * @since 21.03.2014
 * 
 * @author frank.lehmann@nuclos.de
 * 
 */
public class ReferenceWrapper extends AbstractReferenceWrapper
{         
    public ReferenceWrapper(final Modifiable reference)
    {
        // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
        //
        // Beispiel:
        //
        if (reference instanceof Rechnung) {
            this.businessObject = reference;
        }
    }

    /**
     * Liefert die Datenbank-ID des Debitoren
     * 
     */
    public Long getDebitorId()
    {
        return ((Rechnung)this.businessObject).getMitgliedId();
    }
    
    /**
     * Liefert das Identifizierungsmerkmal für Lastschriften (z.B. die Rechnungsnummer)
     * 
     */
    public String getDirectDebitReference()
    {
        return ((Rechnung)this.businessObject).getRechnungsnummer();
    }        
    
    /**
     * Liefert ein Referenzdatum (bspw. das Rechnungsdatum)
     * 
     */
    public Date getReferenceDate()
    {
        return ((Rechnung)this.businessObject).getRechnungsdatum();
    }
}
4.7.1.3 PaymentReferenceWrapper

Die Klasse PaymentReferenceWrapper dient als Nuclet-Schnittstelle zum tatsächlich genutzten Businessobjekt für Zahlungsreferenzen.

Mit Zahlungsreferenzen sind jene Objekte gemeint, :

MethodeFunktionAnpassung optional?
PaymentReferenceWrapper()Zuordnung des tatsächlich genutzten Businessobjektesnein
   
getAmount()

liefert den zu zahlenden Betrag

nein
getReferenceId()liefert die Datenbank-ID des übergeordneten Referenzobjektes (siehe 4.7.1.2)nein
   
setSEPAExportDate()

setzt das Export-Datum nach erfolgtem SEPA-Export

nein
setSEPAPaymentInformationId()setzt die SEPA-Zahlungsinformation nach erfolgtem SEPA-Exportnein

Tabelle 4.7.1.3: Anpassungen in PaymentReferenceWrapper

 

 Beispiele dazu sind in Kommentarblöcken angegeben; diese Beispiele sind bei der Integration also an das tatsächlich genutzte Businessobjekt (bzw. deren BusinessObject-Klasse) anzupassen.

org.nuclet.sepa.wrapper.PaymentReferenceWrapper
package org.nuclet.sepa.wrapper;


import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import org.nuclos.api.businessobject.BusinessObject;
import org.nuclos.api.businessobject.facade.Modifiable;
import org.nuclos.api.businessobject.facade.Stateful;



/**
 * Abstract wrapper class for SEPA references (invoices, due payments, etc.)
 * 
 * @version 1.0
 * @date 21.03.2014
 * @nuclet org.nuclet.SEPA
 * @nucletversion 1.0.0
 * @sincenucletversion 1.0.0
 * @since 21.03.2014
 * 
 * @author frank.lehmann@nuclos.de
 * 
 */
public abstract class AbstractPaymentReferenceWrapper
{
 // das "gewrappte" BusinessObjekt (Stateful)
 protected Modifiable businessObject = null;
 
 
 public Modifiable getBusinessObject()
 {
 return this.businessObject;
 } 
 
 /**
 * Liefert die Datenbank-ID 
 */
 public Long getId()
 {
 return this.businessObject.getId();
 }
 
 /**
 * Liefert die Datenbank-ID des übergeordneten Referenzobjektes
 * (also bspw. die ID der Rechnung, falls es sich bei den Zahlungsreferenzen um
 * Rechnungspositionen handelt) 
 * 
 */
 public abstract Long getReferenceId();
 
 
 /**
 * Liefert den Zahlungsbetrag
 * 
 */
 public abstract BigDecimal getAmount();
 
 
 public abstract void setSEPAPaymentInformationId(final Long lngSEPAPaymentInformationId);
 
 public abstract void setSEPAExportDate(final Date datSEPAExportDate);
}
  • Keine Stichwörter