2015年1月4日日曜日

iDempiere アプリケーション辞書 画面のカスタマイズ

iDempiere のカスタムは Javaによるプログラミングとアプリケーション辞書によるカスタマイズがあるようです。
ここではアプリケーション辞書を取り上げます。(Java によるプログラミングもいずれ、、)

今回はアプリケーション辞書により画面のカスタマイズやってみます。
現時点たいしたことは出来ないでしょうが、道筋というか経験というか、、

アプリケーション辞書の概念の理解はCompiere Distribution Lab 殿の研究を読まれると良いと思います。(非公開コンテンツもあるので詳しく知りたい方は問い合わせされるのも良いと思います。)



というわけで、今回の題材は Requisition の Requisition Lineの Product が必須入力として設定されていない問題。
(以前Requisition 調査していたとき、Product が必須じゃないことに疑問を持ったので、修正しちゃいます。)

-----------------------後日追加----------------------
Requisition Line で Charge について確認してみると、、Charge に値を設定した場合はこの Product の項目は非表示になることがわかりました。
つまり Product は必須というわけではなく、仕様の通りということになります。
例えば購入後に輸送費を追加請求する時とかに使うのでしょうか?

ちなみにここで Product を必須にしても Charge を指定すると Product の項目が消えるので問題なくセーブできるました。
----------------------------------------------------------

いきなり脱線しますが、これまでデータが必須かどうかは画面に表示されている項目名が赤字かどうかで判別してきました。いまさらですが、これは本質的には正しくありません。
原則論で言えばデータの依存関係はデータスキーマで規定すべきもので、画面は単なる表現方法にすぎません。しかし実際には実オペレーションの関係からデータ入力タイミング的に原則論に無理もありますので、「原則を理解した上で画面による制御も許容する」程度の姿勢が現実的かもしれません。

前口上はこのぐらいにして、実際にトライしてみます。

私がいきなり悩んだのは、「Window,  Tab & Field」という画面がどこにも見当たらないということでした。

Menu -> Application Dictionary を見るとWindow Customization/Context Help/Application Packaging の3機能しか出てきません。

Red1さんの YouTubeでもログオンは SuperUser なのですが、SuperUserでログオンしてもどうやっても呼び出せません。よーく画面を見てみると右上には System とありました。
なるほど、 System ユーザーでログオンするのね。

というわけで、こちらが System でのログオン。

Menu -> Application Dictionary を見てみるとずらずらっと、機能が表示され、この中に 「Window,  Tab & Field」も含まれていることを確認できました。


今日のお題いきましょう。
「 Requisition の Requisition Lineの Product を必須入力項目にしたい。」

営業担当の西島さんでログオンします。
Menu -> Requisition-to-Invoice -> Requisition
からヘッダー部分を適当に入力し、子タブ Requisition Line を開きます。

ここでは Product は赤文字になっておらず、必須入力ではないことがわかります。
一度ログオフし、今度は System でログオンし直します。
Menu -> Application Dictionary -> Window, Tab & Field を開きます。

 画面 Requisition を検索します。
 Requisition 画面の設定が開いたら子タブ(Tab) から Requisition Line を選択し、子タブへ移動します。

Requisition Line が開いたら、属性を変更したいフィールド "Product" を選択し、子タブへ移動します。

 Product フィールドの属性がいろいろと表示されます。
今回は入力を必須としたいので、 Mandatory Overwrite (変更必須) を "YES" にします。
 変更したら保存してSystemからログアウト
西島さんでログオンして、先ほどの Requisition LIne を開いてみると、、、

Product が赤文字になっています。
変更前は空白のままでもセーブ可能だったのですが、変更後は空白のまま Fill mandatory Fields: Product と表示されました。



このように Windows, Tab & Field 画面を使うと iDempiere のちょっとしたカスタマイズは可能です。
Fieldの X position とか、Sequence とかいじれば項目の表示位置の変更もできると思います。
が、、、


Windows, Tab & Field はなんと画面エディタの機能も持っているため、 WYSIWYG(この単語自体は懐かし響きがありますね。)として視覚的に画面をいじることができます。

次はこのあたりちょっと掘ってみたいと思います。


0 件のコメント:

コメントを投稿