ブランチ バージョンの競合の管理

Standard または Advancedのライセンスで利用可能。

名前付きバージョンがデフォルト バージョンとリコンサイルされたときに、競合が検出されることがあります。 リコンサイルのプロセスで競合が検出された場合、最初は編集バージョンを優先して競合が解決されます。 名前付きバージョンに存在するフィーチャと属性のリプレゼンテーションを優先してすべての競合を解決するには、編集をデフォルト バージョンにポストして続行します。

しかし、競合をレビューして、可能ならフィーチャや属性の異なるリプレゼンテーションを保持したい場合は、競合をレビューして、どのリプレゼンテーションを保持するかを指定します。 たとえば、名前付きバージョンとデフォルト バージョンとで競合している編集をレビューし、デフォルト バージョンのフィーチャや属性のリプレゼンテーションが正しいと判断することもあります。

競合は次のような状況で発生します:

  • 現在の名前付きバージョンとデフォルト バージョンの両方で、同じフィーチャが更新された。
  • 同じフィーチャが、あるバージョン (名前付きまたはデフォルト) で更新され、別のバージョンでは削除された。
  • トポロジ的に関連しているフィーチャまたはリレーションシップ クラスが、現在の名前付きバージョンとデフォルト バージョンの両方で変更された。

競合ビューを使用して、名前付きバージョンとデフォルト バージョンとの編集の競合を確認します。 競合ビューには、Web フィーチャ レイヤー内で競合を含むすべてのレイヤーが含まれています。 各レイヤーについて、競合のあるフィーチャや行が競合ビューに示されます。

ブランチ バージョンニングでは、競合ビューでアクセスされるシステム所有のテーブルに競合が保持されます。 これによって、リコンサイルの後でも競合を柔軟にレビューし、ArcGIS AllSource プロジェクトを保存して、後から競合ビューを使用して競合を解決して処理を完了できます。

注意:

競合のレビューと解決に多くの時間を費やす必要はありません。レビューされていない競合は、2 回目のリコンサイル操作やポスト操作が行われるとき、編集バージョンを優先してクリアされ、自動的に解決されるためです。 リコンサイルやポストにより、競合の解決の履歴は削除されます。

競合ビューでは次の操作を実行できます。

  • 競合しているフィールドまたは行の特定
  • 競合の表示
  • フィーチャ (行) や属性 (フィールド) の置き換えに使用するリプレゼンテーションを割り当て、競合を解決する
  • 競合を確認済みまたは未確認としてマーク

レビューを完了し、必要なら競合を確認した後で、デフォルト バージョンに変更内容をポストして、マージ プロセスを完了できます。

競合ビューを開く

競合ビューは、名前付きバージョンに競合が含まれているときに利用できます。 デフォルト バージョンでリコンサイルを行い、競合が発見されたときに表示されるプロンプトから直接開くことができます。 競合ビューを閉じるか、別のユーザーが競合をレビューする必要があるときは、[バージョニング] タブの [競合マネージャー] ボタンをクリックして、競合ビューを再度開くことができます。

競合ビューを開くには、次の手順を実行します。

  1. Web フィーチャ レイヤーをマップに追加します。

    これは、名前付きバージョンを作成した Web フィーチャ レイヤーです。

  2. [コンテンツ] ウィンドウの [データ ソース別にリスト] タブ データ ソース別にリスト をクリックします。
  3. 正しいバージョンに接続していることを確認します。 バージョンを変更するには、Web フィーチャ レイヤー データ ソース ArcGIS Server を右クリックし、[バージョンの変更] バージョンの変更 をクリックして、名前付きバージョンをクリックします。
  4. [バージョニング] タブをクリックします。
  5. 競合ビューを開くには、次のいずれかのオプションを使用します:
    • 前回のリコンサイル プロセスで発生した既存の競合のレビューと管理を行うには、[バージョニング] タブにある [競合マネージャー] ボタン 競合マネージャー をクリックします。
    • 競合が現在は存在しないなら、[リコンサイル] ボタン リコンサイル をクリックし、リコンサイル プロセスを完了します。 リコンサイル プロセスで中に競合が検出された場合は、競合をレビューするかどうかたずねるプロンプトが表示されます。 [はい] をクリックすると、競合ビューが開きます。
      バージョンのリコンサイル後に競合のレビューを求めるプロンプト

競合ビューは、アプリの任意の位置にドッキングしたり、フローティング ウィンドウとして配置したりできます。 これにより、マップ ビューを操作しながら、コンテキストを提供し、詳細にデータを確認できます。

競合ビューの使用

競合ビューには、プロジェクト内のすべてのマップについて、競合を含むすべてのワークスペースと、レイヤーまたはテーブルが表示されます。 競合は、Web フィーチャ レイヤーのサブレイヤー、競合のカテゴリ (たとえば、更新-削除は、フィーチャが名前付きバージョンでは更新され、デフォルト バージョンでは削除されたことを意味します)、および影響を受けるフィーチャのオブジェクト ID により整理されます。

競合ビューは、競合を処理するための 3 つの主要なセクションで構成されます。

  • [競合] タブのリストには、競合を含む Web フィーチャ レイヤーの名前が含まれています。 それぞれの Web フィーチャ レイヤーの下には、競合を含むすべてのサブレイヤーが示されます。 競合の各フィーチャは、それぞれのサブレイヤーの下に一覧表示され、フィーチャは競合のタイプによってグループ分けされます。

    たとえば、次の画像において、Web フィーチャ レイヤーの名前は「New construction - Phase 2 (EsriCampus)」です。 Web フィーチャ レイヤー名の後の数値で示されているように、全体で 3 つの競合があります。

    この Web フィーチャ レイヤーに含まれているサブレイヤーは、EsriBuildings の 1 つだけです。 このサブレイヤーに 3 つの競合があります。

    競合を含む 3 つのフィーチャは、それぞれのオブジェクト ID で表され、競合のタイプに基づいてグループ分けされています。 オブジェクト ID の値が 16 のフィーチャは、名前付きバージョンから削除されましたが、デフォルト バージョンでは更新されました ([削除-更新])。 オブジェクト ID の値が 1633 のフィーチャは名前付きバージョンで更新されましたが、デフォルト バージョンでは削除されました。 オブジェクト ID の値が 1631 のフィーチャは両方のバージョンで更新されましたが、更新内容が一致していません。

  • 情報グリッドには、名前付きバージョン ([現在]) およびデフォルト バージョン ([ターゲット]) で表されている属性と値、および編集または前回のリコンサイルを行った前にどのように表されていたか ([共通の上位バージョン]) が示されます。 リストでフィーチャの 1 つのオブジェクト ID を選択すると、そのフィーチャの属性と値を見ることができます。
    注意:

    属性フィールドは、情報グリッドの [プロパティ] 列に一覧表示されます。

    たとえば、次の画像では、オブジェクト ID の値が 1631 のフィーチャが競合リストで選択されています。 このフィーチャは名前付きバージョンで更新され、デフォルト バージョンでも更新されました ([更新-更新]) 競合する値を含むすべての行は赤色でタグ付けされています。

  • [競合を表示] ビューアーでは、選択されたフィーチャのジオメトリに加えられた編集を視覚的に比較できます。 次の画像で、選択されたフィーチャのジオメトリは編集されていないため、このフィーチャは [競合を表示] ビューアーで、名前付きバージョン ([現在]) とデフォルト バージョン ([ターゲット]) のどちらでも同じに表示されます。

情報グリッドと [競合を表示] ビューアーでは、選択されたフィーチャの次のようなリプレゼンテーションを比較できます:

  • [現在] - 名前付きバージョンのフィーチャおよび属性の現在の状態を表します。 これには、自分が加えた編集も含まれています。
  • ターゲット - リコンサイルを行ったとき、デフォルト バージョンに存在していたフィーチャとその属性を表します。
  • 共通の上位バージョン - 名前付きバージョンが作成されたとき、または名前付きバージョンをデフォルト バージョンと最後にリコンサイルしたときのフィーチャと属性を表します。

