この投稿は、ArcGIS Enterprise 10.8.1 と ArcGIS Data Interoperability エクステンションを活用して、組織内で Spatial ETL web tools を共有する方法についてです。 この「高度な」側面は、FME package によって有効化された web platform への web connection を使ってデータを移動し、さらに楽しみのために webhook 通知ステップを加えることです。<\/P>
<\/P>
UC 2020 のオンデマンド技術ワークショップでは、web service によるフォーマット変換を実行する web tool の作成方法を示しました。これは Data Interoperability と ArcGIS Enterprise の共有機能を組み合わせた古典的なユースケースです。 しかし Data Interoperability はフォーマット変換ツールから進化し、ウェブ全体での ノーコード統合の汎用ソリューションとなっていますので、この投稿では非ネイティブデータを web platform に渡す web tool の構築方法を示します。 私は偶然にも Microsoft Access の table XY event data を読み取り、ArcGIS Online hosted features, に書き込んでいますが、行間を読めばデータはどのクラウドプラットフォームやアプリにも同様に簡単に送れることが理解できるでしょう。 ある意味で、データをウェブに移動することは Spatial ETL ツールにより適しています。なぜなら FME のリーダーとライターはコンテナやワークスペース(例えばジオデータベース)と連携しますが、それはクライアントに返せる有効なジオプロセシングサービスの出力パラメーターではないからです。 ファイルジオデータベースの出力を圧縮して送るなどの方法もありますが、もし web platform が利用可能ならそれを使うべきであり、データはローカルファイルよりもウェブ上でより有用です。<\/P>
<\/P>
Web tools はジオプロセシングサービスの新しい呼び名です。 履歴アイテムとスタンドアロンサーバーへの管理接続を使ったジオプロセシングサービス公開の元々のワークフローは ArcGIS Pro 2.6 でも利用可能ですが、ここではポータルに web tool を共有する新しいパラダイムを示します。 Spatial ETL ツールは他のツールと同様に履歴アイテムから web tool として共有しますが、次の2つの特別な考慮事項があります:<\/P>
<\/P>
- Spatial ETL の元となる FME workspace はツールに埋め込まれており、外部ではないこと<\/LI>
- 入力パラメーターは Filename (Existing)、Text または Choice のような単純な型として定義されていること<\/LI>
<\/UL>
<\/P>
最初の条件は公開時のツールパッケージングに役立ち、2番目は公開されたツールのパラメーター動作をシンプルに保つ助けになります。 これらの簡素化を達成するために作成時に ETL ツールをリファクタリングする必要があるかもしれません。 例えばここでは Microsoft Access 入力パラメーターの前後バージョンを示しています。 デフォルト設定では複数ファイル選択が可能で多くのファイルタイプ拡張子が選べますが、私が望む動作は .mdb と .accdb 拡張子のみ許可された単一ファイル選択です。<\/P>
<\/P>
デフォルト Access Database Reader パラメーター<\/STRONG><\/P>
<\/P>
<\/P>
修正済み Access Database Reader パラメーター<\/STRONG><\/P>
<\/P>
<\/P>
<\/P>
概念的にもグラフィカルにも私の ETL ツールはシンプルです。 私のシナリオは Fako Mining のために働いており、彼らは Access アプリでボーリング計画を行い、ボーリング位置を緯度・経度としてテーブルに記録しています。 下記スクリーンキャプチャをクリックして拡大するか、このブログ添付ファイルから抽出したツールを編集してください。 データフローは以下の通りです:<\/P>
<\/P>
XY 値フィールドを持つ Access データベーステーブルを読み取る<\/LI>
ArcGIS Online にホストされたポイントフィーチャレイヤーを書き込み(または置換)する<\/LI>
Microsoft Teams チャンネルに新しいデータが利用可能であることを通知する webhook をトリガーする<\/LI>
<\/UL>
<\/P>
ワークスペースには3つのブックマークがあります。青色では既存のフィーチャサービスが削除されます(処理日付名でサービスを作成しています)、緑色では Access データが読み取られ圧縮されたファイルジオデータベース内のポイントフィーチャクラスに変換されます。そして茶色ではファイルジオデータベースが公開されグループと共有され、最後に webhook が送信されます。 コンセプトとしては Online メンバーが Teams チャンネルのメンバーであり、データ利用可能通知を受け取ります。 ワークスペースを検査しながら、この処理をスクリプト化するとどれほどコード量になるか考えてみてください...<\/P>
<\/P>
<\/P>
<\/P>
この中核機能はArcGISOnlineConnector トランスフォーマーであり、圧縮されたファイルジオデータベースの公開と共有作業を行います。 これは FME Hub ダウンロード でありサーバー上でプロビジョニングされる必要があります。またサーバー上でプロビジョニングされる必要がある web connection を使用します。<\/P>
<\/P>
まずサーバーをセットアップします。 ArcGIS Data Interoperability for Server をインストールしライセンス認証してください。 サーバーがポータルとフェデレーションされていること、ポータルとサーバー用証明書が生成・インポートされていることなども確認してください。 サーバーには ArcGIS Data Interoperability for Pro をインストールしないでください。 ライセンスやツールエラーになります。<\/P>
<\/P>
Data Interoperability がインストールされたら、ArcGIS Service ローカルアカウントユーザー(デフォルト名は 'arcgis') としてサーバーにログオンし、次のパスで Workbench アプリが開けることを確認してください:<\/P>
<\/P>
C:\Program Files\ESRI\Data Interoperability\Data Interoperability AO11\fmeworkbench.exe<\StronG><\p>
<\p>
\\<machinename>\Users\arcgis\AppData\Roaming\Safe Software\FME<\strong><\p>
<\p>
作成マシンから公開者としてこの共有フォルダーを開きます。私のノートパソコン上では以下のように見えます:<\p>
<\p>
<\p>
<\p>
あなたの共有内ファイルが私と異なっていても気にしないでください。そのうち揃います。<\p>
<\p>
次に ArcGISOnlineConnector 用 FME Package とそれが使用する web connection をサーバーへプロビジョニングします。最新リリースパッケージこちらからダウンロード &nbps;
Workbench を開き FME Tools ダイアログ内 Default Paths ビューも開きます。そこには Web connections が保存されているフォルダー(Data Path)が表示されています。この Data Path は後ほど一時的に変更します。

