SFTP データをFastAPPに連携して活用

SFTP をクラウドプラットフォームのFastAPP からデータ連携して、データソースとする方法。

加藤龍彦
ウェブデベロッパー

最終更新日:2018-03-01
sftp ロゴ

CData

jdbc ロゴ画像
FastAPP ロゴ

こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。

CData JDBC Driver for SFTP は、JDBC 標準をインプリメントし、BI ツールからIDE まで幅広いアプリケーションでSFTP データ への接続を提供します。この記事では、クラウドプラットフォームのFastAPP からSFTP に接続し、一覧表示する方法を説明します。

完成イメージ

以下のようにFastAPPの一覧画面でSFTPから取得したデータを表示するPluginを作成します。

fastapp

FastAPP 用Plugin 作成

まず、FastAPP へ追加するPlugin プログラムを作成します

  1. Eclipse を立ち上げ、FastAPP 用Plugin プログラムを記述します。
  2. fastapp
  3. データ一覧を表示するためのサンプルコードは以下の通りです。必要に応じて取得・表示項目などを変更します。FastAPP 用Plugin の詳しい作成方法は、以下のHPから問い合わせにて確認できます。

    https://www.scsk.jp/product/contact/index.html?sname=FastAPP
  4. package jp.plugin.demo; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import jp.scsk.fastapp.core.addon.support.CommandProcessor; import jp.scsk.fastapp.core.addon.support.CommandValues; import jp.scsk.fastapp.core.addon.support.ValidationException; public class ListUpDynamicsData implements CommandProcessor { private static final String[] ARGNAMES = {"プラグイン引数文字列サンプル"}; @Override public String[] getArguments() { // TODO 自動生成されたメソッド・スタブ return ARGNAMES; } @Override public String getProcessName() { // TODO 自動生成されたメソッド・スタブ return "一覧取得Plugin"; } @Override public String[] getTargetVersion() { // TODO 自動生成されたメソッド・スタブ return new String[] {"3.0.0","3.*.*"}; } @Override public void process(CommandValues arg0) throws ValidationException { // TODO 自動生成されたメソッド・スタブ try { Class.forName("cdata.jdbc.sftp.SFTPDriver"); Connection conn = DriverManager.getConnection("jdbc:sftp:RemoteHost=MyFTPServer;"); java.sql.Statement stat = conn.createStatement(); stat.execute("select id,name,telephone1,address1_city,websiteurl from Account"); ResultSet rs = stat.getResultSet(); while(rs.next()) { arg0.setFormValue("DetailData1", "id", rs.getRow(),rs.getString("id")); arg0.setFormValue("DetailData1", "name", rs.getRow(),rs.getString("name")); arg0.setFormValue("DetailData1", "telephone1", rs.getRow(),rs.getString("telephone1")); arg0.setFormValue("DetailData1", "address1_city", rs.getRow(),rs.getString("address1_city")); arg0.setFormValue("DetailData1", "websiteurl", rs.getRow(),rs.getString("websiteurl")); } }catch(Exception ex) { // Error Handling } } }
  5. クラス名および接続文字列は以下を参考に記述します。
    ドライバ:cdata.jdbc.sftp.SFTPDriver
    URL: jdbc:sftp: に続けてセミコロン区切りで接続プロパティを入力します。
    一般的なJDBC URL は次の通りです。
    jdbc:sftp:RemoteHost=MyFTPServer;
  6. プログラム記述後、ビルドを実行します。

Plugin の配置

続いて作成したPlugin アセンブリをFastAPPサーバー上に配置します。本記事ではLinux サーバへのSSH接続をベースに記述します

  1. Teraterm 等任意のSSH接続用ツールを立ち上げて、FastAPP のサーバへ接続します
  2. FastAPP を配置しているWebサイトのライブラリフォルダ「例:/opt/tomee/webapps/fastapp-web/WEB-INF/lib」にビルドファイルおよびCData Driver ファイル「cdata.jdbc.dynamicscrm.jar」とライセンスファイル「cdata.jdbc.dynamicscrm.lic」、以上3種類のファイルを配置します。
  3. ファイルを配置後、FastAPP のWebサーバを再起動すると対象のPlugin がFastAPP 上で参照可能となります。

FastAPP用の画面の作成

続いてFastAPP へ一覧を表示するための画面を作成します。

  1. FastAPP 管理へアクセスし、ログインを実施します。
  2. fastapp
  3. 画面一覧にて「+画面新規作成」をクリックします。
  4. fastapp
  5. 新しく作成する画面の各種項目を入力し「保存して詳細を開く」をクリックします。
  6. fastapp
  7. 続いて、一覧画面に表示する項目を定義します。画面詳細情報から「一覧画面項目セット追加」をクリックします。
  8. fastapp
  9. 一覧形式の入力箇所表示されるので、「+項目追加」をクリックします。
  10. fastapp
  11. 事前に作成しているプログラム上で定義している表示項目と合わせて項目ID、項目名等を定義します。この作業を表示したい項目分実施します。
  12. fastapp
  13. 以下のように表示する項目を定義すれば作業完了です。
  14. fastapp

FastAPP へ作成したPluginの登録

最後に一覧画面を表示するためのPluginをイベントとして登録します。

  1. 画面詳細情報の「イベント一覧を開く」をクリックします。
  2. fastapp
  3. 本Pluginは画面表示時に一覧を表示する想定のため「初期表示処理」段階にイベントを登録するため、表示されたイベント一覧から「初期表示処理」を追加します。
  4. fastapp
  5. コマンド設定の一覧から「挿入」のボタンをクリックします。
  6. fastapp
  7. コマンドの一覧から「プラグイン実行コマンド」を選択します。選択後、アドオンの設定箇所が表示されるので「設定手順② 中処理アドオンの設定」から作成したプラグインを選択し「保存」をクリックします。以上でプラグイン呼び出しのイベント登録は完了です。
  8. fastapp

補足:メニューへの画面表示設定

本記事の補足として本記事で作成した画面をメニューへの登録する方法を説明します。

  1. 開発用画面の右上にある設定用アイコンから「システム全体設定」をクリックします。
  2. fastapp
  3. システム設定メニューから「メニュー情報」をクリックします。
  4. fastapp
  5. メニュー用の設定画面が表示されるので「+メニュー新規作成」をクリックします。
  6. fastapp
  7. 各種項目を入力の上「遷移先画面ID」にて作成した一覧画面を選択し「保存」をクリックします。以上でメニューへの表示設定は完了です。
  8. fastapp

動作確認

実際にユーザーが使用する画面を用いて、動作確認を実施します。

  1. FastAPP の通常画面へアクセスしログインを実行します。
  2. fastapp
  3. アプリ別メニューから追加した「一覧画面」をクリックします。
  4. fastapp
  5. 登録したイベントおよびプラグインが動作し、CData Driver 経由でデータを取得の上、一覧画面が表示されます。
  6. fastapp

このようにSFTP 内のデータをAPI を書くことなくFastAPP 上で処理することができるようになります。

サポートされるSQL についての詳細は、ヘルプドキュメントの「サポートされるSQL」をご覧ください。テーブルに関する情報は「データモデル」をご覧ください。

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。