4. 外部システム連携
ADempiereには外部DBを参照する機能がありません。そのため外部システムのデータをADempiereのデータベースに取り込む必要があります。今回はOSSのETL「Kettle」を用いて外部システムのデータをADempiereに取り込む方法を記載します。
なお外部システム連携方法は他にも下記があります。
- WebService(soap)(詳細についてはAdempiere Web Servicesを参照)
- Data Import機能の使用 (詳細についてはData Importを参照)
ETLとは?
外部の情報源からデータを抽出(Extract)し、抽出したデータをビジネスでの必要に応じて変換・加工(Transform)し、最終的ターゲットに変換・加工済みのデータをロード(Load)するソフトウェアのことです。Extract/ Transform/ Loadの頭文字をとってETLと呼ばれています。
Kettleとは?
PentahoというBI suiteに組み込まれているETLです。OSSのETLとしては最もメジャーなソフトウェアであり、多種多様な入出力口に対応しています。Kettleは以下の4つのモジュールからなります。
- spoon……GUIでETLを定義できるツール
- kitchen……ジョブをコマンドラインで実行するツール
- pan……トランスフォーメーションをコマンドラインで実行するツール
- cart……トランスフォーメンションやジョブをリモート実行するためのWebサーバ
今回は基幹システム(postgresで構築、DB名:kikan)の商品マスタ(テーブル名:productmaster)をadempiere.lja_productmasterに取り込む方法を記載します。なおkikan.productmasterテーブルおよびadempiere.lja_productmasterの主なカラムは以下のようになっていると想定します。
key (num(10,0)) |
id (char(14)) |
productname (varchar(100)) |
price (num(10,0)) |
estimatecosts (num(10,0)) |
1 | A001 | 商品A | 100000 | 10 |
2 | B001 | 商品B | 200000 | 20 |
3 | C001 | 商品C | 300000 | 30 |
lja_productmaster_id | productid | productName | price | estimateCosts |
1 | A001 | 商品A | 100000 | 10 |
4.1. Kettleのインストール&Spoon初期設定
- Kettleをダウンロードします。SourceForgeから「pdi-ce-4.2.1-stable.zip」をダウンロードし解凍し、C:\直下に保存します。
- C:\data-integration\Spoon.batを実行しspoonを起動します。
- メニューより[ファイル]-[新規作成]-[データ変換]を実行します。
- 画面左上の[ビュー]をクリックし[データ変換]-[データ変換1]-[データベース接続]を右クリックし[新規作成]を実行します。
-
「DatabaseConnection」画面が表示されるので、以下のように設定して[テスト接続]ボタンをクリックしてください。OKが表示されればOKボタンをクリックしてください。
- Connection Name: adempiere
- Connection Type: postgreSQL
- Access: native(JDBC)
- HostName: localhost
- DatabaseName: adempiere
- User Name: adempiere
- password: adempiere
同様に基幹システム側(DB名:kikan)のデータベース接続設定をConnection Name:"kikan"で設定してください。