Moin,

On Mittwoch, 26. März 2008, Thomas Baumgart wrote:
> On Wednesday 26 March 2008 07:16:11 Martin Preuss wrote:
[...]
> Es wäre daher sinnvoll, mal darüber nachzudenken, eine Referenz auf das
> Konto in den ACCOUNTINFO Teil mit aufzunehmen, denn für das Absenden eines
> Auftrages muss ich ja ein Konto angeben (soweit ich das verstanden habe).
[...]

Aber woher soll die denn stammen? Wenn die nicht von der Bank gesendet wird 
oder ohnehin schon in der zu importierenden Datei steckt, kann die von 
AqBanking gar nicht beigebracht werden.

Der Hintergrund der Einfuehrung war folgender: Manche Protokolle senden auf 
die Anfrage nach bestimmten Daten eines bestimmten Kontos auch Ergebnisse 
fuer andere Konten (z.B. yellownet). Das liegt im Protokoll begruendet. Die 
Anwendung kann diese zusaetzlichen Infos ja ignorieren, aber AqBanking darf 
das nicht, weil bei solchen Backends - wie eben YellowNet - die Daten nach 
Abruf und Bestaetigung unwiderbringlich weg sind. Und z.B. bei YellowNet sind 
es nicht nur die angeforderten Bankdaten (Saldo oder Umsaetze), sondern z.B. 
Saldo *und* Umsaetze. Das laesst sich mit den Jobs nicht mehr abbilden, weil 
dann ein Job-Bearbeiter darauf gefasst sein muesste, hier auch andere Daten 
zu bearbeiten.

Wenn das aber so ist, ist es sinnvoller, diese Daten gleich ganz in einen 
IMEXPORTER_CONTEXT zu stecken. Damit sind klare Verhaeltnisse geschaffen und 
die Anwendung braucht nur noch *eine* Funktion zum Importieren von Daten aus 
Dateien oder von Banken abgerufen.

Das hat zudem den Vorteil, dass es leicht erweiterbar ist. Beispielsweise 
werden inzwischen auch die von HBCI-Servern manchmal gesendeten 
Bankmitteilungen beim Abruf im IMEXPORTER_CONTEXT abgelegt. Diese Infos 
liessen sich beispielsweise ueberhaupt keinem Job zuordnen, weil die von der 
Bank waehrend des Dialogaufbaus unvorhehrbar gesendet werden und nicht 
nachtraeglich wieder abgerufen werden koennen.

Es fuehrt also kein Weg vorbei an dem aktuellen Design, und es hat sich 
inzwischen auch bewaehrt.

Du musst daher leider damit leben, dass Du die zwei "String" parsen musst.

Aber mal ehrlich: Bankleitzahl und Kontonummer... Bisher kommen alle 
Anwendungen - incl. KMyMoney - damit klar. 

Wenn Du Infos zu einem Konto abrufen willst, musst Du doch ohnehin beides 
wissen (bzw. die Anwendung muss das), d.h. diese Infos liegen vor.

Und da die Kombination aus Bankleitzahl und Kontonummer pro Land unique sind 
(und es selbst andernfalls ein riesiger Zufall waere, wenn ein Kunde zweimal 
die gleiche Kombination haette), gibt es da nicht einmal 
Verwechselungsprobleme...

[...]
> Solange ich nur einen einzigen Job ausführe ist das alles kein Problem,
> wenn aber in der Jobqueue mehrere Jobs liegen (womöglich noch für
> unterschiedliche Banken/Konten) dann wird es knifflig aus dem
> ImporterContext die Daten herauszufischen. Ich halte i.d.R. nix davon,
> Strings zu parsen, wenn man eine ID (AqBanking oder applikationsspezifisch)
> relativ einfach transportieren kann.
[...]

Ist es wie gesagt nicht. Du musste beide Daten zur Hand haben (bzw. die 
Anwendung). Und beides sind doch keine wilden "Strings", sondern IDs mit 
(z.B. in DE: festgelegtem) Format. Da gibt es also keinen grossen 
Interpretations-Spielraum...

[...]
> > Bei den HBCI-Zugaengen solltest Du aber in den meisten Faellen im
> > ACCOUNTINFO die Bankleitzahl und Kontonummer finden, und anhand dieser
> > kannst Du eine Zuordnung vornehmen.
>
> Ja, das ist klar, aber fehleranfällig, wenn die Information nicht oder nur
> unvollständig in der Applikation vorliegt.
[...]

Das waere dann aber ein Fehler in der Anwendung: Denn wie gesagt *muss* die 
Anwendung - bzw. AqBanking - ja diese Informationen in jedem Fall haben, wenn 
ein Job ausgefuehrt werden soll.

Du musst sogar darauf gefasst sein, dass diese Infos beim Importieren einer 
Datei fehlen (wenn Du da - wie QBankManager auch - die gleichen Routinen 
verwendest zum Importieren). Dann hast Du einen ACCOUNTINFO, der keine 
Bankleitzahl hat, aber dafuer etwas anderes (z.B. nur die Kontonummer, oder 
den Kontonamen, alles Felder im ACCOUNTINFO).

Wenn naemlich diese Infos in der Datei nicht anders vorhanden sind, kann 
AqBanking sie auch nicht synthetisieren. D.h. Dein Importer muss da ohnehin 
locker sein... 

In QBankManager suche ich beispielsweise als erstes nach dem Konto (mit den 
verfuegbaren Angaben), und wenn es nicht gefunden wird, frage ich, welches 
vorhandene Konto eventuell gemeint ist, oder ob er Benutzer ein neues Konto 
anlegen will. Man koennte sich dann in der Anwendung diese Zuordnung merken.

Das hat sich inzwischen ebenfalls gut bewaehrt.


Gruss
Martin

-- 
"Things are only impossible until they're not"

Martin Preuss - http://www.aquamaniac.de/
AqBanking - http://www.aqbanking.de/
LibChipcard - http://www.libchipcard.de/

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Aqbanking-devel mailing list
Aqbanking-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/aqbanking-devel

Reply via email to