Ready to get started?

Learn more about the CData JDBC Driver for DigitalOcean or download a free trial:

Download Now

DigitalOcean DataをFastAPPに繋いでみた

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

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

完成イメージ

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

FastAPP用Plugin作成

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

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

    https://www.scsk.jp/product/contact/index.html?sname=FastAPP
  3. 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.digitalocean.DigitalOceanDriver"); Connection conn = DriverManager.getConnection("jdbc:digitalocean:"); 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 } } }
  4. クラス名および接続文字列は以下を参考に記述します。
    ドライバ:cdata.jdbc.digitalocean.DigitalOceanDriver
    URL: jdbc:digitalocean: に続けてセミコロン区切りで接続プロパティを入力します。
    一般的なJDBC URL は次の通りです。
    jdbc:digitalocean:
  5. プログラム記述後、ビルドを実行します。

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用の画面の作成

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

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

FastAPPへ作成したPluginの登録

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

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

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

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

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

動作確認

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

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

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

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

 
 
ダウンロード