[gnucash-de] Problem mit gnucash 2.2.6 und aqbanking/HBCI/iTAN/Überweisungen
Martin Preuss
aquamaniac at gmx.de
Do Sep 11 01:31:20 EDT 2008
Moin,
On Donnerstag, 11. September 2008, Andreas Köhler wrote:
> On Wed, 2008-09-10 at 19:36 +0200, Martin Preuss wrote:
[...]
> setze mich doch einfach auf To:, dann sollte die Chance, dass ich die
> Mail lese noch etwas erhöht werden :-) Bin halt etwas faul...
[...]
Ich aber auch, und da Du ja auf der Liste mitliest, hatte ich keine Lust,
Deine Email-Adresse herauszusuchen ;-)
[...]
> Kann man denn sagen, dass Pending prinzipiell ok und vom Benutzer
> erwartet wird? Falls nicht, kommt das üblicherweise, wenn successful
[...]
Oh, aber ja! Meine Banken beispielsweise sagen *immer* nur, dass sie den
Auftrag angenommen haben. Wenn das Konto gedeckt ist, wird die Bank den
Auftrag ja auch ausfuehren, aber darueber bekommt man bei vielen Banken halt
keine direkte Rueckmeldung (man sieht es nur an den Auszuegen).
Daher: Der Status "Pending" ist voellig ok und auch erwartet. Das bedeutet
zumindest, dass die Uebermittlung an die Bank geklappt hat und der Auftrag
inhaltlich in Ordnung ist. Ob die Bank das dann ausfuehrt, kann man jedoch
nicht erkennen, bevor es nicht in den Umsaetzen erscheint.
Erklaerung: Es gibt in HBCI einen Geschaeftsvorfall, mit dem man den Status
eines Auftrages nachtraeglich noch abrufen kann. Bloederweise implementieren
es aber offensichtlich die meisten Banken so, dass man immer den gleichen
Status bekommt, den man auch schon beim *Einreichen* bekam, selbst, wenn die
Bank den Auftrag inzwischen schon lange ausgefuehrt hat. D.h. die Banken
aendern den Status nicht mehr.
Frueher hat AqHBCI dieses Report-Feature verwendet, aber da die meisten Banken
das nicht in einer Form anbieten, in der man es auch *gebrauchen* kann, habe
ich das wieder herausgenommen.
[...]
> TRUE oder FALSE ist? Man müsste in dem Fall dem Benutzer wahrscheinlich
> nur Bescheid geben, ein Wiederholen allerdings nicht anbieten, oder?
[...]
Wenn die Bank den Auftrag schon bei der Einlieferung ablehnt, sollte man sich
die Fehlermeldungen der Bank anschauen. Darin finden sich meist Hinweise auf
den Grund der Ablehnung. Die meisten inhaltlichen Gruende sollte die
Anwendung schon abfangen (z.B. falsche Zielkonto-Angabe, unerlaubte
Sonderzeichen im Verwendungszweck etc); andere Gruende - wie ungedecktes
Konto etc - kann wiederum nur der Benutzer behandeln.
Daher wuerde ich nicht unbedingt fragen, ob der Benutzer den Vorgang
wiederholen will, wenn es sich um Ueberweisungen handelt. Andererseits
speichert GnuCash im Fehlerfall wohl auch nicht die Auftraege, daher muesste
der Benutzer den Auftrag beim naechsten Mal komplett neu eingeben, oder?
In diesem Fall ist es vermutlich einfacher, den Benutzer zu fragen.
Andererseits ist es gerade diese Nachfrage, die im Moment die Benutzer
verunsichern...
Bei der Auswertung wuerde ich uebrigends vollstaendig auf den Job-Status
schauen; Das Resultat von ExecJobs() wird selbst dann "OK" sein, wenn einer
oder alle Jobs Fehler enthalten. Der Rueckgabe-Code hier sagt naemlich nur
etwas darueber aus, ob die Auftraege an die Backends weitergeleitet wurden
und diese die Auftraege bearbeitet haben. Mehr nicht. Insbesondere bezieht er
sich nicht auf den Status der Auftraege.
Wenn also der Status eines Jobs "OK" ist, dann ist der Rueckgabe-Code von
ExecJobs() an sich egal, Du kannst ihn also getrost ignorieren.
[...]
> Bei meiner Bank und dem Test-Server des Herrn Palme hat das bisher immer
> super geklappt ;-)
[...]
Ja, die fuehren aber auch sofort aus ;-)
Der Unterschied liegt hier in den Rueckmeldungen des Servers (entweder
HBCI-Code 10 oder 20, jenachdem ob der Auftrag nur angenommen oder direkt
ausgefuehrt wurde).
Gruss
Martin Preuss
--
"Things are only impossible until they're not"
Martin Preuss - http://www2.aquamaniac.de/
AqBanking - http://www.aqbanking.de/
LibChipcard - http://www.libchipcard.de/