競合ビューの要素を確認するには、以下の画像と表をご参照ください。

競合ビューの番号付きセクションと要素

要素説明

1

競合リスト - 競合リスト セクションには、競合に含まれるすべてのレイヤーとフィーチャが表示されます。

2

情報グリッド - 情報グリッド セクションには、競合リストから選択したフィーチャのすべてのリプレゼンテーションについて、属性と値が表示されます。

3

[競合を表示] ビューアー - 競合を表示ビューアーは、競合ビューの下部にある拡大可能なセクションです。 マップ上で選択されたフィーチャがビューアーに表示されるので、フィーチャのジオメトリに加えられた編集を比較し、2 つのバージョン間の競合を視覚化できます。 また、ビューアー内のマップをナビゲートし、表示されているフィーチャを識別できます。

4

[確認済みの競合のフィルター処理] - 競合リストの上部にあるこのチェックボックスをオンにすると、リストをフィルター処理して、確認されていない競合のみを表示できます。

競合をレビューする方法については、「競合を確認済みまたは未確認としてマーク」セクションをご参照ください。

5

赤色のインジケーター - 行にある赤色のインジケーターは競合を表しています。 たとえば、フィーチャのジオメトリが各バージョンで編集された場合、Shape フィールドの横に赤色のインジケーターが表示されます。

  • オブジェクトによって競合が定義されると、編集済みのすべての行は太字表示され、赤色のインジケーターが付属します。
  • 属性によって競合が定義されると、編集済みのすべての行は太字表示されますが、競合のある行のみに赤色のインジケーターが付けられます。

6

[すべて表示]すべてのフィールドを表示 - フィーチャのすべてのフィールドが、競合を含んでいなくても表示されます。

7

[競合の表示]競合しているフィールドのみを表示 - 競合しているフィールドのみが表示されます。

8

[サービス レイヤーの著作権情報を表示] - このアイコンをクリックすると、[競合を表示] ビューアーで使用されるベースマップのプロバイダーとメーカーの一覧を示すダイアログ ボックスが開きます。

9

[競合を表示] ナビゲーション ツール - 次に示すツールを使用すると、表示されたバージョンをナビゲートおよび制御したり、競合表示ウィンドウ内を移動したりできます。

  • 表示ウィンドウごとに 1 つずつ、合計 2 つのドロップダウン メニューがあり、[現在] (名前付きバージョン)、[ターゲット] (デフォルト バージョン)、[共通の上位バージョン] の各バージョンを切り替えて表示できます。

  • [拡大] 定率拡大 - マップを大きな縮尺に拡大します。フィーチャのサイズが大きくなりますが、表示される地域が狭くなります。

  • [縮小] 定率縮小 - マップを小さな縮尺に縮小します。フィーチャのサイズが小さくなりますが、表示される地域が広くなります。

  • [選択セットにズーム] 結果にズーム - 選択したフィーチャを中心にマップを拡大します。

  • [選択オブジェクトをフラッシュ] フラッシュ - 競合を表示ビューアーで、選択したフィーチャが短時間青色に点滅した後、赤色になります。

競合ビューの要素

競合リスト

競合を含むすべてのレイヤーと、競合を含む各フィーチャが、競合リストに表示されます。 このリストには、各 Web フィーチャ レイヤーと各サブレイヤーについて、競合の総数が表示されます。

各レイヤーを展開 展開 すると、各フィーチャの競合のタイプを見ることができます。 これらは、以下のカテゴリに分けられます。

  • 更新-削除 - フィーチャが名前付きバージョンでは更新され、デフォルト バージョンでは削除されました。
  • 削除-更新 - フィーチャが名前付きバージョンでは削除され、デフォルト バージョンでは更新されました。
  • 更新-更新 - フィーチャが両方のバージョンで更新されました。

競合リストで個別のフィーチャのオブジェクト ID を選択すると、現在、ターゲット、共通の上位バージョンの各バージョンについて、フィーチャのフィールドと属性が情報グリッドに表示されます。

ヒント:

確認されていない競合は太字で表示されます。 確認されると、競合が太字で表示されなくなります。

