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