KONTOPRUEF-Logo
Sehen Sie sich auch mein anderes Produkt an:
myebilanz – die Freeware-eBilanz aus MySQL und CSV!
myebilanz

Technik von KONTOPRUEF

Inhalt dieser Seite:

Online-Abfrage

Bitte lesen Sie auf der Seite KONTOPRUEF-ONLINE weiter.

Lokale Installationen

Allgemeines

KONTOPRUEF-OFFLINE besteht aus einigen Programm- und Bibliotheksdateien sowie der jeweiligen Datendatei. Bei letzterer kann es sich um eine Demoversion oder um eine vollständige Datendatei handeln. Die Demoversion kann (zusammen mit der Software) von dieser Website heruntergeladen und sofort ausprobiert werden. Die Einschränkungen der Demo-Datendatei sind:

  • Die Bankendatei enthält nur etwa ein Drittel der tatsächlich existierenden Banken (vorwiegend Postbanken, Sparkassen und Raiffeisenbanken).
  • Beim Einlesen von MT940-Kontoauszügen in eine SQL-Datenbank werden etwa ein Drittel der Zeichen in der Absender- und Verwendungszweckangabe durch 'X', 'Y' oder 'Z' ersetzt.
  • Beim Erzeugen von DTAUS- oder SEPA-XML-Dateien werden etwa ein Drittel der Zeichen in der Empfänger-/Zahlungspflichtigen- und Verwendungszweckangabe durch 'X', 'Y' oder 'Z' ersetzt.
  • Bei der Berechnung der Arbeitstage erhalten Sie in etwa einen Drittel der Fälle das Ergebnis '-1'.

Wenn Sie KONTOPRUEF-OFFLINE das erste Mal von dieser Website herunterladen, ist die aktuelle Demo-Datendatei gleich mit im Archiv enthalten. Sie haben dann also alles auf Ihrer Platte, um (mit dem Demo-Datenbestand) gleich loszulegen.

Die vollständigen Datendateien haben die Namen bankxxyz.wbd (wbd=Windows-Bank-Daten) bzw. bankxxyz.lbd (lbd=Linux-Bank-Daten); die Datendateien der Demo-Version heißen jeweils demo... statt bank.... Die jeweils aktuellen vollständigen Datendateien (entweder erstmalig, wenn Sie eine neue Lizenz gekauft haben, oder später im Rahmen von Updates) können von diesem Server hier heruntergeladen werden, entweder per Softwareaufruf in KONTOPRUEF-OFFLINE, oder per manuellem Download. Die übertragenen Dateien haben die Endung .wbp (Windows-Bank-Paket) bzw. .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, zu dem diese Datei gehört, 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.

Alle KONTOPRUEF-OFFLINE-Module suchen beim ersten Start automatisch nach der wbd/lbd-Datei mit der höchsten Nummer (=aktuellste Version) und laden diese in den Speicher (es muß also nicht bei jedem Programmstart erst KtoUpdate.Activate aufgerufen werden!). Es werden keine alten Datendateien automatisch gelöscht, so daß auch später noch ggf. auf alte Datenbestände zurückgegriffen werden kann.

Windows

Kern der KONTOPRUEF-OFFLINE-Software ist ein sogenannter "COM-Server". Dieser besteht aus der Datei "Bank.exe" und muß irgendwohin auf die Platte kopiert werden (z.B. nach "C:\Programme\KtoPruef"). Damit die Dienste dieses Servers in Windows bekanntgemacht werden, muß er einmal (im Leben) aufgerufen werden. Dann erscheint auch gleich das Demo-Programm, in dem man schon mal manuell Bankverbindungen prüfen kann. (Wird Bank.exe mit der Entwicklungslizenz in eigene Software integriert, kann es mit dem Parameter "/regserver" aufgerufen werden, damit das Demoprogramm nicht erscheint.)

Zum Entfernen des COM-Servers aus dem System genügt es, Bank.exe einmal mit dem Parameter "/unregserver" aufzurufen (dann wird er aus der Windows-Installation entfernt) und alle zugehörigen Dateien im Programmverzeichnis zu löschen. Er erfolgt kein Eintrag in der Registry!

Alternativ können Sie auch die "normale" Windows-Installationsprozedur via setup.exe nutzen.

Im selben Verzeichnis wie "Bank.exe" muüssen die mitgelieferten Bibliotheken stehen (z.B. KtoBase.bpl oder Rtl70.bpl o.ä.). Diese kümmern sich intern um die Verwaltung der Datendateien.

Das Herunterladen der wbp/lbp-Dateien und das Speichern der wbd/lbd-Dateien spielt sich im selben Verzeichnis ab, in dem sich auch Bank.exe und die Bibliotheken befinden. Das Benutzerkonto, unter dem Bank.exe läuft, muß also auf dieses Verzeichnis Schreibzugriff haben.

