Field Maps の自動化

ArcGIS Field Maps を自動化すると、マップを準備して現場に配置する方法を効率化できます。 Webhook とスクリプトを使用して、マップ間でフォームをコピーしたり、対象物の検査のたびに電子メール通知を自動生成したりするなど、さまざまなタスクを自動化できます。 Field Maps のタスクは、次の 2 通りの方法で自動化できます。

  • Make での Webhook の設定 (旧名称 Integromat) - モバイル作業者が現場でフィーチャを作成、編集、または削除すると、ほぼリアルタイムで自動的に通知を受信します。
  • ArcGIS API for Python の使用 - Python スクリプトとノートブックを使用して、マップを構成および配置し、Field Maps で収集されたデータを管理および解析します。

Make での Webhook の設定

Webhook は、アプリケーションが他のアプリケーションに、イベントによって発生する情報を提供することを可能にします。 Webhook の一般的な使用法は、電子メールや SMS による通知の送信、ソーシャル メディアへのメッセージ投稿、スプレッドシートへのレコード自動書き込み、エンタープライズ データベースの更新などです。 Field Maps は、サードパーティ製のワークフロー自動化サービスである Make (旧名称 Integromat) を通じて Webhook をサポートします。 MakeField Maps アプリが組み込まれることで、ユーザーは Field Maps を Webhook ワークフローに統合できます。 Field Maps アプリは次の方法で統合できます。

  • Webhook をトリガーする - [Watch Features] トリガーは、Field Maps モバイル アプリでフィーチャが追加、編集、削除されるのを監視します。
  • API を呼び出す - [Make an API Call] アクションを使用すると、ArcGIS Web サービスに対する API リクエストを作成できます。
注意:

Make 内の Field Maps アプリは、ホスト フィーチャ サービスのみをサポートし、現在 ArcGIS Enterprise ではサポートされていません。

Field Maps アプリの追加

MakeField Maps アプリを Webhook に追加するには、次の手順を実行します。

  1. https://www.make.com/ を参照し、サイン インします。

    アカウントを持っていない場合は、無料でサイン アップして使用を開始します。

  2. [Create a new scenario] をクリックします。
  3. [ArcGIS Field Maps] を検索して選択し、[Continue] をクリックします。

    ArcGIS Field Maps アプリがシナリオのお気に入りとして表示されます。

  4. 画面中央のモジュール ボタンをクリックし、メニューから [ArcGIS Field Maps] を選択します。

    ArcGIS Field Maps アプリが追加されます。 このアプリを使用して、Webhook をトリガーするか、ArcGIS Web サービスに対して API を呼び出すことができます。

ArcGIS 組織サイトへの接続

Field Maps アプリを Make で初めて使用する場合は、ArcGIS 組織サイトへの接続を設定してください。 組織サイトへの接続方法は、使用するモジュールとアクセスしているサービスによって異なります。

ArcGIS 組織サイトへの Watch Features トリガーの接続

[Watch Features] トリガーを ArcGIS 組織サイトに接続するには、次の手順を実行します。

  1. Make で Webhook に Field Maps アプリを追加します。
  2. [Watch Features] トリガーを選択します。
  3. [Webhook] の下の [Add] をクリックします。
  4. [Connection] の下の [Add] をクリックして、接続に「ArcGIS」という名前を指定します。

    ArcGIS Online に接続するには、[Continue] をクリックして ArcGIS 組織サイトにサイン インします。

作成した接続は、Make[Connections] タブで表示および編集できます。 ArcGIS の複数の Web サービスに接続するには、複数の接続の作成が必要になることがあります。 たとえば、[Make an API Call] モジュールを使用してフィーチャ レイヤーのクエリを実行し、別の [Make an API Call] モジュールを使用して共有 API にアクセスする場合は、それぞれのサービスに対する個別の接続が必要になります。

注意:

90 日間にわたって接続を使用しないと、リフレッシュ トークンの有効期限が切れるため、ArcGIS 組織サイトに再接続する必要があります。 maxTokenExpirationMinutes が組織で 90 日未満に構成されている場合は、その値に基づいてリフレッシュ トークンの有効期限が切れます。

ArcGIS 組織サイトへの Make an API Call アクションの接続