競合をレビューする方法については、「競合を確認済みまたは未確認としてマーク」セクションをご参照ください。

情報グリッド

情報グリッドでは、選択したフィーチャの属性値について、各種のリプレゼンテーションを表示できます。 競合しているフィーチャのすべてのリプレゼンテーションについて属性と値が判明するので、属性値がバージョン間でどのように異なっているかを比較し、データのどのリプレゼンテーションを保持するかを決定するため役立ちます。 すべてのフィールドが情報グリッドに表示され、バージョン間で競合する属性値を含む行には、赤色のインジケーターが表示されます。

データのリプレゼンテーションのどれかで削除された場合は、そのリプレゼンテーションの属性値に [<削除済み>] と表示されます。 フィーチャが名前付きバージョンに挿入されており、競合が発生すると、[ターゲット] 列および [共通の上位バージョン] 列に [存在せず] と表示されます。

ヒント:

競合ビューの情報グリッドにはすべてのフィールドが表示されますが、フィールド レベルの競合フィルターが適用されたフィールドは競合とは認識されず、赤色のインジケーターは表示されません。

競合を表示

[競合を表示] をクリックすると、競合ビューの下部にある競合表示ビューアーのセクションが開閉します。 競合表示ビューアーでは、競合をフィーチャのジオメトリ内で、マップ上に表示されるとおりに表示できます。また、表示されるフィーチャのナビゲートや個別属性表示も行えます。 表示される競合は、競合リストで選択されている各フィーチャのオブジェクト ID の値に基づきます。

[競合を表示] ビューアーの下部には競合表示ナビゲーション ツールがあります。 これらのツールには 2 つのドロップダウン メニューが含まれており、比較対象のデータのリプレゼンテーションを変更できます。 オプションとして、データの [現在][ターゲット][共通の上位バージョン] のリプレゼンテーションを選択できます。

競合を表示ビューアーの内容は、競合を含む Web フィーチャ レイヤーがアクティブなマップに存在するかどうかによって異なります。

  • アクティブなマップにレイヤーがある場合は、競合を表示にすべてのマップ レイヤーが、マップ シンボルを使用して示され、ベースマップも含まれます。
  • アクティブなマップにレイヤーがない場合は、競合を表示には競合しているレイヤーのみが、デフォルト シンボルを使用して示され、ベースマップは含まれません。

競合の解決

競合を解決する際に、維持するフィーチャと属性の状態を決定します。 リコンサイル操作の後、競合ビューを使用して保持するバージョンの状態を指定します。 競合ビューで置換オプションを使用することは、編集操作を実行することと同じであることに注意してください。

競合ビューでリプレゼンテーション ヘッダー、または情報グリッドの属性値を右クリックするか、競合リストでレイヤーまたはフィーチャを右クリックし、次の置換オプションのいずれかを選択します:

  • 現在のバージョンで置換
  • ターゲット バージョンで置換
  • 共通の上位バージョンで置換

ブランチ バージョンの競合ショートカット メニュー

