Request for feedback
Anthony W. Juckel
awj@digitalgreen.com
11 Nov 2001 11:04:20 -0600
On Sun, 2001-11-11 at 07:42, Bill Gribble wrote:
> On Sun, 2001-11-11 at 00:00, Anthony W. Juckel wrote:
> > Recently I've been mulling over a way to rework the current transaction
> > import code to make it a little more generic. I noticed a comment in
> > src/import-export/qif-io-import/qif-objects.scm stating a desire to have
> > the code re-worked into GOOPS classes, so I've started with that.
>
> Youy should probably start out by looking at
> src/import-export/qif-io-core, which is the "next generation" importer
> I've been working on.
Oops. Sorry, that was a typo in my email. qif-io-core is the module
that I started looking at, and it was within qif-objects.scm that I saw
a reference to creating GOOPS classes.
> I don't think it's a good idea to depend on GOOPS in the gnucash core
> right now. We made a decision as a group not to use GOOPS because it's
> not well supported by the versions of guile that Red Hat users have
> available. I personally would like to start, but I think we should wait
> at least until Red Hat ships something other than guile-1.3.4 with their
> current release.
>
> If you're a Red Hat user and are using guile with no problems, maybe
> it's time to reconsider.
Well, I'm having no problems with GOOPS on my system, but I'm running
Debian. Does anyone know why RedHat is not yet supplying a recent
version of guile?
> > hope is to add a layer of abstraction between the file type and the
> > gnc:xtn code to make it relatively easy to add a new import file type.
>
> I think you're on the wrong track. Every import format will have very
> different limitations and information shortfalls and will need different
> GUI front ends, and different processing. I advise against trying to
> take the current QIF code and make it a generic importer.
I think you may have misunderstood what I meant. My intention isn't to
take the QIF import code itself and generalize its file parsing. My
intention is to separate qif-io-core code into two layers, one which
does the translation of qif-file->gnc:xtns, and another which takes
those gnc:xtns parsed from the input file and figures out a way to map
those incoming transactions into current/new accounts, does duplicate
checks, etc. So, the current qif-io-core would just be separated into
two parts. Those that depend on qif itself (which would be seperated
into a file-format specific class), and those that do not (or at least,
should not, which would belong to the superclass).
> I think it's a good idea to use more generic tools for certain parts of
> the import process, such as eliminating duplicate transactions. In the
> qif-io-core code, the major change I made was to convert the QIF
> transactions into gnucash transactions as early in the process as
> possible, allowing most of the logic about matching with existing
> accounts and transactions to be done by reasoning on gnucash
> transactions rather than an intermediate form. That would allow the
> same mechanisms to be used by multiple importers.
>
> b.g.
>
This is exactly the same methodology that each of the defined import
subclasses should follow: take the input file, and convert it to
gnc:xtns, then pass this list of gnc:xtns on to the generic importer.
Is it necessarily true that each file would need a seperate GUI
process? I have been assuming that the only parts necessary for the GUI
are file selection, account mapping, and duplicate checking, but I,
admittedly, use a fairly small subset of GnuCash's functionality (I
simply track a few checking and savings accounts, as well as
expenses...no currency conversion or investment managing).
Like I said, I'm new to all of this, so I'm just throwing ideas around,
trying to get a feel for the situation.
Anthony W. Juckel