Daueraufträge löschen

marwes

Betreff:

Daueraufträge löschen

 ·  Gepostet: 14.02.2009 - 21:35 Uhr  ·  #55540
Hallo,

ich benutze die aqbanking-lib (vielen Dank an Martin Preuss!!) in einem privaten Projekt und will nun auch die Möglichkeit Daueraufträge zu verarbeiten einbauen.

Abrufen und neue Daueraufträge einrichten klappt schon ganz hervorragend, nur wenn ich probiere einen bestehenden Dauerauftrag zu löschen, bekomme ich folgende Fehler zu sehen (Fiducia):

HBCI: 9050 - Teilweise fehlerhaft (M)
HBCI: 9210 - FEHLER BEIM ERSTELLEN DER HBCI-ELEMENTTABELLE (S)

Meine Frage ist: woher weiß die Bank überhaupt welchen Dauerauftrag sie löschen soll? Ich vermute mal sie vergleicht Gegenkonto, Betrag, Turnus, Überweisungszweck etc mit den gespeicherten Daueraufträgen und löscht den, bei dem alle Felder übereinstimmen...

Was muss ich dann bei AB_Transaction alles angeben? Bisher fülle ich die folgenden Felder aus:
- LocalAccountNumber
- LocalBankCode
- LocalName
- RemoteAccountNumber
- RemoteBankCode
- RemoteName
- Value
- Purpose
- Period
- Cycle
- ExecutionDay
- FirstExecutionDate
reicht das? Muss ich alles haargenau so ausfüllen, wie's bei der Bank gespeichert ist (inkl. Groß/Kleinschreibung)?

Ich würde mich freuen, wenn mir jemand einen kleinen Tipp geben könnte...


Vielen Dank und viele Grüße,
Markus

Captain FRAG

Betreff:

Re: Daueraufträge löschen

 ·  Gepostet: 14.02.2009 - 23:23 Uhr  ·  #55541
Hallo Markus,

soweit ich das recht im Kopf habe, musst du erst Bestand von der Bank abrufen. Darin hat jeder DA einen Identifier, eine DA-Nummer. Die wird zum Löschen (neben anderen Daten) benötigt.

Das inhaltiche Vergleichen wäre zu aufwändig und fehlerbehaftet. Kann ja zudem auch inhaltsgleiche Auftäge geben.

marwes

Betreff:

Re: Daueraufträge löschen

 ·  Gepostet: 15.02.2009 - 00:08 Uhr  ·  #55542
Hallo,
Danke für die Antwort.
Gehe ich dann recht in der Annahme, dass ich in aqbanking diese DA-Nummer wie folgt bekommen kann:
1. AB_JobGetStandingOrders_new
2. Job ausführen
3. aus dem ImExportContext mittels AB_ImExporterAccountInfo_GetFirstStandingOrder und AB_ImExporterAccountInfo_GetNextStandingOrder die erhaltenen Daueraufträge extrahieren
4. AB_Transaction_GetUniqueId gibt mir dann die DA-Nummer?

Das habe ich nämlich so probiert, nur ist die UniqueId immer 0... Kannst du mir sagen, wie ich dann an diesen Identifier rankommen kann?

Nochmals vielen Dank und beste Grüße,
Markus

marwes

Betreff:

Re: Daueraufträge löschen

 ·  Gepostet: 15.02.2009 - 11:58 Uhr  ·  #55544
Hallo nochmals,

ich habe jetzt einfach mal alle Felder, die eine AB_TRANSACTION so hat, ausgegeben. Kann es sein, dass das FiId-Feld diesen Identifier bereitstellt?
(allerdings wird in der Doku zu aqbanking ja explizit gesagt, dass FiId von HBCI eigentlich nicht verwendet wird, sondern nur von OFX).

Grüße,
Markus

aquamaniac

Betreff:

Re: Daueraufträge löschen

 ·  Gepostet: 15.02.2009 - 13:05 Uhr  ·  #55546
Zitat geschrieben von marwes

ich habe jetzt einfach mal alle Felder, die eine AB_TRANSACTION so hat, ausgegeben. Kann es sein, dass das FiId-Feld diesen Identifier bereitstellt?
(allerdings wird in der Doku zu aqbanking ja explizit gesagt, dass FiId von HBCI eigentlich nicht verwendet wird, sondern nur von OFX).


Das ist genau das Feld, das Du brauchst. Die Aussage mit OFX ist somit ansich veraltet.


Gruss
Martin

marwes

Betreff:

Re: Daueraufträge löschen

 ·  Gepostet: 15.02.2009 - 14:31 Uhr  ·  #55548
vielen Dank, Martin!

Ich habe jetzt folgendes probiert:

trans = AB_Transaction_new
AB_Transaction_SetFiId(trans, fiId aus meiner DB)
job = AB_JobDeleteStandingOrder_new
AB_JobDeleteStandingOrder_SetTransaction(job, trans)

und dann den Job zur Ausführung gebracht. Leider ändert das nichts an meinem Problem (FEHLER BEIM ERSTELLEN DER HBCI-ELEMENTTABELLE).

Wenn ich hingegen die AB_TRANSACTION, die ich beim Abfragen der eingerichteten DAs aus dem ImExportContext erhalte, bei AB_JobDeleteStandingOrder_SetTransaction verwende (oder eine deep-copy dieser AB_TRANSACTION), klappt es...
Sind doch noch andere Felder notwendig?

Ich wäre dir sehr, sehr dankbar, wenn du mir einen Tipp geben könntest, welche Felder ich wie in der AB_TRANSACTION setzten muss, damit das ganze klappt.

Ich fürchte, wenn ich weiter mit so hoher Frequenz meine TANs verbrauche, habe ich in zwei Stunden keine mehr :)

Nochmals vielen Dank und viele Grüße,
Markus