さて、ファイル統合の前に、個別ファイルの段階でFMP8への最適化作業を行なう検討をしました。この段階でできるのは、例えば、
○ソート順だけが異なるために複数定義していたリレーションの整理(ソート順をリレーション定義から外し、ポータルにソート順を定義。リレーションを統合して、フィールド定義やスクリプトを修正。)
○複数条件によるリレーション(結合計算フィールドを廃止)
などがあります。
※スクリプトで変数が使えるようになったり、スクリプト呼び出しにパラメータが渡せるようになったので、グローバルフィールドを減らしたり、同様のスクリプトを統合する、ということもできますが、「現状の機能を壊さない」ことを優先すると、バグを作ってしまう可能性の高い作業は、必要でない限りしない方が良いと考えます。
しかし個別ファイルの段階では、ファイルAからファイルB、ファイルBからファイルAへの重複したリレーション定義を整理することができません。これを整理するためには、リレーション定義が同じリレーションダイアグラム上になければなりません。
この場合、テーブルは別ファイルに存在していても、外部ファイルのテーブルをリレーションダイアグラム上に Table Occurrence として置き、リレーションを定義することはできますが、フィールド定義でリレーションを使用するためには、そのテーブルを含むファイルのリレーションダイアグラム上にそのリレーションが定義されていなければなりません。(外部ファイルのテーブル定義は操作できないため)
すなわち、フィールド定義の最適化までを含めたリレーションの最適化を行なうためには、ファイル統合作業を行なわなければならない、ということになります。(それぞれのファイル毎に同じリレーション定義をすることによっても可能ですが、それなら一つにしてしまった方が早いと思います。)
また、2階層以上の深いリレーション参照を使った最適化を行なうためにも、必要なテーブルをすべて一つのリレーションダイアグラムに持って来なければなりません。
結局、前の記事と堂々巡りをしているような感じになってしまいました。(順番に読んでくださっている方には申し訳ありません!なにせ試行錯誤しながらやっているものですから。)
テーブルのインポートだけでなく、リレーションまで含めた、リレーションダイアグラムのコピー&ペーストができるようになってくれるととてもうれしいのですが。
それから、リレーションを削除すると、そのリレーションが使われていたフィールド定義やスクリプトがおかしくなってしまいます。重複したリレーションを整理しようとすると、フィールド定義・スクリプト・レイアウトをすべて手作業で直さなければなりません。リレーションを削除する時に、「代わりにこのリレーションを使う」というオプションをつければそれで置き換えてくれるようになってほしいですね。