FMEリファレンス > カスタムトランスフォーマー
最終更新: 2022-1-6 | FME 2021.2.0.1
概要
カスタムトランスフォーマー (Custom Transformers) は、複数のトランスフォーマーとそれらの間の接続からなるデータフローをひとつのトランスフォーマーとして定義したものです。
FME Hub で公開されているカスタムトランスフォーマーや他のユーザーから提供されたカスタムトランスフォーマーは、標準のトランスフォーマーと同じ方法によって任意のワークスペースに追加して利用することができます。
カスタムトランスフォーマーは自分で作成することもできます。特に次のようなケースでカスタムトランスフォーマーを作成することは、ワークスペースの開発効率や保守性を向上させるうえで効果的です。
- 大規模なデータフローをいくつかの部分に分割し、各部分をそれぞれカスタムトランスフォーマーとして作成する。
- ワークスペース内の複数の場所で共通する処理がある場合、そのデータフローをカスタムトランスフォーマーとして1個所でまとめて定義する。
- 汎用的なデータフローをあらかじめカスタムトランスフォーマーとして定義しておき、複数のワークスペースで利用する。
作成したカスタムトランスフォーマーはワークスペース (*.fmw) から独立したトランスフォーマー定義ファイル (*.fmx) に保存 (エクスポート) することもでき、それによって他のワークスペースでの再利用や他のユーザーへの提供が容易になります。
組込型 (Embedded) とリンク型 (Linked)
カスタムトランスフォーマーの使い方には組込型 (Embedded) とリンク型 (Linked) の2種類があり、それらの違いは次のとおりです。
組込型 (Embedded) カスタムトランスフォーマー
- ワークスペースに追加したときに、トランスフォーマー定義ファイル (*.fmx) からその定義がコピーされてワークスペースに組み込まれ、ワークスペースファイル (*.fmw) を保存したときにその一部として一緒に保存される。
- 組み込んだ後のカスタムトランスフォーマーの処理内容はワークスペース内で編集して変更することができ、変更結果はそのワークスペースのみに反映される (同じカスタムトランスフォーマーを使用している他のワークスペースに影響を及ぼすことはない)。
リンク型 (Linked) カスタムトランスフォーマー
- ワークスペースに追加してもその定義はワークスペースにコピーされず、ワークスペースを実行するときに FME がトランスフォーマー定義ファイル (*.fmx) を参照してそのデータフローを構成する。
- カスタムトランスフォーマーの処理内容は、それを参照するワークスペース内で編集することはできない。
キャンバス上では次のように色が異なりますが、ワークスペースへの追加や他のオブジェクトとの接続などの基本的な操作方法は、どちらも標準のトランスフォーマーと同じです。
編集中のワークスペースでカスタムトランスフォーマーを作成している間、トランスフォーマー定義ファイル (*.fmx) に保存 (エクスポート) するまでは、そのワークスペースに含まれる組込型として取り扱われます。
エクスポートしたカスタムトランスフォーマーをワークスペースに追加したときに組込型とリンク型のどちらになるか、及び、ワークスペースに追加した後で組込型とリンク型の間の変更が可能かどうかは、そのカスタムトランスフォーマーの定義における Insert Mode パラメーターの設定によって異なります。Insert Mode はエクスポートするときに設定しますが、編集する際に変更することもできます。
参照: カスタムトランスフォーマーのエクスポート
ただし、ループ処理を行うカスタムトランスフォーマーでグループベーストランスフォーマー (Group-Based Transformers) を含んでいるものについては、常にリンク型として使用しなければならないという制約があります。
トランスフォーマー定義ファイル (*.fmx) を編集した場合、そのカスタムトランスフォーマーの同じバージョンをリンク型として使用している全ての既存のワークスペースにも編集結果が反映されます。リンク型として使用されているカスタムトランスフォーマーの *.fmx ファイルを編集するときは、既存のワークスペースへの影響も考慮してバージョン管理を適切に行う必要があることに留意してください。
カスタムトランスフォーマーの利用
FME Hub トランスフォーマー
FME Hub で公開されているカスタムトランスフォーマーは、Transformer Gallery の FME Hub フォルダ以下で、標準のトランスフォーマーのカテゴリに準じて分類されたカテゴリ別のサブフォルダに分類・格納されています。
これらは標準のトランスフォーマーと同じ方法で任意のワークスペースに追加することができます。ただし、Workbench で初めてワークスペースに追加する操作をした時に、そのトランスフォーマー定義ファイル (*.fmx) を自動的にウェブサーバーからダウンロード・インストールする仕組みなので、少なくとも初回追加時にはインターネットに接続している必要があります。
FME Hub トランスフォーマー (パスワードで保護されているものを除く) は、ワークスペースに追加した後、右クリック > Edit によって編集用タブで開いて内容を見ることができるので、カスタムトランスフォーマー作成の参考例としても利用できます。
トランスフォーマー定義ファイル (*.fmx) のインストール
Safe Software社のユーザーサポートサイトからダウンロードした、あるいは、他のユーザーから提供されたトランスフォーマー定義ファイル (*.fmx) は、Windows エクスプローラーでファイル名をダブルクリックすることによってインストールできます。
トランスフォーマー定義ファイル (*.fmx) を次のどちらか一方のフォルダに保存した場合は、インストールの操作を省略できます。
C:\Users\<ユーザー名>\AppData\Roaming\Safe Software\FME\FME Store\Transformers
C:\Users\<ユーザー名>\Documents\FME\Transformers
インストールしたカスタムトランスフォーマーは、それ以降に起動する Workbench の Transformer Gallery に表示され、標準のトランスフォーマーと同じ方法で任意のワークスペースに追加することができます。
カスタムトランスフォーマーの操作
Transformer Gallery – トランスフォーマー定義ファイル (*.fmx)
インストールまたはエクスポートしたカスタムトランスフォーマーについては、All フォルダ内 または Categorized フォルダ以下のサブフォルダ内のトランスフォーマー名を右クリックして表示されるメニューにより、次の操作ができます。
これらの操作はトランスフォーマー定義ファイル (*.fmx) に対するものであり、そのカスタムトランスフォーマーを「組込型」として使用しているワークスペースに組み込まれているトランスフォーマー定義には影響を与えません。
- Insert:ワークスペースにカスタムトランスフォーマーが追加される。
- Edit: 編集する。別の Workbench が起動してトランスフォーマー定義ファイル (*.fmx) が開く。
- Delete Definition: トランスフォーマー定義ファイル (*.fmx) を削除してアンインストールする。
- Open Containing Folder: Windows エクスプローラーでトランスフォーマー定義ファイル (*.fmx) が保存されているフォルダを開く。
- Help:ヘルプが表示される。
Transformer Gallery – ワークスペースに追加済みの組込型カスタムトランスフォーマー
編集中のワークスペースで「組込型」として使用されているカスタムトランスフォーマーについては、Embedded Transformers フォルダ内のトランスフォーマー名を右クリックして表示されるメニューにより、次の操作ができます。
これらの操作は編集中のワークスペースに組み込み済みのトランスフォーマー定義に対するものであり、トランスフォーマー定義ファイル (*.fmx) には影響を与えません。
- Insert:ワークスペースにカスタムトランスフォーマーが追加される。
- Edit: 編集する。現在の Workbench のキャンバスに編集用のタブが追加 (すでにそのタブがある場合は前面に表示) されます。
- Properties: Transformer Parameters 画面を開く (名前、説明、使用方法などのプロパティの編集ができます)。
- Delete Definition: 編集中のワークスペースからこのトランスフォーマーの定義を削除する。
キャンバス
ワークスペースに追加したカスタムトランスフォーマーは、標準のトランスフォーマーと同じ操作のほかに、キャンバス上でそのトランスフォーマーを右クリックして表示されるメニューにより、次の操作ができます。
- Edit: 編集する。組込型の場合は現在の Workbench のキャンバスに編集用のタブが追加 (すでにそのタブがある場合は前面に表示) され、リンク型の場合は別の Workbench が起動してトランスフォーマー定義ファイル (*.fmx) が開きます。