Adempiereのメニューから表示できる300個以上のウィンドウ、ウィンドウ内のタブ、タブ内のテキストエリアなどの項目(フィールド)は、コード(プログラム)として書かれているのではなく、すべてデータベース内に保存されています。
これらのデータを使って、画面にどのような項目を表示するかを決定します(Adempiere内のすべての要素が、この方法で表示されているわけではありません)。この構造によって、項目の修正やカスタマイズ、新機能の追加などが効率的に行えます。
Adempiereで実装されているERPの機能を、一部だけ残して無効にして(または、すべて無効にして)、業務管理システムの基盤として使うこともできます。
Adempiereには、「Application Dictionary」というフレームワーク(のようなもの)があります。Application Dictionaryとは、Adempiereで表示するウィンドウやタブなどの情報をデータベース内に格納したデータの集まりです。
また、Application Dictionaryは、アプリケーション構成を定義したデータの集まりを表す言葉で、正確にはフレームワークの名前ではありません。画面(ウィンドウ、タブ、フィールド)を描画する部分も含めた機能に名前を付けるとしたら、「Adempiereフレームワーク」「Compiereフレームワーク」という名前になるのではないかと思います。
Strutsは、WebアプリケーションのMVC構造を実現することを主な目的としているフレームワークです。一方、Adempiereフレームワーク、Application Dictionaryは、業務管理に特化した機能を簡単に構築することを目的としています。
このように目的の違いがありますが、この2つは排他的なものではありません。受け持つ階層(レイヤ)が違うということもできます。SpringフレームワークとStrutsの両方を使ってアプリケーションを構築できるように、AdempiereのWeb画面をApplication Dictionary+Strutsで構築することも可能です。
AdempiereのクライアントUIは、当初JavaのGUIアプリケーションだけでしたが、Adempiereコミュニティによって、「ZK」というJavaScript/Ajaxフレームワークを使ったWeb用UIが追加されました。この2つのUIは、同じシステム内で同時に使えます。
アプリケーションの構成には、上記Application Dictionaryというフレームワーク(のようなもの)もあります。もし、ZKのAdempiereをStrutsやSpring(DI)を使って構築しようとすると、表のようになります。
Adempiere Web用UI(既存) | Adempiere Javaクライアント(既存) | MVCのコントローラにStrutsを使う場合 | ビジネスロジックにDIを使う場合 | DBアクセスにO/Rマッピングを使う場合 | |
---|---|---|---|---|---|
View | ZKフレームワーク | Adempiere独自(クライアント) | Struts | ZKフレームワーク | ZKフレームワーク |
Controller(コントローラ) | |||||
Model(ビジネスロジック) | Adempiere独自(サーバ) | Adempiere独自(サーバ) | Spring(DI) | Adempiere独自(サーバ) | |
DBアクセス | Adempiere独自(サーバ) | Hibernate | |||
DBMS | OracleまたはPostgreSQL(Application Dictionaryのデータが保存されている) | ||||
オープンソースでない既存のERPパッケージは、企業向けのソフトウェアということもあり、体験版などを手軽に入手できません。実務でERP導入に携わっているエンジニアやユーザー企業の担当者でなければ、ERPに触れる機会はあまりないのではないかと思います。
これに対してオープンソースのERP、例えばAdempiereは、GPL(GNU General Public License)で配布されていて、ソフトウェア本体をインターネット上から入手して、インストールして自由に使用できます。
すでに説明したとおり、Adempiereには、販売管理や購買管理、取引先管理、在庫管理、会計処理などの機能があり、企業の業務の広い範囲をカバーしています。
Adempiereは、すでに説明したとおり、各画面の情報をデータベースに保存しています。ウィンドウやタブ、フィールドなどの情報をApplication Dictionaryに追加することで、データの登録・編集を行う画面を非常に簡単に作成できます。最小構成の画面ならば、慣れてしまえば10分もかからずにウィンドウを作成できると思います。
具体的には、「ウィンドウの追加方法」を参照してください。
どんなに高機能なERPでも企業の業務に完全に適合させようとすると、必ずカスタマイズが必要です。Adempiereはオープンソースであり、柔軟なアプリケーション構造を持っています。
Adempiereは、Javaで書かれていて、内容もそれほど難解ではないので、おそらくJavaでの開発経験が2〜3年程度あれば、ソースコードを読んで理解できるのではないかと思います。Eclipseなどのデバッグ機能で、Adempiereのコードをステップ実行して動作を確認できるのも魅力です。
Adempiereのソースコードは、SourceForge.netにあるAdempiereプロジェクトのソースコードリポジトリから入手可能です。Adempiereのリポジトリに関する情報は、「SourceForge.net: ADempiere ERP Business Suite - Develop」に書かれています。
ソースコードの取得方法やEclipseでのデバッグ、ソースからのビルドなどについては、「チェックアウト方法」「デバッグ方法」などに書かれているので、参照してください。
ApacheやLinux、PostgreSQLなど、すでに普及しているオープンソースは、ソースコードが公開されていても、configファイルの設定変更などで目的を達成できることが多いため、独自にソースコードを書き換えて使う人はあまりいません。
これらのオープンソースは、大多数の人にとっては、ソースコードが公開されていることよりも、無料で使えることに意味があります。しかし、ERPなどの業務管理ソフトウェアでは、カスタマイズのためにソースコードを書き換える必要性があり、また、オープンソースだと書き換えることが比較的簡単にできることが利点となるでしょう。
ERPは、非常に広い範囲の業務をカバーするシステムです。もし、ERPを一から自力で構築しようとすると、数年間の開発が必要でしょう。特殊な業務を行っていて、既存のERPではまったく業務に適合しないという企業ならば、独自のERPを構築することもあるかもしれません。しかし、そうでないのならば、既存のERPパッケージを利用する方が費用を抑えられます。
オープンソースのERPは、「オープンソース=ソースコードが公開されている」という、本当の意味でのオープンソースの価値があるのではないかと思います。Adempiereに興味を持っていただけたら、ぜひ使ってみてはいかがでしょうか。
Copyright © ITmedia, Inc. All Rights Reserved.