SQL-Ledger:機能は見事だが洗練が必要
インストールは簡単で、tarballを/usr/local/sql-ledgerにダウンロードしてsetup.perl
というスクリプトを実行するだけでよい。自動的にSQL-Ledgerの最新版のダウンロードとインストール、それにApacheの設定ファイルのアップデートが行われる。ただし、このスクリプトは依存関係をチェックしないため、その作業はあらかじめ自分で行っておく必要がある。Ubuntu Dapperマシンでこのスクリプトを実行する場合は、Perl 5.8.7に加えて、インターネット処理用のAPIを提供するlibwww-perlライブラリ、PostgreSQL 8.1、Apache 2、ApacheにPerlコードを処理させるためのlibapache2-mod-perlモジュールを用意することになる。そのほか、Perlのデータベースインタフェースライブラリlibdbi-perlと、universeリポジトリから入手可能なPostgreSQLサーバ用のデータベースドライバlibdbd-pg-perlも必要である。
先ほどのセットアップスクリプトではApache Webサーバを実行しているユーザ名とグループ名の入力が求められるが、UbuntuではApache 2の実行ユーザと実行グループはどちらもwww-data
になっている。スクリプトの完了時には、必要なAlias
ディレクティブが/etc/apache2ディレクトリ内のsql-ledger-httpd.conf
ファイルに追加され、Apacheのhttpd.confに対して適切な変更が行われる。Apache 2自体は新しいapache2.confファイルを使用するのだが、後方互換性を維持するとともにSQL-Ledgerのように旧来のファイルを参照するサードパーティアプリケーションを考慮して、httpd.confファイルも残されている。
自動化スクリプトによる処理が終わったら、用意されているREADMEを参照し、インストールの準備としてPostgreSQLへのユーザおよびデータベースの追加を行う必要がある。READMEの記述に従ってSQL-Ledgerの管理パネルに進むと、自分の組織のデータセットを作成するように求められる。続いて、このデータセットをChart of Accounts(勘定科目表)に関連付ける必要がある。SQL-Ledgerには、各種企業向けの勘定科目のテンプレートがいくつか用意されており、オーストリア、ハンガリー、ポーランド、スペイン、イタリア、英国、米国、カナダなどの国で使われる一般的な表も存在する。また、Sweden_Church_Society、Sweden_Agriculture、US_Service-Company、US_Manufacturingといった特定の業種向けの表も用意されている。
最後に、ユーザの追加を行い、そのユーザをデータセットに関連付けなければならない。
SQL-Ledgerにユーザとしてログインすると、2つのフレームに分割されたインタフェースが現れる。左のフレームにはナビゲーションメニューがあり、各メニューはいくつかのセクションやサブセクションに分かれている。右のフレームにはデータを入力できるメイン画面がある。このインタフェースは、解像度が1400×1050の場合は右側ペインのデータをすべて表示できるだけの十分な広さがあるのでまったく問題ないが、解像度が1024×768以下の場合はデータペインが狭くて少し見づらくなる可能性がある。Windowsベースの派手な会計パッケージから乗り換えた人にはとても地味に見えるかもしれないが、SQL-Ledgerは外観上の不足を補って余りあるほどの機能を備えている。
最大の問題は(少なくとも我々にとっては)データペインが画面の切り替え操作にまったくといっていいほど使用されないことである。メニュー階層を深くたどらなければ、つまりメニュー上で2~4回のクリックを行わなければ、データペインには何も表示されないのだ。ただし、このメニューは展開するとそのままの状態になるので、メニューの展開を行うのは、それぞれの画面やレポートにつきセッションあたり一度だけで済む。だが、それでも面倒なことに変わりはない。このインタフェースはどう考えてもマウスなしでは使えない。美しいグラフやコマンドライン限定のインポート機能がなくても不自由はしないだろうが、このメニューシステムの出来はあまりに酷い。
たとえば、全ベンダの一覧を表示するには「AP(支払勘定)」->「Vendors(ベンダ)」->「Reports(レポート)」->「Search(検索)」とクリックを繰り返さなければならず、それでようやくベンダの一覧にアクセスするための「Continue(継続)」ボタンがデータペイン上に現れる。途中のもっと早い段階でデータペインを利用して然るべきだろう。たとえば、「Vendors(ベンダ)」メニューのクリックによって取引のあるベンダ(または直近に利用した20件など)の一覧を表示するようにすれば、クリック回数をかなり減らせるはずだ。同じことが顧客と製品についてもあてはまる。
なかにはすばらしい機能もあるが、少し一貫性を欠いているように見える。顧客、ベンダ、製品の選択方法を取り上げて説明しよう。SQL-Ledgerの場合、顧客およびベンダのIDの入力が必要なほとんどの場面で、リスト選択用のドロップダウンボックスを用いることになる。選択範囲が狭い場合には適切な入力方法だ。また、製品IDの選択に際してのすばらしい工夫は、コードの一部だけを入力できる点である。コードの一部を入力すると別の画面が現れ、入力した部分コードに一致する製品群から必要なものを選択できるのだ。一致する製品が1つもない場合は、新たな製品の登録を行うものとみなされ、製品の新規登録処理に進む。そこまでする必要はないかもしれないが、とにかく便利ではある。残念ながら、今回はたった4つの製品でテストを行っていたのでこの機能の出番はなく、ドロップダウンボックスで十分に事足りた。できれば、部分コード入力とドロップダウンボックスの組み合わせを(最低でも顧客、ベンダ、製品の入力で)実現してもらいたかった。選択対象が少ない場合にはドロップダウンボックスを、多い場合には部分マッチング機能を使うわけだ。
紛らわしいことに、入力フィールドの要件にマッチする選択肢がない場合(たとえば、設定済みのベンダが存在せず、「Accounts Payable(支払勘定)」メニューの下にある「Enter Transaction(取引の入力)」画面に進む場合など)、製品のときと同じように別のテキストボックスが現れるまではいいのだが、製品のときのようにコードの入力や新規レコード作成の開始が可能になる代わりにエラーメッセージが表示されるのだ。エラーメッセージを表示するなら、最初に現れる画面(先ほどの例では「Enter Transaction(取引の入力)」画面)に表示すべきだろう。
SQL-Ledgerでは、複数の組織、複数のユーザへの対応が売りになっている。ただあいにく、各ユーザは1つの組織にしかひも付けできない。ログインしてから作業する組織を選べるとよいのだが、組織ごとに別々のユーザを用意する必要があるのだ。
SQL-Ledgerは、勘定科目の取り揃えとそれらを用いた処理の実行という点ではよくできているものの、「System(システム)」->「Charts of Accounts(勘定科目表)」->「List Accounts(勘定科目の登録)」を選択して、既存の勘定科目の削除と自分用の勘定科目の追加を何件か行う必要がある。なお、このメニューでは勘定科目の登録だけでなくカスタマイズも可能だ。
インポート機能とレポート機能
テスト用にサンプルデータを読み込もうとしたところ、すぐに問題がいくつか発覚した。別の会計アプリケーションのデータをSQL-Ledgerにインポートするための移行スクリプトが何種類か用意されているが、オンライン画面からアクセス可能なインポート手段が存在しないのだ。そのため、データのインポートにはコマンドラインツールを使う必要がある。これではせっかくのマルチユーザ、プラットフォーム非依存のインタフェースが台無しである。コマンドラインツールはSQL-LedgerのWebサイトからダウンロード可能で、GnuCashからのインポート用のもの(私の環境では変更しないと動作しなかった)や、Quickbooksのいくつかのバージョン向けのものがある。また汎用スクリプトも存在するが、説明によるとCSVファイルからインポートを行うもののようだ。このスクリプトでQIF形式がサポートできるかどうかは私にはわからない。言うまでもないが、オンラインバンキングの形態は一切サポートされていない。
SQL-Ledgerの強みはレポート機能である。すべての勘定科目にはレポートモジュールが付属しており、このモジュールは自ら選択した詳細情報を任意の対象期間で表示するようにカスタマイズできる。レポートは印刷が可能であり、PDF、PostScript、またはHTML形式の添付ファイルとして送信することもできる。
このレポートは実用的だが、上級管理職やベンチャー投資家が好む美しい描画の機能(棒グラフ、円グラフなど)がまったくない。レポートのオプションおよび対象範囲はかなり広くカバーされているようだが、メニューのあちこちに散らばっているのが残念である。これではすぐに嫌気がさすだろう。
電子メールで請求書を送る場合はSQL-Ledgerからこの操作を直接行うことができ、表書きも添えられる。この方法は帳票のバックアップをとるためにも使える。販売/購入の注文書の管理、見積書の作成や依頼が会社で必要な場合、こうした帳票の印刷、メール送信、保存もSQL-Ledgerを使えばワンクリックで可能だ。
レポート用テンプレートはすべて編集が可能で、特定の項目の位置を変更したり会社のロゴを入れたりすることができる。レポート用テンプレートは/usr/local/sql-ledger/templatesディレクトリにあり、HTML、TeX、またはテキスト形式になっている。
たいていの組織では、複数の人物が会計アプリケーションにアクセスする必要がある。その場合は管理者としてログインし、ユーザを追加して該当する組織(データセット)への関連付けを行う。だが、販売や購入を担当する事務員に組織のバランスシートを見せたりレポートの送信をさせたりはしたくないはずだ。勘定科目に対するユーザの操作およびアクセスは、メニューの見出しを削除するか特定の項目だけをメニューに残すことにより、管理者が容易にコントロールできる。ユーザ権限のレベルは柔軟に設定できるようなので、大半の人の要求には応えられるだろう。
セキュリティについて触れておくと、取引項目の削除の代わりに振り戻し項目の書き込みをユーザに強制することによって、「一般に認められた会計原則(GAAP)」に準拠するようにSQL-Ledgerを設定することができる。また会計期間も設定できるが、期間終了後の編集は行えない。
必要であれば、非常に便利な販売時点管理(POS)モジュールも利用できる。このモジュールは、項目の詳細情報を入力するためのバーコードリーダとの連携が可能である。
マニュアルとサポート
SQL-Ledgerはオープンソースのアプリケーションである。FAQのほか、ダウンロードページから無料で手に入る各種プラットフォーム向けのインストール手順、ユーザメーリングリストやアクティブな地域別メーリングリストがいくつか存在し、こうしたメーリングリストにはSQL-Ledgerの開発者もときどき現れて情報を提供している。
たいていのユーザにはこれで十分だろうが、SQL-Ledgerを営利組織で使用する場合には、マニュアルとそれに付随するサポートの購入が役に立つ。実はここにSQL-Ledgerの落とし穴がある。ソフトウェア自体は無料だが(インストール手順以外の)マニュアルは購入しなければならないのだ。こうした売り上げがSQL-Ledgerの開発者たちの主な収入源になっている。お金を払わないとマニュアルが手に入らないのは腹立たしく、プログラムを十分に活用するためにマニュアルが必要になる場合はなおさらだ。SQL-Ledgerの開発者は、自分たちのマニュアルを購入させるためか、コミュニティベースのドキュメントに対しては次のように否定的な見方をしている。
確かにコミュニティベースのドキュメントはある程度存在しますが、そうした情報は不正確なことがあるのであまり信頼しないよう注意が必要です。なかには古い情報も含まれ、その情報はこれこれのバージョンにあてはまる、という参考情報がなければ、本当に使えるかどうかを理解するのは非常に困難です。私たち開発者にはわかりますが、一般のみなさんにはわからないことです。ですが、Wikiをチェックして誤りを訂正することは、私たちの仕事ではありません。インターネット上に出回っているWebページは50万を超えるため、すべての関連情報に目を通すだけで勤務時間が終わってしまうでしょう。
ユーザメーリングリストは存在しているので、そこに参加すれば他のユーザに質問をすることができる。このメーリングリストについては、活発に利用されていて役に立つとの意見がユーザから寄せられている。もっと直接的な援助が必要だとしても、SQL-LedgerのWebサイトは非常に表面的な情報しか提供していない。サードパーティによる有益なWebサイトもいくつか見つかったが、どれもあまり詳しい情報は掲載していない。そのほか、役に立つFAQが見つかっている。
またオンラインデモ(http://abacus.sql-ledger.com/sql-ledger/login.pl)では、インストールを行うことなくSQL-Ledgerの動作を試すことができる。
結論
SQL-Ledgerには少々がっかりさせられた。もっと洗練されたプログラムを期待していたのだ。アクセスレベルが設定可能な複数のユーザに対応した会計ソリューション、またはさまざまな種類のオペレーティングシステムからアクセスできる会計ソリューションが必要なら、インストールして試すとよいだろう。優れたプログラムとしての基本事項は満たしているが、もう少し洗練させる必要がある。インストール方法や使い方が簡単、Webベースでセキュリティ性もあり、複数ユーザへの対応や徹底的なカスタマイズが可能である。最も惜しまれるのは、給与支払管理のモジュールが存在しないことだ。また、銀行との連携が行える可能性が非常に小さいのだが、この点についてはアプリケーション側というより銀行側の取り組みが不十分なのが実情だろう。
SQL-Ledgerは多言語に対応していて通貨の換算も可能だが、米国およびEU諸国のユーザが利用するのに最も適した作りになっている。また、種類や規模を問わずどんな組織にも、さらには複数の組織や製造部門にも対応できるが、個人の資産管理に適したアプリケーションとは言い難い。