| Did you know...? LWN.net is a subscriber-supported publication; we rely on subscribers to keep the entire operation going. Please help out by buying a subscription and keeping LWN on the net. |
The quest for a free-software accounting system suitable for a business like LWN continues; readers who have not been following this story so far may want to look at the previous installments: the problem statement and a look at Ledger. This time around, your editor will be evaluating PostBooks, a system that differs from Ledger in almost every way. PostBooks, as it turns out, is not without its problems, but it might just be a viable solution to the problem.
PostBooks has been around as a commercial project since 2000 or so; it made the shift to a free software project in 2007. It is, however, a classic example of a corporate-controlled project, with the corporation in this case being a company called xTuple. The license is the "badgeware" Common Public Attribution License (CPAL), which requires the acknowledgment of the "original contributor" on splash screens and similar places. The CPAL is recognized as an open source license by the Open Source Initiative, but its attribution requirements are not popular with all users. The CPAL has not taken the world by storm; it has shown up in a few business-oriented projects like PostBooks, though.
Additionally, PostBooks is a project in the "open core" model: the core software is open source, but certain types of functionality are reserved for proprietary enhanced versions requiring payment and annual support fees. See the xTuple ERP editions comparison page for an overview of which features can be found in which versions. One need not look long on the net to find users complaining that one must buy a proprietary version to reach the necessary level of functionality, but your editor's impression is that the free edition should be sufficient for a wide range of companies.
At a first glance, the PostBooks development "community" reinforces the impression of a corporate-controlled project. There are no development mailing lists, for example. The source repository lives on SourceForge; a look at the revision history shows a slow (but steady) trickle of changes from a handful of developers. The developer documentation says that "The majority of features added to the core are added as a result of sponsorship," but also suggests that outside developers could be given direct commit access to the repository. One has to assume that attempts to add features found only in the proprietary versions would not be welcomed.
PostBooks is written in C++ with the Qt toolkit used for the graphical interface. One result of this choice is that the code is quite portable; the client can run on Linux, Windows, and Mac OS systems. All data lives in a PostgreSQL database; among other things, that allows clients distributed across a network to access a single database server. PostBooks is an inherently multi-user system.
As far as your editor can tell, no even remotely mainstream Linux distribution packages PostBooks, so users are on their own. Building the tool from source is not a task for the faint of heart; the code itself comes with no build instructions at all. Those instructions can be found on the xtuple.org web site; among other things, they recommend not using the versions of Qt and PostgreSQL supplied by the distributor. Your editor's attempts to build the system (ignoring that advice) did not get far and were not pursued for all that long. One need not look for long to find similar stories on the net.
What this means is that most users are likely to be stuck installing the binary versions (32-bit only) shipped by xTuple itself. Downloading a massive script from a company's web site and feeding it to a root shell is always a great way to build confidence before entrusting one's accounting data to a new application. The script offers to try to work with an existing PostgreSQL installation, but your editor ran into trouble getting that to work and ended up letting it install its own version. There are license acceptance and registration screens to be gotten through; as a whole, it feels much like installing a proprietary application.
One nice feature is the provision of some sample databases, allowing easy experimentation with the software without having to enter a bunch of data first.
The initial PostBooks screen (shown on right) reinforces the "proprietary
software" feeling; it consists mostly of advertisements for xTuple products
and services. From there, though, it's one click to the top-level features
of the program, divided into relationship management, sales, purchasing,
accounting, and manufacturing. Finding one's way around the program takes
some time; there is a lot of functionality hidden away in various corners
and the correct way to get there is not always obvious. The tutorials provided by xTuple
(free online, but payment required for the PDF version) can be a good place
to start, but reading through them sequentially is a good idea. Important
details tend to be hidden in surprising places in a way that can frustrate
attempts to skip directly to the interesting parts.
Your editor will appreciate it if readers resist the urge to question the concept of an accounting tutorial having interesting parts.
PostBooks has a number of features that may be of interest to certain types of corporations — relationship management and materials tracking, for example. For the purposes of this review, though, the main area of interest is accounting. As would be expected, PostBooks implements double-entry bookkeeping with various layers on top to support a set of "standard" business processes. For users coming from a tool like QuickBooks, the processes built into PostBooks may look bureaucratic and arcane indeed. Tasks that seem like they should be simple can require a long series of steps and screens to get through.
For example, a purchase in QuickBooks is most likely handled, after the
fact, by simply entering the bill from the supplier, then perhaps printing a
check. The PostBooks purchasing window (right) has rather more steps:
check for the desired item in inventory, enter a purchase request, generate
a purchase order, release the purchase order to the world, enter a bill,
generate a voucher for the bill, let the voucher age (a process well known
to — and detested by — anybody who has tried to get a large company to pay
a bill), enter a payment, set up a check run, and actually print a check.
All these steps exist because larger companies actually do things that way,
usually with different people handing different phases of the process.
Indeed, PostBooks has an elaborate roles mechanism that can be used to
limit users to specific steps in the chain.
For a small operation where a single person likely does everything, it can seem like a lot of useless extra work. The good news is that much of it can be bypassed if one knows how. A "miscellaneous check" can be entered without going through the purchase order mechanism at all; there are also "miscellaneous vouchers" for those who want less hassle, but still want to require that two people are involved in the process of spending the company's money. The sales side is similar; one can go through a whole process of defining prospects, generating sales orders, putting together bills of materials, invoicing, and so on. Or one can just enter a payment by digging deeply enough in the menus.
PostBooks has what appears to be a reasonably flexible report generation
subsystem, but, in the free edition at least, rather little use is made
of it. The set of reports available within the application is relatively
basic; it should cover what many companies need, but not much more.
PostBooks is not an application for those who cannot function without pie
charts.
Interestingly, the report generation subsystem would appear to be used for related tasks like form and check printing. One of the many aspects of the xTuple revenue model is xtupleforms.com, where various types of forms, including checks, can be purchased for use with PostBooks. Happily for an organization like LWN, the available forms include tax forms, and the dreaded 1099 in particular. The selection is small and US-centric, but, for some businesses, that's all that is needed.
In the case of checks, there is only one alternative: a single-check-per-page format. Unlike Intuit, xTuple would not allow LWN to put its penguin logo on its checks — a major shortcoming, in your editor's estimation. It doesn't seem like multiple checks per page is a possibility, which may explain why nobody has put together a format description for checks from Intuit. As a whole, support for check printing is minimal, but sufficient, especially in a world where (even in the US), the use of paper checks is in decline.
As an aside, there is a surprising lack of resources or help for users wanting to transition from systems like QuickBooks. One would think that would be a promising source of new users; certainly there is no shortage of disgruntled QuickBooks users in search of a different system. But tools to extract data from QuickBooks and import it into PostBooks are not really to be found. What little information on the subject exists on the xTuple site dates from 2007. Evidently QuickBooks is such a data trap that extracting vital information is not a job for the meek.
Speaking of data, one of the key problems for a business like LWN is getting transaction data into the system. Our transactions tend to be small, but we have a fair number of them (never enough, mind you); entering them by hand is not really an option, even in a system with fewer steps than PostBooks requires. That is, quite simply, the kind of job that makes us willing to tolerate having computers around. So some way to get data into the accounting system automatically is required.
Hypothetically, since PostBooks uses PostgreSQL for its data storage, feeding new data should really just be a matter of writing a bit of SQL. In practice, the PostBooks database schema has about 550 tables in it, with all kinds of interactions between them. A person with enough interest and ability could certainly figure out this schema and find a way to put more information into the database without corrupting the works.
This is the point where your editor feels the need to remind you that LWN's staff is dominated by kernel-oriented people. Charging such people with that task could lead to some amusing results indeed, but our accountant is not quite so easily amused.
The folks at xTuple seem to have recognized this problem, so they have put together a somewhat simpler means for programmatic access to the database. They call it their API, but it really is a set of PostgreSQL functions and views that provides a simplified version of the database. Programmers can write SQL to access a view in a way that closely matches the windows in the interactive client, and the functions behind those views will take care of the task of keeping the database consistent. Your editor has not yet tried actually programming to this "API," but it looks like it should be adequate to get the job done.
Readers who have made it all the way through this article will have noticed that the first impressions from PostBooks were not all that great. And, indeed, it still has the look of a mostly proprietary piece of software that happens to have the source available. But, once one looks beyond the first impressions, PostBooks looks like it might well be able to get the job done.
What this program needs, arguably, is a fork in the go-oo style. This fork would do its best to get all of its changes upstream, but would put effort into making the system easier to build and package so that distributions might start carrying it. In this way, the project might gain a bit more of a free software feel while staying reasonably close to its corporate overlords. But, of course, such a project requires sufficiently motivated developers, and it's amazing how few free software developers find that accounting systems are the itch they need to scratch.
Whether LWN will move over to PostBooks is not an answerable question at this point. Further investigation — of both PostBooks and the alternatives — is called for. But this first phase of research has not ruled it out. PostBooks is not a perfect fit for what LWN needs, but that perfect fit does not seem to exist anywhere. In this case, it may just be possible to use PostBooks to get the job done. Stay tuned.
OpenERP
Posted Sep 19, 2012 19:32 UTC (Wed) by jebba (✭ supporter ✭, #4439) [Link]
OpenERP is even being taught in an MIS class at CU Boulder, in LWN's neck of the woods. This is the second year the course has been offered.
Python, Postgres, truly open, native GTK client, web client, large community, easy records import/export via CSV, years of open development, what's not to like? :)
OpenERP
Posted Sep 19, 2012 19:34 UTC (Wed) by corbet (editor, #1) [Link]
OpenERP is definitely on the list of projects to look at... It just takes time to work through them all, excessive exposure to accounting packages is known to cause brain damage in rats, after all...
OpenERP
Posted Sep 19, 2012 19:39 UTC (Wed) by jebba (✭ supporter ✭, #4439) [Link]
OpenERP
Posted Sep 19, 2012 20:38 UTC (Wed) by xnox (subscriber, #63320) [Link]
OpenERP
Posted Sep 20, 2012 2:27 UTC (Thu) by xnox (subscriber, #63320) [Link]
OpenERP
Posted Sep 21, 2012 5:00 UTC (Fri) by jafo (subscriber, #8892) [Link]
Sean
OpenERP
Posted Sep 21, 2012 5:38 UTC (Fri) by jebba (✭ supporter ✭, #4439) [Link]
FrontAccounting
Posted Sep 27, 2012 12:11 UTC (Thu) by Mike.Ralphson (guest, #85348) [Link]
OpenERP
Posted Sep 19, 2012 19:56 UTC (Wed) by lolando (subscriber, #7139) [Link]
However, I have to disagree on the "true free software". At least at the time I investigated, there was no procedure for upgrades across major versions apart from "hire us", and the website was quite bluntly announcing that bug reports were very likely to be ignored unless they included the identification of a customer support contract, and patches would be similarly laughed at.
Did that change in the last two years?
(If anyone cares: I switched to Tryton, which happens to be an OpenERP fork.)
OpenERP
Posted Sep 19, 2012 20:40 UTC (Wed) by xnox (subscriber, #63320) [Link]
Well they are tracking contributions & merge proposals for trunk series only. You do need paid contract for fixes backports. But you are free to merge them yourself. There are plenty of OpenERP partners that maintain stable "syrup" branches with bug fixes.
OpenERP
Posted Sep 19, 2012 20:41 UTC (Wed) by xnox (subscriber, #63320) [Link]
Tryton still doesn't have web client.
OpenERP
Posted Sep 20, 2012 2:16 UTC (Thu) by jebba (✭ supporter ✭, #4439) [Link]
Ah yes, this is true. To do a 6.0 to 6.1 (which was a significant upgrade) you do need a support contract if you want them to do it. They do not publish the code to the migration software. IIRC it was something like this: you upload your database (including a sanatized version so you don't leak data to them), then their script does it's majick, which you then feed to Postgres. Updating the server & client is a no brainer of just installing the new python files. The db is the hard part. I have seen some free/open scripts in the forums, but they are reverse engineered.
> the website was quite bluntly announcing that bug reports were very likely to be ignored unless they included the identification of a customer support contract
I haven't seen this.
If you have a support contract entered into OpenERP, if it crashes it gives you an interface with the crash details and your contract number with an easy submit button. If you don't have a contract, you do it the old way by simply entering a bug into the bug system. I've seen plenty of this.
> patches would be similarly laughed at
I don't think it is like this. They do most work through launchpad, and I don't see people asking "what's your support contract?" anywhere. That side of it seems to be a normal free/open project. Of course patches get laughed at every so often in other open projects too. ;)
Support contracts are available from a dozen or more companies, not just OpenERP themselves, fwiw.
> I have to disagree on the "true free software".
Your point about database migration is well taken. Apart from that, it is quite open in my experience.
OpenERP
Posted Sep 22, 2012 1:20 UTC (Sat) by njwhite (guest, #51848) [Link]
Indeed, it's fine for stuff like that. I've got patches accepted in, by writing bug reports, and attaching patches. Just like it should be.
OpenERP
Posted Sep 20, 2012 11:39 UTC (Thu) by debacle (subscriber, #7114) [Link]
What you describe may be right, but it does not mean, that OpenERP is not truly free software or open source (in the sense of the Free Software Definition, the Open Source Definition, or the Debian Free Software Guidelines). You and everybody else is still free to offer support or write upgrade scripts yourself. AFAIK, some OpenERP partner company do exactly that.
OpenERP
Posted Sep 20, 2012 11:31 UTC (Thu) by debacle (subscriber, #7114) [Link]
The accounting quest: PostBooks
Posted Sep 19, 2012 23:30 UTC (Wed) by rsidd (subscriber, #2582) [Link]
The only obvious answer
Posted Sep 20, 2012 17:26 UTC (Thu) by dmarti (subscriber, #11625) [Link]
We'd get an elegant, somewhat strange, GPL accounting system to work with, and the remaining design and integration issues could happen at the inevitable startups.
The only obvious answer
Posted Sep 21, 2012 3:29 UTC (Fri) by cmccabe (guest, #60281) [Link]
The only obvious answer
Posted Sep 21, 2012 23:15 UTC (Fri) by nix (subscriber, #2304) [Link]
The only obvious answer
Posted Oct 16, 2012 2:35 UTC (Tue) by ThinkRob (subscriber, #64513) [Link]
Well... at least you know they'll avoid int overflows.
The accounting quest: PostBooks
Posted Sep 29, 2012 10:08 UTC (Sat) by Johny (guest, #86940) [Link]
Frontaccounting looks maybe similary simple, but i have not tried it.
(Also since its using mysql, interconnection with zen-cart would be thinkable i guess, but i know nothing about databases really.)
Copyright © 2012, Eklektix, Inc.
This article may be redistributed under the terms of the
Creative
Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds