組織の変更履歴を記録するテーブルです。
組織の変更履歴タブ
組織ウィンドウの子タブに変更履歴タブを追加しました。
変更履歴タブ(JP_Org_Historyテーブル)
期間を重複して名称を持つことはできません。
◆名称
開始日付と終了日付の期間における組織名称を入力して下さい。
◆開始日付
名称が使用開始となった日付。
◆終了日付
名称が使用終了となった日付。
組織の変更履歴の活用法
ウィンドウでの活用法
組織の変更履歴を記録しておく事で、伝票などのように日付があれば、バーチャルカラムの機能を使用して、その日付当時の組織の名称を表示する事ができます。
◆活用方法の下準備:旧組織名称を表示したいテーブルにバーチャルカラム(SQLカラム)を追加します。
ここでは例として、受注伝票(C_Orderテーブル)に、旧組織名称(JP_Org_OldName)カラムを追加し、転記日付(DateAcct)時点の組織の名称を表示します。
バーチャルカラムに設定するSQLは次のようになります。
【バーチャルカラムの場合】
(SELECT h.Name FROM JP_Org_History h WHERE h.AD_Org_ID = C_Order.AD_Org_ID AND h.DateFrom <= C_Order.DateAcct AND h.DateTo >= C_Order.DateAcct )
【バーチャルUIカラムの場合】
@SQL=SELECT h.Name FROM JP_Org_History h WHERE h.AD_Org_ID = @AD_Org_ID@ AND h.DateFrom <= TO_DATE('@DateAcct@','YYYY-MM-DD') AND h.DateTo >= TO_DATE('@DateAcct@','YYYY-MM-DD')
【補足説明】バーチャルカラムとバーチャルUIカラム
バーチャルカラムの設定を"@SQL="で開始する事で、"バーチャルUIカラム"という機能が発動し、レコードが選択された時にSQLが発行されるようになります。そのため、SQLがウィンドウを開いた時に必ず実行される"バーチャルカラム"と比較して、ウィンドウを開く際のパフォーマンスの観点で優れています。
しかしながらバーチャルUIカラムの場合は、レコード選択時にその都度SQLが1つ多く実行される事になります。わずかながらシステムのリソースを消費している事は意識しておく必要があると思います。
バーチャルUIカラムを使用する上で考慮すべき点は、レコードが選択されるまで、バーチャルUIカラムの情報は表示されないという事です。ウィンドウの一覧表示においてレコードが選択されて編集状態になるまで、バーチャルUIカラムの情報は表示されません。
その他のバーチャルカラムとバーチャルUIカラムの挙動の違いとして、バーチャルUIカラムはコールアウトのように挙動するのに対して、バーチャルカラムは保存した際に表示が変更になる事です。
これらの事を考慮して、バーチャルカラムを使用するかバーチャルUIカラムを使用するのか検討して下さい。
※バーチャルUIカラムはiDempiere6.1より使用する事が出来る機能です。
◆表示例
組織(AD_Org_ID)フィールドに選択した組織の、2017年11月6日時点の名称が、旧組織名称(JP_Org_OldName)に表示されています。
バーチャルUIカラムだと、一覧表示において選択されているレコードのみ旧組織名称が表示されます。すべてのレコードで旧組織名称を表示させたい場合は、バーチャルカラムの機能を使用する必要があります。
Clik here to view.

Clik here to view.

組織マスタは下記のように設定しています。
【ポイント】組織マスタには組織コードを管理するためのマスタと考え、組織の名称は組織の変更履歴に保存する運用方法
頻繁に組織変更がある会社は多いと思います。どんなに組織変更が多い場合でも、変更前の組織は、変更後のいずれかの組織に引継がれるはずです。
組織マスタを組織コードを管理するためのマスタと考え、組織の変更履歴を組織の名称マスタとして考えると、変更前の組織を引き継いだ変更後の組織は同じ組織コードとする運用にすれば、組織マスタを新規で作成する必要はありません。変更前の名称と変更後の名称を、変更履歴タブに登録すれば良いだけです。
そのように考えれば、組織間でのデータを振替えるような作業が不要になりますので、組織変更に係る作業も軽減されるのではないでしょうか?
レポートでの活用法
ウィンドウと同様にレポートでも、日付を指定してJOINする事で、当時の組織の名称を表示する事ができます。
カスタマイズ情報
テーブル
- JP_Org_History
クラス
- jpiere.base.plugin.org.adempiere.model.MOrgHistory