Die Objekte, die per COM aufgerufen werden können, heißen Bank.KtoUpdate, Bank.KtoPruef, Bank.KtoRead, Bank.KtoDtaus, Bank.KtoSwift und Bank.KtoArbeit. Die einzelnen Funktionen der jeweiligen Module finden Sie auf der Funktionen-Seite.

KtoLib30.dll

Für Spezialanwendungen, die keinen COM-Server nutzen können, steht auf der Downloadseite auch noch eine DLL-Bibliothek zum Linken zur Verfügung. Wenn Sie unbedingt diese DLL verwenden wollen oder müssen, beachten Sie bitte die dort angegebenen Einschränkungen.

Aufruf des COM-Servers aus verschiedenen Programmiersprachen:

  • ASP:

    <%
    ' ASP - Code Beispiel
    
    Set BVPruef = CreateObject("Bank.KtoPruef")
    
    CONST strBLZ = ""
    CONST strKTONR = ""
    
    Dim RetCode
    
    response.write "Programmstart<br>"
    
    response.write "Bankname: " & BVPruef.GetBankName27(strBLZ) & "<br>"
    RetCode = BVPruef.TestBlzKto(strBLZ, strKTONR)
    response.write  "RetCode: " & RetCode & "<br>"
    
    Set BVPruef = Nothing
    %>
  • MS-Office:

    • Laden Sie von der Downloadseite die KONTOPRUEF-Software herunter ("Lokale Installation / COM-Server"), entpacken Sie sie und rufen Sie Bank.exe mit Administratorrechten einmal auf, damit sich der COM-Server in Windows eintragen kann.
    • Starten Sie Ihre Office-Anwendung.
    • Wählen Sie Extras - Makro - Visual Basic-Editor.
    • In diesem VB-Editor wählen Sie Extras - Verweise.
    • Kreuzen Sie in dem dort erscheinenden Fenster Hanft Bank-Bibliothek an und bestätigen Sie mit Ok.
    • Erzeugen Sie ein neues Modul mit z.B. folgendem Inhalt:
      Dim KtoPruef As New Bank.KtoPruef
      
      Public Function TestBlzKto(Blz, Kto As String) As Integer
        TestBlzKto = KtoPruef.TestBlzKto(Blz, Kto)
      End Function
      
      Public Function GetBankName(Blz As String) As String
        GetBankName = KtoPruef.GetBankName27(Blz)
      End Function
      
      Public Function GetResultText(Error As Integer) As String
        GetResultText = KtoPruef.GetErrorMessage(Error)
      End Function
    • Wechseln Sie vom VBA-Editor wieder in die Office-Applikation zurück. Sie können dort jetzt die hier definierten Funktionen TestBlzKto, GetBankName und GetResultText als "normale" (z.B.) Excel-Funktionen in der Tabelle verwenden (als Feldfunktion =TestBlzKto(A2;B2).)
    Eine Beispiel-Excel-Tabelle, bei der obiges so programmiert wurde, können Sie hier herunterladen: BankTest.xls (Beim Laden müssen natürlich die Makros aktiviert werden!)
  • Delphi:

    Unter Delphi gibt es zwei Möglichkeiten, mit KONTOPRUEF zu arbeiten: "Late Binding" und "Early Binding". "Late Binding" ist schneller programmiert und compiliert, allerdings machen sich Fehler bei den Funktionsnamen (z.B. "TextBlzKto" statt "TestBlzKto") erst zur Laufzeit bemerkbar. Mit "Early Binding" finden Sie solche Fehler bereits beim Compilieren. Im folgenden werden beide Möglichkeiten angegeben:

    • Late Binding:
      uses
        ComObj;
      var
        myKtoPruef: OleVariant;
        myResult: Integer;
      begin
        myKtoPruef:=CreateOleObject('Bank.KtoPruef');
        myResult:=myKtoPruef.TestBlzKto('76010085', '1856')
      end;
    • Early Binding:
      Importieren Sie zunächst die Typbibliothek von KONTOPRUEF, und zwar mit "Projekt - Typbibliothek importieren". Sie finden KONTOPRUEF unter "Hanft Bank-Bibliothek (Version 3.0)". Dann sieht der Code wie folgt aus:
      uses
        Bank_TLB;
      var
        myKtoPruef: IKtoPruef;
        myResult: Integer;
      begin
        myKtoPruef:=CoKtoPruef.Create;
        myResult:=myKtoPruef.TestBlzKto('76010085', '1856')
      end;
  • .NET:
    Die Einbindung der Online-Prüfungen ist hier besonders einfach: Sehen Sie bitte auf der WebServices-Seite nach.

Linux