[Make an API Call] アクションを ArcGIS 組織サイトに接続するには、次の手順を実行します。

  1. Make で Webhook に Field Maps アプリを追加します。
  2. [Make an API Call] アクションを選択します。
  3. [Connection] の下の [Add] をクリックして、次の項目を指定します。
    1. [Connection name] - 「ArcGIS」など、接続の名前を指定します。
      注意:

      共有 API にアクセスする場合は、下記のサブステップを実行する代わりに、[Continue] をクリックして ArcGIS 組織サイトにサイン インします。

    2. [Sub-domain] - 接続先のサービスを指定します。 たとえば、フィーチャ サービスに接続する場合は、「services」と入力します。

      注意:

      フィーチャ サービスに接続する場合、サブドメインを使用するには、フィーチャ レイヤーのアイテム ページを確認します。 [URL] の下に表示されるリンクは https://<services>.arcgis.com で始まっています。 <services> に含まれるテキストをサブドメインとして使用して、モジュールをフィーチャ サービスに接続します。

    3. [ArcGIS Online URL] - [Show advanced settings] をクリックして、ArcGIS 組織サイトの URL を指定します。

      ArcGIS Online に接続するには、[Continue] をクリックして ArcGIS 組織サイトにサイン インします。

作成した接続は、Make[Connections] タブで表示および編集できます。 ArcGIS の複数の Web サービスに接続するには、複数の接続の作成が必要になることがあります。 たとえば、[Make an API Call] モジュールを使用してフィーチャ レイヤーのクエリを実行し、別の [Make an API Call] モジュールを使用して共有 API にアクセスする場合は、それぞれのサービスに対する個別の接続が必要になります。

注意:

90 日間にわたって接続を使用しないと、リフレッシュ トークンの有効期限が切れるため、ArcGIS 組織サイトに再接続する必要があります。 maxTokenExpirationMinutes が組織で 90 日未満に構成されている場合は、その値に基づいてリフレッシュ トークンの有効期限が切れます。

Field Maps アプリによる Webhook のトリガー

Webhook を設定して、Field Maps や他のアプリケーション (Map Viewer など) でフィーチャが作成、更新、削除されたときにアクティブ化することができます。 たとえば、Field Maps で新しいフィーチャが収集されると、Webhook によって電子メール通知を送信するなど、別のアクションをトリガーできます。 Field Maps モバイル アプリでフィーチャが作成、更新、削除されるたびに電子メール通知を送信する Webhook を作成するには、Make で次の手順を実行します。

注意:

ステップ バイ ステップのチュートリアルについては、ブログ記事「フィールドの更新に関する電子メール通知の自動化」とビデオ「Make を使用した電子メール通知の自動化」をご参照ください。

  1. Make で Webhook に Field Maps アプリを追加します。
  2. [Watch Features] トリガー モジュールを選択します。

    このモジュールは、フィーチャが作成、更新、削除されるたびにシナリオを実行します。

    シナリオ アイコンの色が変化し、Field Maps モジュールを構成するためのウィンドウが表示されます。

  3. [Add] をクリックして、Webhook の名前を入力します。
    これは、Webhook を使用するプロジェクトまたはマップに固有の名前でなければなりません。
  4. このモジュールを Make で初めて使用する場合は、ArcGIS 組織サイトへの接続を設定してください。
    注意:

    [Make an API Call] モジュール用に接続を作成した場合は、その接続を [Watch Features] モジュール用に再利用できます。

  5. [Feature Layer] で、接続先の ArcGIS 組織サイトから、編集可能なフィーチャ レイヤーを選択します。
  6. 次の中から、Webhoook に含める 1 つ以上の [Trigger events] を選択します。
    • [Features Created] - フィーチャが作成されたときにシナリオをトリガーします。
    • [Features Updated] - フィーチャが更新されたときにシナリオをトリガーします。
    • [Features Deleted] - フィーチャが削除されたときにシナリオをトリガーします。
  7. [保存] をクリックします。
  8. [OK] をクリックします。

    Field Maps モジュールが構成されます。

  9. [Tools] セクションの [Flow Control] をクリックします。
  10. オプションのリストから、[Iterator] を選択します。

    [Iterator] モジュールは自動的に Field Maps モジュールに接続されます。 このため、複数のフィーチャが同時に返された場合に、Webhook はフィーチャの配列を反復処理できます。

  11. [Iterator] モジュールを選択し、[Array] テキスト ボックスをクリックします。
  12. [ArcGIS Field Maps - Watch Feature Service] のドロップダウン メニューから、次の配列の中から 1 つを検索して選択します。
    • [Adds []] - フィーチャが作成された場合
    • [Updates []] - フィーチャが更新された場合
    • [Delete IDs []] - フィーチャが削除された場合
  13. [OK] をクリックします。
  14. [Iterator] モジュールの横の [Add another module] ボタンをクリックします。
  15. 使用する電子メール サービス (Microsoft 365 メールなど) を検索し、そのアプリを選択します。
  16. [Create and Send a Message] アクションを選択します。
  17. このモジュールを Make で初めて使用する場合は、[Add] をクリックして電子メール アカウントへの接続を設定してください。 接続タイプを選択し、アカウントにサイン インします。

    これを行う必要があるのは 1 回だけです。 今後使用するために、Make で接続が保存されます。

  18. [Subject][Body Content] のテキストを電子メールに追加します。

    マッピングを使用すると、レイヤーの属性を含めることでテキスト ボックスを書式設定できます。 マッピングを使用する場合は、[Iterator] モジュールからレイヤー属性を追加します。

  19. 受信者の電子メール アドレスを追加します。

    これは、トリガーされた電子メールの送信先になる電子メール アドレスです。

  20. [OK] をクリックします。
  21. [Save] をクリックして、シナリオを保存します。

    必要に応じて、[Run once] をクリックして Webhook をテストします。 [Run once] をクリック後に、Field Maps を開いて、フィーチャを収集、更新、または削除します。 受信者がメールを受信したことを確認します。

  22. [Scheduling] 切り替えボタンを使用して、シナリオをアクティブ化します。 スケジュールを [Immediately] に設定して、フィーチャが更新されるたびにシナリオが実行されるようにします。
