こんにちは。インフォテリアのキクチです。
新年度が始まりましたね。みなさんの周りで変化はありましたか?
私にはなんと後輩が入ってきました!
同じくASTERIA Warpのプリセールスを行っているんですが、「分からないことは何でもキクチに聞け」とのHさんのお達しがありましたので、私も四苦八苦しながらいろいろ教えています。
今年度も皆さんにASTERIA Warpを愛していただけるようインフォテリア一同頑張っていきますので、どうぞご期待ください!!
このASTERIA Warp体験記もその一翼を担えればいいなと思いながら、コツコツ続けていきたいと思います。
目次
さて、今まではファイルの連携をメインに行ってきましたが、今回はRDBとの連携です。RDBとの連携は業務上の必須要件といっても過言ではないと思います。
今日はそんなRDBとの連携を接続定義(コネクション)の作成から体験しましたので、どうぞご覧ください!
と、いうことでRDBとの連携を行ってみたいと思いますが、何はともあれ、RDBとの接続を行わないことには何も出来ません。
ちなみに、今回接続を行うRDBはOracle 11.2.0.2.0です。
簡単なEMPテーブルなどがセットされています。
RDBとの接続を行うには、コネクションを作成する必要がある、ということは知っていました。
知っていましたが、どうやって作ればいいのかが分からなかったので、マニュアルに頼ってみます。
とのこと。
管理コンソール、フローデザイナーから作成できるみたいです。
今回は管理コンソールからコネクションを作成してみます。使用するメニューは「設定」の「コネクション」メニューです。
分かりやすく、「新規」のメニューがありますので進めてみます。
すると、RDBとの接続情報の入力画面が立ち上がってきます。そこに必要な情報を入力します。
「接続名」は任意の名前を設定します。
「データベースタイプ」は違いがよく分からなかったので、管理コンソールのヘルプを例に「Oracle(Thin)」を選択しました。
すると、その他の項目には自動的にフォーマットが設定されるので、それを編集してあげればいいようです。
「URL」の項目はRDBが導入されている環境に合わせて入力する内容が変わりますね。
あとは、データベースユーザーとパスワードを入力して…
作成できました!
作成したら、実際に接続できるのか試したくなりますよね。
管理コンソール/デザイナーではもちろん接続テストまで出来るんです。
で、実際に試してみると…
なんと…失敗してしまいました…
エラーメッセージは
「No suitable driver found for jdbc:oracle:thin:@localhost:1521:XE」
「使えるJDBCドライバが見つかりません」というところでしょうか。
…ん?JDBCドライバ?
なにか設定が必要なのでしょうか…?
サポートのEさんに聞いてみました。
キクチ「こんなエラーメッセージが出たんですけど、どうすればいいんですかね…?」
Eさん「あ、ASTERIA Warpインストールしてから、JDBCドライバってダウンロードした?」
キクチ「いえ、してないです。自分でダウンロードが必要なんですか?」
Eさん「そうだね。ASTERIA的には何のRDBに接続するのか、インストールしたときにはわからないから、自分でダウンロードしてあげる必要があるよ。」
キクチ「なるほど!落としてきたドライバはどこに配置してあげればいいんですかね?」
Eさん「その辺はマニュアルに記載があるから調べてみて!」
なんと…マニュアルにはしっかり記載がされているんですね…
教えてもらった箇所を参照してみます。
しっかり、1行目に記載がありましたね。
「使用するデータベースのJDBCドライバーを入手します。」
やはり、マニュアルはちゃんと確認してから始めなきゃダメですね。
と、いうことで今回接続を行うOracleのJDBCドライバの入手です。
ダウンロードしたJDBCドライバを[Install_DIR]/jre/lib/extに配置します。
フローサービスを再起動して…
再度接続テストを行ってみます。
今度は成功しました!
と、いうことでASTERIA WarpとRDBとの接続が完了したので、DBの中身が参照できるか確認してみましょう。
デザイナー上にRDBからのデータの取得を行う「RDBGetコンポーネント」を配置し…
「コネクション名」プロパティに作成したコネクション
「Oracle_11g」
を指定します。
「コネクション名」プロパティはコンボボックスで指定できるので、選択するだけでどのRDBに接続を行うかを指定できますね。
「コネクション名」プロパティが設定された状態で「RDBGetコンポーネント」の右クリックメニュー「SQLビルダー」を選択するとSQLの構築を画面を用いて行えます。
※SQLビルダーの起動は、RDBGetコンポーネントのダブルクリックでも行えるみたいです!
左側にオブジェクトの一覧が表示されています。
sqlplusから確認した内容と比較してみると、全てのオブジェクトが表示されているのが確認できますね。
SQLビルダーの使い方については「RDBGetコンポーネント」のリファレンスに記載があったので確認してみます。
ふむふむ…基本的にはマウス操作のみでSQL文の構築ができてしまうみたいですね。
データを取得したいオブジェクトを選択・ドラックアンドドロップしてあげると、フィールドの一覧が確認できて…
あとはデータを取得したいフィールドにチェックを入れてあげれば、どんどんSQLが構築されるんですね!
なるほど。とても楽チンですね。フィールドの一覧を確認しながら選択できるので、間違った項目を選択することもなさそうです。
フィールド名のスペルを間違えてRDBに怒られることもなくなるなぁ~なんてニヤニヤしていたらHさんがもうひとつ便利な機能を教えてくれました。
Hさん「どうしたの?なんかニヤニヤしてるけど…具合でも悪いの?」
キクチ「…え。ぼくニヤニヤしてました?(汗)いや、SQLビルダー使えばSQLの構築がすごく楽チンになるなぁと思ったら…ニヤニヤしてました…」
Hさん「あぁ、確かにスペルミスとかでテストやり直すのはすごく手間かかるもんね。」
キクチ「そうですよね!エビデンスとかも全部取り直しのときもありますし…まぁ最初からちゃんと確認してテストしろって話かも知れないですけど…」
Hさん「SQLビルダーだとフィールド名とかまでDBから勝手に取ってきてくれるからね、楽チンだね。でもテストだったらもうひとつ便利な機能があるの知ってる?」
キクチ「え。どんな機能ですか?」
Hさん「SELECTテスト。作ったSQLで狙ったデータが取得できるかSQLビルダーでそのまま確認ができるよ。もし違ってたらSQL変更してまたすぐ確認できるし。」
キクチ「え。データの確認まで出来るってことですか?てことは、ちゃんとデータが取得出来てるかいちいちフローを動かさなくてもいいってことですよね。」
Hさん「そうだね。開発してるときにデータの取得確認までは行えるから、データ変換がおかしいときとかでも問題の切り分けが簡単だと思うよ。」
なんと、このまま取得するデータの確認まで出来るみたいです。
SQLビルダー下部の「SELECTテスト」ボタンを押下してみます。すると…
結果表が表示されました!
これならSQLが苦手な人でも、確認しながら設定していくことが出来ますね。
では、SQLの構築も行えたので、そのままCSVファイルに出力してみたいと思います。
フローの全体図はこんな感じ。
何の変換もかけず、単純にCSVに出力しています。
実行してみると…
先ほどSELECTテストで確認したデータがしっかりCSVとして出力されています!
簡単にRDBからのデータの引き出しが出来てしまいました。
手組みのプログラムだったら、RDBとの接続やデータの取得などテスト項目はとても増えてしまいますが、ASTERIAだとフローの開発時点で細かいテストは終わっている状態になるので、連携の流れをどうするか、どんなデータ変換をかけるのか、といった項目に時間をかけることが出来ますね!
と、いうことで今回はここまでにしたいと思います。
RDBとの接続、データの取得までの手順を理解していただけたでしょうか。
次回は、SQLへの抽出条件の設定に挑戦してみたいと思います!どうぞお楽しみに!
ASTERIA Warpのプリセールスエンジニア&体験セミナー講師。関係各所から舞い込んでくるASTERIA Warpに関するご依頼になんとか応えながら日々鍛えてもらっています!
Related Posts
ASTERIA Warp製品の技術情報やTips、また情報交換の場として「ADNフォーラム」をご用意しています。
アステリア製品デベロッパー同士をつなげ、技術情報の共有やちょっとしたの疑問解決の場とすることを目的としたコミュニティです。