-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathREADME.aqbanking6
105 lines (61 loc) · 4.62 KB
/
README.aqbanking6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
This file describes the key concepts behind the API changes in AqBanking6.
Trying the GIT Version of AqBanking6
====================================
You can checkout AqBanking6 without interfering with your stable version. The current version in GIT temporarily uses the settings
folder $HOME/.aqbanking/settings6 (as opposed to $HOME/.aqbanking/settings), so you can just copy your "settings" folder to
"settings6" and issue a first "aqbanking-cli listaccs" command. You will then see how AqBanking6 changes the configuration files
only in "settings6".
To see how to use the new API have a look at the updated tutorials or at aqbanking-cli.
Init, Account Information
=========================
In previous versions AqBanking loaded a list of AB_USER and AB_ACCOUNT objects upon AB_Banking_OnlineInit(). These objects
contained some internal objects created by the backends, and they were shared with application. This made working with
accounts a bit more complicated than necessary. E.g. you couldn't properly copy AB_ACCOUNT objects.
Also, AqBanking needed to load and initialize all online banking backends upon AB_Banking_OnlineInit() even to just get a list
of supported accounts.
This is now much easier.
AqBanking only has a single init function now (AB_Banking_Init) which only initializes the plugin system but doesn't do much else.
Information about supported accounts is now stored in simple objects of type AB_ACCOUNT_SPEC. These objects are owned by the
application and can be freely copied and modified by the application (however, the underlying data on disk is only changed by the
online banking providers which maintain these objects).
The types AB_USER and AB_ACCOUNT are now exclusively used by the online banking providers (e.g. AqHBCI). They also handle reading
and writing those objects themselves. In fact, AqBanking itself doesn't even know much about those objects anymore.
These objects are only loaded by the online banking providers when needed, e.g. when sending jobs to a bank.
AB_PROVIDER objects are also now only initialized immediately before use (e.g. before the new function AB_Banking_SendCommands
sends commands via a provider) and deinitialized immediately after use.
Online banking jobs
===================
Online banking jobs are now stored in AB_TRANSACTION objects. Since the previously used type AB_JOB was only a wrapper around
AB_TRANSACTION objects anyway we could easily get rid of that extra layer.
AB_IMEXPORTER_CONTEXT
=====================
Previously there were multiple different lists for all kinds of transactions: transfers, statements, noted statements, debit notes
etc. Every list had its internal iterator (e.g. AB_ImExporterAccountInfo_GetFirstTransfer, AB_ImExporterAccountInfo_GetNextTransfer).
This made working on an AB_IMEXPORTER_CONTEXT from inside multiple functions problematic, since a list could only be traversed by
one function at a time.
This has also been simplified.
Now there is only a single list for all kind of AB_TRANSACTION types. AB_IMEXPORTER_CONTEXT exposes this list in its API so that
the user can freely operate on it.
Every transaction has a "type" field (see AB_Transaction_GetType) which distinguishes all the transaction types. There are a few
functions which help you with accessing specific types (e.g. you can search/filter by transaction type).
This makes it very much easier to work with in im- and exporters, since you have no longer to specify within the im-/exporter
which transaction list to work with.
In fact, the CSV exporter no longer differentiates the type to be exported. It exports every transaction in its input. It is now
the job of the application to filter the transactions to be exported, and the exporter should just do what its told.
AB_COUNTRY
==========
This function complex has been removed. It wasn't used much anyway.
AB_ACCOUNT_STATUS
=================
Older versions of AqBanking had objects of this type to store booked balance, noted balance, credit line etc.
However, at least when downloading transaction statements in CAMT format those balance can appear independent of each other,
so to account for that AB_ACCOUNT_STATUS has been removed. The previously in this class stored AB_BALANCE objects are now
stored directly in a list inside the AB_ImExport_AccountInfo object.
AB_BALANCE
==========
The date is now stored as a GWEN_DATE. Most sources of balance data already used dates, hardly any source could really
provide a time. Storing a date in a GWEN_TIME object has many problems, especially regarding time zones.
Using GWEN_DATE is much easier.
Also, AB_BALANCE now has a "type" field (e.g. "Booked", "Noted", "Temporary" etc).
----------
2021/01/16