QSF and qof_book_merge
Neil Williams
linux at codehelp.co.uk
Fri Apr 29 13:35:11 EDT 2005
On Friday 29 April 2005 11:02 am, Geert Janssens wrote:
> While gathering more info for my mini project to import sales info from
> acustom Access database,I came across a thread on this mailing list about
> qof_book_merge and qsf (qof serialization format).
http://code.neil.williamsleesmill.me.uk/
should provide all the answers you need. If not, I'll add answers to whatever
questions you have.
There is no intrinsic reason why QOF could not run on Windows - it has no GUI
requirement. As part of GnuCash it already runs on Mac OSX. When I've done
some more on the low level code, I'm hoping to fold some of those OSX
modifications into the QOF code so that it's easier to build on OSX and
possibly elsewhere.
QOF is also small enough to run on embedded systems - there is a good chance
of it being used to share data on certain palmtops.
> Since I can have my
> inventory program export it's sales info in qsf format in relatively short
> notice,
Export is always easier than import - if there is any data that your program
will need to import from GnuCash then you will need to spend more time
declaring your own QOF objects. This is what has taken the majority of time
in developing pilot-qof - the application that wraps pilot-link in QOF
objects to import, export and synchronise data between the PDA and XML and
therefore GnuCash.
http://pilot-qof.sourceforge.net/
I will offer any help you need but please read what I've written so far on the
above sites as I have a keen interest in writing usable documentation and I
would appreciate comments on whether it is sufficient.
> this combination seems to go a long way in solving my problem.
Indeed - although there are still issues around converting between
applications and that part of the code isn't complete. I'm finishing the
object handling in pilot-qof and GnuCash so that I've got a known QSF layout
for each before returning to the code for the maps.
Pilot-link objects are quite dissimilar from GnuCash objects and more is
involved in converting one to another. If your program uses objects that are
more similar, you may be able to convert more easily using XSL etc. However,
I would not recommend that you simply implement GnuCash objects in your code
- that would limit your use of QSF to only GnuCash when it could develop into
much more. Define the objects as close to your own code as you can - it makes
them easier to update and maintain, it allows the greatest potential for
growth and development and it makes the best use of QOF itself.
e.g. Why shouldn't users be able to query their inventory data outside your
program? If you define your objects as inventory objects, the user can use
QOF to query their inventory data directly using a SQL-like interface. It
frees your program from having to provide little-used reports or excessively
customised report features.
Concentrate of making your program data accessible to as many users as
possible and you'll reap the rewards in QOF.
Inventory (personal and business) is one of the most recognisable benefits
from having an open and extensible import/export format.
As I've said before here, I see no point in GnuCash handling inventory
directly. What I think we need is an inventory program that can interface
with GnuCash so that the user can view their data in both programs and
together, you and I can create such an interface. The inventory program tells
the (business) user the fastest and slowest lines, stock holding, discount
performance, highlights shelving issues - eye level etc. - whilst GnuCash
uses the same data to assess profitability, handle invoices and payments, tax
reports and reliable double-entry accounting.
> So I'm really interested to hear what the current implementation and
> integration status of qsf and qof_book_merge are within GnuCash.
QSF is an inherent part of G2. It's implemented and working. It produces valid
XML, according to the schema, and some export routines are now present.
Currently, a bug in the G2 GUI code is preventing the import of QSF data but
99.9% of the required code is again, present and working.
qof_book_merge is implemented in G2 and current CVS HEAD. Some improvements
have been made in G2 but the most useful testing is only possible when the
bug in the GUI is fixed. (Importing any QSF involves merging the data into
the existing dataset, so an import of QSF always calls qof_book_merge.
I would recommend that your program exports it's own objects in QSF. This will
make it easier to interface with other QOF programs - e.g. perhaps your
inventory program could interface with GnoTime or pilot-link or something
else. Maybe a labelling program or some form of barcoding software, maybe
direct with an EPOS system, etc.
(GnoTime is to be packaged on Debian to use the external library version of
QOF rather than it's internal version that uses older code. With some tweaks
to GnoTime, it could be possible for it to use QSF and therefore share data
with GnuCash and pilot-link itself.)
--
Neil Williams
=============
http://www.dcglug.org.uk/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.gnucash.org/pipermail/gnucash-devel/attachments/20050429/0cd10f99/attachment.bin
More information about the gnucash-devel
mailing list