|
KONTOPRUEF-Navigation:
Kundencenter
KONTOPRUEF allgemein:
KONTOPRUEF-ONLINE:
KONTOPRUEF-INHOUSE ("HanftServer"):
KONTOPRUEF-OFFLINE:
Impressum
Datenschutz
|
Funktionen von KONTOPRUEF
Inhalt dieser Seite:
Für eine Beschreibung der Parameter und der Ergebnisfelder
sehen Sie bitte auf der Seite der Bankverbindungsprüfung
bzw. der Adreßprüfung nach. Falls Sie die
HanftWddx-COM-Objekte
unter Windows installiert haben, finden Sie die Beschreibung der Felder und Funktionen
auf der HanftWddx-Seite.
Die generellen Aufrufmechanismen, Datentypen usw. sind auf der
Seite "Technik" beschrieben, so daß
hier nur auf die universelle Funktionalität eingegangen
wird.
Es gibt folgende Objekte:
- Bank.KtoUpdate
zur Datenverwaltung des Gesamtsystems: Datendateien
und Updates herunterladen, entpacken und aktivieren;
- Bank.KtoPruef
zum Prüfen von Bankverbindungen und mit
anderen Diensten rund um Bankleitzahlen und Kontonummern;
- Bank.KtoRead
zum Einlesen von MT940-Kontoauszügen in SQL-Datenbanken;
- Bank.KtoDtaus
zum Erzeugen und Prüfen von DTAUS-Dateien;
- Bank.KtoSwift
zur Abfrage der SWIFT-Website;
- Bank.KtoArbeit
zur Ermittlung der Arbeitstage in einem bestimmten
Monat, Quartal oder Jahr.
Hinweis zur Nomenklatur: Eine procedure wird mit
verschiedenen Parametern aufgerufen und gibt kein Ergebnis
zurück (es können allerdings einige Parameter
nach der Rückkehr einen neuen Wert haben - davon wird
hier aber nirgendwo Gebrauch gemacht). Eine function
wird ebenfalls mit verschiedenen Parametern aufgerufen, gibt
aber ein Funktionsergebnis zurück.
An verschiedenen Stellen ist u.U. ein Fehler "-999" möglich:
Dieser gibt an, daß momentan überhaupt keine Datendatei
(weder "Demo" noch "vollständig") geladen ist.
Allen Objekten gemeinsam sind die beiden folgenden Funktionen:
function GetErrorMessage
| Eingabeparameter |
| Name | Typ | Inhalt |
| aErrorCode | Integer | Fehlernummer dieses Objekts |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | String | Fehlernummer im Klartext |
Viele Funktionen liefern eine Fehlernummer zurück, wobei 0 meistens
"kein Fehler" bedeutet. Die KONTOPRUEF-Fehlernummern (und einige
andere) finden Sie auf der Seite mit der
Online-Bankverbindungsprüfung;
wenn Sie in Ihrer Software einen Fehlertext statt einer Fehlernummer
benötigen, können Sie diese Funktion verwenden, die eine
Fehlernummer in einen Fehlertext übersetzt. (Dies geht immer und
überall - völlig unabhängig davon, ob tatsächlich
ein Fehler aufgetreten ist oder nicht! Es handelt sich nur
um eine "Zahl-zu-Text-Übersetzung", weiter nichts.)
Bitte beachten Sie, dass die Fehlernummern des KtoSepa-Objekts
davon abweichend an
Windows-Fehlernummern
angelehnt sind. Hier sollten Sie stets (auch) über die Funktion
GetLastError den Fehlertext des zuletzt
aufgetretenen Fehler ausgeben (im "OK"-Fall, also bei Result=0, ist dies
ein Leerstring).
function GetLastError
| Eingabeparameter |
| Name | Typ | Inhalt |
| - | - | - |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | String | Ggf.
zusätzliche Informationen zum zuletzt aufgetretenen Fehler |
Wenn ein Fehler aufgetreten ist, können Sie hier u.U. zusätzliche
Informationen über die Fehlerursache erhalten (nicht bei allen
Funktionen); so wird z.B. beim fehlgeschlagenen Öffnen von
Datenbanken bei Bank.KtoRead die
Klartext-Fehlermeldung des Betriebssystems abgelegt, mit deren
Hilfe Sie dann unterscheiden können, ob die Verbindung zum
SQL-Server nicht aufgebaut werden konnte oder ob lediglich
Benutzername/Kennwort ungültig waren o.ä.
Hier nun die speziellen Prozeduren und Funktionen der einzelnen Objekte:
Nach oben
Bank.KtoUpdate kümmert sich um den Download und
die Verwaltung von Datendateien und Updates. Der Name einer
Datendatei ist bankxxyz.wbd (wbd=Windows-Bank-Daten) bzw.
bankxxyz.lbd (lbd=Linux-Bank-Daten). (In der Demo-Version,
in der nur ein Teil der Banken enthalten ist, ist bank
durch demo ersetzt.) Neue Datendateien können vom
Update-Server heruntergeladen werden, entweder per Softwareaufruf
(s.u.) oder per manuellem Download. Die
übertragenen Dateien heißen bankxxyz.wbp
(wbp=Windows-Bank-Paket) bzw. bankxxyz.lbp (lbp=Linux-Bank-Paket)
und sind zur schnelleren Übertragung gepackt (ca. 170 KB
statt ausgepackt ca. 800 KB) und mit einer kryptographischen
Signatur versehen, um Übertragungsfehler oder Hacker-Angriffe
beim Download zu verhindern.
Die Stellen "xxyz" in den Dateinamen bedeuten:
- xx = Endziffern des Jahres, in dem diese Datei erstellt wurde, also
z.B. "04" für 2004;
- y = Laufende Nummer im jeweiligen Jahr; gegenwärtig erscheinen vier
Datendateien pro Jahr; d.h. diese Nummer bedeutet
- 1 = März
- 2 = Juni
- 3 = September
- 4 = Dezember
- z = 0 bei den Originaldateien; sollte die Bundesbank innerhalb eines
Quartals auf Fehler in ihren Daten aufmerksam machen, gibt es "Zwischen-Updates",
die hier von 1 an aufwärts gezählt werden.
Die Datendateien und -pakete werden stets ohne Verzeichnisangabe
verwendet. Die Verzeichnisse werden unter Windows bzw. unter Linux unterschiedlich
festgelegt:
- Unter Windows spielt sich das Herunterladen der wbp-Pakete und das
Speichern der wbd-Dateien im selben Verzeichnis ab, in dem sich auch
Bank.exe befindet. Das Benutzerkonto, unter dem Bank.exe
läuft, muß also auf dieses Verzeichnis Schreibzugriff haben.
- Unter Linux wird das Datendateiverzeichnis durch einen Eintrag in der
Datei /etc/KtoPruef.conf festgelegt, der z.B. für das Verzeichnis
/home/mh/data wie folgt aussehen muß:
[Directories]
data=/home/mh/data
Die einzelnen Prozeduren und Funktionen:
function KtoUpdate.GetCurrentFileName
| Eingabeparameter |
| Name | Typ | Inhalt |
| - | - | - |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | String | Name der Datendatei, die gerade
aktiviert ist. Leer, wenn überhaupt keine Datendatei aktiviert ist |
Gibt den Namen der momentan aktivierten Datendatei zurück. Beim
Programmstart wird automatisch die neueste vorhandene Datendatei aktiviert.
Falls überhaupt
keine bank...-Datei existiert, wird nach demo...-Dateien
gesucht und von diesen die neueste aktiviert.
function KtoUpdate.GetNewestFileName
| Eingabeparameter |
| Name | Typ | Inhalt |
| - | - | - |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | String | Name der neuesten
lokal verfügbaren Datendatei. Leer, wenn überhaupt
keine Datendatei lokal verfügbar ist |
Durchsucht das Verzeichnis der Datendateien und gibt den Dateinamen
der neuesten lokal verfügbaren Datendatei zurück. Diese Funktion
wird auch intern beim Programmstart verwendet, um die damit ermittelte
Datendatei automatisch zu aktivieren.
function KtoUpdate.GetDataDirectory
Nur in Windows, nicht in Linux!
Erst verfügbar ab KONTOPRUEF 2.1 vom 12.02.06!
| Eingabeparameter |
| Name | Typ | Inhalt |
| - | - | - |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | String | Momentan eingestelltes
Verzeichnis für die nächsten Datendatei-Operationen |
Gibt das Verzeichnis zurück, in dem die nächste
Datendatei-Operation (Herunterladen, Entpacken, Aktivieren)
stattfinden wird. Das Verzeichnis ist immer mit einem Delimiter
("\" unter Windows) abgeschlossen.
procedure KtoUpdate.SetDataDirectory
Nur in Windows, nicht in Linux!
Erst verfügbar ab KONTOPRUEF 2.1 vom 12.02.06!
| Eingabeparameter |
| Name | Typ | Inhalt |
| aDataDirectory | String | Verzeichnisname |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| - | - | - |
Setzt das Verzeichnis, in dem die nächste
Datendatei-Operation (Herunterladen, Entpacken, Aktivieren)
stattfinden soll. Ein evtl. fehlender Delimiter am Verzeichnisende
("\" unter Windows) wird ggf. automatisch ergänzt. Das
übergebene Verzeichnis wird nicht auf Existenz geprüft.
procedure KtoUpdate.SetProxy
| Eingabeparameter |
| Name | Typ | Inhalt |
| aHost | String | Name des Proxy-Servers |
| aPort | Integer | Portnummer des Proxy-Servers |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| - | - | - |
Falls Sie für den Update-Abruf einen Proxy-Server verwenden möchten
oder müssen, können Sie hier die nötigen Angaben machen. Es
wird nur dann ein Proxy-Server verwendet, wenn der angegebene Name nicht
leer ist und wenn der Port von 0 verschieden ist.
procedure KtoUpdate.SetTimeout
| Eingabeparameter |
| Name | Typ | Inhalt |
| aTimeout | Integer | Timeout in Sekunden |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| - | - | - |
Hier können Sie einen maximalen Grenzwert für das Warten auf die
Antwort des Update-Servers einstellen. Wenn der Server nicht in der angegebenen
Zeit antwortet, wird der Update-Versuch mit einem Fehlercode abgebrochen.
Wenn Sie diese Prozedur nie aufrufen, wird Ihr systemweit konfigurierter
Timeout-Wert verwendet.
function KtoUpdate.ServerCheck
| Eingabeparameter |
| Name | Typ | Inhalt |
| aUser | String | Benutzername für den Update-Server |
| aPass | String | Kennwort für den Update-Server |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | String | Bei Erfolg:
'+' und Name des auf dem Update-Server vorhandenen Datendateipakets
Bei Mißerfolg: '-' und Begleittext |
Fragt den Update-Server nach der momentan dort vorliegenden Datendatei.
Ist eine Datei zum Abruf bereit, wird der Dateiname mit einem vorangestellten
Pluszeichen zurückgeliefert, also z.B. +bank0430.wbp für
die 3. Ausgabe 2004 des Windows-Bank-Pakets. Ist keine Datei
vorhanden, ist die Benutzerkennung ungültig oder kann die Verbindung
nicht hergestellt werden o.ä., beginnt der Rückgabewert mit
einem Minuszeichen, hinter dem im Klartext der Grund des Scheiterns
steht. Ggf. können Sie mit KtoUpdate.GetLastError
weitere Informationen erhalten.
function KtoUpdate.ServerDownload
| Eingabeparameter |
| Name | Typ | Inhalt |
| aUser | String | Benutzername für den Update-Server |
| aPass | String | Kennwort für den Update-Server |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | String | Bei Erfolg:
'+' und Name des heruntergeladenen Datendateipakets
Bei Mißerfolg: '-' und Begleittext |
Im Prinzip das gleiche wie ServerCheck,
nur daß die Datei im Erfolgsfall gleich heruntergeladen wird
(in das Verzeichnis der Datendateien).
Eine evtl. bereits vorhandene gleichnamige Datei wird dabei
überschrieben.
function KtoUpdate.Unpack
| Eingabeparameter |
| Name | Typ | Inhalt |
| aFileName | String | Dateiname eines heruntergeladenen
Datendateipakets |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | 0: Ok
5: Zugriff verweigert (s.u.)
13: Fehler in Datendateipaket |
Hiermit kann ein wbp- bzw. lbp-Datendateipaket
zu einer wbd- bzw. lbd-Datendatei entpackt
werden. Vorhandene Datendateien werden dabei überschrieben -
dies funktioniert jedoch nicht, wenn die zu
überschreibende Datendatei gerade aktiviert (d.h. in
Gebrauch ist). Bei einem Fehler können Sie mit
KtoUpdate.GetLastError
weitere Informationen erhalten.
function KtoUpdate.Activate
| Eingabeparameter |
| Name | Typ | Inhalt |
| aFileName | String | Dateiname einer lokal
vorhandenen Datendatei (leer für neueste) |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | 0: Ok
3: Datei nicht vorhanden bzw. keine Datei gefunden
13: Neue Datendatei konnte nicht geladen werden; alte Datendatei
wurde wieder geladen
14: Neue Datendatei konnte nicht geladen werden; auch alte
Datendatei konnte nicht wieder geladen werden |
Hiermit kann eine lokal vorliegende Datendatei aktiviert
und in KONTOPRUEF verwendet werden. Wird kein
Dateiname übergeben, wird intern
GetNewestFileName aufgerufen,
um die neueste Datendatei zu ermitteln. Bei einem Fehler
können Sie mit KtoUpdate.GetLastError
weitere Informationen erhalten.
Hinweis: Alle Bank.KtoUpdate-Funktionen können
im laufenden Betrieb aufgerufen werden!
Nach oben
function KtoPruef.GetVersion
| Eingabeparameter |
| Name | Typ | Inhalt |
| - | - | - |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | String | Versionsangaben |
Liefert eine Versionsangabe ähnlich Version vom 17.08.04
(BLZ-Stand 06.09.04) zurück.
function KtoPruef.GetVersionExtended
| Eingabeparameter |
| Name | Typ | Inhalt |
| - | - | - |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | String | Erweiterte Versionsangaben |
Liefert erweiterte Versionsangaben zurück, und zwar mehrere
Angaben in einem String, die durch eine Tilde ("~") getrennt sind.
Das Ende des Strings wird durch zwei Tilden ("~~") markiert. Die
einzelnen Felder bedeuten:
- Lesbare Versionsangabe wie bei GetVersion
- Jahr der Daten, z.B. 2004
- Lfd. Nr. im Jahr, also 1 bis 4
- Korrekturnummer (0 bis 9)
- Datum des ersten Gütigkeitstags im Format TT.MM.JJ
- Datum des letzten Gütigkeitstags im Format TT.MM.JJ
- Angabe, ob es sich um eine Demo-Version handelt (True) oder
nicht (False)
Ein Rückgabewert könnte also wie folgt aussehen:
Version vom 17.08.04 (BLZ-Stand: 06.09.04)~2004~3~0~06.09.04~05.12.04~True~~
Es ist damit zu rechnen, daß in künftigen Version noch
weitere Felder hinten an den String angehängt werden.
function KtoPruef.TestBlzKto
| Eingabeparameter |
| Name | Typ | Inhalt |
| aBlz | String | Zu prüfende Bankleitzahl |
| aKto | String | Zu prüfende Kontonummer |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | Prüfergebnis |
Prüft die angegebene Bankleitzahl-/Kontonummernkombination auf
Gültigkeit. Die möglichen Ergebnisse finden Sie
hier.
function KtoPruef.TestIban
| Eingabeparameter |
| Name | Typ | Inhalt |
| aIban | String | Zu prüfende IBAN |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | 0: Ok
13: Prüfzifferfehler |
Prüft die angegebene IBAN auf Gültigkeit (nur die der
Prüfziffer, nicht auf Existenz der Bank wie bei deutschen
Bankverbindungen). Es kann daher nur die Ergebnisse 0 (Ok) oder
13 (Prüfziffer falsch) geben.
function KtoPruef.TestCC
| Eingabeparameter |
| Name | Typ | Inhalt |
| aCC | String | Zu prüfende Kreditkartennummer |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | 0: Ok
1: Unbekannter Kartentyp
12: Es sind nicht nur Ziffern enthalten
13: Prüfzifferfehler |
Prüft die angegebene Kreditkartennummer auf Gültigkeit.
Wichtiger Hinweis: Im Gegensatz zu den "amtlichen" Unterlagen
bei den Bankverbindungen beruht die Kreditkartenprüfung auf
unsicheren Unterlagen aus dem Internet. Die Verfahren sind zwar
mit vorhandenen Kreditkarten getestet worden, aber es ist nicht
völlig ausgeschlossen, daß diese Prüfung in
Einzelfällen ein falsches Ergebnis anzeigt.
function KtoPruef.GetIban
| Eingabeparameter |
| Name | Typ | Inhalt |
| aBlz | String | Bankleitzahl |
| aKto | String | Kontonummer |
| aSpaceFlag | Integer | IBAN soll
0: ohne
1: mit
Zwischenräume(n) zur besseren Lesbarkeit generiert werden |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | String | Generierte IBAN |
Generiert aus der angegebenen Bankverbindung eine IBAN.
Wichtiger Hinweis: Sprechen Sie unbedingt mit Ihrer Bank,
bevor Sie eine hier generierte IBAN verwenden. Bei manchen
Banken ist die IBAN nicht eindeutig der Kontonummer zugeordnet,
oder das Konto muß für die IBAN-Benutzung erst noch
"freigeschaltet" werden o.ä. Verwenden Sie diese Funktion
also nur als ersten Anhaltspunkt.
function KtoPruef.GetBic
| Eingabeparameter |
| Name | Typ | Inhalt |
| aBlz | String | Bankleitzahl |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | String | BIC zur angegebenen Bankleitzahl |
Gibt den BIC (Bank Identifier Code) für die angegebene Bank zurück.
Ist für diese Bank kein BIC vorhanden, wird ein Leerstring
zurückgegeben.
function KtoPruef.GetBankName58
| Eingabeparameter |
| Name | Typ | Inhalt |
| aBlz | String | Bankleitzahl |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | String | Name der Bank, maximal 58 Zeichen lang |
Liefert den (maximal 58 Zeichen langen) Namen der über die
angegebene Bankleitzahl identifizierten Bank zurück. Existiert
diese Bankleitzahl nicht, wird ein Leerstring zurückgegeben.
function KtoPruef.GetBankName20
| Eingabeparameter |
| Name | Typ | Inhalt |
| aBlz | String | Bankleitzahl |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | String | Name der Bank, maximal 20 Zeichen lang |
Liefert den (maximal 20 Zeichen langen) Namen der über die
angegebene Bankleitzahl identifizierten Bank zurück. Existiert
diese Bankleitzahl nicht, wird ein Leerstring zurückgegeben.
function KtoPruef.GetBankName27
| Eingabeparameter |
| Name | Typ | Inhalt |
| aBlz | String | Bankleitzahl |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | String | Name der Bank, maximal 27 Zeichen lang |
Liefert den (maximal 27 Zeichen langen) Namen der über die
angegebene Bankleitzahl identifizierten Bank zurück. Existiert
diese Bankleitzahl nicht, wird ein Leerstring zurückgegeben.
Hinweis: Dies ist der Name, der in früheren KONTOPRUEF-Versionen
über GetBankName abrufbar war.
function KtoPruef.GetBankPlz
| Eingabeparameter |
| Name | Typ | Inhalt |
| aBlz | String | Bankleitzahl |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | String | Postleitzahl der Bank |
Liefert die Postleitzahl der über die
angegebene Bankleitzahl identifizierten Bank zurück. Existiert
diese Bankleitzahl nicht oder hat die Bank keine Postleitzahl gemeldet,
wird ein Leerstring zurückgegeben.
function KtoPruef.GetBankOrt
| Eingabeparameter |
| Name | Typ | Inhalt |
| aBlz | String | Bankleitzahl |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | String | Ort der Bank |
Liefert den Ort der über die
angegebene Bankleitzahl identifizierten Bank zurück. Existiert
diese Bankleitzahl nicht, wird ein Leerstring zurückgegeben.
Hinweis: Der hier zurückgegebene Ort beinhaltet
nicht notwendigerweise die korrekte Schreibweise für Anschriften
auf Postsendungen! Prüfen Sie daher die korrekte Schreibweise mit
der KONTOPRUEF-Adreßprüfung.
function KtoPruef.GetFirstBank
| Eingabeparameter |
| Name | Typ | Inhalt |
| - | - | - |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | String | Bankleitzahl der ersten Bank
in der momentan aktivierten Datendatei |
Wenn Sie alle Banken der momentan aktivierten Datendatei auslesen wollen,
rufen Sie zuerst GetFirstBank auf, und danach
so lange GetNextBank, bis ein Leerstring
zurückgegeben wird.
function KtoPruef.GetNextBank
| Eingabeparameter |
| Name | Typ | Inhalt |
| - | - | - |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | String | Bankleitzahl der nächsten Bank
in der momentan aktivierten Datendatei |
Wenn Sie alle Banken der momentan aktivierten Datendatei auslesen wollen,
rufen Sie zuerst GetFirstBank auf, und danach
so lange GetNextBank, bis ein Leerstring
zurückgegeben wird.
function KtoPruef.GetFirstMatch
| Eingabeparameter |
| Name | Typ | Inhalt |
| aSearchString | String | Ein oder mehrere Wörter
oder Wortbestandteile, nach denen gesucht werden soll (UND-verknüpft) |
| aFragmentsFlag | Integer | Es soll
0: nur nach ganzen Wörtern
1: auch nach Wortbestandteilen
gesucht werden |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | String | Bankleitzahl der ersten Bank,
die die Suchkriterien erfüllt |
Hiermit können Sie die Bankleitzahl einer Bank anhand ihres
Namens suchen (es wird der "BankName27" verwendet).
Geben Sie mehr als einen Begriff mit Zwischenräumen ein. Wenn bereits
hier als Ergebnis ein Leerstring zurückkommt, gibt es überhaupt
keine Banken, die Ihre Suchkriterien erfüllen; ansonsten rufen Sie
danach so lange GetNextMatch auf, bis ein
Leerstring zurückkommt.
function KtoPruef.GetNextMatch
| Eingabeparameter |
| Name | Typ | Inhalt |
| - | - | - |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | String | Bankleitzahl der nächsten Bank,
die die Suchkriterien erfüllt |
Arbeitet die Suchergebnisse ab, die Sie mit GetFirstMatch
spezifiert haben. Wenn keine weitere Bank gefunden wird, wird ein Leerstring
zurückgegeben.
Veraltete Interfaces:
- GetReg: Liefert einen String zurück, in dem steht, daß es
keine Registrierungsinformationen mehr gibt.
- Init, InitFile, InitReg, SetRegCode: Tun nichts und liefern 0 (Ok) zurück.
- GetBankName: Wird intern auf GetBankName27 abgebildet.
Nach oben
Nur in der Windows-,
nicht in der Linux-Version!
Das Objekt Bank.KtoRead bietet Ihnen die Möglichkeit,
elektronische Kontoausüge im MT940-Format, die Sie von Ihrer
Bank abgerufen haben, in eine SQL-Datenbank einzulesen. Unter Windows
wird dazu die "ADO"-Technologie genutzt; Sie können alle
Datenbanken verwenden, für die es einen ODBC-Treiber gibt;
außerdem steht ein spezieller Treiber
für den MS-SQL-Server zur Verfügung. mySQL-Datenbanken können
Sie verwenden, wenn Sie den
ODBC-Treiber
für mySQL installieren und in KONTOPRUEF den Typ
"ODBC" angeben.
Es muß dazu eine Datenbank mit zwei Tabellen geben, die vorab
von Ihnen angelegt werden müssen, und zwar wie folgt:
CREATE TABLE KONTOAUSZUEGE (NR INTEGER NOT NULL,
BLZ VARCHAR(8) NOT NULL,
KONTO VARCHAR(23) NOT NULL,
AUSZUGNR INTEGER NOT NULL,
ALTGUTDATUM DATE NOT NULL,
ALTGUTWAE CHAR(3) NOT NULL,
ALTGUTBETRAG NUMERIC(15, 2) NOT NULL,
NEUGUTDATUM DATE NOT NULL,
NEUGUTWAE CHAR(3) NOT NULL,
NEUGUTBETRAG NUMERIC(15, 2) NOT NULL,
USERID INTEGER NOT NULL,
PRIMARY KEY (NR));
CREATE TABLE KONTOUMSAETZE (NR INTEGER NOT NULL,
AUSZUGNR INTEGER NOT NULL,
VALUTA DATE NOT NULL,
BUCHUNG DATE NOT NULL,
BETRAG NUMERIC(15, 2) NOT NULL,
ORIWAE CHAR(3),
ORIBETRAG NUMERIC(15, 2),
GVC INTEGER NOT NULL,
BUTEXT VARCHAR(27),
PN VARCHAR(10),
BLZ CHAR(8),
KONTO VARCHAR(10),
ABSENDER VARCHAR(54),
VERWEND VARCHAR(378),
TSE INTEGER,
USERID INTEGER NOT NULL,
PRIMARY KEY (NR));
Anmerkung: Bei manchen Datenbanken kann für den Betrag
auch der Datentyp Money statt Numeric(15,2) verwendet
werden bzw. für die Datumsfelder SmallDateTime statt
Date. Bitte sehen Sie in der Dokumentation der Datentypen
Ihrer Datenbank nach.
Hinweis: Das Feld AuszugNr in der Tabelle
KontoUmsaetze ist im Prinzip ein Foreign Key
auf das Feld Nr (nicht AuszugNr!) in der
Tabelle KontoAuszuege. Den Foreign Key Restraint
darf man aber in SQL nicht verwenden, da die Umsätze vor
den Auszügen in die Datenbank eingefügt werden). Das Feld
AuszugNr in der Tabelle KontoAuszuege ist rein
informatorisch (dort wird das von der Bank gelieferte Feld unverändert
übernommen).
Wichtiger Hinweis zum Feld
KONTO: Obwohl es in Deutschland maximal
zehnstellige Kontonummern gibt, ist dieses Feld länger,
da Sie von Ihrer Bank möglicherweise systeminterne Kontonummern
bereitgestellt bekommen (z.B. mit vorangestellter Filialennummer,
mit angefügter Unterkontonummer und/oder Währungskennzeichen).
KtoRead versucht beim Einlesen das "normale" Schema
BBBBBBBB/KKKKKKKKKK (B=8stellige Bankleitzahl,
K=10stellige Kontonummer) auszuwerten; falls dies bei Ihnen nicht
richtig funktioniert, weil Ihre Bank die Kontonummer mit zusätzlichen
Daten "anreichert", können Sie (ab Version 0831) den Dateinamen
mit einem angehängten "+" übergeben (also z.B.
Auszug080922.STA+ und erhalten dann
die im Kontoauszug enthaltenen Daten unverändert in
Ihrer Datenbank.
Beispiele, was (bei Verwendung des "+") im MT940-Auszug alles
enthalten sein kann, wenn Ihre Kontonummer 123456 lautet:
| Empfangene Kontonummer | Bemerkung |
| 123456 | "Normale" Kontonummer |
| 000000000000123456 | Mit führenden Nullen |
| 12345600 | Mit angehängter Unterkontonummer 00 |
| 0000123456888 | Führende Nullen, angehängte 888 |
| 416000123456 | Filiale vor der Kontonummer |
| 0000123456EUR | Führende Nullen,
angehängte Währungsbezeichnung |
| 41600012345600888EUR | Kombination aus allen obigen Möglichkeiten |
Es ist außerdem auch möglich, daß im Auszug
keine Bankleitzahl enthalten ist;
das Feld BLZ in der Datenbank enthält
in diesem Fall einen Leerstring! |
Neben den allgemeinen beiden Fehlerfunktionen
gibt es nur eine einzige spezifische Funktion:
function KtoRead.ReadMt940
| Eingabeparameter |
| Name | Typ | Inhalt |
| aDatabaseType | Integer | 0: ODBC
1: MS-SQL
|
| aDatabaseName | String | Bei ODBC: Der System-
oder User-DSN-Name aus der ODBC-Verwaltung
Bei MS-SQL: Der Servername; falls nicht die Default-Datenbank auf
diesem Server genutzt werden soll, kann der Datenbankname hinter
einem Schrägstrich ("/") noch angehängt werden (also
z.B. my.database.xy/Accounting).
Neu ab Version 0510:
Hinter den Datenbanknamen können noch im Format
"#Auszugtabellenname#Umsatztabellenname" die Namen der
gewünschten Tabellen angehängt werden, falls nicht
die Standardtabellennamen (s.o.) verwendet werden sollen. |
| aUsername | String | Der Benutzername, mit
dem auf die Datenbank zugegriffen werden soll; ist dieser Name
leer, wird die Windows-Authentifizierung verwendet |
| aPassword | String | Das Kennwort, mit
dem auf die Datenbank zugegriffen werden soll |
| aFileName | String | Der Dateiname der
MT940-Datei; kann leer sein, dann wird lediglich eine kurze
Testverbindung zur Datenbank aufgebaut. Ab
Version 0831 können Sie an den Dateinamen ein Pluszeichen ("+")
anhängen (also z.B. Auszug080923.STA+);
dann erhalten Sie die vollständige Kontonummer 1:1 aus dem
MT940-Datensatz (siehe oben) |
| aTranslation | String | Parameter, wie Non-Swift-Auszüge
übersetzt werden sollen, siehe unten |
| aUserId | Integer | Beliebige Zahl, die in die
letzte Spalte der Datenbank geschrieben wird, um z.B. die Herkunft
eines Datensatzes zu dokumentieren |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | 0: Ok
1: Datenbanktyp ungültig
2: ADO ist nicht installiert
3: Datenbank kann nicht geöffnet werden
4: MT940-Datei kann nicht geöffnet werden
5: Auszug kann nicht in die Datenbank geschrieben werden
6: Umsatz kann nicht in die Datenbank geschrieben werden |
Diese Funktion liest die angegebene MT940-Datei in die angegebene
Datenbank ein. Bei allen Fehlern können Sie mit
KtoRead.GetLastError weitere Informationen
abrufen.
Mit dem Parameter aTranslation können beliebige
"Non-Swift"-Auszüge in ein geeignetes Format konvertiert
werden. Normalerweise geht KONTOPRUEF von einem Swift-
Format mit dem Mehrzweckfeld :86: aus (siehe
Beschreibung des Swift-Formats). In diesem
Fall brauchen Sie bei aTranslation nichts angeben. Sollte
Ihre Bank jedoch Non-Swift-Auszüge senden (Mehrzweckfeld :NS:,
siehe Beschreibung des Non-Swift-Formats), können
Sie hier einen String übergeben, der die einzelnen Felder
zuordnet. Dieser String hat das Format XX:YY,XX:YY,XX:YY,XX:YY
usw., wobei jedes Feld XX des Non-Swift-Formats in das Feld YY
des Swift-Formats übersetzt wird. Ich hatte z.B. einmal
einen Auszug, bei dem der String 01:20,02:32,03:00,04:10
lauten mußte, was bedeutet:
- NS-Feld 01 wird in 20 übersetzt (Verwendungszweck)
- NS-Feld 02 wird in 32 übersetzt (Auftraggeber)
- NS-Feld 03 wird in 00 übersetzt (Buchungstext)
- NS-Feld 04 wird in 10 übersetzt (Primanota)
- NS-Feld 05 wird ignoriert (unbekannt; hätte
eine Uhrzeit sein können; die kommt aber in Swift
ohnehin nicht vor).
Die Belegung ist bei verschiedenen
Banken aber leicht unterschiedlich - es empfiehlt sich also,
den MT940-Auszug der jeweiligen Bank vor dem ersten Einlesen
genau zu untersuchen, damit eine vernünftige Übersetzungstabelle
übergeben werden kann.
Nach oben
Mit dem KtoDtaus-Objekt lassen sich DTAUS-Dateien,
mit denen man Überweisungen und Lastschriften an Banken senden kann,
sowohl erzeugen als auch prüfen. Ab Version 0442 der Datendatei
ist außerdem
die Erzeugung des DTAUS-"Spezialformats" für den Auslands-Lastschrifteinzug
der Landesbank Baden-Württemberg
enthalten. Spezielle Parameter für diesen Dienst, die von den normalen
inländischen DTAUS-Dateien abweichen, sind in den folgenden
Funktionsbeschreibungen mit "LBBW:"
markiert.
Die Funktionen im einzelnen:
function KtoDtaus.CreateFile
| Eingabeparameter |
| Name | Typ | Inhalt |
| aFileName | String | Datei, in die die DTAUS-Datei
geschrieben werden soll |
| aBlz | String | Eigene Bankleitzahl
LBBW: 99935000 |
| aKto | String | Eigene Kontonummer
LBBW: Pseudokontonummer des jeweiligen Landes:
- 2020202020 für Österreich
- 2121212121 für Belgien
- 2222222222 für Frankreich
- 2323232323 für Schweiz
- 2424242424 für Niederlande
- 2525252525 für Italien
- 2626262626 für Großbritannien
|
| aName | String | Kontobezeichnung des eigenen
Kontos (maximal 54stellig;
längere Namen werden nach 54 Zeichen abgeschnitten)
LBBW: Nach der Kontobezeichnung müssen
(nach einem Zwischenraum) noch Währung und Landeskennung, getrennt durch
einen Bindestrich folgen, also z.B. "MUSTERMANN EUR-IT" für EUR-Lastschriften
in Italien. Die Gesamtlänge aus Kontobezeichnung, Wührung und Land darf maximal
27 Zeichen betragen! |
| aNumber | String | Nummer (als String) dieser
DTAUS-Datei. Frei wählbar (maximal zehnstellig); bei den
meisten Banken wird diese Nummer bei der Buchung im Kontoauszug
mit ausgedruckt |
| aType | Integer | 1: Überweisungen (Gutschriften)
2: Einzug (Lastschriften)
LBBW: Hier ist nur 2 für
Lastschriften möglich. |
| aCheckFlag | Integer | 0: Die angegebenen Bankverbindungen
werden ohne Prüfung in die DTAUS-Datei geschrieben
1: Die angegebenen Bankverbindungen (inkl. der eigenen!) werden nur dann
in die DTAUS-Datei geschrieben, wenn eine Prüfung durch KONTOPRUEF
ergeben hat, daß die Bankverbindung in Ordnung ist; ansonsten erfolgt
eine Fehlerrückmeldung, und der Datensatz wird nicht in die
DTAUS-Datei geschrieben. Sollte bei CreateFile
die eigene Bankverbindung bereits ungültig sein, wird die
DTAUS-Datei gar nicht erst erzeugt und kann daher auch nicht weiter
beschrieben werden
LBBW: Hier muß 0 angegeben
werden, da ausländische Bankverbindungen so nicht geprüft werden
können. |
| aDaysAhead | Integer | Normalerweise 0, damit
die Datei bei der Bank sofort bearbeitet wird. Soll die Datei
erst später bearbeitet werden (z.B. bei Terminüberweisungen),
ist hier die Anzahl der Tage anzugeben, die zwischen der Erstellung
der Datei und ihrer Bearbeitung liegen sollen (d.h. 1=morgen,
2=übermorgen usw.) |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | 0: Ok
401: Es ist noch eine andere Datei von vorher geöffnet.
Diese muß erst geschlossen werden (mit
CloseFile), bevor eine neue Datei erzeugt werden kann
402: Der angegebene Typ ist nicht 1 (Gutschriften) oder 2 (Lastschriften)
403: Die eigenen Kontodaten sind unültig. Datei wurde nicht angelegt
404: Die Datei konnte vom Betriebssystem nicht angelegt werden
405: Die Datei wurde angelegt und kann beschrieben werden; allerdings ist beim Schreiben
des A-Satzes ein Fehler aufgetreten. Die Datei ist daher vermutlich von der Bank nicht auswertbar
LBBW: 406: Aus dem Kontobezeichnungsfeld
"aName" konnte
die Währung nicht herausgelesen werden. Die Datei wurde nicht angelegt. |
Diese Funktion legt eine neue DTAUS-Datei an (eine evtl. bereits
vorhandene Datei gleichen Namens wird dabei ungefragt überschrieben).
Bei allen Fehlern können Sie mit
KtoDtaus.GetLastError weitere Informationen
abrufen.
function KtoDtaus.WriteFile
| Eingabeparameter |
| Name | Typ | Inhalt |
| aBlz | String | Bankleitzahl des Zahlungsempfängers/-pflichtigen
LBBW: Kann leer gelassen werden, dann wird
99935000 eingesetzt; ansonsten kann hier die Bankleitzahl des eigenen Hausbank-Kontos
angegeben werden. |
| aKto | String | Kontonummer des Zahlungsempfängers/-pflichtigen
LBBW: Kann leer gelassen werden, dann wird
das Füllzeichen "1111111111" eingesetzt; ansonsten kann hier die Kontonummer des
eigenen Hausbank-Kontos angegeben werden. |
| aName | String | Kontobezeichnung des Zahlungsempfängers/-pflichtigen
(maximal 54stellig; längere Namen werden nach 54 Zeichen abgeschnitten)
LBBW: Hier sind maximal 27 Zeichen zulässig. |
| aVerwend | String | Verwendungszweck der Überweisung/Lastschrift
(maximal 378stellig; längere Verwendungszwecke werden nach 378 Zeichen abgeschnitten)
LBBW: Der hier übergebene "Verwendungszweck"
wird in Teile zu je 27 Zeichen aufgebrochen. Die ersten 27 Zeichen ergeben den
tatsächlichen Verwendungszweck; jede weiteren 27 Zeichen ergeben den 1., 2., 3. usw.
Erweiterungsteil. Die Erweiterungsteile sind gemäß der LBBW-Spezifikation
für das jeweilige Land zu belegen (Kontonummer, Filiale, Bankleitzahl, Postleitzahl,
Bankname o.ä. des Schuldners). Die vorgeschriebenen Erweiterungsteil-Aufteilungen
sind durch Auffüllen der einzelnen Teile auf 27 Stellen genau einzuhalten! |
| aIntern | String | Ggf. interne Nummer (als String), die die einzelne
Buchung innerhalb der Datei kennzeichnet und die z.B. für Rückrufe benötigt wird |
| aTS | Integer | Textschlüssel (bezeichnet die Zahlungsart):
Bei Gutschriften:
51: "Normale" Überweisung
53: Lohn/Gehalt
54: Vermögenswirksame Leistung
56: Bezüge öffentlicher Kassen
Bei Lastschriften:
4: Abbuchungsauftrags-Lastschrift
5: Einzugsermächtigungs-Lastschrift |
| aTSE | Integer | Textschlüsselergänzung
(gibt zusätzliche Informationen zur Zahlungsart an); wird von
KONTOPRUEF unverändert und ohne weitere Prüfung in die
Datei geschrieben. I.d.R. ist hier 0 anzugeben; bei TS=54 geben Sie
hier bitte die Endziffer des Jahres an, für das die VL gezahlt wird
(also 4 für 2004). Evtl. andere zu benutzende Werte für dieses
Feld erfahren Sie bei Ihrer Bank |
| aBetrag | Windows: Currency | Betrag in EUR mit Cent-Nachkommastellen
Falls Sie die DLL-Version von KONTOPRUEF-OFFLINE verwenden
und Ihre Visual-Studio-Version keinen Currency-Datentyp
mehr unterstützt, müssen Sie diesen Parameter als Long
definieren und mit Decimal.ToOACurrency(...) konvertiert übergeben. |
| Linux: unsigned long | Betrag in Cent (Ganzzahl ohne Nachkommastellen) |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | 0: Ok
411: Es ist keine Datei geöffnet. Die Datei muß erst mit
CreateFile erzeugt werden
412: Der angegebene Textschlüssel paßt nicht zum Auftragstyp
413: Die angegebene Bankverbindung ist ungültig. Datensatz wurde nicht geschrieben
414: Datensatz konnte vom Betriebssystem nicht geschrieben werden.
Die Datei ist daher vermutlich von der Bank nicht auswertbar |
Diese Funktion schreibt einen Datzensatz in die (zuvor mit
CreateFile erzeugte) DTAUS-Datei.
Bei allen Fehlern können Sie mit
KtoDtaus.GetLastError weitere Informationen
abrufen.
function KtoDtaus.CloseFile
| Eingabeparameter |
| Name | Typ | Inhalt |
| - | - | - |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | 0: Ok
421: Es ist keine Datei geöffnet. Die Datei muß erst mit
CreateFile erzeugt werden
422: Die Datei wurde geschlossen, allerdings ist beim Schreiben
des E-Satzes ein Fehler aufgetreten. Die Datei ist daher vermutlich
von der Bank nicht auswertbar |
Diese Funktion schließt die Datei. Bei allen Fehlern können Sie mit
KtoDtaus.GetLastError weitere Informationen
abrufen.
function KtoDtaus.CheckFile
| Eingabeparameter |
| Name | Typ | Inhalt |
| aFileName | String | DTAUS-Datei, deren Bankverbindungen
geprüft werden sollen
Ab Datendatei 0442 kann man diese Funktion zuätzlich
verwenden, um Informationen über die gerade mit
KtoDtaus.CreateFile,
KtoDtaus.WriteFile und
KtoDtaus.CloseFile erzeugte Datei
zu erhalten (z.B. um daraus einen sog. "Diskettenbegleitzettel"
zu erzeugen). Dazu wird als Dateiname einer der folgenden speziellen
- normalerweise unmöglichen - Dateinamen übergeben:
*A liefert beim nächsten Aufruf von
KtoDtaus.GetLastError die Anzahl der
geschriebenen Datensätze in der DTAUS-Datei
*B liefert beim nächsten Aufruf von
KtoDtaus.GetLastError die Summe der
Beträge in der DTAUS-Datei
*C liefert beim nächsten Aufruf von
KtoDtaus.GetLastError die Summe der
Kontonummern in der DTAUS-Datei
*D liefert beim nächsten Aufruf von
KtoDtaus.GetLastError die Summe der
Bankleitzahlen in der DTAUS-Datei |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | -431:
Die angegebene Spezialfunktion (nach "*" im Dateinamen) existiert nicht
-3: Datei konnte nicht geöffnet werden
0: Es befinden sich keine fehlerhaften Bankverbindungen in der Datei
1..N: Es befinden sich so viele fehlerhafte Bankverbindungen in der Datei |
Diese Funktion prüft die Bankverbindungen in einer vorhandenen
DTAUS-Datei. Werden Fehler festgestellt, wird im Verzeichnis der
geprüften Datei eine gleichnamige Datei, nur mit dem Typ .out,
angelegt, in die die fehlerhaften Datensätze im Klartext geschrieben
werden. Beim Ergebnis "-3" können Sie mit
KtoDtaus.GetLastError die Fehlermeldung des Betriebssystems
abrufen. Mit einem Pseudo-Dateinamen, der mit "*" beginnt, können Informationen
über eine soeben geschriebene DTAUS-Datei abgerufen werden (ab Datendatei
Version 0442).
Nach oben
Mit dem KtoSepa-Objekt lassen sich (ab Version 3.0
von KONTOPRUEF-OFFLINE) XML-Dateien für SEPA-Überweisungen
und -Lastschriften schreiben. Bei Lastschriften wird auch die Verwaltung der
einmaligen/erstmaligen/wiederholten/abschließenden Lastschriften
von KONTOPRUEF-OFFLINE übernommen (s.u. und in den
allgemeinen SEPA-Informationen).
Bitte beachten Sie: Die Updatefähigkeit (also
das Aktivieren einer neuen Datendatei) ist (z.B. im Unterschied zum
DTAUS-Schreiben) derzeit nur gegeben, solange
gerade keine SEPA-XML-Datei erzeugt wird, d.h. Sie sollten
KtoUpdate.Activate
nur aufrufen, wenn Sie sich in Ihrem Programmlauf nicht
gerade zwischen
KtoSepa.OpenCredit und
KtoSepa.CloseCredit (bzw.
KtoSepa.OpenDebit und
KtoSepa.CloseDebit) befinden! Sollten
Sie dennoch in diesem Zustand ein Update durchführen und eine
neue Datendatei aktivieren, wird derzeit das
Erzeugen der SEPA-XML-Datei abgebrochen. Möglicherweise
wird in einer zukünftigen Version die Updatemöglichkeit beim
laufenden Schreiben eingebaut werden; verlassen Sie sich also
nicht auf das beschriebene gegenwärtige Verhalten! Am besten ist,
wenn Sie Updates via KtoUpdate.Activate nur
dann durchführen, wenn Sie gerade keine SEPA-XML-Datei
erzeugen.
Die Funktionen im einzelnen (thematisch geordnet):
- Vorbereitende Funktionen
(Fristen, Ausführungstage)
function KtoSepa.SetSepaVersion
| Eingabeparameter |
| Name | Typ | Inhalt |
| aSepaVersion | Integer | Hier ist derzeit nur die
Konstante 25 (=Version 2.5) möglich. Wird diese Konstante
negativ übergeben (also als -25), werden Lastschriftdateien in der
Version "B2B" statt "CORE" erzeugt. Dies sollten Sie nur dann tun,
wenn Sie genau wissen, wie eine "B2B"-Lastschrift funktioniert, und dass die
Bank des Schuldners B2B-Lastschriften überhaupt akzeptiert –
das ist momentan noch keineswegs selbstverständlich!
25 ist auch die Voreinstellung. Sie brauchen diese Funktion im Normalfall
also niemals aufrufen. |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | Die aktuell
eingestellte SEPA-Version (immer als positiver Wert, derzeit stets 25
für Version 2.5) |
Diese Funktion legt das Format der resultierenden XML-Dateien fest. Derzeit
ist nur die Version 2.5 möglich (gültig seit 1. November 2010,
Dokumentation z.B. in
Anhang 2 der Datenformatspezifikationen).
procedure KtoSepa.SetBankDays
| Eingabeparameter |
| Name | Typ | Inhalt |
| aCreditBankOffset | Integer | Die Anzahl der Bankarbeitstage
(vom augenblicklichen Zeitpunkt an gerechnet), nach denen die nächste
Überweisungsdatei ausgeführt werden soll (d.h. 0=heute, falls die
Einlieferungsschlusszeit noch nicht erreicht ist) |
| aShortBankOffset | Integer | Die Anzahl der Bankarbeitstage
(vom augenblicklichen Zeitpunkt an gerechnet), nach denen die wiederholten
("RCUR") und abschließenden ("FNAL") Lastschriften der nächsten
Lastschriftdatei ausgeführt werden sollen (bei CORE-Lastschriften
mindestens 2 Bankarbeitstage – Ihre Bank kann eine längere
Frist vorschreiben, die Postbank z.B. 3 Bankarbeitstage –, bei
B2B-Lastschriften mindestens 1 Bankarbeitstag) |
| aLongBankOffset | Integer | Die Anzahl der Bankarbeitstage
(vom augenblicklichen Zeitpunkt an gerechnet), nach denen die erstmaligen
("FRST") und einmaligen ("OOFF") Lastschriften der nächsten
Lastschriftdatei ausgeführt werden sollen (bei CORE-Lastschriften
mindestens 5 Bankarbeitstage – Ihre Bank kann eine längere
Frist vorschreiben, die Postbank z.B. 6 Bankarbeitstage –, bei
B2B-Lastschriften mindestens 1 Bankarbeitstag) |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| - | - | - |
Diese Funktion legt die Ausführungstage der folgenden SEPA-Dateien
fest. Sie müssen sie nicht unbedingt aufrufen; die Voreinstellung
ist (0, 2, 5). Es kann jedoch sein, dass Ihre Bank längere Fristen
fordert. Falls Sie z.B. Postbank-Kunde sind, müssen Sie
KtoSepa.SetBankDays(0, 3, 6) aufrufen, da hier 3 bzw. 6
Bankarbeitstage Vorlauf gefordert werden. Bitte informieren Sie sich
bei Ihrer Bank über die einzuhaltenden Fristen.
procedure KtoSepa.SetBankHour
| Eingabeparameter |
| Name | Typ | Inhalt |
| aBankHour | Integer | Die Einlieferungsschlusszeit
Ihrer Bank (z.B. 12 für 12 Uhr). Später eingegangene Aufträge
gelten als am nächsten Bankarbeitstag eingeliefert. |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| - | - | - |
Diese Funktion legt die Einlieferungsschlusszeit Ihrer Bank fest
(bitte erfragen Sie die für Sie geltende Uhrzeit dort). Falls die
aktuelle Uhrzeit bereits nach der hier angegebenen Zeit liegt (also
wenn Sie z.B. KtoSepa.SetBankHour(12) eingestellt haben – was
auch die Voreinstellung ist –, und es ist bereits 14 Uhr), wird der
Ausführungstag, den Sie mit KtoSepa.SetBankDays
festgelegt haben, nochmals um einen Bankarbeitstag nach hinten verlegt.
Bitte beachten Sie, dass KONTOPRUEF-OFFLINE natürlich nicht
weiß wann Sie die Datei real einliefern werden. Es kann also z.B.
(bei der Einstellung
12 Uhr) passieren, dass Sie die Datei um 11 Uhr erzeugen und um 14 Uhr
einliefern – dann sind u.U. die Fristen zu kurz, wenn Sie bei
KtoSepa.SetBankDays die Minimalwerte
angegeben haben!
function KtoSepa.GetShortDueDate
| Eingabeparameter |
| Name | Typ | Inhalt |
| - | - | - |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | String | Das Ausführungsdatum
für wiederholte ("RCUR") und abschließende ("FNAL")
Lastschriften (im Format JJJJ-MM-TT) |
Mit dieser Funktion erhalten Sie (ggf. nach dem Aufruf von
KtoSepa.SetBankDays und/oder
KtoSepa.SetBankHour)
das reale Ausführungsdatum der wiederholten ("RCUR") und
abschließenden ("FNAL") Lastschriften im Format JJJJ-MM-TT
(also z.B. "2011-04-15" für den 15. April 2011).
function KtoSepa.GetLongDueDate
| Eingabeparameter |
| Name | Typ | Inhalt |
| - | - | - |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | String | Das Ausführungsdatum
für erstmalige ("FRST") und einmalige ("OOFF")
Lastschriften (im Format JJJJ-MM-TT) |
Mit dieser Funktion erhalten Sie (ggf. nach dem Aufruf von
KtoSepa.SetBankDays und/oder
KtoSepa.SetBankHour)
das reale Ausführungsdatum der erstmaligen ("FRST") und
einmaligen ("OOFF") Lastschriften im Format JJJJ-MM-TT
(also z.B. "2011-04-15" für den 15. April 2011).
function KtoSepa.GetActualDueDate
| Eingabeparameter |
| Name | Typ | Inhalt |
| - | - | - |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | String | Das Ausführungsdatum
für Gutschriften bzw. für die aktuelle Lastschrift im Format JJJJ-MM-TT
(siehe erläuternder Text unten) |
Diese Funktion hat einen doppelten Nutzen:
- Nach dem Aufruf von
KtoSepa.SetBankDays und/oder
KtoSepa.SetBankHour
erhalten Sie das reale Ausführungsdatum einer folgenden Überweisungsdatei
- Nach dem Aufruf von
KtoSepa.WriteCredit bzw.
KtoSepa.WriteDebit
erhalten Sie das reale Ausführungsdatum der soeben erzeugten
Buchung (das bei Überweisungen stets gleich ist, bei Lastschriften
jedoch vom ggf. automatisch ermittelten Sequenztyp – also
einmalig / erstmalig / wiederholt / abschließend – abhängt).
Das Format ist JJJJ-MM-TT
(also z.B. "2011-04-15" für den 15. April 2011).
- Funktionen für Überweisungen
function KtoSepa.OpenCredit
| Eingabeparameter |
| Name | Typ | Inhalt |
| aMsgId | String | Eine wahlfreie Bezeichnung Ihrer
Überweisungsdatei (bis zu 35 Zeichen), die in Ihrem Kontoauszug
erscheint – darf nicht weggelassen werden |
| aPmtInfId | String | Eine weitere wahlfreie Bezeichnung Ihrer
Überweisungsdatei (bis zu 35 Zeichen), die normalerweise
ebenfalls in Ihrem Kontoauszug erscheint (quasi ein "Untertitel") –
darf auch nicht weggelassen werden |
| aInitgPty | String | Der Name des Einreichers der
Überweisungen (bis zu 70 Zeichen; das muss nicht der Kontoinhaber
bzw. Auftraggeber sein, sondern kann z.B. den Namen eines beauftragen
Service-Dienstleisters enthalten); darf ebenfalls nicht weggelassen werden |
| aCtgyPurp | String | Die Kategorie des gesamten
Sammelauftrags, z.B. "SALA" für Gehaltsüberweisungen. Die Liste der
hier zugelassenen Codes finden Sie in Tabelle "4-CategoryPurpose" des
"External Code Lists spreadsheet" auf der
ISO20022-Website. Die hier gemachte Angabe wird jedoch
nicht im Kontoauszug ausgedruckt und ist darüberhinaus
wahlfrei; d.h. falls von Ihrer Seite nicht irgendwelche speziellen
Gründe für die Angabe eines solchen "Category Purpose"
sprechen, empfehlen wir, für diesen Parameter einen Leerstring
zu übergeben. |
| aAuftraggeber | String | Der Absender (Kontoinhaber)
der Überweisungen (bis zu 70 Zeichen) |
| aIban | String | Die IBAN (Kontonummer) des
Auftraggebers (also das Konto, das mit den Überweisungen belastet
wird) |
| aBic | String | Der BIC (Bank Identifier Code)
des Auftraggebers (also die absendende Bank) |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | 0: Ok, Überweisungen
können mit KtoSepa.WriteCredit
geschrieben werden
4: Es ist bereits eine Datei geöffnet. Wenn Sie zwei Dateien
gleichzeitig beschreiben wollen (nicht jedoch Lastschriften),
erzeugen Sie bitte ein weiteres KtoSepa-Objekt.
160: Ungültige Parameter (wenn z.B. aMsgId oder aPmtInf nicht
ausgefüllt wurden – außer aCtgyPurp
müssen alle Parameter belegt werden!) |
Diese Funktion startet eine Überweisungsdatei und legt u.a.
die Auftraggeberdaten fest. Nach erfolgreicher Rückkehr können
mit KtoSepa.WriteCredit die
einzelnen Überweisungen in die Datei geschrieben werden.
function KtoSepa.WriteCredit
| Eingabeparameter |
| Name | Typ | Inhalt |
| aBetrag | Windows: Currency | Betrag in EUR mit Cent-Nachkommastellen
Falls Sie die DLL-Version von KONTOPRUEF-OFFLINE verwenden
und Ihre Visual-Studio-Version keinen Currency-Datentyp
mehr unterstützt, müssen Sie diesen Parameter als Long
definieren und mit Decimal.ToOACurrency(...) konvertiert übergeben. |
| Linux: unsigned long | Betrag in Cent (Ganzzahl ohne Nachkommastellen) |
| aName | String | Der Name des Empfängers der
Überweisung (bis zu 70 Zeichen) |
| aIban | String | Die IBAN (Kontonummer) des
Empfängers der Überweisung |
| aBic | String | Der BIC (Bank Identifier Code)
des Empfängers der Überweisung |
| aPurp | String | Die Art dieser einzelnen
Überweisung. Sie können dieses Feld für normale Zahlungen
einfach leer lassen; es werden auch nicht alle Codes im Kontoauszug
(des Empfängers) ausgewiesen. Gängige (und evtl. notwendige)
Codes sind lediglich BONU / PENS / SALA für Gehaltsüberweisungen
(entspricht Textschlüssel 53 der nationalen Überweisungen),
BENE / GOVT / SSBE für Zahlungen öffentlicher Kassen
(entspricht Textschlüssel 56 der nationalen Überweisungen),
CHAR für Spenden
(entspricht Textschlüssel 69 der nationalen Überweisungen)
sowie CBFF für vermögenswirksame Leistungen
(entspricht Textschlüssel 54 der nationalen Überweisungen).
Die vollständige Liste der
hier zugelassenen Codes finden Sie in Tabelle "11-Purpose" des
"External Code Lists spreadsheet" auf der
ISO20022-Website. |
| aRef | String | Eine eindeutige Referenz dieser
Überweisung (bis zu 35 Zeichen), z.B. eine Rechnungsnummer |
| aVerwend | String | Der Verwendungszweck
dieser Überweisung (beliebiger freier Text bis zu 140 Zeichen) |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | 0: Ok, Überweisung
wurde geschrieben
29: Schreibfehler (wenn z.B. KtoSepa.OpenCredit
nicht vorher aufgerufen wurde)
117: Sie haben KtoSepa.WriteCredit
zum Schreiben einer Überweisung aufgerufen, aber vorher mit
KtoSepa.OpenDebit eine Lastschriftdatei begonnen
160: Ungültige Parameter (wenn z.B. aIban oder aBic nicht
ausgefüllt wurden) |
Diese Funktion schreibt eine einzelne Überweisung in eine
zuvor mit KtoSepa.OpenCredit
gestartete Überweisungsdatei.
function KtoSepa.CloseCredit
| Eingabeparameter |
| Name | Typ | Inhalt |
| aFileName | String | Ziel-Dateiname für die
XML-Überweisungsdatei (bitte vollen Pfad angeben; nicht einfach
nur Dateiname bzw. relativer Pfad; also z.B. C:\Temp\Test.xml
oder /var/tmp/test.xml) |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | 0: Ok, XML-Überweisungsdatei
wurde geschrieben
29: Schreibfehler (wenn z.B. KtoSepa.OpenCredit
nicht vorher aufgerufen wurde und/oder ein ungültiger Dateiname
übergeben wurde)
117: Sie erzeugen gerade eine Lastschriftdatei; bitte
verwenden Sie KtoSepa.CloseDebit! |
Diese Funktion schließt die zuvor mit
KtoSepa.OpenCredit
gestartete Überweisungsdatei und schreibt sie an die durch aFileName
angegebene Stelle.
Achtung: Sollte diese Funktion (z.B. mit Result=29)
fehlschlagen, ist die Überweisungsdatei verloren, und eine erneute
Erzeugung muss wieder von vorne mit
KtoSepa.OpenCredit
beginnen!
- Funktionen für Lastschriften
- Generelles zur SEPA-Lastschrifteinreichung (lesen Sie bitte auch
die allgemeinen SEPA-Informationen):
- Sie müssen
bei Lastschriften angeben, ob es sich um eine einmalige Lastschrift ("OOFF")
handelt (z.B. bei einem Kauf einer Ware durch einen Kunden) oder ob
die Lastschrift regelmäßig stattfindet (z.B. bei einem
Abonnement mit monatlichen Abbuchungen).
- Bei regelmäßigen Lastschriften müssen
Sie noch angeben, ob es sich um die erste ("FRST"), eine wiederholte
(also "mittlere", "RCUR") oder die letztmalige ("FNAL") Lastschrift
handelt.
- Sie können diese Angaben ("Sequenz-Typ", abgekürzt "SeqTp")
selbst verwalten oder KONTOPRUEF-OFFLINE
überlassen; im letzteren Fall verwaltet KONTOPRUEF-OFFLINE
eine "Mini-Datenbank" (eine kleine Datei irgendwo auf Ihrer Festplatte),
in der für jeden Kunden und Mandanten die jeweils letzte Lastschrift
gespeichert wird, so dass der richtige Typ automatisch herausgefunden
werden kann.
- Ferner müssen Sie bei Mandatsänderungen (Änderung der
Mandatsreferenz, Ihres Firmennamens oder Ihrer Gläubiger-ID bzw.
Änderung der Bankverbindung Ihres Kunden) die jeweils bisherigen
Daten im Datensatz mitschicken. Auch dies erledigt KONTOPRUEF-OFFLINE
selbst, wenn Sie die oben erwähnte "Automatik" mit der Mini-Datenbank
verwenden; eine manuelle Übergabe dieser "Amendment Information Details"
an KONTOPRUEF-OFFLINE ist derzeit ohnehin nicht vorgesehen.
- Die erwähnte Mini-Datenbank arbeitet zweistufig: Während
der Erzeugung der XML-Datei werden die Lastschriften zunächst in
eine temporäre Datenbank geschrieben (für Mandant 1 z.B.
in die Datei temp1.db) und erst durch Aufruf von
KtoSepa.MergeTemp in die "Hauptdatenbank"
(mand1.db für Mandant 1) übernommen.
Dies hat den Vorteil, dass Sie sich nach der Erzeugung
der XML-Datei diese erst einmal anschauen und bei irgendwelchen
Fehlern neu erzeugen können. Oder einfach wegwerfen (und die
zugehörige temporäre Datenbank mit
KtoSepa.DeleteTemp löschen).
Nur wenn Sie die XML-Datei tatsächlich bei Ihrer Bank einliefern,
sollten Sie KtoSepa.MergeTemp aufrufen,
um die "Hauptdatenbank" zu aktualisieren.
- Die Funktionalität ist dabei wie folgt:
- Wird eine Einmallastschrift ("OOFF") erzeugt oder Mandant=0 bei
KtoSepa.OpenDebit oder Kunde=0 bei
KtoSepa.WriteDebit übergeben,
passiert nichts (es wird also weder ein SeqTp automatisch ermittelt
noch diese Lastschrift für spätere Ermittlungen gespeichert).
- Alle anderen SeqTp (also die "wiederholenden" Typen FRST/RCUR/FNAL)
werden durch KtoSepa.WriteDebit
in die temporäre Datenbank geschrieben.
- Beim Aufruf von KtoSepa.MergeTemp werden
in der "Hauptdatenbank" alle "FRST"- und "RCUR"-Datensätze aus der
temporären Datenbank anhand der Kundennummer aktualisiert (bzw. hinzugefügt)
sowie alle "FNAL"-Datensätze aus der temporären Datenbank
in der Hauptdatenbank gelöscht.
function KtoSepa.SetDbDirectory
| Eingabeparameter |
| Name | Typ | Inhalt |
| aDbDirectory | String | Mit diesem Parameter können
Sie das Verzeichnis angeben, in dem die mand... und temp...
Mini-Datenbanken gespeichert werden. Wenn Sie einen leeren String übergeben,
wird das Standardverzeichnis ausgewählt (unter Windows XP z.B.
C:\Dokumente und Einstellungen\All Users\Anwendungsdaten\Hanft\KontoPruef\SEPA,
unter Linux /var/db/hanft/kontopruef/sepa). |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | 0: Ok, Verzeichnis existiert
(und wurde ggf. angelegt)
28: Verzeichnis existiert nicht und konnte auch nicht angelegt werden |
Diese Funktion legt das Verzeichnis fest, in dem die Mini-Datenbanken
mit den zuletzt ausgeführten Lastschriften gespeichert werden. Die
"endgültige" Datenbank heißt mand...db (wobei für
"..." die jeweilige Mandantennummer eingesetzt wird), die temporäre
Datenbank temp...db.
Achtung: Diese Funktion wird mit leerem Parameter auch
unmittelbar nach dem Anlegen des KtoSepa-Objekts aufgerufen. Sie
können also mit KtoSepa.GetLastError
sofort nach dem Anlegen des Objekts prüfen, ob das Standardverzeichnis
zur Verfügung steht. (Falls Sie mit dieser Funktion ohnehin
ein anderes Verzeichnis auswählen, können Sie diese Angabe
natürlich ignorieren.)
Das Datenbankverzeichnis muss natürlich für den Prozess
bzw. Benutzer, unter dem Ihre Anwendungssoftware läft, zum
Lesen und Schreiben freigegeben sein!
function KtoSepa.GetDbDirectory
| Eingabeparameter |
| Name | Typ | Inhalt |
| - | - | - |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | String | Das aktuell eingestellte
Datenbank-Verzeichnis |
Mit dieser Funktion erhalten Sie das Verzeichnis, in dem die Mini-Datenbanken
mit den zuletzt ausgeführten Lastschriften gespeichert werden. Die
"endgültige" Datenbank heißt mand...db (wobei für
"..." die jeweilige Mandantennummer eingesetzt wird), die temporäre
Datenbank temp...db.
function KtoSepa.TestDbDirectory
| Eingabeparameter |
| Name | Typ | Inhalt |
| - | - | - |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | 0: OK, Verzeichnis
existiert und kann beschrieben und gelesen werden
5: Die Testdatei kann nicht wieder gelöscht werden
13: Die gelesenen Daten unterscheiden sich von den geschriebenen Daten
25: Die Dateipositionierung in der Testdatei funktioniert nicht
29: In die Testdatei kann nicht geschrieben werden
30: Aus der Testdatei kann nicht gelesen werden
82: Das Verzeichnis oder die Testdatei kann nicht angelegt werden |
Mit dieser Funktion prüfen Sie, ob das mit
KtoSepa.SetDbDirectory
eingestellte Verzeichnis existiert (bzw. angelegt werden kann) und
ob darin Dateien für die Mini-Datenbank angelegt, beschrieben,
gelesen und gelöscht werden können. Wir empfehlen, vor der
Verwendung der Debit-Funktionen mit dieser Funktion die
korrekte Einstellung des Mini-Datenbank-Verzeichnisses zu prüfen.
Dabei wird immer nur der erste gefundene Fehler zurückgeliefert;
Sie müssen also diese Funktion so lange aufrufen (und unterdessen
jeden zurückgemeldeten Fehler korrigieren), bis Sie das Ergebnis
0 (OK) erhalten!
function KtoSepa.OpenDebit
| Eingabeparameter |
| Name | Typ | Inhalt |
| aMandant | Integer | Eine Mandantennummer
zwischen 1 und 2147483647. Sie können auch 0 übergeben, dann
wird die Funktionalität der Mini-Datenbank zur automatischen
Ermittlung des SeqTp abgeschaltet (und Sie müssen bei
KtoSepa.WriteDebit immer
Kundennummer 0 übergeben) |
| aMsgId | String | Eine wahlfreie Bezeichnung Ihrer
Lastschriftdatei (bis zu 35 Zeichen), die in Ihrem Kontoauszug
erscheint – darf nicht weggelassen werden |
| aInitgPty | String | Der Name des Einreichers der
Lastschriften (bis zu 70 Zeichen; das muss nicht der Kontoinhaber
bzw. Auftraggeber sein, sondern kann z.B. den Namen eines beauftragen
Service-Dienstleisters enthalten); darf ebenfalls nicht weggelassen werden |
| aCtgyPurp | String | Die Kategorie des gesamten
Sammelauftrags, z.B. "CASH" für allgemeine Zahlungen. Die Liste der
hier zugelassenen Codes finden Sie in Tabelle "4-CategoryPurpose" des
"External Code Lists spreadsheet" auf der
ISO20022-Website. Die hier gemachte Angabe wird jedoch
nicht im Kontoauszug ausgedruckt und ist darüberhinaus
wahlfrei; d.h. falls von Ihrer Seite nicht irgendwelche speziellen
Gründe für die Angabe eines solchen "Category Purpose"
sprechen, empfehlen wir, für diesen Parameter einen Leerstring
zu übergeben. |
| aAuftraggeber | String | Der Auftraggeber
der Lastschriften (also der Zahlungsempfänger, bis zu 70 Zeichen) |
| aIban | String | Die IBAN (Kontonummer) des
Auftraggebers (also das Konto, dem die Lastschriften gutgeschrieben
werden) |
| aBic | String | Der BIC (Bank Identifier Code)
des Auftraggebers (also die Bank des Zahlungsempfängers) |
| aCreditorId | String | Die Gläubiger-ID des
Auftraggebers/Zahlungsempfängers; kann bei der
Bundesbank kostenlos beantragt werden |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | 0: Ok, Lastschriften
können mit KtoSepa.WriteDebit
geschrieben werden
4: Es ist bereits eine Datei geöffnet. Wenn Sie zwei Dateien
gleichzeitig beschreiben wollen (nicht jedoch Lastschriften),
erzeugen Sie bitte ein weiteres KtoSepa-Objekt.
110: Die temporäre Mini-Datenbank konnte nicht geöffnet werden.
160: Ungültige Parameter (wenn z.B. aMsgId oder aCreditorId nicht
ausgefüllt wurden – außer aCtgyPurp
müssen alle Parameter belegt werden!) |
Diese Funktion startet eine Lastschriftdatei und legt u.a.
die Auftraggeberdaten fest. Nach erfolgreicher Rückkehr können
mit KtoSepa.WriteDebit die
einzelnen Lastschriften in die Datei geschrieben werden.
Wenn Sie die Automatik zur Ermittlung des SeqTp benutzen, legt
diese Funktion eine neue temporäre Datenbank temp...db
an; eine evtl. vorhandene alte Datenbank gleichen Namens (=mit der
gleichen Mandantennummer) wird dabei ggf. überschrieben.
function KtoSepa.WriteDebit
| Eingabeparameter |
| Name | Typ | Inhalt |
| aKunde | Integer | Eine Kundennummer zwischen 1 und
2147483647. Sie können auch 0 übergeben, dann
wird die Funktionalität der Mini-Datenbank zur automatischen
Ermittlung und Speicherung des SeqTp abgeschaltet (und Sie dürfen
im Parameter aSeqTp nur Werte zwischen 0 und 3 angeben, s.u.). Wurde bei
KtoSepa.OpenDebit Mandant 0
übergeben, muss hier zwingend Kunde 0 übergeben werden! |
| aSeqTp | Integer | Der Sequenz-Typ dieser Lastschrift. Es
stehen Ihnen folgende Möglichkeiten zur Verfügung:
0: OOFF (einmalige Lastschrift)
1: FRST (wiederholte Lastschrift; dies ist die erste davon)
2: RCUR (wiederholte Lastschrift; dies ist eine "mittlere"; also
weder die erste noch die letzte)
3: FNAL (wiederholte Lastschrift; dies ist die letzte davon)
-1: Automatik; anhand Mandanten- und Kundennummer findet KONTOPRUEF-OFFLINE
den richtigen Sequenz-Typ automatisch heraus und berücksichtigt
im Lastschriftdatensatz auch noch evtl. Änderungen des Mandats
(neue Bankverbindung, Gläubiger-ID etc.)
-2: wie -1, jedoch signalisieren Sie damit, dass es sich jetzt um
die letzte Lastschrift handelt (d.h. es wird i.d.R. FNAL eingesetzt)
Die negativen Werte können Sie nur übergeben, wenn Sie
die Funktionalität der Mini-Datenbank nutzen, d.h. Werte größer
als 0 für Mandant und Kunde übergeben haben und das Verzeichnis
der Mini-Datenbank schreib- und lesbar ist und sich die Mandantendatenbank
(mand...db) dort befindet (beim ersten Aufruf für den jeweiligen
Mandanten wird sie natürlich automatisch angelegt). |
| aBetrag | Windows: Currency | Betrag in EUR mit Cent-Nachkommastellen
Falls Sie die DLL-Version von KONTOPRUEF-OFFLINE verwenden
und Ihre Visual-Studio-Version keinen Currency-Datentyp
mehr unterstützt, müssen Sie diesen Parameter als Long
definieren und mit Decimal.ToOACurrency(...) konvertiert übergeben. |
| Linux: unsigned long | Betrag in Cent (Ganzzahl ohne Nachkommastellen) |
| aName | String | Der Name des Zahlungspflichtigen
(bis zu 70 Zeichen) |
| aIban | String | Die IBAN (Kontonummer) des
Zahlungspflichtigen |
| aBic | String | Der BIC (Bank Identifier Code)
der Bank des Zahlungspflichtigen |
| aPurp | String | Die Art dieser einzelnen
Lastschrift. Sie können dieses Feld für normale Zahlungen
einfach leer lassen; es werden auch nicht alle Codes im Kontoauszug
(des Empfängers) ausgewiesen. Wenn Sie Energieversorger sind,
können Sie hier z.B. ELEC angeben, wenn es sich um
eine Lastschrift für die Stromrechnung handelt. Das hat aber
bislang keinerlei Auswirkungen; wir empfehlen daher, dieses Feld
vorerst leer zu lassen, falls keine besondere Gründe dagegen
sprechen. Die vollständige Liste der
hier zugelassenen Codes finden Sie in Tabelle "11-Purpose" des
"External Code Lists spreadsheet" auf der
ISO20022-Website. |
| aRef | String | Eine eindeutige Referenz dieser
Lastschrift (bis zu 35 Zeichen), z.B. eine Rechnungsnummer |
| aVerwend | String | Der Verwendungszweck
dieser Lastschrift (beliebiger freier Text bis zu 140 Zeichen) |
| aMandatRef | String | Die Mandatsreferenz, die Sie
Ihrem Kunden z.B. in der Einzugsermächtigung und/oder der Rechnung
mitgeteilt haben (bis zu 35 Zeichen) |
| aMandatDate | String | Das Datum, an dem Ihr Kunde
das SEPA-Mandat (die Einzugsermächtigung) unterschrieben hat,
im Format JJJJ-MM-TT (also z.B. "2011-04-15" für den
15. April 2011) |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | 0: Ok, Überweisung
wurde geschrieben
29: Schreibfehler (wenn z.B. KtoSepa.OpenDebit
nicht vorher aufgerufen wurde)
117: Sie haben KtoSepa.WriteDebit
zum Schreiben einer Lastschrift aufgerufen, aber vorher mit
KtoSepa.OpenCredit eine Überweisungsdatei
begonnen
160: Ungültige Parameter (wenn z.B. aIban oder aBic nicht
ausgefüllt wurden) |
Diese Funktion schreibt eine einzelne Lastschrift in eine
zuvor mit KtoSepa.OpenDebit
gestartete Lastschriftdatei.
function KtoSepa.CloseDebit
| Eingabeparameter |
| Name | Typ | Inhalt |
| aFileName | String | Ziel-Dateiname für die
XML-Lastschriftdatei (bitte vollen Pfad angeben; nicht einfach
nur Dateiname bzw. relativer Pfad; also z.B. C:\Temp\Test.xml
oder /var/tmp/test.xml) |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | 0: Ok, XML-Lastschriftdatei
wurde geschrieben
29: Schreibfehler (wenn z.B. KtoSepa.OpenDebit
nicht vorher aufgerufen wurde und/oder ein ungültiger Dateiname
übergeben wurde)
117: Sie erzeugen gerade eine Überweisungsdatei; bitte
verwenden Sie KtoSepa.CloseCredit! |
Diese Funktion schließt die zuvor mit
KtoSepa.OpenDebit
gestartete Lastschriftdatei und schreibt sie an die durch aFileName
angegebene Stelle.
Achtung: Sollte diese Funktion (z.B. mit Result=29)
fehlschlagen, ist die Lastschriftdatei verloren, und eine erneute
Erzeugung muss wieder von vorne mit
KtoSepa.OpenDebit beginnen!
Wenn Sie die Automatik zur Ermittlung des SeqTp benutzt haben,
sollten Sie an dieser Stelle entweder
KtoSepa.MergeTemp benutzen, wenn
Sie die Datei tatsächlich an Ihre Bank übertragen, oder
KtoSepa.DeleteTemp, wenn Sie
die Datei nicht an Ihre Bank übertragen.
function KtoSepa.GetTempList
| Eingabeparameter |
| Name | Typ | Inhalt |
| - | - | - |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | String | Angaben darüber,
welche temporären Mini-Datenbanken es gibt und wieviele Lastschriften
sie jeweils enthalten, im Format "A:B C:D" (d.h. es gibt zwei temporäre
Mini-Datenbanken, eine für Mandant A mit B Lastschriften, und eine
für Mandant C mit D Lastschriften) |
Diese Funktion ermittelt die gegenwärtig existierenden
temporären Mini-Datenbanken (wenn es keine gibt, wird ein
Leerstring zurückgeliefert). Im "normalen Workflow" brauchen
Sie diese Funktion nicht; sie dient lediglich Diagnosezwecken.
function KtoSepa.DeleteTemp
| Eingabeparameter |
| Name | Typ | Inhalt |
| aMandant | Integer | Angabe der Nummer des Mandanten,
dessen temporäre Mini-Datenbank gelöscht werden soll |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | 0: Ok, temporäre
Mini-Datenbank wurde gelöscht
2: Es gibt keine temporäre Mini-Datenbank für den angegebenen
Mandanten
3: Das Datenbankverzeichnis (siehe
KtoSepa.SetDbDirectory /
KtoSepa.GetDbDirectory)
existiert nicht
5: Das Löschen der Datei ist fehlgeschlagen |
Diese Funktion löscht die temporäre Mini-Datenbank des
angegebenen Mandanten (wenn Sie die erstellte Lastschriftdatei doch
nicht an die Bank schicken wollen). Diese Funktion dient lediglich
Ihrem Komfort; Sie können die Datei (temp...db) auch
(nachdem sie mit KtoSepa.CloseDebit
geschlossen wurde) einfach auf Betriebssystemebene löschen. Oder
sie lassen sie einfach stehen; sie wird beim nächsten
KtoSepa.OpenDebit für
diesen Mandanten sowieso überschrieben und neu angelegt.
function KtoSepa.MergeTemp
| Eingabeparameter |
| Name | Typ | Inhalt |
| aMandant | Integer | Angabe der Nummer des Mandanten,
dessen temporäre Mini-Datenbank in die Mandantendatenbank
übernommen werden soll |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | 0: Ok, temporäre
Mini-Datenbank wurde in die Mandantendatenbank übernommen
(und danach gelöscht)
2: Es gibt keine temporäre Mini-Datenbank für den angegebenen
Mandanten
3: Das Datenbankverzeichnis (siehe
KtoSepa.SetDbDirectory /
KtoSepa.GetDbDirectory)
existiert nicht
5: Das Löschen einer Datei ist fehlgeschlagen
29: Es ist ein Schreibfehler aufgetreten
30: Es ist ein Lesefehler aufgetreten
82: Es konnte keine neue Datei angelegt werden
110: Das Öffnen einer Datei schlug fehl
Es gibt in dieser Funktion zahlreiche Fehlermöglichkeiten;
bitte verwenden Sie bei einem Ergebnis ungleich 0 die Funktion
KtoSepa.GetLastError,
um genauere Informationen über die Fehlerursache zu erhalten! |
Diese Funktion übernimmt die temporäre Mini-Datenbank des
angegebenen Mandanten in die Mandantendatenbank. Sie sollten diese
Funktion aufrufen, wenn Sie die zuletzt erstellte Lastschriftdatei
für einen bestimmten Mandanten zur Bank übertragen haben,
damit bei der nächsten Lastschriftdatei der SeqTp korrekt
ermittelt werden kann.
- Diagnose-/Datenbankfunktionen
function KtoSepa.ExportToFile
| Eingabeparameter |
| Name | Typ | Inhalt |
| aMandant | Integer | Angabe der Nummer des Mandanten,
dessen Datenbank in eine externe Textdatei geschrieben werden soll; wird
die Nummer positiv angegeben, erhalten Sie die Mandantendatenbank;
bei einer negativen Nummer die temporäre Mini-Datenbank der
zuletzt erzeugten Lastschriftdatei für diesen Mandanten |
| aFileName | String | Angabe der Textdatei,
in die der Datenbankinhalt geschrieben werden soll |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | 0: Ok, gewünschte
Datenbank wurde in die angegebene Textdatei geschrieben
2: Die gewünschte Datenbank existiert nicht
3: Das Datenbankverzeichnis (siehe
KtoSepa.SetDbDirectory /
KtoSepa.GetDbDirectory)
existiert nicht
29: Lesefehler beim Lesen aus der Datenbank
30: Schreibfehler beim Schreiben in die Textdatei
82: Das Anlegen der Textdatei ist fehlgeschlagen
110: Das Öffnen der Datenbankdatei ist fehlgeschlagen |
Diese Funktion schreibt den Datenbankinhalt in eine lesbare Textdatei.
Ein Datensatz entspricht einer Textzeile, die stets mit dem Zeichen "$"
beendet wird; die einzelnen Felder haben feste Breiten wie folgt:
| Feldlänge | Feldinhalt |
| 10 | Kundennummer |
| 35 | Mandatsreferenz |
| 70 | Name des Zahlungsempfängers |
| 35 | Gläubiger-ID des Zahlungsempfängers |
| 34 | IBAN des Zahlungspflichtigen |
| 11 | BIC des Zahlungspflichtigen |
| 35 | Referenz der Lastschrift (z.B. Rechnungsnummer) |
| 01 | Sequenz-Typ (0=OOFF, 1=FRST, 2=RCUR, 3=FNAL)
(0 kommt niemals vor, 3 nur in der temporären Datenbank) |
| 10 | Ausführungsdatum der Lastschrift (im Format JJJJ-MM-TT) |
| 01 | das Zeichen "$" als Zeilenendezeichen |
Alle Felder werden linksbündig belegt. Im "normalen Workflow" brauchen
Sie diese Funktion nicht; sie dient lediglich Diagnosezwecken. So können
Sie z.B. den Datenbankinhalt mit dieser Funktion in eine lesbare Textdatei
exportieren, mit einem normalen Texteditor (z.B. Notepad) darin Daten
ändern und mit KtoSepa.ImportFromFile
die geänderten Daten wieder in die Datenbank zurückspielen. Natürlich
sollten Sie das nur durchführen, wenn Sie wissen, was Sie tun –
wir bieten keine Unterstützung, wenn Sie durch einen derartigen
manuellen Eingriff Ihre Datenbank beschädigen!
function KtoSepa.ImportFromFile
| Eingabeparameter |
| Name | Typ | Inhalt |
| aMandant | Integer | Angabe der Nummer des Mandanten,
dessen Datenbank aus einer externen Textdatei erzeugt werden soll; wird
die Nummer positiv angegeben, wird die Mandantendatenbank erzeugt;
bei einer negativen Nummer die temporäre Mini-Datenbank der
zuletzt erzeugten Lastschriftdatei für diesen Mandanten |
| aFileName | String | Angabe der Textdatei,
aus der der neue Datenbankinhalt gelesen werden soll |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | 0: Ok, die angegebene
Textdatei wurde als Datenbank übernommen
2: Die angegebene Textdatei existiert nicht
3: Das Datenbankverzeichnis (siehe
KtoSepa.SetDbDirectory /
KtoSepa.GetDbDirectory)
existiert nicht
13: Das Datenformat in Ihrer Textdatei stimmt nicht
29: Fehler beim Schreiben in die Datenbankdatei
30: Die angegebene Textdatei kann nicht gelesen werden
82: Die Datenbankdatei kann nicht angelegt werden |
Diese Funktion legt eine Datenbankdatei neu an (eine evtl. bestehende
Datenbankdatei wird dabei überschrieben!), mit dem Inhalt der
angegebenen Textdatei. Für das Format der Textdatei sehen Sie
bitte bei KtoSepa.ExportToFile
nach. Im "normalen Workflow" brauchen Sie diese Funktion nicht;
sie dient lediglich Diagnosezwecken. So können
Sie z.B. einen exportierten Datenbankinhalt mit einem normalen Texteditor
(z.B. Notepad) ändern und mit dieser Funktion
die geänderten Daten wieder in die Datenbank zurückspielen. Natürlich
sollten Sie das nur durchführen, wenn Sie wissen, was Sie tun –
wir bieten keine Unterstützung, wenn Sie durch einen derartigen
manuellen Eingriff Ihre Datenbank beschädigen!
- Sonder-/Erweiterte Funktionen
function KtoSepa.SepaCommand
| Eingabeparameter |
| Name | Typ | Inhalt |
| aCommand | String | Auszuführende Funktion |
| aPar1 | Integer | Erster Funktionsparameter (numerisch) |
| aPar2 | Integer | Zweiter Funktionsparameter (numerisch) |
| aPar3 | Integer | Dritter Funktionsparameter (numerisch) |
| aPar4 | String | Vierter Funktionsparameter (Text) |
| aPar5 | String | Fünfter Funktionsparameter (Text) |
| aPar6 | String | Sechster Funktionsparameter (Text) |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | 0: Ok, die angegebene
Funktion wurde korrekt ausgeführt
1: Die angebenene Funktion existiert nicht
weitere Rückgabecodes je nach gewählter Funktion |
Mit dieser Funktion Können künftig neue/weitere SEPA-Funktionen
ausgeführt werden. Momentan sind keine weiteren Funktionen definiert.
Nach oben
Mit diesem Modul können Sie die Swift-Website abfragen. Bitte beachten Sie, daß dies
eine relativ unsichere Funktion ist, da der Swift-Server lediglich eine
menschen- (und nicht maschinen-) -lesbare Antwortseite erzeugt, die von
KONTOPRUEF nach bestem Wissen und Gewissen ausgewertet wird - aber
falls sich das Format der Website einmal ändern sollte, kann es
passieren, daß KONTOPRUEF die Antwort nicht mehr auswerten
kann. Verwenden Sie diese Abfrage also bitte nicht in kritischen
Anwendungen als letzte Entscheidung, ob ein bestimmter BIC gültig
ist oder nicht!
procedure KtoSwift.SetProxy
| Eingabeparameter |
| Name | Typ | Inhalt |
| aHost | String | Name des Proxy-Servers |
| aPort | Integer | Portnummer des Proxy-Servers |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| - | - | - |
Falls Sie für die Online-Abfrage einen Proxy-Server verwenden möchten
oder müssen, können Sie hier die nötigen Angaben machen. Es
wird nur dann ein Proxy-Server verwendet, wenn der angegebene Name nicht
leer ist und wenn der Port von 0 verschieden ist.
procedure KtoSwift.SetTimeout
| Eingabeparameter |
| Name | Typ | Inhalt |
| aTimeout | Integer | Timeout in Sekunden |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| - | - | - |
Hier können Sie einen maximalen Grenzwert für das Warten auf die
Antwort des Swift-Servers einstellen. Wenn der Server nicht in der angegebenen
Zeit antwortet, wird die Abfrage mit einem Fehlercode abgebrochen.
Wenn Sie diese Prozedur nie aufrufen, wird Ihr systemweit konfigurierter
Timeout-Wert verwendet.
function KtoSwift.TestBic
| Eingabeparameter |
| Name | Typ | Inhalt |
| aBic | String | Zu prüfender BIC (oder Anfang davon) |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | -200: Verbindung zum
Server kann nicht hergestellt werden
-300: Antwort des Servers ist nicht auswertbar
-1: Es gibt definitiv keine BICs, die mit dem angegebenen
Suchbegriff beginnen
0: Es gibt anscheinend BICs, die mit dem angegebenen Suchbegriff
beginnen, aber die Anzahl ist aus der Server-Antwort nicht auswertbar
1..N: Es gibt so viele BICs, die mit dem angegebenen Suchbegriff beginnen |
Übergibt den eingegebenen Begriff an die Suchfunktion des
Swift-Servers und wertet die Antwort aus. Bei Verbindungsproblemen
(Ergebnis "-200") können Sie mit KtoSwift.GetLastError
weitere Informationen erhalten.
Hinweis: Da der Swift-Server grundsätzlich nur nach
dem Anfang des eingegebenen Suchbegriffs sucht, kommt es in seltenen
Fällen vor, daß KONTOPRUEF als Ergebnis "1" liefert,
was eigentlich darauf hindeutet, daß der geprüfte BIC
gültig ist, aber trotzdem nicht stimmt (z.B. wird für
"PBNKDEFF76" das Ergebnis "1" gemeldet, weil es nur einen BIC
gibt, der mit "PBNKDEFF76" beginnt, nämlich "PBNKDEFF760" -
aber dadurch ist "PBNKDEFF76" natürlich kein gültiger
BIC). Wie oben bereits angemerkt, sollte das KONTOPRUEF-Ergebnis
eines solchen Tests also nicht als die endgültige Weisheit
betrachtet werden. Eine ergänzende Funktion, die eine Liste
aller gefunden BICs mit dem angegebenen Anfang zurückliefert,
ist in Vorbereitung - anhand einer solchen Liste kann man dann
die Eindeutigkeit eines bestimmten Suchbegriffs genau bestimmen.
Diese Funktion wird in einem der nächsten Updates enthalten
sein.
Nach oben
Mit diesem Modul können Sie die Anzahl der Arbeitstage
in einem bestimmten Monat, Quartal oder Jahr ermitteln.
function KtoArbeit.Arbeitstage
| Eingabeparameter |
| aYear | Integer | Gewüschtes Jahr (z.B. 2004) |
| aMonth | Integer | Einer der folgenden Werte:
1 bis 12: Monat
41 bis 44: Quartal
0: Gesamtes Jahr |
| aSaturdaysFlag | Integer | 0: Samstage zählen nicht
als Arbeitstage
1: Samstage zählen als Arbeitstage |
| aFeiertageSet | Integer | Angabe, welche Tage als
Feiertage gelten sollen (siehe unten) |
| Ausgabeparameter |
| Name | Typ | Inhalt |
| Funktionsergebnis | Integer | Anzahl der Arbeitstage
gemäß der angegebenen Parameter (bei ungültigen
Parametern, z.B. aMonth=13, wird -1 zurückgegeben -
ebenso bei 30% der Antworten der Demoversion) |
Ermittelt die Anzahl der Arbeitstage anhand der angegebenen Parameter. Für
die Angabe der Tage, die als Feiertage gelten sollen, zählen Sie die
Werte der folgenden Tage zusammen:
| Tag | Wert |
| Heilige drei Könige | 1 |
| Christi Himmelfahrt | 2 |
| Fronleichnam | 4 |
| Friedensfest | 8 |
| Mariä Himmelfahrt | 16 |
| Reformationstag | 32 |
| Allerheiligen | 64 |
| Allerseelen | 128 |
| Buß- und Bettag | 256 |
| Heiliger Abend | 512 |
| Silvester | 1024 |
|
Immer als Feiertag gelten:- Neujahr
- Karfreitag
- Ostermontag
- Tag der Arbeit
- Pfingstmontag
- Tag der deutschen Einheit
- 1. Weihnachtstag
- 2. Weihnachtstag
|
Nach oben
|