Hi all, I have tested online banking with fints pin/tan this weekend for a quite recent gnucash version (e.g commit b23d244 from maint, aqbanking 6.1.0, gwenhywfar 5.2.0) and have found some weird behavior with the gnucash-aqbanking account mappings.
In order to reproduce this behavior please create a new gnucash file with at least two bank accounts (e.g. with account names "Account1" and "Account2"). In order to analyze the effects on the gnucash file I would recommend to save the gnucash file in sqlite3 format and to watch the changes on the account-releated entries in table slots with the help of the attached shell script (requires sqlite3). For this purpose just call ...$ watch SCRIPT_NAME GNUCASH_FILE at console level. Now proceed with the online banking wizard as follows: 1. Create an aqbanking user with at least one online bank account. 2. Proceed to the "Match Online accounts with GnuCash accounts" page of the online banking wizard and link the aqbanking account to the first gnucash account (e.g. Account1). 3. Proceed to the final page of the wizard and apply your changes. This will show an output from the script similar to the following: obj_guid acc_name slot_name s slot_value ---------- -------- -------------------- - ----------------- 34a7f42... Account1 hbci 9 ad00640... ad00640... hbci/account-id 4 XXXXXXXXX ad00640... hbci/account-uid 1 2 ad00640... hbci/bank-code 4 50010060 In this case the gnucash account with name "Account1" and identified by guid 34a7f42... has got three attributes from the aqbanking account: - 'hbci/account-id', which is just the account number, - 'hbci/account-uid ' the unique account id of this bank account in aqbanking, and - 'hbci/bank-code' the bank code of the account (German Bankleitzahl). This is information is used for the (first) online retrieval of the balance or transactions of this gnucash account. 4. Open the first gnucash account (e.g. Account1) 5. Request its account balance by online action "Get Balance" 6. A "Select Account" dialog will appear and you are requested once more to assign the retrieved balance to a gnucash account. Select the first gnucash account (e.g. Account1). 7. Reply with "No" to the "Reconcile account now?" question. Now the output from the script should look like the following one: obj_guid acc_name slot_name s slot_value ---------- -------- -------------------- - ----------------- 34a7f42... Account1 hbci 9 7ec08f4... 7ec08f4... hbci/account-id 4 XXXXXXXXX 7ec08f4... hbci/account-uid 1 2 7ec08f4... hbci/bank-code 4 50010060 34a7f42... Account1 online_id 4 50010060XXXXXXXXX Please note that a new slot attribute with name 'online_id', which seems to be the concatenation of the bank code and the account number, has been assigned to the first gnucash account. This looks somehow redundant to me because this information is already covered by the other (hbci) slot values. 8. Open the "Online Banking Wizard" again and proceed to the "Match Online accounts with GnuCash accounts" page. Please note that the previous assignment of the gnucash account is no longer shown on this page (see also remark below). 9. Double-click on the same aqbanking account as in step 2, but now link it to the second gnucash account (e.g. Account2). 10. Proceed to the final page of the wizard and apply yout changes. Now the output from the script will look like this: obj_guid acc_name slot_name s slot_value ---------- -------- -------------------- - ----------------- 34a7f42... Account1 hbci 9 056b1cb... 056b1cb... hbci/account-id 4 XXXXXXXXX 056b1cb... hbci/account-uid 1 2 056b1cb... hbci/bank-code 4 50010060 34a7f42... Account1 online_id 4 50010060XXXXXXXXX aa18bf8... Account2 hbci 9 0291dfe... 0291dfe... hbci/account-id 4 XXXXXXXXX 0291dfe... hbci/account-uid 1 2 0291dfe... hbci/bank-code 4 50010060 Please note that now both gnucash accounts have got assigned to the same aqbanking account via the 'hbci/...' slot attributes. 11. Now open the second gnucash account (e.g. Account2) 12. Call online action "Requests transactions..." for this account. Ensure that the selected date interval covers at least one transaction. 13. Quit the "Generic import transaction matcher" dialog with "OK". Please note that the transactions are imported to the first gnucash account but not to the second one which has been opened just before. The output from the script now looks like: obj_guid acc_name slot_name s slot_value ---------- -------- -------------------- - ----------------- aa18bf8... Account2 hbci 9 a4f05a2... a4f05a2... hbci/account-id 4 XXXXXXXXX a4f05a2... hbci/account-uid 1 2 a4f05a2... hbci/bank-code 4 50010060 a4f05a2... hbci/trans-retrieval 6 2020-02-16 17:23:20 34a7f42... Account1 hbci 9 4b3499c... 4b3499c... hbci/account-id 4 XXXXXXXXX 4b3499c... hbci/account-uid 1 2 4b3499c... hbci/bank-code 4 50010060 34a7f42... Account1 online_id 4 50010060XXXXXXXXX The timestamp for the most recent transaction retrieval 'hbci/trans-retrieval' has been assigned to the second gnucash account although the imported transactions have been saved to the first gnucash account. 14. Open the first gnucash account again. 15. Call online action "Requests transactions..." for this account. Please note that the from-date is set to the "Earliest possible date". obj_guid acc_name slot_name s slot_value ---------- -------- -------------------- - ----------------- aa18bf8... Account2 hbci 9 a4f05a2... a4f05a2... hbci/account-id 4 XXXXXXXXX a4f05a2... hbci/account-uid 1 2 a4f05a2... hbci/bank-code 4 50010060 a4f05a2... hbci/trans-retrieval 6 2020-02-16 17:23:20 34a7f42... Account1 hbci 9 044436e... 044436e... hbci/account-id 4 XXXXXXXXX 044436e... hbci/account-uid 1 2 044436e... hbci/bank-code 4 50010060 044436e... hbci/trans-retrieval 6 2020-02-16 17:34:27 34a7f42... Account1 online_id 4 50010060XXXXXXXXX At this stage I don't see a way to get rid of these weird assignments: If I delete the "Online ID" within the "Import Map Editor" (there is only one entry for the first gnucash account) only the 'online_id' slot attribute is removed from the first gnucash account. The output of the script will now look like: obj_guid acc_name slot_name s slot_value ---------- -------- -------------------- - ----------------- aa18bf8... Account2 hbci 9 a4f05a2... a4f05a2... hbci/account-id 4 XXXXXXXXX a4f05a2... hbci/account-uid 1 2 a4f05a2... hbci/bank-code 4 50010060 a4f05a2... hbci/trans-retrieval 6 2020-02-16 17:23:20 34a7f42... Account1 hbci 9 fa9353e... fa9353e... hbci/account-id 4 XXXXXXXXX fa9353e... hbci/account-uid 1 2 fa9353e... hbci/bank-code 4 50010060 fa9353e... hbci/trans-retrieval 6 2020-02-16 17:34:27 Even if I delete the entire aqbanking user with the help of the "AqBanking Wizard" these 'hbci...' slot entries will remain. How can I get rid of them? For the problem with the lost assigments at step 8 I have already found a solution which I have appended as a patch to bugzilla https://bugs.gnucash.org/show_bug.cgi?id=797540 some days ago. For the other mapping issues I have no clear idea how it should work correctly. Due to the fact that I have only bank connections based on hbci/fints I can't judge what the requirements for other protocols/formats (e.g. Paypal, OFX, EBICS, ...) are. Should it be allowed to assign the same aqbanking account to more than one gnucash account? I would expect that 'hbci/account-uid' is already sufficient for the mapping with aqbanking version 6. But what should happen if two different (logon) users use the same gnucash file and bank account has different unique ids within their private aqbanking settings? What is the exact role of the 'online_id'? Maybe somebody else from the list can give me more insight into this topic. Kind regards and thanks for your help, Peter
view_hbci_slots.sh
Description: application/shellscript
signature.asc
Description: OpenPGP digital signature
_______________________________________________ gnucash-user mailing list gnucash-user@gnucash.org To update your subscription preferences or to unsubscribe: https://lists.gnucash.org/mailman/listinfo/gnucash-user If you are using Nabble or Gmane, please see https://wiki.gnucash.org/wiki/Mailing_Lists for more information. ----- Please remember to CC this list on all your replies. You can do this by using Reply-To-List or Reply-All.