IBAN online prüfen mit FileMaker und dem MBS Plugin.

IBAN mit FileMaker online prüfenSeit einigen Monaten haben im Bankwesen die alten Kontonummern und Bankleitzahlen ausgedient – IBAN und BIC lauten heute in der Bank die Zauberworte. Für FileMaker-Entwickler bedeutet das, neue Funktionen in Bezug auf die IBAN und BIC in ihre FileMaker-Lösungen zu implementieren. Für die Berechnung einer IBAN aus einer Bankleitzahl und Kontonummer stehen im Internet bereits einige Custom Functions zur Verfügung. Aufgrund nicht unwesentlicher Sonderfälle bei der Berechnung einer IBAN kann man sich mit einer reinen Formel jedoch nicht immer sicher sein, dass die IBAN auch tatsächlich korrekt berechnet wurde. Aus diesem Grund kann es sinnvoll sein, die berechnete IBAN online auf Plausibilität zu überprüfen, um nicht möglicherweise eine falsche IBAN zu berechnen und zu speichern. In diesem Artikel zeigen wir, wie sich über den Dienst iban-test.de mit der bereitgestellten API eine IBAN direkt in FileMaker online prüfen lässt. Die im Artikel gezeigte Beispieldatei kann am Ende des Artikels im fmp12-Format heruntergeladen werden. Für den API-Zugang nutzt die Beispieldatei Funktionen des MBS FileMaker Plugins.

Schritt 1: API-Key bei iban-test.de beantragen

Um eine IBAN über die API von iban-test.de prüfen zu können, benötigen wir zunächst einen entsprechenden Autorisierungscode für die API. Rufen Sie dazu in Ihrem Web-Browser die Seite iban-test.de auf und klicken Sie in der Navigationsleiste auf die Schaltfläche [API].

Authcode bei iban-test.de beantragen

Geben Sie in der linken Spalte nun Ihren Namen, E-Mail-Adresse, Website und die Nutzungsart ein. Nach Klick auf die Schaltfläche [API-Schlüssel erstellen] öffnet sich ein neues Fenster, das Ihren Auth-Code für die API enthält. Kopieren Sie den Code am Besten in einen Texteditor und speichern Sie die Datei ab.

Schritt 2: Teilscript für IBAN-Prüfung in FileMaker erstellen

Die API von iban-test.de kann über eine gewöhnliche HTTP GET/POST Anfrage angesprochen werden. In diesem Schritt erstellen wir ein Teilscript, das als Script-Parameter eine IBAN annimmt und als Ergebnis eine 1 (gültig) oder eine 0 (ungültig) zurückgibt. In unserer Beispieldatei wird am Ende des Scriptes ein Dialog eingeblendet, der anzeigt, ob die eingetragene IBAN gültig oder ungültig ist.

Script: ts.IBAN_prüfen

Fehleraufzeichnung setzen [Ein]
# Script-Parameter: IBAN
Variable setzen [$iban; Wert:Hole(ScriptParameter)]
Variable setzen [$authcode; Wert:ibancheck::Authcode]
Variable setzen [$type; Wert:ibancheck:type]
#
Variable setzen [$r; Wert:MBS("Trace")]
# Transfer vorbereiten
Variable setzen [$authcode; Wert:MBS("StringEncodeURLComponent"; $authcode; "utf8")]
Variable setzen [$type; Wert:MBS("StringEncodeURLComponent"; $type; "utf8")]
Variable setzen [$iban; Wert:MBS("StringEncodeURLComponent"; $iban; "utf8")]
Variable setzen [$curl; Wert:MBS("CURL.New")]
Variable setzen [$result; Wert:MBS("CURL.SetOptionpost"; $curl; 1)]
Variable setzen [$result; Wert:MBS("CURL.SetOptionVerbose"; $curl; 1)]
Variable setzen [$result; Wert:MBS("CURL.SetOptionURL"; "http://www.iban-test.de/api.php")]
# Input-Parameter setzen
Variable setzen [$content; Wert:"authcode=" & $authcode & "&" & "type=" & $type & "&" & "iban=" & $iban]
Variable setzen [$content; Wert:MBS("String.ReplaceNewline"; $content; 2 )]
Variable setzen [$result; Wert:MBS("CURL.SetOptionPostFields"; $curl; $content)]
# Transfer starten
Variable setzen [$result; Wert:MBS("CURL.Perform"; $curl)]
# Ergebnisprüfung
Variable setzen [$debugText; Wert:MBS("String.ReplaceNewline"; MBS("CURL.GetDebugAsText"; $curl); 1)]
Variable setzen [$resultText; Wert:MBS("String.ReplaceNewline"; MBS("GetResultAsText"; $curl); 1)]
Variable setzen [$r; Wert:MBS("CURL.Cleanup"; $curl); 1)]
Variable setzen [$ergebnis; Wert:Wenn(MusterAnzahl($resultText; "200") > 0; 1; 0)]
Variable setzen [$ergebnistext; Wert:Wenn($ergebnis=0; "ungültig"; "gültig")]
# Testdialog
Eigenes Dialogfeld anzeigen ["IBAN" & $ergebnistext; "Die eingetragene IBAN ist " & $ergebnistext

Das Script nimmt zunächst die IBAN als Script-Parameter an. Um eventuelle Leerzeichen innerhalb der IBAN zu verhindern, ist es empfehlenswert, noch den Befehl Austauschen($iban; “ „; „“) hinzuzufügen.

Authcode eintragen

Authcode in FileMaker eintragenDie Felder Authcode und Type werden aus dem Layout der Beispieldatei entnommen – bevor Sie die Funktion testen, müssen Sie also zunächst Ihren Authcode in das entsprechende Feld eintragen, den Sie auf der Website von iban-test.de angefordert haben. Als Type lassen Sie bitte den vorgegebenen Wert check stehen. Als weiterer Typ steht übrigens die Funktion create zur Verfügung, mit der unter Angabe der Bankleitzahl (&blz=), der Kontonummer (&ktn=) und des Ländercodes ($cc=) auch eine IBAN berechnen lässt. Die Vorgehensweise ist dabei die gleiche wie in unserer Beispieldatei, mit dem Unterschied, dass statt der IBAN die drei genannten Parameter mitgeliefert werden müssen.

Transfer vorbereiten

Im Programmteil Transfer vorbereiten werden die drei Parameter in die korrekte Form gebracht und die Abfrage-URL gesetzt. In unserem Beispiel wurde die URL

http://www.iban-test.de/api.php

fest in das Script integriert – sie kann selbstverständlich auch dynamisch aus einem Feld bezogen werden.

Transfer starten

In den Teilen Input-Parameter setzen und Transfer starten werden die Parameter zusammengesetzt, die Felder übertragen und der Transfer gestartet. In der Ergebnisprüfung wird überprüft, ob der Ergebniscode 200 für eine gültige IBAN lautet oder ungültig ist.

In unserer Beispieldatenbank haben wir einen Test-Dialog eingefügt, der anzeigt, ob die eingetragene IBAN gültig oder ungültig ist.

Dialog IBAN gültig

Einbinden in eigene FileMaker-Lösungen

In unserem Beispielscript befindet sich als letzte Zeile der Befehl

Aktuelles Script verlassen [Ergebnis: $ergebnis]

Dieser Befehl wird für unsere Beispieldatei nicht benötigt. Wenn Sie das enthaltene Script jedoch in Ihre Lösung integrieren, ist es empfehlenswert, es als Teilscript zu integrieren, das als Wert zurückliefert, ob die gelieferte IBAN gültig ist oder nicht. Vergessen Sie bitte bei der Integration nicht, den Beispieldialog zu entfernen ;-)

MBS FileMaker Plugin

Diese Lösung verwendet CURL-Funktionen des MBS FileMaker Plugin. Tipp: Bis zum 30. April ist das MBS FileMaker Plugin im Rahmen des 20. Jubiläums beim K&K Verlag (FileMaker Magazin) in Hamburg zu vergünstigten Preisen erhältlich. Weitere Informationen zum MBS FileMaker Plugin finden sie auf der Website des Herstellers.

Download Beispieldatei für FileMaker 12/13

Download FileMaker Beispieldatei

