Integration der FINBAU-Tools in Anwendungen

 Datentypen

Wir verwenden in den Datenstrukturen ausschließlich unter Windows gültige Typen, d.h. diese Typen werden

in aller Regel von allen Programmen verstanden. Hierzu zählen folgende Typen:

- double : 8 Byte große Gleitkommazahl
- integer : 4 Byte große Ganzzahl mit Vorzeichen
- longint : wie integer
- word : 2 Byte große Ganzzahl ohne Vorzeichen

Ein Datum wird in der Form jjjjmmtt als Longint-Zahl übergeben. Aus diesen Typen bilden wir zusammenhängende Datenmengen, sogenannte Strukturen,

für jede Vertragsart. Über diese Strukturen kommunizieren Sie mit den FINBAU-Tools.

 Vorgehensweise

Sie füllen die vertragsartenabhängigen Eingabestrukturen mit Werten, überge-ben diese an die FINBAU-Tools und lesen nach einer Berechnung die Ergebnis-struktur aus.

Die Strukturdefinitionen und Konstanten stehen in einer von uns gelieferten Schnittstellendatei (Interface).

Sie passen diese Schnittstellendatei an Ihre Programmiersprache an, binden sie in Ihre Anwendung ein und können dann bereits mit den FINBAU-Tools arbeiten.

Grob gesehen sieht ein Algorithmus gleich für welche Funktionalität in Ihrer Anwendung wie folgt aus:

Angabenstruktur setzen;
Vorgabenstruktur setzen;

FINBAU-Tools initialisieren;

Vertragsart spezifizieren;

Vorgabenstruktur an die FINBAU-Tools übergeben;
Angabenstruktur an die FINBAU-Tools übergeben;

gewünschte Berechnung ausführen;

Ergebnisstruktur auslesen;

// falls mit Kontoverlauf
solange Kontodatensatz vorhanden
     lese Kontodatensatz;
     Kontodatensatz zwischenspeichern;

FINBAU-Tools zurücksetzen;

 Berechnung eines Annuitätendarlehens

Im folgenden zeigen wir anhand eines Beispiels die Vorgehensweise konkret auf. Aufgrund der Datenfülle belegen wir nur die wichtigen Datenfelder. "FIBA_IFM" deutet auf eine Funktion der FINBAU-Tools hin. Die Variable KeinFehler dient der Fehlerabfrage.

Ein Annuitätendarlehen über 100.000 soll vom 15.09.2001 bis zum 15.09.2009

mit einer Tilgung von 1,5 % und einem Zinssatz von 5,5 % p.a. bei 95 % Auszahlung und achtjähriger Zins-bindung berechnet werden. Außer einer Bearbeitungsgebühr in Höhe von 1 % fallen keine weiteren Gebühren an.

Die Kontoführung des Instituts sieht eine monatliche Zins- und Zahlungsverrechnung vor.


// Tarifvorgaben setzen

VorgabenStruc.ZinsSatz := 0.055;
VorgabenStruc.ZinsModell := ZV_ZWOELF + ZV_ZWOELF * 256;

VorgabenStruc.RegelTilgRate := 0.015;
VorgabenStruc.ZahlFrist := 30 + 96 * 256;

VorgabenStruc.DarlGeb := 0.01;
VorgabenStruc.Disagio := 0.05;

...

// Vertragsangaben setzen

AngabenStruc.AnfDarlehen := 100000;
AngabenStruc.DGBehandlung := 0 + _YES * 256;

AngabenStruc.TilgRate := 100000*0.07/12;
AngabenStruc.TilgDatum := 20011015;

AngabenStruc.VertBeginn := 20010915;
AngabenStruc.VertEnde := 20090915;

...

// FINBAU-Tools initialisieren
FIBA_IFM.InitFiBaTools;

// Vertragsart mitteilen
FIBA_IFM.SetzeVertragsArt(VA_ANNUDARL);

KeinFehler:=_YES;

// Tarifvorgaben in die FINBAU-Tools schicken
wenn KeinFehler = _YES dann
     KeinFehler:=FIBA_IFM.VorgabenTransfer(_IMP, VorgabenStruc);

// Vertragsangaben in die FINBAU-Tools schicken
wenn KeinFehler = _YES dann
     KeinFehler:=FIBA_IFM.VertragImpTransfer(_IMP, AngabenStruc);

// Kontoverlauf vorbereiten
wenn KeinFehler = _YES dann
     KeinFehler:=FIBA_IFM.InitKonto;

// KontoSteuerStruc gibt an, ob ein Kontoverlauf erzeugt werden soll
// in diesem Fall wird ein monatlicher Verlauf erzeugt
KontoSteuerStruc.KontoEin := _YES;
KontoSteuerStruc.AusgRyth := AR_MONATLICH;

// Vertrag einmal durchrechnen
wenn KeinFehler = _YES dann
     KeinFehler:=FIBA_IFM.VertragFortschreiben(KontoSteuerStruc);

// Ergebnisse auslesen
wenn KeinFehler = _YES dann
     KeinFehler:=FIBA_IFM.VertragExpTransfer(_EXP, ErgebnisStruc);

// Kontoverlauf auslesen
FIBA_IFM.ErstesKonto;
solange (KeinFehler = _YES) UND (FIBA_IFM.KontoVorhanden = _YES)
// den nächsten Kontodatensatz nach KontoStruc lesen
     KeinFehler:=FIBA_IFM.HoleKonto(KontoStruc);

     wenn KeinFehler = _YES dann
          KontoStruc zwischenspeichern;
          FIBA_IFM.NaechstesKonto;

// Efektivzins ermitteln
wenn KeinFehler = _YES dann
     KeinFehler:=FIBA_IFM.VertragEffZins(BM_AIBDPANGV, EffZins);

// FINBAU-Tools zurücksetzen
FIBA_IFM.QuitFiBaTools;