置換オプションを使用して競合を解決できる、さまざまなレベルを以下に示します。これらは、競合ビューで何にアクセスするかに基づいています:

  • 属性の置換

    これはフィールド レベルで発生し (情報グリッドでは [プロパティ] とラベル付けされます)、現在の (名前付き) バージョンのみの属性値を定義します。

    この操作を行うには、情報グリッドで、現在のバージョンの列にある、競合している属性を右クリックし、置換オプションをクリックします。 現在のバージョンに示されている値を保持するには、[現在のバージョンで置換] をクリックします。 または、現在のバージョンの値を、デフォルト バージョンのリプレゼンテーションの値に置換する ([ターゲット バージョンで置換]) か、共通の上位バージョンのリプレゼンテーションにある値に置換することもできます。

  • フィーチャの置換

    この競合解決は、行レベルで適用されます。 フィーチャ全体を、現在のバージョン、ターゲット バージョン、または共通の上位バージョンのフィーチャのリプレゼンテーションに置換できます。 これによって、フィーチャで競合しているすべての属性値は、フィーチャのジオメトリの競合も含めて置換されます。

    この操作を行うには、競合リストでフィーチャのオブジェクト ID を右クリックし、適切な置換オプションをクリックします。

  • レイヤー レベルの置換

    サブレイヤー全体の現在のリプレゼンテーションを、現在のバージョン、ターゲット バージョン、または共通の上位バージョンのリプレゼンテーションに置換して、競合を解決できます。 これによって、サブレイヤーで競合しているフィーチャや属性がすべて同時に置換され、競合しているフィーチャをすぐに更新して置換できます。 競合リストで、このレイヤーに複数のフィーチャが存在する場合は、すべてが選択したバージョンに置換されます。

    レイヤーの競合すべてを置換するには、競合リストでサブレイヤー名を右クリックし、適切な置換オプションをクリックします。

  • Web フィーチャ レイヤーの完全な置換

    この操作は、Web フィーチャ レイヤーのレベルで行われます。 このオプションは、競合しているフィーチャ、レイヤー、属性値のすべてを、選択したリプレゼンテーションに置き換えます。

    競合リストの上部にある Web フィーチャ レイヤーを右クリックし、適切な置換オプションをクリックすると、すべての競合を置換できます。

  • ジオメトリのマージ

    これはフィールド レベルで行われ、Shape 属性のみに関連します。 ジオメトリをマージするオプションは、Shape フィールドに関連する競合があるとき、シェープ メニューでのみ使用できます。 2 人の編集ユーザーがどちらも同じフィーチャのジオメトリを編集したが、編集したエリアが異なる場合、ジオメトリをマージして両方の編集を適用することによって競合を解決することができます。 ジオメトリをマージすると、最終的なフィーチャには両方の編集ユーザーが行った編集が反映されます。

    ある編集ユーザーによる編集と、別の編集ユーザーの編集の範囲が同じである場合、編集されたエリアが重なります。 ジオメトリをマージする方法もありますが、マージを試みると失敗し、次のエラー メッセージが表示されます:

    ジオメトリのマージ中にエラーが発生しました。 2 つのジオメトリをマージできません。 編集領域が重複しています。

フィールド レベルの競合フィルタリング

リコンサイル中に競合が検出された際、フィールドまたはフィールド セットに適用された編集を残したい場合があります。 リコンサイル中にフィールドで検出された競合を除外したい状況の例を以下に示します。

  • 複数の異なるバージョンにおいて、あるフィールドに対する一括更新が実行される場合
  • バージョン内で実行された編集に基づき、情報がフィールドに書き込まれる場合

デフォルト バージョンと名前付きバージョンで同じ属性が更新されたときに競合が識別されないようにするため、[フィールド競合フィルターの追加 (Add Field Conflict Filter)] ツールを使用して、競合のフィルターを行うフィールド セットを定義できます。 フィールド競合フィルターでは、フィーチャクラス内のフィールドまたはフィールド セットを、競合検出からフィルタリングされるものとしてタグ付けできます。 競合フィルターが定義されたフィールドのみが編集された場合は、リコンサイルの操作中、競合は返されません。 これは、属性で競合を定義した場合のみに適用されます。

ListFieldConflictFilters ArcPy 関数を使用して、レイヤーに競合フィルターがいつ定義されたかを特定できます。

注意:

[プロパティ] 列の競合ビューにはすべてのフィールドが表示されますが、競合フィルターが適用されたフィールドは競合とは認識されず、赤色のインジケーターは表示されません。

ブランチ バージョン対応データでは、常に名前付きバージョンを優先して競合がリコンサイルされるので、競合フィルターを持つフィールドには名前付きバージョンからの値が含まれます。

[フィールド競合フィルターの削除 (Remove Field Conflict Filter)] ツールを使用して、これらのフィールドから競合フィルターを削除できます。

注意:

[フィールド競合フィルターの追加 (Add Field Conflict Filter)] または [フィールド競合フィルターの削除 (Remove Field Conflict Filter)] ツールを実行した後で、ユーザーまたは ArcGIS Enterprise 組織管理者が Web フィーチャ レイヤーに関連しているサービスを再起動する必要があります。

