Delphi-PRAXiS
Seite 2 von 6     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   IBANs (https://www.delphipraxis.net/170138-ibans.html)

Jumpy 7. Jun 2013 07:47

AW: IBANs
 
Hallo,

die neue Funktion "IBans erstellen" gefällt mir und ich hätte noch ein paar Anregungen:

Es wäre schön, wenn man als Input nicht nur die BLZ und Kontonummer hätte sondern noch beliebige andere Daten, die dann unverändert wieder rausgegeben werden. Dies kann bei einer Massenverarbeitung helfen, die Datensätze zuzuordnen.
Evtl. könnte man da auch das IBANHIN und IBANRUECK Format verwenden, ggf. mit den entsprechenden Fehlercodes?

Das Optimum wäre, wenn diese Funktion per Kommandozeile aufrufbar wäre. Das können afaik die ganzen vergleichbaren Programme nicht.

Ich hab z.B. bei uns in der Firma eine Verarbeitung geschrieben, die aus allen Bankspezifischen Tabellen die Informationen holt und in eine Datei schreibt. Dann muss ein Mensch diese Datei mit einem Iban-Umsetzprogramm umsetzten, anschließend macht mein Programm wieder weiter und schreibt die geänderten Daten wieder in die Datenbank und erzeugt dann ein Log, welche Datensätze welche Fehler haben und ob die jetzt umgesetzt wurden oder nicht, oder trotz Umsetztung nochmal geprüft werdenmüssen usw.
Hier wäre es halt perfekt gewesen, wenn der "Mensch in der Mitte" nicht nötig gewesen wäre, um da ein externes Programm zu bedienen.

Codehunter 7. Jun 2013 14:14

AW: IBANs
 
Ich kann nur sagen: Respekt! Ich war vor Jahren mal dran, sowas zu schreiben und bin an den unzähligen Prüfsummenformeln verzweifelt und habs schließlich aufgegeben. Jetzt hast du dir aber auch was aufgehalst, denn nun musst du bei jeder Aktualisierung der Prüfvorschriftenliste seitens Bundesbank alles abgrasen. Denn als ich das letzte Mal damit zu tun hatte, veröffentlichte die BB keine Delta-Liste der Änderungen sondern immer nur ein neues Dokument.

Amateurprofi 7. Jun 2013 17:32

AW: IBANs
 
Zitat:

Zitat von Codehunter (Beitrag 1217759)
Ich kann nur sagen: Respekt! Ich war vor Jahren mal dran, sowas zu schreiben und bin an den unzähligen Prüfsummenformeln verzweifelt und habs schließlich aufgegeben. Jetzt hast du dir aber auch was aufgehalst, denn nun musst du bei jeder Aktualisierung der Prüfvorschriftenliste seitens Bundesbank alles abgrasen. Denn als ich das letzte Mal damit zu tun hatte, veröffentlichte die BB keine Delta-Liste der Änderungen sondern immer nur ein neues Dokument.

Ja, sie veröffentlichen immer nur die volle Spezifikation, aber sie bieten den Service, sich informieren zu lassen, wenn eine neue Ausgabe bereit liegt, und in der Info schreiben sie dann, bei welchen Prüfmethoden sich etwas verändert hat.
Ich finde das ist ein recht guter Service.
Man muss nicht regelmä8ig prüfen, ob es was neues gibt, sondern kriegt alles "frei Haus und für Lau" geliefert.

Und ja! Die Implementierung der z.Z. 140 Prüfmethoden war schon heftig.
Aber wenn dann ab und zu eine Änderung kommt, ist die eigentlich schnell und einfach zu machen.

Die einfachste Prüfmethode ist übrigens die Methode 09
Da heißt es "Keine Prüfzifferberechnung"

Amateurprofi 10. Jun 2013 21:09

AW: IBANs
 
Ich bin heute von der Deutschen Bundesbank informiert worden, dass die BLZ-Datei vom 03.06.2013 fehlerhaft ist.
Ich habe die Daten korrigiert und die neue Version in die DP gestellt (Siehe #1)

Hintergrund :

Zitat:

Sehr geehrter Herr Amateurprofi,


in der zum 3. Juni 2013 gueltigen Bankleitzahlendatei wurden von der Deutschen Bank versehentlich drei Einträge zur Loeschung aufgegeben, die insbesondere in Systemen des kartengestuetzen Zahlungsverkehr noch Verwendung finden.

Wir bitten Sie daher - soweit moeglich - die folgenden Einträge in den Zahlungsverkehrsanwendung zu berücksichtigen:

Bankleitzahl 10070000
Merkmal 2
Bezeichnung Deutsche Bank Fil Berlin Gf P2
PLZ Ort 10883 Berlin
Kurzbezeichnung Deutsche Bank Fil Berlin
PAN 27700
BIC
Pruefzifferberechnungsmethode 63
Datensatznummer 056400
Aenderungskennzeichen A
Bankleitzahllöschung 0
Nachfolge-Bankleitzahl 00000000

Bankleitzahl 10070024
Merkmal 2
Bezeichnung Deutsche Bank Privat und Geschäftskunden F 700 Gf P2
PLZ Ort 10883 Berlin
Kurzbezeichnung Deutsche Bank PGK Berlin
PAN 21700
BIC
Pruefzifferberechnungsmethode 63
Datensatznummer 056401
Aenderungskennzeichen A
Bankleitzahllöschung 0
Nachfolge-Bankleitzahl 00000000

Bankleitzahl 76026000
Merkmal 2
Bezeichnung norisbank Gf P2
PLZ Ort 10625 Berlin
Kurzbezeichnung norisbank Berlin
PAN 25360
BIC
Pruefzifferberechnungsmethode C7
Datensatznummer 056402
Aenderungskennzeichen A
Bankleitzahllöschung 0
Nachfolge-Bankleitzahl 00000000

In der zum 9. September 2013 gültigen Bankleitzahlendatei werden die Einträge mit den vorgenannten Angaben wieder enthalten sein.

Mit freundlichen Grueßen
__________________________________________________ __________________________________________________
Deutsche Bundesbank | Zentrale | Zahlungsverkehr | Wilhelm-Epstein-Strasse 14 | 60431 Frankfurt am
Main
Internet http://www.bundesbank.de | E-mail presse-information@bundesbank.de
Telefon +49 (0) 69 9566-0 | Fax +49 (0) 69 9566-3077

NormanNG 14. Jun 2013 15:56

AW: IBANs
 
Hi,

auch von mir :thumb:!

Einen Fehler glaube ich gefunden zu haben (oder ich stelle mich zu doof an):
Wenn ich IBANS erstellen lasse wird neben der (korrekten) IBAN irgendwie immer ein falscher Bankname/BIC ermittelt?

Kann das jemand nachvollziehen? Ich möchte hier keine BSP-Daten nennen...

P.S.
Die gleiche BLZ in der Suche führt zur richtigen Bank :gruebel:

Amateurprofi 14. Jun 2013 19:07

AW: IBANs
 
Zitat:

Zitat von NormanNG (Beitrag 1218624)
Einen Fehler glaube ich gefunden zu haben (oder ich stelle mich zu doof an):
Wenn ich IBANS erstellen lasse wird neben der (korrekten) IBAN irgendwie immer ein falscher Bankname/BIC ermittelt?

Kann das jemand nachvollziehen? Ich möchte hier keine BSP-Daten nennen...

P.S.
Die gleiche BLZ in der Suche führt zur richtigen Bank :gruebel:

Würde ich ja gern prüfen, aber ohne irgendeinen weiteren Hinweis, bei welcher Konstellation der Fehler auftritt, ist das kaum möglich.
Was ich brauche, ist die BLZ, bei der der Fehler auftritt, die Kontonummer ist hier irrelevant, weil die BLZ-Daten ausschließlich über die BLZ zugeordnet werden.
Da alle BLZ veröffentlicht werden, kann die ja nicht so fürchterlich geheim sein, oder?

Also nenne doch bitte die BLZ, dann gehe ich dem gerne nach.


Hat sich schon erledigt.
Background:
Die BLZ-Datei enthält zur Zeit 19340 Datensätze, aber "nur" 4069 verschiedene BLZ; es werden also viele BLZ mehrfach genannt.
Außerdem sind in der BLZ-Date alle Daten als Text enthalten. Die Suche nach einer bestimmten BLZ ist deshalb recht "unperformant".
Aus diesem Grund erstelle ich bei Programmstart ein Array of TBankInfoIndex, wobei TBankInfoIndex so definiert ist:
Delphi-Quellcode:
   TBankInfoIndex=Record
      BankCode:integer;         // BLZ
      First:integer;            // Erster Eintrag für BLZ in BLZ-Datei
      Last:integer;             // Letzter Eintrag für BLZ in BLZ-Datei
      Lead:integer;             // Der "führende" Eintrag für BLZ (Mark=1)
      FUNCTION Bank:String;     // "BLZ = Name, Plz, Ort, Anzahl Stellen"
      FUNCTION CFIndex:integer; // Prüfmethode für Kontonummern
   End;
Dieses Array hat nur 4069 Einträge und enthält die BLZ in numerischer Form.
Die Funktion BankCodeIndex findet in diesem Array jede BLZ mit maximal 12 Zugriffen.

Der Fehler war, dass ich bei der Zuordung der bankbezogenen Daten mit dem Index in dieses Array auf die BLZ-Datei zugegriffen habe. Richtig wäre, zunächst aus TBankInfoIndex[Index] entweder Lead, First, Last oder einen zwischen First und Last liegenden Index zu holen, und mit diesem auf die BLZ Datei zuzugreifen.

Ich habe das korrigiert und ordne jetzt die bankbezogenen Daten via "Lead", also der führenden Stelle einer Bank zu.

An dieser Stelle (mir ist das auch erst jetzt aufgefallen) sei gesagt, dass eine eindeutige Zuordung über die BLZ nicht möglich ist.
Was ich implementieren kann und werde, ist, den Anwender wählen zu lassen, ob er die Daten aus der führenden Stelle oder dem erst- oder letztgenannten Eintrag haben möchte, oder aus allen Einträgen. Letzteres ergibt dann für viele BLZ mehrere Resultate, aber ich sehe im Moment keine Lösung einer eindeutigen Datenzuordnung.

Die Änderung werde ich im Laufe des Abends durchführen und die neue Version hochladen.

NormanNG: Danke für den Hinweis.

Delphi-Quellcode:
FUNCTION BankCodeIndex(blz:integer):integer; overload;
var first,last:integer; p:TPBankInfoIndex;
begin
   first:=0;
   last:=High(BankInfoIndex);
   if last>=0 then
      repeat
         result:=(last+first) shr 1;
         p:=@BankInfoIndex[result];
         if p.BankCode<blz then first:=result+1
            else if p.BankCode>blz then last:=result-1
               else exit;
      until (first>last);
   result:=-1;
end;

FUNCTION BankCodeIndex(const blz:string):integer; overload;
var n:integer;
begin
   if TryStrToInt(blz,n) then result:=BankCodeIndex(n) else result:=-1;
end;

Neue Version in #1

Amateurprofi 12. Sep 2013 22:54

AW: IBANs
 
Ich habe eine neue Version in #1 hochgeladen.
Grund:
Neue BLZ-Datei der Deutschen Bundesbank vom 09.09.2013
Geänderte Prüfmethoden für Kontonummern ab 01.09.2012

Ich habe auch versucht, einen der Wünsche von Jumpy (siehe #11) zu realisieren.
"Es wäre schön, wenn man als Input nicht nur die BLZ und Kontonummer hätte sondern noch beliebige andere Daten, die dann unverändert wieder rausgegeben werden. Dies kann bei einer Massenverarbeitung helfen, die Datensätze zuzuordnen."
Das verbirgt sich unter Menu > Datei > IBans erstellen.
In der Hilfedatei ist das noch nicht dokumentiert.
Deshalb hier ganz kurz.
Die Funktion "IBans Erstellen" basiert auf einer Datei die BLZ und Kontonummern enthält.
Mit Menu > Datei > IBans erstellen wird ein Fenster geöffnet in dem die Parameter für die Erstellung definiert werden.
Wenn in der Gruppe Optionen die Checkbox "Enthält Userdaten" markiert ist, kann aus dem Feld "Verfügbare Daten" der Eintrag "User- Daten" dem Feld "Auszugebende Daten" hinzugefügt werden.
Alle Daten, die in der Source-Datei hinter den Kontonummern stehen, werden dann in die Ausgabedatei übernommen.
Ich habe das nur sehr "sparsam" getestet.

Amateurprofi 20. Mai 2014 00:16

AW: IBANs
 
Ich hab eine neue Version in #1 des Threads hochgeladen.
Einzelheiten am Ende von #1

Amateurprofi 12. Feb 2015 18:19

AW: IBANs
 
Ich hab eine neue Version in #1 des Threads hochgeladen.
Einzelheiten am Ende von #1

Amateurprofi 5. Apr 2016 21:31

AW: IBANs
 
Ich hab eine neue Version in #1 des Threads hochgeladen.
Einzelheiten am Ende von #1


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:02 Uhr.
Seite 2 von 6     12 34     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz