14.3.1 エクスポート時の設定

資源をエクスポートするときに,資源間に付けられている関連情報を一緒にエクスポートするかどうかを設定できます。

<この項の構成>
(1) 相互配布時のドキュメント関連情報
(2) 相互配布時の辞書のエクスポート範囲

(1) 相互配布時のドキュメント関連情報

リポジトリ間でドキュメントを相互配布している場合,ドキュメントの関連情報をエクスポートするように設定できます。ただし,設定時には,次に示す「ドキュメント相互配布時の注意事項」などを考慮して設定してください。

(a) ドキュメント相互配布時の注意事項

リポジトリ間でドキュメントを相互配布する場合には,エクスポート運用の設定で「関連先となる開いた関連のみをエクスポートする」を選択してください。これは,インポート先で関連を削除したときに,インポートによって関連が復活するのを防ぐために必要です。

相互配布の関係にあるリポジトリAとリポジトリBがあると仮定します。これらのリポジトリ間でのドキュメントの相互配布を例に,発生するおそれのある現象とその回避方法について説明します。ドキュメントの相互配布で起こることがある現象を次の図に示します。

図14-4 ドキュメントの相互配布で起こることがある現象

[図データ]

  1. 二つのリポジトリ間で,ドキュメントフォルダAとドキュメントフォルダBを相互配布する運用をしている。
  2. リポジトリBでは,インポートしたドキュメントフォルダAのA1と自分が所有するドキュメントフォルダBのB1の間に関連を付ける。
    このとき,A1がテンプレート,B1がプログラム定義と仮定します。テンプレートを関連元,プログラム定義を関連先として,参照の関連が付けられます。
  3. リポジトリBからリポジトリAにドキュメントフォルダBがエクスポートされる。
    このとき,エクスポート時の設定はデフォルト状態と仮定します。デフォルトでは,すべての開いた関連がエクスポートされます。そのため,A1とB1の関連もエクスポートされます。
  4. リポジトリB側で,A1とB1の関連を解除し,新たにA2とB1の間に関連を付ける。
    A2とB1の関係は2.と同じと仮定します。
  5. リポジトリAからリポジトリBにドキュメントフォルダAがエクスポートされる。
    エクスポート時の設定はデフォルト状態と仮定します。そのため,A1とB1の関連もエクスポートされます。
  6. A1とB1の間の関連が復活する。
    4.で解除したA1とB1の関連が再び付けられます。これは,すべての関連をエクスポートするように設定されているため,5.のエクスポート時に,3.の時点でエクスポートされた関連情報がA1の関連情報として再びリポジトリBにエクスポートされるからです。
(b) 回避方法

(a)の現象は,エクスポートする関連情報を,関連方向をキーにして区別することで回避できます。例えば,エクスポート時に,開いた関連の関連先になるデータ項目の関連情報だけをエクスポートするように設定しておくと,5.のエクスポート時にA1の関連はエクスポートされなくなります。

この回避方法は,SEWB+が関連を付ける規則(どの資源を関連元または関連先にするかを決める規則)に従って関連が付けられているときだけ有効です。したがって,ユーザ関連を付けるときは,SEWB+の関連づけの規則に従うことをお勧めします。SEWB+が付ける関連については,「11.1.5 関連の設定」およびマニュアル「SEWB+/CONSTRUCTION アプリケーション開発ガイド」を参照してください。
(c) 開いた関連情報の運用

開いた関連情報をエクスポートすると,変更時の変更波及を調査するときに便利です。例えば,分散環境の複数リポジトリから参照目的で資源をインポートしていても,自分が所有する資源がそれらの関連先になっていれば,自分の資源を変更したときの相手資源への影響を調査できます。開いた関連情報をエクスポートしていないと,同じような状況のとき,リポジトリごとに調査しなければなりません。

(2) 相互配布時の辞書のエクスポート範囲

リポジトリで複数の辞書を管理している場合,エクスポートする辞書フォルダのデータ項目が,エクスポート対象外の辞書のデータ項目と結合関係にあるとき,それらのデータ項目も一緒にエクスポートするかどうかを設定できます。設定時には,次に示す「辞書相互配布時の注意事項」などを考慮してください。

(a) 辞書相互配布時の注意事項

相互配布の関係にあるリポジトリAとリポジトリBがあると仮定します。これらのリポジトリ間での辞書の相互配布を例に,発生するおそれのある現象とその回避方法について説明します。辞書の相互配布で起こることがある現象を次の図に示します。

図14-5 辞書の相互配布で起こることがある現象

[図データ]

  1. 二つのリポジトリ間で,辞書フォルダAと辞書フォルダBを相互に配布する運用をしている。リポジトリAからリポジトリBに辞書フォルダAがエクスポートされる。
    このとき,エクスポート時の設定はデフォルト状態と仮定します。デフォルトでは,結合関係にあるすべてのデータ項目がエクスポートされます。
  2. リポジトリBでは,インポートした辞書フォルダAのA1を使用して,自分が所有する辞書フォルダBに結合項目B2を追加する。
  3. リポジトリAでは,辞書フォルダAのA1を変更する。
  4. リポジトリBからリポジトリAに辞書フォルダBがエクスポートされる。
    設定は1.と同じと仮定します。
    このとき,B2の構成項目であるA1も一緒にエクスポートされるため,リポジトリA側で変更した内容(A´)が上書きされてしまいます。
(b) 回避方法

このようになることが事前にわかっている場合は,エクスポート時の設定で,ほかの辞書フォルダのデータ項目を一緒にエクスポートする設定を解除しておきます。ただし,このように設定すると,ほかの辞書フォルダにある構成項目がインポート先のリポジトリにない場合にエラーとなるので注意が必要です。

例えば,前述の運用例で,リポジトリBの辞書フォルダの結合項目B2は辞書フォルダAのA1を構成項目にしています。この場合に,リポジトリBが別のリポジトリであるリポジトリCに辞書フォルダBをエクスポートしようとすると,辞書フォルダCにはデータ項目A1がないのでエラーになります。

[図データ]

このような現象を回避するためには,分散環境のすべてのリポジトリのフォルダ構成を同じにしてください。または,参照されるデータ項目をドメインとして一つの辞書フォルダにまとめて共用してください。

ドメインを格納する辞書フォルダについては,「13.2.2 データ項目の分類方法」を参照してください。