注意:

Make のサポートについては、Make のドキュメントをご参照ください。

Field Maps アプリによる API の呼び出し

Field Maps アプリを使用すると、ArcGIS Web サービスに対する API リクエストを作成できます。 たとえば、ユーザーが Field Maps で新しいフィーチャを収集した場合は、[Make an API Call] モジュールを使用して、そのユーザーの電子メール アドレスを取得し、そのアドレスに電子メールを送信できます。 また、このモジュールを使用して、フィーチャ レイヤーのクエリを実行し、Workforce の割り当てなどのフィーチャを作成することもできます Field Maps アプリを使用して、API リクエストを作成する方法の例を次に示します。

共有 API に対するリクエストの作成

共有 API は、組織のユーザー、グループ、コンテンツに関する情報のリクエストを可能にします。 共有 API を使用すれば、ユーザー情報を検索したり、マップを探したり、コンテンツを表示したりできます。 Field Maps アプリを Webhook で使用して、共有 API から情報を取得できます。 たとえば、検査を完了したばかりのユーザーに電子メールを送信するには、Field Maps アプリを使用して、それらのユーザーの電子メール アドレスを取得できます。 共有 API からユーザーの情報を取得するように Field Maps アプリを構成するには、次の手順を実行します。

  1. Make で Webhook に Field Maps アプリを追加します。
  2. [Make an API Call] アクション モジュールを選択します。

    シナリオ アイコンの色が変化し、Field Maps モジュールを構成するためのウィンドウが表示されます。

  3. このモジュールを Make で初めて使用する場合は、ArcGIS 組織サイトへの接続を設定してください。
    注意:

    [Watch Features] モジュール用に接続を作成した場合は、[Make an API Call] モジュールで共有 API に接続するためにその接続を再利用できます。

  4. [URL] で、共有 API へのパスを入力します。

    この例では、次のパスを使用して、ユーザーの情報にアクセスします。

    /sharing/rest/community/<username>
    詳細については、「共有 API の概要」をご参照ください。

  5. [Method] で、[GET] を選択します。
  6. [Query String] で、[Add item] をクリックします。
  7. 次の入力を指定します。
    1. [Key] - f
    2. [Value] - json
  8. [OK] をクリックします。
  9. [Save] をクリックして、シナリオを保存します。

トリガーされると、Field Maps モジュールが共有 API からユーザーの情報を取得します。

注意:

Make のサポートについては、Make のドキュメントをご参照ください。

フィーチャ レイヤーのクエリを実行するリクエストの作成

