Standard または Advancedのライセンスで利用可能。
パーセル ファブリックでは、デフォルト バージョンより 1 つ下のバージョン レベルでの編集がサポートされます。パーセル ファブリックでは、バージョンの子バージョンの編集はサポートされません。
バージョンの状態とパーセル ファブリック
パーセル ファブリックは、エンタープライズ ジオデータベースで編集する前に、バージョン対応登録する必要があります。パーセル ファブリックをバージョン対応登録すると、そのパーセル ファブリックを編集するバージョンを作成できます。バージョンは、ジオデータベースのビューのようなもので、そのビューを編集すると、変更がすぐに反映されます。そのバージョンに接続しているユーザーは、表示を更新すれば変更結果を見ることができます。ただし、他のバージョンに接続しているユーザーは、デフォルト バージョンに対してそのバージョンがポストされるまで変更結果を確認できません。
データセットをバージョン対応登録すると、2 つの差分テーブルが作成されます。1 つは挿入および更新用の A (ADD) テーブル、もう 1 つは削除用の D (DELETE) テーブルです。データセットでレコードを更新または削除するたびに、これらのテーブルのどちらかまたは両方に行が追加され、バージョンの新しい状態が作成されます。したがってバージョン対応のデータセットは、元のテーブル (ベース テーブルと呼ばれます) と、差分テーブル内の変更内容で構成されます。
パーセル ファブリックを編集する場合、各編集操作はジョブ XML ストリームに対して行われます。編集セッションを保存すると、XML ストリームがパーセル ファブリックに対して 1 つの編集内容としてポストされ、バージョンの新しい状態が作成されます。
パーセル ファブリックのバージョンと編集ロック
パーセルの編集時、パーセルは編集ロックされます。パーセルが編集ロックされると、編集ロックが解除されるまで、同じバージョンまたは別のバージョンでそのパーセルを開くことはできません。ただし、ロックされたパーセルの属性テーブルでは、パーセル、ライン、ポイント、制御テーブルのフィールドは他のバージョンで編集できます。異なるバージョンで同じフィールドを編集した場合、バージョンのリコンサイル時に競合の解決が必要になります。
編集中のバージョンとは異なるバージョンでパーセルが編集されている場合、そのパーセルは [パーセル エクスプローラー] ウィンドウに編集ロック アイコン で表示されます。同様に、編集中のパーセルは他のバージョンでは編集ロックされます。パーセルの編集ロックが解除されるのは、パーセルを編集中のバージョンがポストされたときです。
以下は、マルチユーザー環境におけるロックされたパーセルの振舞いを決めるルールをまとめたものです。
- 別のバージョンで編集中のパーセルを開くことはできません。別のバージョンの編集ロックされたパーセルにアクセスできるようになるのは、そのバージョンがポストされたときだけです。バージョンがポストされると、バージョンのすべての更新内容と変更内容がデフォルト バージョンとマージされ、パーセルの編集ロックが解除されます。
- 作業中のバージョンでパーセルが以前に編集されている場合、そのパーセルは [パーセル エクスプローラー] ウィンドウに編集ロック解除アイコン で表示されます。
- ポストされた別のバージョンでパーセルが以前に編集されている場合、そのパーセルは作業中のバージョンでは編集ロック解除アイコン で表示されます。
- パーセルが別のバージョンで編集され、そのバージョンがデフォルト バージョンに対してポストされた場合、デフォルト バージョンとのリコンサイルを実行すると、自分のバージョンで同じパーセルを編集できます。
- [パーセル エクスプローラー] ウィンドウでパーセルがロック中と表示されている場合、[パーセル エクスプローラー] ウィンドウでそのパーセルを選択して、どのバージョンでどのユーザーがパーセルを編集中か確認できます。ユーザー名とバージョン名が ArcMap ウィンドウの右下にあるステータス バーに表示されます。
編集ロック状態アイコンのまとめ
パーセルは使用可能で編集できます。 | |
パーセルは現在編集中です。 | |
パーセルは以前に編集されており、現在使用可能です。 | |
パーセルはロックされていて、同じバージョンで編集中か、別のバージョンで編集されています。 |
バージョンのリコンサイルとパーセル ファブリック
バージョンの編集が完了したら、そのバージョンに加えた変更内容をデフォルト バージョンにマージすることができます。これはリコンサイルとポストの処理を通じて実行されます。リコンサイルでは、デフォルト バージョンとの競合が検出されます。競合は、ユーザーがバージョンを作成した際にデフォルト バージョンが変更され、その変更内容がユーザーの編集内容と競合する場合に発生します。たとえば、パーセル ファブリックで、重なるエリアに最小二乗アジャストを実行すると、座標の競合が生じます。パーセル ファブリックの競合の解決は常に子バージョンを優先して実行されます。
パーセル ファブリックを持つバージョンは、頻繁にリコンサイルすることをお勧めします。子バージョンをデフォルト バージョンとリコンサイルすると、他の子バージョンからデフォルト バージョンにポストされた更新が子バージョンに反映されます。
パーセル データの編集と更新は、一般に、ロング トランザクションという形態をとります。パーセル ファブリックでは、パーセルの編集は長い期間にわたって行われることがあります。バージョンをリコンサイルすると、デフォルト バージョンの最新データによってバージョンが更新されます。これはバージョン対応のパーセル ファブリックを継続的に編集する場合に大事なことです。
以下に、バージョン対応のパーセル ファブリックをデフォルト バージョンとリコンサイルするときに行われる更新の例を示します。
- パーセル ポイントの座標の更新 (デフォルト バージョンに対して実行された、または、別のバージョンからポストされた最小二乗アジャスト)
- デフォルト バージョンに作成された、または別のバージョンからポストされた新しいパーセル
- デフォルト バージョンに作成された、または別のバージョンからポストされた更新または新規作成されたコントロール ポイント
競合解決
パーセル ファブリックを持つバージョンをデフォルト バージョンに対してリコンサイルすると、次の場合に競合が検出されます。
- デフォルト バージョンと子バージョンの間でポイント座標が変更されている場合
- デフォルト バージョンと子バージョンの間でフィールドの属性値が変更されている場合
ポイント座標の競合は次の場合に発生します。
- デフォルト バージョンと子バージョンに対してパーセル ファブリック アジャストが実行された場合
- リコンサイル対象の子バージョンと、デフォルト バージョンにポストされた別の子バージョンとに対してパーセル ファブリック アジャストが実行された場合
パーセル ファブリックでは、座標の競合は常に、最新のアジャストされた座標を優先して解決されます。そのため、アジャストされた子バージョンをリコンサイルするときは、以下があてはまります。
- デフォルト バージョンのアジャストされた座標と子バージョンのアジャストされた座標では、子バージョンが勝ちます。
- 競合するコントロール ポイント座標は、子バージョンを優先して解決されます。
バージョンのポストとパーセル ファブリック
パーセル ファブリックを持つバージョンをポストすると、パーセルのすべての編集ロックが解除されます。バージョンにジョブが作成されている場合、ジョブ ステータスは [コミット済み] に変更されます。コミット済みのジョブはジョブ ブックから削除できます。コミット済みのジョブは再び開くことはできませんが、ジョブで使用されたパーセルなどのジョブ プロパティは引き続き表示されます。
コミット済みのジョブに画面移動してズームするには、以下の空の BLOB フィールドをジョブ テーブルに追加する必要があります。
- CommittedObjs
- LocalControl
これらのフィールドがジョブ テーブルに存在すると、コミット済みのジョブのパーセルにズームして画面移動できるようになります。
権限、バージョン、パーセル ファブリック
バージョン対応のデータベース環境でパーセル ファブリックを作成するときは、パーセル ファブリックに付与する権限と、パーセル編集が行われるデータベース バージョンに付与する権限を慎重に検討する必要があります。これは、バージョンのリコンサイルや削除といった、バージョンに対して実行された処理がパーセル ファブリックに対する処理を引き起こすことがあるためです。バージョンに付与される権限は、パーセル ファブリックに付与される権限とは独立しているため、バージョンのリコンサイル、ポスト、削除を実行する権限を持つユーザーが、そのバージョンに含まれるパーセル ファブリックを編集する権限を持たないこともありえます。そのような権限の不一致が起こった場合は、バージョン操作が失敗するか (バージョンのリコンサイルとポスト)、パーセル ファブリックが損なわれます (バージョンの削除)。
パーセル ファブリックを含むマルチバージョン システムは、次の文が常に成り立つように設定する必要があります。バージョン内のパーセル ファブリックに影響をおよぼすようなバージョン操作を実行するユーザーは、そのパーセル ファブリックおよび関連付けられたフィーチャクラスに対する更新権限を必ず持っている。
バージョンの権限
バージョンは次の 3 種類の権限設定のうち 1 つを使用して作成できます。
- プライベート: バージョンの所有者だけが該当するバージョン内でデータセットの表示と編集を実行できます。バージョンに対する操作 (削除やリコンサイル) を実行できるのはバージョンの所有者だけです。
- プロテクト: どのユーザーも該当するバージョン内でデータセットを表示できますが、編集できるのはバージョンの所有者だけです。バージョンに対する操作を実行できるのはバージョンの所有者だけです。
- パブリック: すべてのユーザーがバージョン内のデータセットを表示し編集できます。すべてのユーザーがバージョンに対する操作を実行できます。
権限設定は、個々のデータセットの権限設定に加えて使用されます。たとえば、バージョンとデータセットの両方の更新権限を持つ場合は、バージョン内のデータセットのフィーチャだけを編集できます。
データセットの権限
パーセル ファブリックはフィーチャ データセット内に作成する必要があります。パーセル ファブリックを作成したユーザーは、自動的に更新権限を持ちます。その他のユーザーには、パーセル ファブリックを含むフィーチャ データセットに対する権限を変更することで、パーセル ファブリックの権限を付与できます。
次のデータセットの権限を付与できます。
- なし (デフォルト) - ユーザーはデータセットの表示も編集もできません。
- 選択 - ユーザーはデータセットの読み取りとクエリができます。
- 選択、更新、挿入、削除 - ユーザーはデータセットに対する完全な読み書き権限を持ちます。
パーセル ファブリックの編集のタイプ
パーセル ファブリックの編集には、次の 2 つの形態があります。
- パーセル ファブリック クラスの編集 (たとえば、パーセル、ライン、コントロール ポイント)。
- パーセル ファブリックに関連付けられたフィーチャクラスの編集。パーセル ファブリックのフィーチャ アジャストは、パーセル ファブリックのアジャストの変更ベクトルを、関連付けられたフィーチャクラスに適用するので、そのジオメトリが編集されます。
パーセル ファブリック クラスを編集する場合、編集を実行するユーザーは、パーセル ファブリックを含むフィーチャ データセットに対する更新権限を持っている必要があります。パーセル ファブリックのフィーチャ アジャストを実行する場合、ユーザーはパーセル ファブリックと関連付けられたフィーチャクラスの両方に対する更新権限を持っている必要があります。
リコンサイル、ポスト、削除の対象であるバージョン内のパーセル ファブリックまたは関連付けられたフィーチャクラスが編集されていない場合、パーセル ファブリックまたは関連付けられたフィーチャクラスに対する更新権限は不要です。
パーセル ファブリックを含むバージョンに対して、操作を実行するユーザーに付与する必要がある権限の概要を次の表に示します。