Unter Linux besteht KONTOPRUEF-OFFLINE aus den Modulen bplKtoBase.so, libKtoUpdate.so, libKtoPruef.so, libKtoRead.so, libKtoDtaus.so, libKtoSepa.so, libKtoSwift.so und libKtoArbeit.so. Das System muß diese Bibliotheken finden können; dazu muß die Environment-Variable LD_LIBRARY_PATH darauf zeigen (eintragen des Bibliothekspfads in /etc/ld.so.conf soll auch gehen, hat bei mir allerdings nicht funktioniert). Dies geht je nach Linux-Version und verwendeter Shell z.B. mit export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH (natürlich können die Bibliotheken auch in das Standard-Bibliothekenverzeichnis des Systems, i.d.R. /lib, /usr/lib oder /usr/local/lib kopiert werden).

Im KONTOPRUEF-OFFLINE-Paket sind die .h-Dateien mit den Deklarationen der Routinen enthalten. Ein Routinenname ist aus dem Modulnamen und dem Funktionsnamen zusammengesetzt, z.B. KtoPruefTestBlzKto.

Da es keinen zentralen COM-Server im System gibt, funktioniert der Update-Prozeß im laufenden Betrieb nur dann korrekt, wenn die Bibliotheken nur von einem einzigen Linux-Prozeß aus verwendet werden. Der Benutzer muß daher beim Aufruft der KtoUpdate...-Funktionen selbst sicherstellen, daß während eines Updates der Datendatei keine weiteren Aufrufe in andere KONTOPRUEF-OFFLINE-Module stattfinden. (In zukünftigen KONTOPRUEF-Versionen ist eine Koordinierung verschiedener Prozesse über IPC/Shared Memory vorgesehen.)

Beim Übersetzen müssen die Bibliotheken mit gcc -o test test.c libKto*.so eingebunden werden (es sind nur die Bibliotheken der Module nötig, die man auch tatsächlich verwendet). Bei der Compilierung erscheint (je nach Linux-Version) u.U. die Meldung ./bplKtoBase.so: the use of `tempnam' is dangerous, better use `mkstemp'. Ich versuche, diese Meldung in künftigen Versionen noch wegzubekommen; einstweilen können Sie diese Meldung ignorieren.

Ohne weitere Einstellungen wird als Verzeichnis für die Datendateien das aktuelle Verzeichnis verwendet; da dies jedoch zum einen in Linux nicht so genau definiert ist und zum anderen auch noch von der verwendeten Shell abhängt, wird dringend empfohlen, eine Konfigurationsdatei /etc/KtoPruef.conf anzulegen, mit folgendem Inhalt (Beispiel für /home/mh/data):

[Directories]
data=/home/mh/data

Spezielle Informationen bezüglich der Änderungen zwischen den Versionen Juni 2004 und September 2004

KONTOPRUEF-OFFLINE 2.0 (und natürlich auch 3.0) wurde gegenüber Version 1.0 wesentlich erweitert: Es gibt jetzt

  • eine integrierte Updatefunktion, die - wenn der Anwender das will - neue Datendateien per Internet herunterlädt und installiert
  • zahlreiche neue Funktionen rund um die Bankdaten, z.B. IBAN-Generierung und -Prüfung, BIC-Suche etc.
  • Einlesen von MT940-Kontoauszügen in SQL-Datenbanken
  • Erstellen und Prüfen von DTAUS-Dateien
  • BIC-Online-Prüfung via Swift-Website
  • Berechnung der Arbeitstage-Anzahl in einem bestimmten Monat, Quartal oder Jahr

Programmtechnisch fallen für bisherige Anwender keine Änderungen an: Die Funktionen Init, InitFile, InitReg, SetRegKey und GetReg sind weggefallen (bzw. geben immer "OK" zurück, damit das Anwenderprogramm nicht geändert werden muß). Es gibt keine "Registrierung" und "Schlüssel" mehr - ob die Software als Demo- oder Vollversion läuft, hängt einzig und alleine von der verwendeten Datendatei ab.

Alte Versionen von KONTOPRUEF 1.x müssen (per Software/Systemsteuerung) zunächst vollständig vom Rechner entfernt werden. Die neue Version muß nicht installiert werden - einfach auf die Platte kopieren und einmal aufrufen: Fertig!

Künftige Updates gehen dann von selbst bzw. ohne erneute Installation, da - im laufenden Betrieb! - lediglich die Datendatei ausgetauscht wird (entweder über die integrierte Update-Funktion oder per manuellem Download vom Update-Server).

Bisherige Anwender von KtoPruef.dll unter Windows: Bitte den Abschnitt KtoPruef.dll lesen!

Bisherige Anwender von libKtoPruef.so unter Linux: Die Namen der Aufrufe haben sich geändert (siehe .h-Dateien), und die Aufrufkonvention ist jetzt (in Übereinstimmung mit dem gcc-Compiler) cdecl statt stdcall.

Sehen Sie sich auch mein anderes Produkt an:
myebilanz – die Freeware-eBilanz aus MySQL und CSV!
myebilanz