はじめに
これまで過去2回にわたって kintone と ArcGIS の連携について紹介してきました。第3弾となる今回は ArcGIS Field Maps という現場でデータ収集が行えるモバイルアプリを使用して、kintone と連携を試してみましたので、具体的な連携方法について紹介していきます。
ArcGIS Field Maps は、マップ ベースでの現地調査業務に特化したアプリで、現場作業員がデータ収集時に活用できるマップ操作やデータ更新、リアルタイムの位置共有といった機能を兼ね備えたオールインワン アプリです。
ArcGIS Filed Maps の使い方や機能などの詳細については、ESRIジャパンの ArcGIS ブログでも公開していますので、ご参照ください。
連携の流れ
連携で使用した kintone アプリは、kintone が提供している業務アプリの不動産物件マスタを使用しました。不動産物件マスタは、前回の記事でも紹介した 不動産マスタ_ArcGIS 連携アプリを使用しました。
ArcGIS Field Maps を使用して、現地で不動産物件情報の登録や編集などを行い、その結果を kintone 側にも反映させるという流れになります。データ仕様に関しては、kintone でデータを削除する場合にレコード番号が必要になるなど、kintone 側でもデータ管理ができるように不動産マスタ_ArcGIS 連携で使用しているデータをそのまま使用しました。データは事前に ArcGIS Field Maps で使用できるようにフィーチャ レイヤーの作成などを行う必要があります。今回は不動産物件という名前でフィーチャ レイヤーを作成しました。
ArcGIS Field Maps と kintone との連携は、Make を使用しました。Make は、サードパーティ製のワークフロー自動化サービスです。Web アプリケーションやサービスを統合するためのツールで、プログラミングができない人でも使いやすいように設計されており、ビジネスプロセスの自動化やタスクの自動化を行うことができます。連携として、Make には、以下のような様々なテンプレートが用意されており、例えば、Google スプレッドシートにデータを追加したら、Slack に通知する、Trello のカードが更新されたら、メールで通知する、などの連携を簡単に実現することができます。
また、ArcGIS Field Maps を利用したインテグレーションやテンプレートなど多く用意されています。
ArcGIS Field Maps では、Make を通じて Webhook をサポートしています。 Webhook は、アプリケーションが他のアプリケーションに、イベントによって発生する情報を提供することを可能にします。Webhook の一般的な使用方法は、電子メールや SMS による通知の送信、ソーシャルメディアへのメッセージ投稿、スプレッドシートへのレコード自動書き込み、エンタープライズ データベースの更新などです。Make に ArcGIS Field Maps アプリが組み込まれることで、ユーザーは ArcGIS Field Maps を Webhook ワークフローに統合することができます。ArcGIS Field Maps では、Webhook をトリガーにする、API を呼び出すといった方法での連携利用が可能です。
※ Make の使い方の QA などは、サポート対象外となります。
ArcGIS Field Maps とkintone との連携
ArcGIS Field Maps とkintone との連携では、Webhook をトリガーとして使用しました。具体的には、ArcGIS Field Maps モバイルアプリでフィーチャを作成、更新、削除されたときに Webhook によって電子メール通知を送信するなど、別のアクションをトリガーすることができ、このトリガーによって kintone 側にデータの作成や更新、削除を行っています。以下の図が Make によって作成した ArcGIS Filed Maps と kintone の連携の完成形になります。
ここからは、各設定について簡単に説明していきます。詳細については、ArcGIS Field Maps リソースの ArcGIS Field Maps の自動化や Make のヘルプや API リファレンスなどをご参照ください。
ArcGIS Field Maps の設定では、Make で Webhook にField Maps アプリを追加します。[Watch Features] トリガーモジュールを選択して Webhook に設定するため ArcGIS Online 組織サイトへ接続して、[Feature Layer] で、接続の ArcGIS Online から編集可能なフィーチャ レイヤーを選択します。ここでは不動産物件のフィーチャ レイヤーを選択しています。
次に Webhook に含める [Trigger events] を選択します。[Trigger events] は、以下のシナリオがあり、ここではすべて選択しています。
- [Features Created] - フィーチャが作成されたときにシナリオをトリガーします。
- [Features Updated] - フィーチャが更新されたときにシナリオをトリガーします。
- [Features Deleted] - フィーチャが削除されたときにシナリオをトリガーします。
最後に [Save] をクリックして、[OK] をクリックします。これで、Filed Maps モジュールが構成されます。
続いて、[Tools] セクションの [Flow Control] をクリックして、オプションのリストから、[Iterator] を選択します。[Iterator] モジュールは自動的に Field Maps モジュールに接続されます。 このため、複数のフィーチャが同時に返された場合に、Webhook はフィーチャの配列を反復処理できます。
[Iterator] モジュールを選択し、[Array] テキスト ボックスをクリックします。[ArcGIS Field Maps - Watch Feature Service] のドロップダウン メニューで、次の配列の中から 1 つ以上を検索して選択します。
- [Adds []] - フィーチャが作成された場合
- [Updates []] - フィーチャが更新された場合
- [Delete IDs []] - フィーチャが削除された場合
ここでは、すべて選択しています。
そして、[Tools] セクションの [Flow Control] をクリックして、オプションのリストから、[Router] を選択します。条件分岐用として [Router] を追加しています。データの登録・更新・削除の条件で設定しています。
分岐の条件としては、
- {{2.edits.`0`.features.adds[].attributes.GlobalID}} - フィーチャが作成された場合
- {{2.edits.`0`.features.updates[].attributes.GlobalID}} - フィーチャが更新された場合
- {{2.edits.`0`.features.deleteIds[]}} - フィーチャが削除された場合
以下のように 3 つの条件を設定します。
最後に kintone 側にデータを反映させるための連携設定を行います。
Make では、kintone モジュールも用意されており、目的の機能に応じて設定することが可能です。データの登録では、Create a Record を使用して、App ID は kintone アプリの不動産マスタ_ArcGIS 連携を選択します。Record の各 Value には、フィーチャ レイヤーの属性情報を指定します。
データの更新では、Update a Record を使用して、App ID は kintone アプリの不動産マスタ_ArcGIS 連携を選択します。Update key としてユニークなIDが必要となるため、ここでは、Global ID を使用しました。Record の各 Value には、フィーチャ レイヤーの属性情報を指定します。
データ削除の場合は、kintone 側に登録されている Record ID を使用して削除する必要があるため、削除対象のレコード番号を取得する必要があります。そのため、Search Records を使用して、GlobalID をキーにしてレコード番号を取得します。そして、取得したレコード番号を Delete a Record で使用して、データの削除を行います。
すべての設定が完了したら [Save] をクリックして、シナリオを保存します。
必要に応じて、[Run once] をクリックして Webhook をテストします。 [Run once] をクリック後に、Field Maps を開いて、フィーチャを作成、更新、または削除します。 kintone の不動産マスタ_ArcGIS 連携アプリでフィーチャが反映されているかを確認します。
[Scheduling] 切り替えボタンを使用して、シナリオをアクティブ化します。スケジュールを [Immediately] に設定して、フィーチャが更新されるたびにシナリオが実行されるようにします。
ArcGIS Field Maps と kintone で確認
以下は、ArcGIS Field Maps の画面操作の様子です。以下のように現地で不動産物件の情報の登録や更新などを行います。
ArcGIS Field Maps で不動産物件の情報を更新後、しばらく経過すると kintone の不動産マスタ_ArcGIS 連携アプリにて反映されます。反映されれば以下の画面のように確認することができます。
まとめ
今回は、以前に紹介した不動産物件マスタのアプリと ArcGIS Field Maps との連携にフォーカスして紹介しました。Make を使用することで、開発することなく、API 連携ができるのは便利だと思いました。ただ、連携先の API の仕様などの理解をしておくと、Make での設定などはスムーズにできると思います。
今回の Make での連携は一例ですが、非常に多くのパターンの連携ができるようになっています。ArcGIS Field Maps の Field Maps の自動化や ArcGIS Field Maps と電子メール通知の自動化については、Esri のブログやビデオなどでも紹介していますので、ぜひ、お試しいただければと思います。
■関連リンク