HOME > カテゴリー '開発'

開発

3月

21

Adempiereでは、データの登録・編集を行うウィンドウを簡単に作成できます。
Adempiereで新規にウィンドウを作成する手順は、以下のとおりです。

・AdempiereにSystem Administratorとしてログイン。
・メニューから、
 アプリケーション構成 > テーブルとカラム
 ウィンドウを開く。
・「テーブル」タブで、新規作成アイコンをクリックして、データの新規作成。
・「DBテーブル名」の項目で、テーブル名を入力(SAMPLE_TABLE1など)
・「名前」の項目で、名前を入力(SAMPLE1など)
・「データ・アクセスレベル」の項目で「すべて」を選択。
・保存アイコンをクリックして、データを保存。

・「テーブルからカラムをコピー」ボタンを押して、「テーブル」のセレクトボックスから、
 「M_FreightCategory_貨物カテゴリ」を選択。
 (「M_FreightCategory_貨物カテゴリ」は、最も単純な構造のテーブルのため、コピー元のテーブルに使います)
 ⇒「カラム」タブにデータ(レコード)が作成されます。

・「カラム」タブの右下にある「カラムを同期」を実行。
 ⇒データベース(OracleまたはPostgreSQL)にテーブル(とカラム)が作成されます。

・メニューから、
 アプリケーション構成 > ウィンドウ、タブ & フィールド
 ウィンドウを開く。
・「ウィンドウ」タブで、データの新規作成。
・「名前」の項目で、ウィンドウの名前を入力(Sample Windowなど)
・保存アイコンをクリックして、データを保存。

・「タブ」タブで、データの新規作成。
・「名前」の項目で、タブの名前を入力(Tab1など)
・「テーブル」の項目で、「テーブルとカラム」ウィンドウで作成した値を選択。(SAMPLE_TABLE1_SAMPLE1)
・保存アイコンをクリックして、データを保存。
・「フィールドを作成」ボタン実行
 ⇒「フィールド」タブに、データ(レコード)が作成されます。

次に、ウィンドウをメニューツリーに表示するための設定を行います。

・メニューから、
 システム管理者設定 > 一般ルール > システムルール > メニュー
 ウィンドウを開く。
・「メニュー」タブで、新規作成アイコンをクリックして、データの新規作成。
・「名前」のテキストフィールドに、名前を入力(Sample Window1など)
・「アクション」セレクトボックスで、「ウィンドウ」を選択。
・「ウィンドウ」セレクトボックスで、作成したウィンドウを選択。(Sample Window)

これで、新規にウィンドウを作成する作業は完了です。
一度ログアウトして再ログインすると、ウィンドウが使えるようになります。

このようにして作成したウィンドウは、Javaクライアントからでも、
ZKウェブアプリケーション(ブラウザ)からでもアクセスできます。
ソースコードを1行も書かずに新規のウィンドウが作成できます。

3月

21

EclipseでZK WebUIのデバッグをする方法を紹介します。

・準備
Adempiereをインストールしたディレクトリにある、utils\myEnvironment.bat ファイル
(C:\Adempiere\utils\myEnvironment.bat など)の中に書かれている、
ADEMPIERE_JAVA_OPTIONS という変数に以下の内容を追加します。
-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8888

追加した結果はこのようになります:
@SET ADEMPIERE_JAVA_OPTIONS=-Xms64M -Xmx512M -DADEMPIERE_HOME=D:\Develop\A -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8888

myEnvironment.batを修正したら、
C:\Adempiere\utils\RUN_Server2.bat スクリプトを使ってサーバーを開始してください。

次に、Eclipseのメニューから、
Run > Open Debug Dialog
を開いて、Remote Java Applicationのコンフィギュレーションを新規作成してください。
Connectタブにある、
「Project」は、起動しているサーバーと同じバージョンのAdempiereのソースコードを設定してください。
「Connection Type」は、Standard (Socket Attach) を選択してください。
「Connection Properties」の「Host」はlocalhost、「Port」は8888にしてください。
設定が終わったら、右下の「Debug」ボタンを押してください。

・デバッグ
 base/src/org/compiere/model/GridWindowVO.java
 62行目(createメソッド)

 base/src/org/compiere/model/GridTabVO.java
 49行目(createメソッド)

 base/src/org/compiere/model/GridFieldVO.java
 78行目(createメソッド)

などにブレークポイントを設定して、WebUIからAdempiereのウィンドウを開くと
プログラムを止めることができます。

3月

20

デバッグ

リポジトリからソースコードを取得すると、
Adempiereのプログラムをデバッグすることができます。

eclipseプロジェクト内の
base/src/org/compiere/Adempiere.java
にある
org.compiere.Adempiere
がAdempiereクライアントの開始ファイルです。

587行目にある
public static void main (String[] args)
が最初に実行されます。
590行目にブレークポイントを設定すると
プログラムを1行ずつ実行できます。

ログイン以降も正しく動かすには、取得したソースコードと同じバージョンのDBデータが入った
OracleまたはPostgresが起動している必要があります。
同じバージョンのAdempiereをインストール(RUN_ImportAdempiere.batの実行)すれば
DBにデータが入ります。

