インストールは簡単で、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つのフレームに分割されたインタフェースが現れる。左のフレームにはナビゲーションメニューがあり、各メニューはいくつかのセクションやサブセクションに分かれている。右のフレームにはデータを入力できるメイン画面がある。このインタフェースは、解像度が1400x1050の場合は右側ペインのデータをすべて表示できるだけの十分な広さがあるのでまったく問題ないが、解像度が1024x768以下の場合はデータペインが狭くて少し見づらくなる可能性がある。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(勘定科目の登録)」を選択して、既存の勘定科目の削除と自分用の勘定科目の追加を何件か行う必要がある。なお、このメニューでは勘定科目の登録だけでなくカスタマイズも可能だ。
