SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

OSSのERP「ADempiere」のフレームワークを利用した工程管理表の作成

OSSのERP「ADempiere」を使ってノンプログラミングで基幹業務システムを構築する

OSSのERP「ADempiere」のフレームワークを利用した工程管理表の作成(1)

  • X ポスト
  • このエントリーをはてなブックマークに追加

 OSSのERP「ADempiere」(アデンピエレ)のフレームワークを利用し、CRUD(データ作成/読取/更新/削除)画面を、SQLとADempiere上の設定だけを使ってノンプログラミングで作成する手順を紹介します。この連載ではADempiereフレームワークを利用した工程管理表の作成を行います。

  • X ポスト
  • このエントリーをはてなブックマークに追加

1. はじめに

 第1回目の本稿では、OSSのERP「ADempiere」の概要説明と、ADempeireフレームワークを使ってノンプログラミングでCRUD画面を作成する手順を紹介します。

2. 対象読者

  1. OSSのERPに興味がある方。またそのカスタマイズに興味がある方。
  2. CRUD画面をノンプログラミングで作成できるフレームワークを探している方。
  3. 基幹システムのフレームワークを探している方。

 ※本稿はSQLの知識を必要とします。

3. ADempiereとは

 ADempiereとは、Compiere(コンピエール)よりForkしたOSSのERPパッケージです。

 もともとOSS-ERPとしてCompiereコミュニティ版が公開されていましたが、そのコミュニティが閉鎖傾向にあったため、2006年9月にRed1さんが発起人となりCompiereから分離する形でADempiereというプロジェクトが立ち上がりました(「Debate - Has Compiere Become Closed? Do We Fork? How?」はADempiere誕生のきっかけとなったスレッドです)。

 バザール方式による開発、情報提供が進められており、現在ではCompiereコミュニティ版(販売管理機能、在庫管理機能、購買管理機能、財務・会計機能が付与)にない独自の機能(生産管理、固定資産管理など)が付与され、現在も開発が進められています。

※ADempiereのメインの情報開示サイトでは
「巨人の肩に座った小人は、巨人よりも遠方を見渡すことができる」
という文言がトップに掲載されています。

 なお詳しい導入実績については分かりませんが、各国のADempiere関係者3名に伺ったところ、筆者のブログエントリーに記載した回答を得ました。このように世界レベルで導入実績のあるERPです。

3.1. ADempiereのアーキテクチャー

 ADempiereはJava(1.6系)で作られており、DBはOracleXE, PostgreSQL, MySQLで稼働します。ユーザーインターフェースは次の2種類が用意されています。

  • Swing(二層クライアントサーバ方式)
  • ZK(三層クライアントサーバ方式)
Swingによる受注画面
Swingによる受注画面
ZKによる受注画面
ZKによる受注画面

 フレームワーク構造はADempiere独自のものとなっており、MVC構造に当てはめて考えた場合、以下のような実装になります。

  • View――Application Dictionary(ADempiere内の画面表示設定パラメータ群。後述で記載)で設定。
  • Control――CRUDについてはコーディングする必要なし。その他(callout, process, hook)はJavaで開発する必要あり。簡単なものであればScript(beanshell, Groovy, jython)でも開発可能。
  • Model――CRUDレベルであればコーディングする必要なし。Controlを実装する場合は作成する必要あり(ADempiereにはModel作成ツール「GenerateModel」が用意されています)。

3.2. 各種Controlの概要

 本趣旨から少し離れますが、calloutプログラム, processプログラム, hookプログラムの概要について簡単に記載します。

calloutプログラム

 フィールドへの入力が終わると、それにともない他のフィールドに値が入力されるプログラムです。例えば受注画面でとある顧客を選択した場合、それに応じてその顧客の住所が自動的に入力される、といった内容です。

 実装方法に興味のある方は、ここを参照してください。

processプログラム

 主にボタンをクリックすると呼び出されます。ADempiere上に既存にあるprocessプログラムの例として、受注伝票から出荷伝票を作成(クラス名:org.compiere.process.OrderPOCreate)、といったものがあります。

 実装方法に興味がある方は、ここを参照してください。

hookプログラム

 トリガーといった方が分かりやすいかもしれません。データの削除や更新などの変更が行われる前後で実行されるプログラムです。下記の2種類の実装方法があります。

 なおADempeireの開発はEclipseで行います。ソースコードの取得方法および開発環境作成方法に興味のある方は、筆者のブログエントリーを参照してください。

3.3 Application Dictionaryとは

 ADempiereの表示画面を定義するパラメータ群です。このパラメータ群を設定することでノンプログラミングでCRUD画面を作成することができます。

 下記画面の「アプリケーション設定」というところがApplication Dictionaryに相当します。主に「テーブルとカラム」や「ウィンドウ、タブ&フィールド」といったところを設定することで容易にCRUD画面が構築できます。

 以上がADempiereについての紹介です。

 なおERPとしての使い方が知りたい方は、日本語のwikiページに販売管理、購買管理機能だけですが簡単に記載しておりますのでご参考ください。

 また生産管理機能に興味のある方はこちらを参照してください。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
4. ADempiereのインストールと基本的な操作方法

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
OSSのERP「ADempiere」のフレームワークを利用した工程管理表の作成連載記事一覧

もっと読む

この記事の著者

cozy56(cozy56)

「品質を保つ=プログラミングの流用」という考えから結果、「OSSをなるべく使用する」ことにいたったナマクラ人間です。ブログ:ADempiereとPentaho、、、

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6367 2012/02/06 16:27

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング