JPiere/iDempiereバージョンアップ指針
JPiere/iDempiereのバージョンアップについて考えた場合、iDempiereのバージョンアップと、iDempiereのプラグイン群としてのJPiereのバージョンをアップを区分して考える事をオススメします。
iDempiereのバージョンアップについて
一般的なオープンソースの業務アプリケーションの導入を考えた場合、ユーザー企業の業務にあうようにオープンソースという特長を活かし、モディフィケーション(ソースコードを直接修正するカスタマイズ)を行い導入するという方針を採る事も少なくはないでしょう。そのような場合、直接ソースコードを編集しているので、一般的にバージョンアップは難しくなります。
バージョンアップができないとなると、ネガティブな印象を持つかもしれませんが、決してネガティブなものではありません。その理由は下記のコンテンツに詳しく記載していますので、ぜひご一読下さい。
一般的なオープンソースの業務アプリケーションの活用法としてバージョンアップはせずに導入時に自由にモディフィケーションし使用していくというのは、オープンソースの業務アプリケーションの活用法のひとつの考え方ではありますが、iDempiereはOSGiによるプラグイン方式でのカスタマイズが可能です。
OSGiによるプラグイン方式でのカスタマイズは、その適用範囲が広範囲であり、モディフィケーションしなくても、業務アプリケーションとして必要な機能はすべてといって良いほどカスタマイズする事ができます。
そのため、iDempiereではバージョンアップを実施するかどうかにかかわらず、カスタマイズ自体は、すべてプラグインとして開発する事をオススメします。そうしておけば、いつでもバージョンアップする事ができます。
JPiereのバージョンアップについて
JPiereはiDempiereのプラグイン群という性格上、iDempiereのバージョンには少なからず影響を受けます。そのためJPiereのバージョンとiDempiereのバージョンは同じバージョンを使用する事が原則です。導入時にはこの原則は必ず守って下さい。
JPiereとiDempiereは同じバージョンを使用することが原則ですので、iDempiereのバージョンアップを行わないのであれば、JPiereのバージョンアップも行いません。iDempiereのバージョンアップを行わず、JPiereだけバージョンアップするという選択肢は基本的にあり得ません。
iDempiereをバージョンアップする場合、JPiereも基本的にはバージョンアップ作業が必要になります。
JPiere/iDempiereのカスタマイズをすべてプラグインとして開発している場合、iDempiereをバージョンアップする作業は、基本的にはマイグレーションスクリプトを実行し、ソースコードを最新にするだけです。作業自体は難しいことは、ありません。作業時間も何日もかかるものではないでしょう。
しかし、バージョンアップまでの期間が長ければ長くなるほど、ある程度の動作確認工数は確保した方が良いでしょう。iDempiereはバージョンアップの際に、基本的には下位バージョンとの互換性は意識はしていますが、ビジネスロジックなどの修正が入らないとは言い切れません。すべての動作確認を完全に行う事は現実的ではありませんので、動作確認を行う操作をあらかじめ決めておき、その操作が問題なく行える事を確認する作業は行った方が良いと思います。
iDempiereの修正は下記にまとめてありますので、iDempiereのバージョンアップの際には、どのような修正が入ったかあらかじめ確認しておくこともオススメします。
JPiereのサポーターになって頂いている皆様については、iDempiereのバージョンアップの相談をお受けしています。
iDempiereのバージョンアップを行う場合、基本的にはJPiereもバージョンアップする必要があります。しかし、JPiereのバージョンアップ作業は、最新のJPiereと同じ状態にする事を目的としない方が良いと思います。JPiereのバージョンアップ作業は、既に使っているJPiereをiDempiereのバージョンアップに合わせて問題なく動作するようにする事を目的とする事をオススメします。
【ポイント】JPiereのバージョンアップは、iDempiereのバージョンアップに合わせて、JPiereが問題なく動作するようにする事を目的とする!!
JPiereに施されたカスタマイズは次のように5つに区分管理しています。JPiereのバージョンアップ作業はこの区分毎にわけて考えると良いと思います。
iDempiereをバージョンアップする場合、それに合わせてJPiereモディフィケーションズもバージョンアップすることをオススメします。JPiereモディフィケーションズのバージョンアップは基本的にはプラグインプロジェクトを最新にするだけですが、場合によっては機能改善などにより、DBにカラムの追加等が必要になる可能性もあります。JPiereのDBスキーマ関連の変更情報は、Migration-Infoとして公開していますので、参照して下さい。
JPiereモディフィケーションズのカスタマイズポイント
JPiereモディフィケーションズのバージョンアップはソースコードを最新にする作業になるため、iDempiereをバージョンアップする予定がある場合、導入時にJPiereモディフィケーションズをカスタマイズする事はおススメできません。JPiereモディフィケーションズは基本的にはノンカスタマイズでご利用下さい。どうしてもカスタマイズを行いたい場合は、別途プラグインを作成して、そのプラグインがJPiereモディフィケーションズより優先して呼び出されるようにしてカスタマイズする事をオススメ致します。
iDempiereをバージョンアップする場合、それに合わせてJPiereフラグメンツもバージョンアップする事をオススメします。JPiereフラグメンツのバージョンアップはJPiereフラグメンツのプラグインプロジェクトを最新にするだけで行えます。
JPiereフラグメンツのカスタマイズポイント
JPiereフラグメンツのバージョンアップは最新にする作業になるため、iDempiereをバージョンアップする予定がある場合、導入時にJPiereフラグメンツをカスタマイズする事はおススメできません。JPiereフラグメンツは基本的にはノンカスタマイズでご利用下さい。どうしてもカスタマイズを行いたい場合は、別途プラグインを作成して、そのプラグインがJPiereフラグメンツより優先して呼び出されるようにしてカスタマイズする事をオススメ致します。
JPiereプラグインズはそれぞれが独立したプラグインですので、パージョンアップするかどうかはそれぞれのプラグインの個別判断が可能です。JPiereプラグインズをモディフィケーションせずに使用している場合には、基本的にはバージョンアップした方が良いと思います。バージョンアップ作業は基本的にはプラグインプロジェクトを最新にするだけですが、場合によっては機能改善などにより、DBにカラムの追加等が必要になる可能性もあります。JPiereのDBスキーマ関連の変更情報は、Migration-Infoとして公開していますので、参照して下さい。
バージョンアップしないと判断した場合でも、マニフェストファイルの修正等なんらかの作業が発生する場合があります。
◆【JPIERE-0014】1レコード複数行表示(フォームウィンドウ)
フォームウィドウについては、バージョンアップする事をオススメします。基本的にはプラグインプロジェクト自体を最新にするだけで済むはずです。
◆【JPIERE-0109】WYSIWYG Editor
WYSIWYG Editorについては、バージョンアップする事をオススメします。基本的にはプラグインプロジェクト自体を最新にするだけで済むはずです。
◆【JPIERE-0111】シンプル インプット ウィンドウ(簡単入力画面)
シンプルインプットウィンドウについては、バージョンアップする事をオススメします。基本的にはプラグインプロジェクト自体を最新にするだけで済むはずです。
◆【JPIERE-0158】クライアントの初期化と削除
クライアントの初期化と削除については、導入時に使用する機能ですので、バージョンアップする必要はないのではないかと思います。そのためインストールパッケージ自体に含める必要はないかもしれません。しかし、大量データを取り扱う場合、データのアーカイブ処理に伴いデータを削除する場合に使用する可能性があります。そのような場合はバージョンアップする事をオススメします。基本的にはプラグインプロジェクト自体を最新にするだけで済むはずです。
JPiereコンフィギュレーションズは、プラグインではななく、その実態はPostgreSQLのダンプファイルです。そのため、JPiereコンフィギュレーションズはバージョンアップという考え方に馴染みません。JPiereコンフィギュレーションズに追加された機能で、使用したい機能があるのであれば、個別に"移植"して頂く事をオススメします。
JPiereベースプラグインは、JPiereの中でも最も頻繁にメンテナンスされているプラグインプロジェクトです。JPiereベースプラグインでは、ビジネスロジックの実装が多くされています。そのため、JPiereベースプラグインをバージョンアップし最新の状態にすると、データ処理ロジックが変更になり業務に影響が出る可能性が無いとは言い切れません。基本的にはJPiere/iDempiereの導入時に業務に必要な機能は実装されているはずですので、無理にJPiereベースプラグインをバージョンアップさせて最新の状態にする必要性はないでしょう。そのため、JPiereベースプラグインは最新のiDempiereのバージョンで問題なく動作するようにする事を目的とする事をオススメします。
基本的な作業としては、JavaやiDempiereの開発で使用しているZKなどのフレームワークのバージョンアップに伴い、JPiereベースプラグインが問題なく動作するための対応が主になると思います。基本的には下位互換してくれているはずですので、対応に係る作業工数は軽微で済むはずですし、難易度もそれほど高くはないはずです。動作確認も必要最小限で済むはずです。
JPiereベースプラグインに追加された機能で、使用したい機能があるのであれば、個別に"移植"して頂く事をオススメします。
JPiereのサポーターになって頂いている皆様については、JPiereのバージョンアップの相談をお受けしています。
【補足説明】JPiereベースプラグインのカスタマイズについて
JPiereベースプラグインのバージョンアップを、iDempiereのバージョンアップにあわせて問題なく動作する事を目的とする事により、導入時にJPiereベースプラグインをモディフィケーション(ソースコードを直接修正すること)を含めて自由にカスタマイズできるというメリットを享受できるようになります。JPiereベースプラグインの多くは、ビジネスロジックですので、それを自由にモディフィケーションできる事は開発やメンテナンスする上で、"楽"なはずです。