ブレークポイントを設定する場所の例:
(行数は、branches/adempiere343の場合です)

・起動時のスプラッシュ画像の表示
 client/src/org/compiere/apps/AMenu.java
 94行目(AMenuコンストラクタ)

・メニューのノードがクリックされた時
 client/src/org/compiere/apps/AMenuStartItem.java
 147行目(runメソッド)

・ログインフォームの接続ダイアログ
 base/src/org/compiere/db/CConnectionDialog.java
 136行目(jbInitメソッド)

・ウィンドウの描画
 client/src/org/compiere/apps/APanel.java
 602行目(initPanelメソッド)

・ウィンドウのデータをDBから取得
 base/src/org/compiere/model/GridWindowVO.java
 62行目(createメソッド)

・タブ内のフィールドをDBから取得
 base/src/org/compiere/model/GridWindowVO.java
 201行目(createTabsメソッド)

・フィールドのデータをDBから取得
 base/src/org/compiere/model/GridTabVO.java
 49行目(createメソッド)
 base/src/org/compiere/model/GridFieldVO.java
 78行目(createメソッド)

・新規作成ボタンが押されたとき
 client/src/org/compiere/apps/APanel.java
 1418行目(actionPerformedメソッド)
 1579行目(cmd_newメソッド)

・保存ボタンが押されたとき
 client/src/org/compiere/apps/APanel.java
 1696行目(cmd_saveメソッド)
 base/src/org/compiere/model/PO.java
 1881行目(saveメソッド)

・表示言語変換
 base/src/org/compiere/util/Msg.java
 252行目(getMsgメソッド)

・ボタンが押された時
 client/src/org/compiere/apps/AppsAction.java
 262行目(actionPerformedメソッド)

・受入ウィンドウ、受入タブの「受入から請求を生成」ボタンが押された時
 client/src/org/compiere/apps/APanel.java
 1377行目(actionPerformedメソッド)
 client/src/org/compiere/apps/APanel.java
 2312行目(actionButtonメソッド)

・「受入から請求を生成」プロセスのOKボタンが押された時
 client/src/org/compiere/apps/ProcessModalDialog.java
 293行目(actionPerformedメソッド)
 base/src/org/compiere/process/InOutCreateInvoice.java
 42行目(prepareメソッド)

・受入ウィンドウ、受入タブの「明細の作成元を選択」ボタンが押された時
 client/src/org/compiere/apps/APanel.java
 1377行目(actionPerformedメソッド)
 client/src/org/compiere/apps/APanel.java
 2126行目(actionButtonメソッド)

・受入の「明細の作成元を選択」プロセスのOKボタンが押された時
 client/src/org/compiere/grid/VCreateFromShipment.java
 501行目(saveメソッド)

3月

06

Adempiereのソースコードは、sourceforge.netにあるAdempiereプロジェクトの
ソースコードリポジトリから入手できます。
この記事では、Eclipseを使ってAdempiereのソースコードを取得する方法を解説します。
Adempiereのリポジトリに関する情報は、↓このページに書かれています。

http://sourceforge.net/projects/adempiere/develop

ソースコードの取得方法は以下のとおりです。

・Eclipseを起動する。
・メニューバーの File > New > Other… で、新規作成ダイアログウィンドウを表示させる。
・SVN > SVNからプロジェクトをチェックアウト を選択して、Next ボタンを押す。
・新規リポジトリー・ロケーションを生成 を選択して、Next ボタンを押す。
・URLに http://adempiere.svn.sourceforge.net/svnroot/adempiere と入力してNext ボタンを押す。
・リポジトリーのツリーから、branches > adempiere343 を選択して、Next ボタンを押す。
・プロジェクト名を(必要ならば)変更して、Finishボタンを押す。

以上で、チェックアウトが開始されます。
チェックアウトには、かなり時間がかかりますが、気長に待ってください。
チェックアウトが完了しても自動でコンパイルが始まらない場合は、
プロジェクトを右クリック > Properties > Java Build Path > Order and Exportにある
jarファイルの順番を入れ替えるとビルドが開始されます。

JavaのコンパイルにJDK6を使っている場合は、
修正を行わないとエラーになってしまう箇所があります。
/adempiere343/base/src/org/compiere/util/CCallableStatement.java
の1464行目の最後に/をつけてコメントを終了させてください。
/adempiere343/base/src/org/compiere/util/CPreparedStatement.java
の886行目と983行目のコメント開始終了を削除してください。
/adempiere343/base/src/org/compiere/db/ServerConnection.java
の260行目の最後に/をつけてコメントを終了させてください。

AdempiereのJavaクライアントの開始ファイルは、
/adempiere343/base/src/org/compiere/Adempiere.javaです。
eclipseでこのファイルを開いた状態でツールバーのRunボタンを押すとAdempiereがeclips上で実行されます。

/adempiere343/utils_dev/build.xml
がAdempiereの配布用ファイルを作成するantのbuild.xmlです。