オープンソースのPOSシステム

KOF2010:関西オープンソース2010にて、OpenBravo POSのカタログを
友人に頂いた。

早速、ダウンロードして実行してみたところ大変見映えがよい。
実際の業務に使えそうか、検証してみたい。

OpenBravo POSは、JAVAで記述されており、動作プラットフォームも

WindowsLinuxMacOSで動作する。

WindowsXPで動作テストした。
Javaの実行環境は、J2SE(1Java1.6.0_22)をインストールしてある。

最新版、Openbravo POS 2.30.2のインストールは、
openbravopos-2.30.2-windows-installer.exe をダウンロードし、
ファイルを起動するだけで、完了する。
http://sourceforge.net/projects/openbravopos/files/

ソースファイルは、openbravopos_2.30.2_src.zip で提供されている。

NetBeans6.9.1で開発環境を構築することが出来る。
http://wiki.openbravo.com/wiki/OpenbravoPOS_Developer_guide


1.Openbravo POS最初の起動
 接続するデータベースの新規作成が自動的に呼び出される。
 データベースを生成するかの問い合わせメッセージが出るのでメッセージに従うだけでよい。
 作成されるデータベースは、Apach DerbyのEmbedded形式で
 openbravopos-database が生成される。

2.商品の登録
 左側ペインのAdministrationのStockを選択し右ペインStockのProductsを選択
 右の下ほどにReferenceに123、Nameに商品名(日本語OK)
 Barcodeに適当なバーコード、その他項目にあわせて設定し、フロッピーのアイコンが書き込みなので
 設定が終わったらクリックする。必要項目が入力されていない場合はメッセージが出て書き込めないので、
 確認後、書き込む。

3.売上の登録
 左側ペインのMainのSalesを選択すると、POSの入力画面になる。
 先ほど設定したバーコードを、入力すると、画面上部中央に、商品明細が追加される。
 商品明細を2〜3行追加する。
 買い上げの締め切りキーは、=キー、または、スペースキーのようです。
 締め切りキーを選択すると、金額の入力画面になる。
 お釣りがなければ、OKを選択すれば、レシートが登録される。
 金銭の受け取りは、現金だけでなく、カードや、金券等の入力も考慮されている。

4.レシートの発行
 レシートを発行するため、レシートプリンタを接続する。
 レシートプリンタは、EPSON TM-T882 80mmロールのシリアル接続タイプ
 左側ペインのSystemのConfigurationを選択するとし右ペインCash RegisterのPrinter項目で
 EPSONを選択する。ModeとPortのコンボボックスが現れるので、Modeにserial、PortにCOM1を
 設定し、プリンタケーブルをCOM1に接続した。
 売上時に、レシートは、発行されるが、漢字は文字化けする。
 漢字を印刷するには、TM-T882の漢字コードにあわせた変換が必要。

5.テーブルの内容
 データベースの中に34のテーブルが生成されている。
 レシートの売上見出しと、売上明細にあたるテーブルが、tickets、ticketlinesのようなので、
 テーブル構造を確認した。

tickets(売上見出し)
id、tickettype、ticketid、person、customer、status
"72218118-bcce-44bd-ac25-73cd9083126f";0;1;"0";"";0

ticketlines(売上明細)
id、line、product、attributesetinstance_id、units、price、taxid、attributes
"72218118-bcce-44bd-ac25-73cd9083126f";0;"345b3ca5-039c-4c57-8a57-94fb5169b104";"";1;1000;"001";"<バイナリ データ>"

識別子が意味不明?、商品番号が意味不明?、売上日時が判らない、必要と思われるデータが<バイナリ データ>

識別子のidは、売上番号のなので、1から連番でつければよいのだが、落としたデータをユーザが再利用不可能?なように変更されている。(UUID化してある)
ticketlines(売上明細)のproductも同じだ。

オープンソースではあるが、データベースはシンプルに公開をしたくないようだ。
(Bravoじゃなく、OpenBooBoo POSじゃん!)

6.ソースを眺めて
 Java自体ほとんどはじめての状態なので正確な内容であるか保証できないが
 現状の知識のなかで思ったところを記録する。
 NetBeans6.9.1で開発環境を整えて、
 src-pos\com.openbravo.pos.sales\JPanelTicket.java
 をデザインタブで確認すると、POSの入力画面が確認できる。

7.感想
 データベースの内容等、故意に判らないようにしてあるので、カスタマイズは骨が折れる仕事となる。
 記録したデータを自由に集計、利用しようと考えることはやめたほうがよい。
 Openbravo POSの機能の中で利用できるなら、出来はよいと思う。
 ここまでできて、オープンソースは他に例がないと思われる。
 タッチパネルで操作するPOSのお手本としては大変よくできています。
 データモデリングをし、Openbravo POSを参考に、独自に設計、プログラミングしていくほうが
 業務にあったPOSシステムを完成させることができると思われる。

 独自のPOSシステムを構築する上で、マルチプラットホームの「Openbravo POS」のソースは
 大変貴重な資料になることは間違いない。
 Muchas gracias.