So übernehmen Sie Scripte aus der Beispieldatei in Ihre Lösung

Scripte lassen sich einfach über die Zwischenablage von einer FileMaker-Lösung in eine andere Lösung übertragen. Öffnen Sie einfach den Dialog Scripts verwalten, markieren Sie das gewünschte Script mit der Maus und kopieren Sie das Script in die Zwischenablage per Menü [Bearbeiten – Kopieren] oder Tastenkombination [Strg/Cmd-C]. Öffnen Sie daraufhin in der Ziel-Lösung den gleichen Dialog und fügen das zuvor kopierte Script einfach per Menübefehl [Bearbeiten – Einfügen] wieder ein.

So übernehmen Sie Tabellen aus der Beispieldatei in Ihre Lösung

Tabellen können auf mehrere Arten in eine bestehende Lösung eingefügt werden. Der einfachste Weg ist der Import der Tabelle über die Schaltfläche [Importieren…] im Dialog Datenbank verwalten. In einem nachfolgenden Dialog können dann alle Tabellen ausgewählt werden, die aus der Quell-Lösung importiert werden sollen. Diese Methode eignet sich also besonders, wenn mehrere Tabellen gleichzeitig importiert werden sollen. Soll nur eine Tabelle importiert werden, kann dies wie ein Script auch über die Zwischenablage erfolgen. Soll eine Tabelle samt Daten importiert werden, kann dies mit dem Befehl [Ablage/Datei > Datensätze importieren > Datei] erfolgen. Im Import-Dialog muß dann als Zieltabelle Neue Tabelle angegeben werden.

So übernehmen Sie Wertelisten aus der Beispieldatei in Ihre Lösung

Wertelisten können einfach über die Zwischenablage von einer FileMaker-Lösung in eine andere Lösung importiert werden. Öffnen Sie einfach den Dialog unter [Ablage/Datei > Verwalten > Wertelisten], markieren Sie die gewünschte Werteliste mit der Maus und kopieren Sie die Werteliste in die Zwischenablage per Menü [Bearbeiten – Kopieren] oder Tastenkombination [Strg/Cmd-C]. Öffnen Sie daraufhin in der Ziel-Lösung den gleichen Dialog und fügen die zuvor kopierte Werteliste per Menübefehl [Bearbeiten – Einfügen] wieder ein.

So übernehmen Sie eigene Funktionen aus der Beispieldatei in Ihre Lösung

Klicken Sie im Dialog [Ablage/Datei > Verwalten > Eigene Funktionen…] auf die Schaltfläche [Importieren] und wählen daraufhin die Beispieldatei aus. Wählen Sie im nachfolgenden Dialog die gewünschten eigenen Funktionen aus und bestätigen den Dialog. Bitte beachten Sie, daß diese Funktion nur in FileMaker Pro Advanced, nicht jedoch in FileMaker Pro zur Verfügung steht.

Diesen Beitrag bewerten:

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Bisher keine Bewertungen.)
Loading...

Über den Autor

Markus Schall
Entwicklung von FileMaker-Datenbanken seit 1994, Modifikation und Erweiterung von FileMaker-Lösungen, Konvertierung von FileMaker-Datenbanken von .fm, .fp3, .fp5 (FileMaker 2-6) oder .fp7 (FileMaker 7-11) zu .fmp12 (FileMaker 12-16), Schnittstellen zu Drittsystemen wie Onlineshops, CMS oder andere Datenbanken. Entwicklung individueller FileMaker-Datenbanksysteme auf Basis des gFM-Business-Frameworks mit persönlicher Beratung aus Oldenburg. Betreiber des Online-Fachportals goFileMaker.de, Entwickler des CRM- und Warenwirtschaftssystems gFM-Business. Mitglied in der FileMaker Business Alliance, FileMaker Developers Subscription und FMM Experte. Gewinner eines FMM Award 2011, vergeben durch das FileMaker Magazin.

1 Kommentar

  1. Hubert Méalle

    Das erinnert mich an die guten alten Zeiten, in denen wir Listings für den C=64 abgetippt haben. Vielen Dank für den Artikel und die Beispieldatei :-)

    Antworten

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

10% Rabatt im Onlineshop