属性ルールによる競合の解決

属性ルールを使用すると、編集の操作性や、ジオデータベース データセットのデータ整合性を向上させることができます。 競合が属性 (列) によって定義されるリコンサイルを行うときは、デフォルト バージョンと名前付きバージョンの両方で更新されたフィーチャについて、即時計算または制約ルールが評価されます。 このプロセスの間に制約ルールへの違反が起きると、そのフィーチャは更新-更新の競合があるものとしてフラグ付けされます。

リレーションシップ クラスによる競合の解決

リレーションシップ クラスは、ジオデータベース内で関連するオブジェクト間に参照整合性を適用するため使用できます。 ブランチ バージョン対応データ ソースがリレーションシップ クラスに参加している場合、リコンサイル処理ではこのデータの参照整合性が評価されます。 参照整合性の違反がある場合、参加しているフィーチャが競合としてレポートされ、競合ビューで確認できるようになります。

関連元のリレーションシップ クラスからフィーチャを削除すると、関連先のリレーションシップ クラスからフィーチャを削除するためのメッセージがトリガーされることがあります。 このため、リレーションシップ クラスに属しているソース フィーチャクラスの競合を置換した場合の影響に気をつける必要があります。

次に、リレーションシップ クラス間で競合が発生する例を示します。

  • デフォルト バージョンで、関連先フィーチャを追加し、関連元クラスのフィーチャに関連付けます。
  • 名前付きバージョンで、新しい関連先フィーチャを関連付けるために使用されたのと同じ元フィーチャを削除します。
  • 編集内容をリコンサイルすると、関連先クラスでは更新 - 更新の競合が、関連元クラスでは削除 - 更新の競合が検出されました。

次のような例もあります。

  • 変圧器へのリレーションシップを持つ電柱を削除した結果、関連する変圧器も削除されます。
  • 同時に、電柱とともに削除された変圧器の属性を、別の編集ユーザーが変更します。
  • 編集内容をリコンサイルすると、関連元クラスと関連先クラスで更新 - 削除の競合が検出されました。

この例では、2 人目の編集ユーザーがすべての競合を編集セッションの状態で置換することにした場合、1 人目の編集ユーザーの編集セッションで削除された電柱と変圧器が再作成されます。

競合を確認済みまたは未確認としてマーク

ArcGIS AllSource には、レビューされた競合と、その解決方法を記録しておくメカニズムがあります。

リコンサイル操作の直後に、すべての競合はレビューされていない状態で、太字表示されます。 自分や他のレビューアー (存在する場合) が競合の解決を完了したら、そのフィーチャをレビュー済みとしてマークできます。 レビュー済みとしてマークされたフィーチャは、競合ビューのリストに太字で表示されなくなります。

競合をレビューされていないまま放置する状況はいくつか考えられます:

  • ArcGIS AllSource を閉じる前に、すべての競合のレビューを完了できない場合。
  • 編集をデフォルト バージョンにポストする前に、自分のバージョンに存在する競合を他のレビューアーがチェックする必要がある場合。

フィーチャがレビュー済みであることを示すには、競合リストでオブジェクト ID の値を右クリックし、[確認済みとしてマーク] をクリックします。 これによって、競合ビューでそのフィーチャは太字表示されなくなります。 さらにレビューが必要なことを示すには、競合リストでオブジェクト ID の値を右クリックし、[未確認としてマーク] をクリックします。 これによって、競合ビューでそのフィーチャは再度太字表示されるようになります。

レビューされていない競合のみを表示するようリストにフィルターを適用するには、競合ビューの上部にある [確認済み競合をフィルター] チェックボックスをオンにします。

また、他のレビューアー向けに確認メモで情報を伝えることもできます。 フィーチャを右クリックして [確認メモの追加] をクリックし、[確認メモの追加] テキスト ボックスにテキストを入力します。 既存の確認メモを編集するには、フィーチャを右クリックして [確認メモの編集] をクリックします。

注意:

確認メモは、次のリコンサイルやポスト操作のときにクリアされます。