フィーチャ レイヤーのクエリを実行する API リクエストを作成できます。 たとえば、1 日の終了時のサマリーを電子メールで自分自身に送信したい場合があります。 1 日の検査における統計情報のクエリを実行して、それらの情報を電子メールに含めるように Field Maps を設定できます。 フィーチャ レイヤーのクエリを実行するように Field Maps アプリを構成するには、次の手順を実行します。

  1. Make で Webhook に Field Maps アプリを追加します。
  2. [Make an API Call] アクション モジュールを選択します。

    シナリオ アイコンの色が変化し、Field Maps モジュールを構成するためのウィンドウが表示されます。

  3. このモジュールを Make で初めて使用する場合は、ArcGIS 組織サイトへの接続を設定してください。
  4. [URL] で、クエリの対象となるフィーチャ サービスへのパスを指定します。

    /<org-id>/arcgis/rest/services/<layer-name>/FeatureServer/<layer-id>/query

    詳細については、「クエリ (フィーチャ サービス/レイヤー)」をご参照ください。
  5. [Method] で、[GET] を選択します。
  6. [Query String] アイテムを追加します。
    1. [Query String] で、[Add item] をクリックして、次の入力を指定します。

      1. [Key] - f
      2. [Value] - json

    2. [追加] をクリックします。
    3. [Add item] をクリックして、次の入力を指定します。

      1. [Key] - where
      2. [Value] - 1=1

    4. [追加] をクリックします。
    5. [Add item] をクリックして、次の入力を指定します。

      1. [Key] - outFields
      2. [Value] - *

    6. [追加] をクリックします。
  7. [OK] をクリックします。
  8. [Save] をクリックして、シナリオを保存します。

トリガーされると、Field Maps モジュールが、指定したパラメーターに基づいてフィーチャ レイヤーのクエリを実行します。

注意:

Make のサポートについては、Make のドキュメントをご参照ください。

フィーチャを作成するリクエストの作成

フィーチャを作成する API リクエストを作成できます。 たとえば、Field Maps で消火栓の点検が完了したら、ArcGIS Workforce で割り当てフィーチャの作成をトリガーできます。 フィーチャをレイヤーに追加するように Field Maps アプリを構成するには、次の手順を実行します。

  1. Make で Webhook に Field Maps アプリを追加します。
  2. [Make an API Call] アクション モジュールを選択します。

    シナリオ アイコンの色が変化し、Field Maps モジュールを構成するためのウィンドウが表示されます。

  3. このモジュールを Make で初めて使用する場合は、ArcGIS 組織サイトへの接続を設定してください。
  4. [URL] で、フィーチャの追加先となるフィーチャ サービスへのパスを指定します。

    /<org-id>/arcgis/rest/services/<layer-name>/FeatureServer/<layer-id>/applyEdits

    詳細については、「編集の適用 (フィーチャ サービス/レイヤー)」をご参照ください。
  5. [Method] で、[POST] を選択します。
  6. [Headers] で、[Edit] をクリックします。
  7. [Value] を「application/x-www-form-urlencoded」に変更します。
  8. [保存] をクリックします。
  9. [Body] で、「f=json&adds=[<json オブジェクト>]」を入力します。

    <json-object> の値は、フィーチャを表す JSON 文字列である必要があります。 使用する正確な仕様は、レイヤーによって異なります。 詳細については、「フィーチャ オブジェクト」をご参照ください。

  10. [OK] をクリックします。
  11. [Save] をクリックして、シナリオを保存します。

トリガーされると、Field Maps モジュールが、フィーチャをレイヤーに追加します。

注意:

Make のサポートについては、Make のドキュメントをご参照ください。

ArcGIS API for Python の使用

ArcGIS API for Python を使用して、Field Maps のタスクを自動化およびスクリプト化できます。 Forms モジュールを使用すると、データ収集に使用されるフォームを作成および編集でき、GitHubField Maps スクリプト リポジトリ (スクリプトやノートブックなど) にアクセスできます。 これらのスクリプトとノートブックを使用すれば、マップ間でのフォームのコピーや、フィーチャ レイヤーからのアタッチメントのダウンロードなどのタスクを自動化できます。

注意:

Forms モジュールを使用するには、ArcGIS API for Python 1.9.0 以降を使用する必要があります。