QSF is a generic XML format for complex data, based on QOF which in turn is part of GnuCash. As such, QSF provides a generic import/export function for GnuCash entities and supports merging those entities back into GnuCash data files.
The system described under the Generic Exporter in the GnuCash/DevelTexts will work well with QSF to provide a simple and clear XML format for the exported data. As the idea uses existing GnuCash data fields like description, most of the work can be done without alteration to the main GnuCash codebase.
QSF is being developed within the Gnome2 port of GnuCash and a key benefit is support for "partial" books - books that only contain selected entities, without the overhead of account groups or unrelated entities. More on QSF can be found here: http://code.neil.williamsleesmill.me.uk/doxygen/group__QSF.html http://code.neil.williamsleesmill.me.uk/qsf.html
I'm planning a cover-all export dialog that will use a notebook (tabbed) style interface - one tab for each supported GnuCash entity. Accounts, Transactions, Invoices, Customers, Vendors, Employees (any others?)
By selecting filters from parameters of each entity, like minimum/maximum balance, tax status, dates (before/after/single), strings, types . . . and/or excluding certain entities completely, any permutation of entities *should* be exportable to QSF.
The following is my initial bash at the help text to explain all that:
==============================
You can use these pages to build a book of entities ready for export to QSF XML.
The defaults will export all supported entities as of today - no previous dates will be exported unless you change the defaults.
To add a series of entities, using point of sale system, click Apply and then change the criteria to export the other entities. Apply only affects the currently displayed page. Click OK to export all remaining entities selected by all pages. No entity can be exported twice.
Note that certain entities, like commodities, are not currently supported by QSF and cannot be exported this way. All commodities in the QSF will be assigned your default currency when you merge the data back into a GnuCash file.
Leave any tab blank to allow all entities of that type to be exported. Select the Exclude checkbox to prevent any of a particular type of entity from being exported. Note that certain entities will always contain necessary sub-elements. e.g. Accounts will always contain an Opening Balance from the date specified even if Transactions are excluded. Invoices will always contain Customer entries even if the rest of the Customers are excluded.
============================
Each page includes fields to filter the entities. e.g. Accounts include the Name, the Description, the Type (pre-filled by GnuCash), minimum and maximum balances (initially zero and suitably high), tax related (all, include or exclude). Plus each page has a checkbox to exclude all entities of that type, with the proviso above.
I'd expect Transactions to also require parent Accounts?
Comments?
Related page: fix computer errors