オフラインでもマップを操作できるように、マップ内で使用するフィーチャ サービスに対して同期機能を有効にすることができます。同期機能により、クライアントでデータのローカル コピーを作成することができます。公開者が許可している場合は、クライアントでデータのローカル コピーを編集し、接続性が確保された時点でフィーチャ サービスと同期させることができます。
注意:
ArcGIS クライアントと開発者向け SDK では、ArcGIS 10.2.1 で導入された同期機能のサポートをフィーチャ サービスに段階的に追加します。オフラインでのマップの操作を最初にサポートするクライアントは、Collector for ArcGIS と ArcGIS Runtime SDK です。ArcGIS 10.2.1 より前のバージョンで公開されたフィーチャ サービスでは、同期機能を有効にすることはできません。
その他のクライアントは、ArcGIS REST API を介して同期機能にアクセスすることができます。
データの準備
同期機能を使用するには、フィーチャ サービス内のすべてのデータがエンタープライズ ジオデータベースからのデータであり、データがジオデータベースに登録されている必要があります。また、データをオフラインで使用し、必要な場合は接続性が確保された時点でフィーチャ サービスと同期できるように、データの準備をしておく必要があります。
同期に対応したフィーチャ サービスで使用するデータは、管理履歴を有効にしてバージョン非対応にすることができますが、組織のデータまたはワークフローで必要な場合は、バージョン対応登録することもできます。
同期機能を有効にすることができるのは、マップ内のすべてのデータがまったく同じ設定になっている場合に限ります。バージョン対応登録されているデータと対応登録されていないデータを混在させることはできません。
履歴管理が有効なバージョン非対応データ
同期機能が有効なフィーチャ サービスで、履歴管理が有効なバージョン非対応データを使用できます。データがバージョン非対応の場合、クライアントは、常に、データの現在の状態を処理します。オフラインで実行されるクライアントが最新の変更を取得する場合、フィーチャ サービスへの接続を再び開始すると、バックオフィス処理は必要なくなります。
バージョン対応登録されていないデータを同期機能で使用できるようにするには、次の操作を実行します。
- データセットの履歴管理を有効にします。
- データセットに Global ID を含めます。
- アタッチメントとリレーションシップ クラスで Global ID の主キーを使用する必要があります。詳細については、「アタッチメントとリレーションシップ クラス」のセクションをご参照ください。
このシナリオの詳細については、「チュートリアル: オフラインで使用するためのフィーチャ サービス データの構成」をご参照ください。
10.2 以降のエンタープライズ ジオデータベースから、バージョン非対応のデータを参照するフィーチャ サービスを公開したり、オフラインでデータを持ち出して編集したり、フィーチャ サービスを通じてエンタープライズ ジオデータベースと変更を同期したりすることができます。
従来のバージョン対応データ
組織が以下のいずれかの状況にある場合、従来のバージョン対応データを使用します。
- データが、編集ができるようデータのバージョン対応登録を必要とするジオデータベース機能に関与している。たとえば、フィーチャクラスがジオメトリック ネットワークに属する場合、フィーチャ データセットは従来のバージョン対応登録が行われている必要があります。
- 組織に、データが従来のバージョン対応登録を使用する必要があるワークフローが設定されている (データの品質保証バージョンなど)。
注意:
従来のバージョン対応登録のみがサポートされています。現時点では、同期ワークフローでブランチ バージョン対応登録を使用することはできません。
従来のバージョン対応登録データを使用する場合は、データを次のように準備します。
- データセットに Global ID を含めます。
- データセットをバージョン対応登録します。
- リレーションシップ クラスとアタッチメントで Global ID 列またはユーザー管理フィールドを主キーとして使用する必要があります。詳細については、「アタッチメントとリレーションシップ クラス」のセクションをご参照ください。
従来のバージョン対応登録データを参照するフィーチャ サービスを公開したり、オフラインでデータを取得して編集したり、フィーチャ サービスを通じてエンタープライズ ジオデータベースと変更を同期したりすることができます。
詳細については、「オフライン マップとバージョン対応登録されたデータ」をご参照ください。
グローバル ID
オフラインに持ち出すデータセットに追加する Global ID は、カスタム フィールドを基準にすることができません。ArcGIS で作成された Global ID フィールドを明示的に使用する必要があります。データに Global ID を追加するには、[Global ID の追加 (Add Global IDs)] ジオプロセシング ツールを使用するか、フィーチャクラス、フィーチャ データセット、およびカタログ ツリーのテーブル ショートカット メニューにある [Global ID の追加] コマンドを使用します。
アタッチメントとリレーションシップ クラス
オフラインで使用するデータがアタッチメントを含んでいる場合や、リレーションシップ クラスに属している場合は、テーブル間のリレーションシップやテーブルとアタッチメント間のリレーションシップで Global ID 列またはユーザー管理フィールドを主キーとして使用する必要があります。ObjectID 列を主キーにすると、オフラインで使用するデータをダウンロードした時点でエラーが返されます。[リレーションシップ クラスの移行 (Migrate Relationship Class)] ジオプロセシング ツールを使用すると、Global ID フィールドが主キーになるように ObjectID ベースのリレーションシップ クラスと添付ファイルを変換できます。
GIS Server サイトの管理されたデータベース
GIS Server サイトに公開した時点で同期機能を有効にして、データをサイトの管理されたデータベースにコピーするように選択した場合、データの準備は不要です。公開プロセスにより、データが同期機能をサポートするように自動的に設定されます。公開時にデータがサイトの管理されたデータベースにコピーされない場合や、管理されたデータベースへのデータの公開およびコピー後に同期機能を有効にする場合は、上記のセクションの記載に従ってジオデータベース データを準備する必要があります。
編集情報の記録
編集情報の記録は、オフラインで編集したデータに使用できます。オフラインで使用するデータをクライアントにダウンロードすると、編集情報の記録フィールド内の既存の値が残りのデータと一緒にクライアントにコピーされます。オフラインでデータの処理を行った場合は、フィーチャが作成または編集された日付と時刻が作成日フィールドまたは編集日フィールドにそれぞれ記録されます。これらの値は、データがサービスと同期された時点で保存されます。
注意:
日付フィールドに UTC 以外のタイム ゾーンで値が保存されている場合、サービスを公開するときにはそのタイム ゾーンを指定します。指定しない場合、UTC が使用されます。ArcGIS は、ユーザーが指定するタイム ゾーンをすべての編集情報の記録の日付フィールドに適用します。
オフライン データには、マップをオフライン用に作成したユーザーの名前が含まれています。この名前は、以下のように編集情報の記録で使用されます。
- フィーチャがオフライン用のマップを作成する場合、作成者名の値はマップをオフラインで取得したユーザー名に設定されます。
- 既存のフィーチャがオフライン中に編集された場合、編集者名の値はマップをオフラインに持ち出したユーザー名に設定されます。これらのフィーチャの作成者名の値は変更できません。
マップをオフラインに持ち出したユーザーか ArcGIS Server 管理者のいずれかが、サービスに接続してデータを同期できます。
分散コラボレーションでの編集情報の記録
分散コラボレーション ワークフローで編集情報の記録を使用する場合、振舞いは次のようになります。
コラボレーションの前に、送信側の組織から編集情報の記録が有効化された場合、受信側の組織のフィーチャ レイヤーで編集情報の記録が有効化されます。最初にデータが受信側の組織にコピーされると、編集情報の記録の値がリセットされます。つまり、日付が UTC で現在のタイムスタンプに設定され、作成者と編集者が公開元のユーザーとして設定されます。値のリセットにより、新規にコピーされたデータが新しい組織に反映されます。同期中は、送信側の組織での編集情報の記録の日付が維持されます。このため、データが共有された時点以降に、送信側の組織で編集が加えられた日付が受信側の組織に反映されます。受信側の組織に同期された挿入および更新の作成者と編集者の値は、フィーチャ レイヤーがコピーされた時点以降のレプリカの所有者 (公開元のユーザー) に設定されます。
編集情報の記録をコラボレーションに含まれるフィーチャ レイヤー内の一部のレイヤーには有効にして、その他のレイヤーには無効にすることができます。この場合、ArcGIS Enterprise または ArcGIS Online から送信するとき、ArcGIS Online のホスト フィーチャ レイヤーでは、すべてのレイヤーの編集情報の記録が有効化されます。ArcGIS Online と ArcGIS Enterprise でレイヤーの編集情報の記録が有効になっている場合の動作は上記のとおりです。ArcGIS Online のみでレイヤーの編集情報の記録が有効化されている場合、同期プロセスでは、現在のタイム スタンプとレプリカ所有者 (公開ユーザー) に基づいて編集情報の記録が設定されます。
ArcGIS Online から ArcGIS Enterprise にコラボレーションする際に、編集情報の記録が有効になっている場合は、ArcGIS Online と ArcGIS Enterprise のフィーチャ レイヤー内のすべてのレイヤーの編集情報の記録が有効になります。
フィーチャ レイヤーをコラボレーションに追加した後で編集情報の記録を有効にすると、受信側の組織で編集情報の記録が無効になります。
アクセス制御設定は受信側の組織で維持されますが、すべてのフィーチャは受信側の組織のレプリカの所有者が所有しているため、結果が生成されません。
属性ルール
ArcGIS Pro から公開するフィーチャ レイヤーが登録済みデータを参照している場合、そのレイヤーには属性ルールを含めることができます。フィーチャ レイヤーを編集する際、ArcGIS はジオデータベースで定義した属性計算および制限ルールを適用します。編集内容がこれらの規則のいずれかに違反すると、エディターはエラーを受信します。ただし、オフライン時にデータを編集した場合、属性ルール情報はオフライン データには含まれません。フィーチャ レイヤーとデータを同期すると、その時点でルールが適用されます。違反の扱われ方は、データの登録方法によって異なります。
- バージョン対応登録されているデータを使用する場合、属性ルール違反によって同期プロセスが実行されなくなります。編集内容が属性ルールに違反すると、同期時にエラーが返されます。データのオフライン バージョンで違反を修正し、再度同期してください。
- アーカイブに対応した非バージョン対応のデータを使用する場合、同期は完了するものの、属性ルールに違反する編集内容は適用されません。同期されなかった編集内容に関する情報は、ArcGIS Server ログに書き込まれます。非バージョン対応のデータと属性ルールを使用する場合、同期後に ArcGIS Server ログをチェックして、同期されていない編集がないか確認します。データのオフライン バージョンで違反を修正し、再度同期します。
ホスト フィーチャ サービス
ArcGIS Online でホストされているフィーチャ サービス (ホスト フィーチャ レイヤー) を公開する場合は、データは常にバージョン非対応で、同期機能を有効にした時点で同期機能を使用できるよう自動的に準備されます。公開者は ArcGIS Online ホスティング サーバーへのアクセス権がなく、同期機能を使用するためのデータを手動で準備することができないため、この処理が実行されます。
ホスト フィーチャ レイヤーを Portal for ArcGIS で公開すると、データはポータルのホスティング サーバーの管理データベースにコピーされます。このデータも、常にバージョン非対応です。ポータルのホスティング サーバーが、管理されたデータベース用に ArcGIS Data Store リレーショナル データ ストアを使用している場合、データは、同期機能を有効にした時点で同期機能を使用できるよう自動的に準備されます。管理されたデータベース用にリレーショナル データ ストアを使用していない場合、同期するように手動でデータを変更することが必要になる場合があります。詳細については、Portal for ArcGIS のヘルプにある「オフライン マッピング時のホスト フィーチャ サービスの有効化」をご参照ください。
レガシー:
ArcGIS Enterprise 10.5.1 は、エンタープライズ ジオデータベースをホスティング サーバーの管理されたデータベースとして使用できる最後のリリースでした。新しいホスティング サーバーを構成している場合は、リレーショナル ArcGIS Data Store を使用します。
フィーチャ サービスの準備
フィーチャ サービスを作成する場合、公開者はそのサービスで実行できる編集が定義されたオプションを選択します。次のセクションに、オフラインでマップを使用する場合にオプションを適用する方法を示します。
許可されるオペレーション (機能)
フィーチャ サービス ケーパビリティでは、フィーチャ サービスを使用するときに許可される操作が定義されます。オフライン マップの使用に関連するフィーチャ サービスに対して、次の 2 つの構成がサポートされています。
- 読み取り専用データ - クライアントがオフラインで使用するためにフィーチャ サービスからダウンロードするデータを検索するだけの場合は、フィーチャ サービスに対する [クエリ] と [同期] のケーパビリティを設定します。この構成では、オフラインでデータを編集することができず、データをサービスと同期することができません。
- 編集可能データ - クライアントでオフライン状態のままデータを編集し、接続性が確保された時点で変更をフィーチャ サービスと同期する場合は、フィーチャ サービスに対して次の機能を設定します。
- クエリ
- 同期
- [作成]、[削除]、および [更新] の任意の組み合わせ
フィーチャ サービスが作成された後で、公開者や管理者は同期機能を無効にしてもかまいません。たとえば、公開者や管理者は、インデックスの再構築などのデータのメンテナンス作業が進行中の場合にクライアントがサービスと同期しないようにするために、フィーチャ サービスに対して同期機能を無効にすることができます。
注意:
許可されているオペレーションは、ArcGIS Server の公開者またはユーザー ロールのメンバーなど、管理者以外のユーザーにのみ適用されます。サーバー管理者とサービス所有者は、サービスにフルにアクセスでき、すべてのオペレーションが許可されています。
これにより、管理者やサービス所有者がオフラインで使用しているデータが常に編集可能になります。オフラインの読み取り専用フィーチャ レイヤーが必要な場合、フィーチャ サービス所有者ではなく、管理者以外のユーザーによりオフラインで取得される必要があります。
ショート トランザクション
バージョン対応登録されていないデータを使用中に、同期に対応したフィーチャ サービスを編集する場合は、長時間にわたって編集トランザクションを開いたままにしないでください。たとえば、フィーチャ サービスでの同期にも使用されるバージョン対応登録されていないデータを ArcMap で編集する予定の場合は、必ず定期的に編集内容を保存し、編集セッションが完了した時点で編集作業を終了するようにしてください。
ジオメトリの更新とトゥルー カーブ設定
ジオメトリの更新とトゥルー カーブを含むデータの編集を許可するようにフィーチャ サービスを設定できます。これらの設定が適用されるのは、編集でクライアントからサービスへの同期が行われる場合です。クライアントで行った編集がフィーチャ サービスのジオメトリの更新とトゥルー カーブ設定に違反していると、その編集はサービスと同期されません。
所有権ベースのアクセス制御
所有権ベースのアクセス制御を使用してフィーチャ アクセスを制御できます。クライアントで行った編集が所有権ベースのアクセス制御ルールに違反していると、その編集はサービスと同期されません。この場合に編集の同期に使用されるログインは編集者と見なされます。
マップをオフラインに持ち出したユーザーか ArcGIS Server 管理者のいずれかが、サービスに接続して、データを同期できます。管理者がオフライン時に行われた編集を同期する場合、所有権ベースのアクセス制御は、管理者ではなく、マップをオフラインに持ち出したユーザーを基準にします。
非表示のフィールドと読み取り専用フィールド
フィーチャ サービスを作成する場合は、一部のフィールドをフィーチャ サービスで読み取り専用にしたり、非表示にしたりすることができます。フィーチャ サービスで非表示になっているフィールドは、オフラインで使用する場合にクライアントにダウンロードされません。読み取り専用フィールドは、ダウンロードされた後も読み取り専用のままになります
注意:
同期機能を有効にすると、次のフィールドが表示されるはずです。表示されない場合は、マップをオフラインにすることができません。
- サブタイプ
- 主キー フィールドと外部キー フィールド (リレーションシップ クラスが存在する場合)
- 編集情報の記録用フィールド (編集情報の記録が有効化されている場合)
マップ レイヤー
同じフィーチャクラスに基づく 2 つのレイヤーを含む ArcGIS Server または Portal for ArcGIS に公開されるフィーチャ サービスは、オフラインへの持ち出し、編集、同期ができません。
たとえば、道路のフィーチャクラスをマップに追加してすべての道路を表示したり、同じ道路のフィーチャクラスを追加しフィルターを設定して建設中の道路を表示したり、マップからフィーチャ サービスを公開したりする場合、フィーチャ サービスをオフラインに持ち出して編集したり、オフライン時に変更を同期したりすることはできません。
同期オプション
編集可能なフィーチャ サービスにバージョン対応登録されたデータが含まれている場合、マップをオフラインに持ち出したときに、個々のクライアントに対してバージョンが作成されます。クライアントがフィーチャ サービスの変更を同期すると、編集内容がこのバージョンに適用されます。ジオデータベースの管理者は、リコンサイル プロセスとポスト プロセスを実行して、他のユーザーと編集内容を共有する必要があります。
読み取り専用フィーチャ サービス (検索機能と同期機能のみが有効化されている) にバージョン対応登録されたデータが含まれている場合、バージョンは作成されません。クライアントが公開済みバージョンと同期すると、公開済みフィーチャ サービスに対する変更が自動的にクライアントで使用可能になります。
デフォルトでは、バージョンは、編集可能なフィーチャ サービスを含むマップがオフライン用に作成されるたびに作成されます。ただし、ArcGIS Server 管理者またはフィーチャ サービスの所有者は、ログインのたびにバージョンが作成されるようにフィーチャ サービスを構成できます。
たとえば、5 人のフィールド スタッフが別々にオフライン用のマップを作成する場合、5 つのバージョンが生成されます。それぞれのバージョンは、個々のログインに固有であり、バージョン名はログイン名とサービス名に基づいています (Joe_ValveFS など)。Joe がマップをオフラインに複数回持ち出した場合 (複数のデバイスから、など)、Joe が各デバイスから同期する際には同じバージョンが使用されます。つまり、1 つのデバイスから、他のデバイスでの編集内容にアクセスすることができます。ただし、新しいオフライン マップは、Joe のバージョンが最後にリコンサイルされた時点の内容になります。バージョンは、マップをオフライン用に作成したユーザーがそのオフライン マップを所持している限り維持されます。
注意:
同期の目的で作成されるバージョンの名前は 30 バイトに制限されています。
次の手順に従って、ArcGIS Server サービスでこの同期オプションを設定します。
- サービスの所有者または ArcGIS Server 管理者として、ArcGIS Server Manager にログインします。
- ArcGIS Server Manager の上部で、[サービス] が選択されていることを確認します。
- フィーチャ サービスを参照し、サービス名をクリックして、そのサービスに関する情報を開きます。
- [ケーパビリティ] をクリックします。
- [フィーチャ アクセス] を選択します。
- [プロパティ] で、[高度な設定] をクリックします。
[フィーチャ サービスの高度な設定] ダイアログ ボックスが開きます。
- [同期] で、[以下のそれぞれでバージョンを作成] [ダウンロードされたマップ] または [ユーザー] の順に選択します。
- [OK] をクリックし、[フィーチャ サービスの高度な設定] ダイアログ ボックスを閉じます。
- [保存して再起動] をクリックして、設定の変更をフィーチャ サービスに適用します。
サービスを再起動している間、サービスは利用できなくなります。
データのローカル コピーのダウンロードやサービスとの同期に使用する出力ディレクトリ
データをローカル クライアントにダウンロードする場合は、そのデータを含むファイルが ArcGIS Server の出力ディレクトリに作成され、そのファイルをクライアントにダウンロードします。デフォルトでは、ファイルにアクセスしていない状態のまま 10 分以上が経過すると、そのファイルが出力ディレクトリから削除されます。クライアントがファイルのダウンロードを開始するまでに 10 分以上の時間が必要な場合は、クリーンナップ時間がそれより長い別の出力ディレクトリを作成し、その出力ディレクトリをフィーチャ サービス用に使用することができます。また、デフォルトの出力ディレクトリのクリーンナップ時間を延長することもできますが、この場合には、デフォルトの出力ディレクトリを使用しているすべてのサービスに影響があります。
注意:
createReplica オペレーションを使用してデータのローカル コピーを作成する場合は、レイヤー、テーブル、およびコピーするデータの範囲を選択します。デフォルトでは、範囲と交差するフィーチャと、それらのフィーチャに関連するテーブル内の行がローカル コピーに含まれます。テーブルについては、デフォルトを使用する代わりに、クエリ フィルターを適用したり、すべての行を含めたりすることもできます。大量のデータをコピーして、多数のリレーションシップ クラスを保持する場合は、テーブルに対してフィルターまたはすべての行を設定すると、パフォーマンスを改善できることがあります。フィルターを設定する場合やすべての行を含める場合は、ArcGIS REST API ヘルプにある layerQueries オペレーションの createReplica パラメーターをご参照ください。
同期モードと非同期モード
データのローカル コピーをダウンロードする操作や変更をサービスに同期させる操作は、同期モードと非同期モードのどちらででも実行できます。同期モードを使用する場合は、サービスで処理が実行されるため、使用するインスタンスの最小数と最大数、タイムアウト間隔、リサイクル間隔などのサービス設定が適用されます。非同期モードを使用する場合は、ArcGIS Server に付属している事前設定済みの SyncTools ジオプロセシング サービスで処理が実行されるため、SyncTools ジオプロセシング サービスの設定が適用されます。
同期プロセスのシステム情報
オフラインでマップを使用するためのデータをダウンロードする場合や変更をサービスに同期し直す場合、これらのプロセスに関する情報は、フィーチャ サービスでソース データとして使用されているエンタープライズ ジオデータベースのシステム テーブルに格納されています。フィーチャ サービスのレプリカ リソースには、そのフィーチャ サービスのメタデータが作成されます。サービスがセキュリティで保護されている場合は、ログインしているユーザーまたは匿名ユーザーに関連したメタデータだけが作成されます。また、ジオデータ サービスにも、ジオデータベースを参照しているすべてのフィーチャ サービスのメタデータが作成されるレプリカ リソースが用意されています。管理者はジオデータ サービスを使用して、サービスごとのメタデータの作成や削除されたフィーチャ サービスのメタデータの削除などの作業を実行できます。