Web およびデータベース接続が共有される一例としてこちらの記事があります。この方法では所有者が Data Path から fme_connections.data と fme_publicKey.jceks ファイルを共有フォルダー(今回の場合上記共有先)へコピーし、その後 Data Path を新しい場所へリダイレクトし FME Tools の Web Connections ビューから該当接続を公開設定します。その後 Data Path は元の場所へ戻します。ただし arcgis サーバーユーザーにはコピー先への書き込み権限が必要です。またサーバーがネットワーク外の場合は資格情報共有用エクスポート/インポート方式の方が簡単かもしれません。
&nbps;
Tools>Web Connections<\/STRONG> は ArcGIS Online へのウェブ接続を表示します。 ウェブ接続を作成し、ArcGISOnlineConnector を使用して contents フォルダーの内容を一覧表示するテストワークスペースを作成します - ブログのダウンロードには例として TestWebConnection.fmw<\/STRONG> が含まれています。 すべてが正常に動作すれば、サーバーは準備完了です!<\/P>
<P> <\/P>
<P>Spatial ETL ツールをツールとして実行し、履歴アイテムを作成します。 次に履歴アイテムを右クリックしてウェブツールとして共有します。 私の経験は以下の通りです:<\/P>
<P> <\/P>
<P><IMG style="display: block; margin-left: auto; margin-right: auto;" class="j-img-centered jive-image image-8" src="https:\/\/us.v-cdn.net\/6038851\/uploads\/legacyfs\/online\/503874_pastedImage_6.png" border="0" \/><\/P>
<P> <\/P>
<P>アップロードを許可し、非同期に設定し、Info<\/STRONG> メッセージレベルを設定します。これによりワークスペース処理メッセージが表示されます。<\/P>
<P> <\/P>
<P><IMG style="display: block; margin-left: auto; margin-right: auto;" class="image-9 j-img-centered jive-image" src="https:\/\/us.v-cdn.net\/6038851\/uploads\/legacyfs\/online\/503875_pastedImage_7.png" border="0" \/><\/P>
<P> <\/P>
<P>ツールパラメーターの編集を忘れないでください - ペンアイコンをクリックします。 "定着" させるためにこれを2回行う必要があるかもしれません。<\/P>
<P> <\/P>
<P><IMG style="display: block; margin-left: auto; margin-right: auto;" class="j-img-centered jive-image image-10" src="https:\/\/us.v-cdn.net\/6038851\/uploads\/legacyfs\/online\/503876_pastedImage_8.png" border="0" \/><\/P>
<P> <\/P>
<P>警告付きで解析されますが、これは Spatial ETL ツールでは正常な動作です。<\/P>
<P> <\/P>
<P><IMG style="display: block; margin-left: auto; margin-right: auto;" class="image-11 j-img-centered jive-image" src="https:\/\/us.v-cdn.net\/6038851\/uploads\/legacyfs\/online\/503878_pastedImage_9.png" border="0" \/><\/P>
<P> <\/P>
<P>ウェブツール公開後、ポータルコンテンツのカタログペインを開き、ツールを実行します。 私のツールは座標系処理に関する警告を出しますが、それでも成功とみなします。 設計上、ワークスペースにライターがないため出力としてフィーチャは表示されません。私のデータは ArcGISOnlineConnector のおかげで ArcGIS Online に送られました。 ログは中間処理が期待通りに動作したことを示しています。</P>
<p> </p>
<p><img style="display: block;margin-left:auto;margin-right:auto" class="image-12 j-img-centered jive-image" src="https://us.v-cdn.net/6038851/uploads/legacyfs/online/503960_pastedImage_1.png" border="0" /></p>
<p> </p>
<p>Teams は webhook がトリガーされたことを示しており、これはウェブツール処理の最後の部分であり、サービス URL を提供しているので 何か が存在しています.... HTTPCaller トランスフォーマー内に何があるか見てください。私がどのようにして webhook ペイロードに画像(Online の公開画像アイテム)を入れたかがわかります。</p>
<p> </p>
<p><img style="display:block;margin-left:auto;margin-right:auto" class="j-img-centered jive-image image-14" src="https://us.v-cdn.net/6038851/uploads/legacyfs/online/503962_pastedImage_3.png" border="0" /></p>
<p> </p>
<p>bingo、私のデータがマップに読み込まれました!</p>
<p> </p>
<p><img style="display:block;margin-left:auto;margin-right:auto" class="image-13 j-img-centered jive-image" src="https://us.v-cdn.net/6038851/uploads/legacyfs/online/503961_pastedImage_2.png" border="0" /></p>
<p> </p>
<p>これが往復の流れです。私の組織内の誰でも使えるウェブツールで Access データベーステーブルからホストされたフィーチャレイヤーを公開でき、自動通知も付加されています。</p>