ASTERIA Warp 製品ブログ

RDBに接続してみた:はじめの一歩 ~菊ちゃんのASTERIA Warp体験記~

こんにちは。インフォテリアのキクチです。

新年度が始まりましたね。みなさんの周りで変化はありましたか?

私にはなんと後輩が入ってきました!

同じくASTERIA Warpのプリセールスを行っているんですが、「分からないことは何でもキクチに聞け」とのHさんのお達しがありましたので、私も四苦八苦しながらいろいろ教えています。

今年度も皆さんにASTERIA Warpを愛していただけるようインフォテリア一同頑張っていきますので、どうぞご期待ください!!

このASTERIA Warp体験記もその一翼を担えればいいなと思いながら、コツコツ続けていきたいと思います。


さて、今まではファイルの連携をメインに行ってきましたが、今回はRDBとの連携です。RDBとの連携は業務上の必須要件といっても過言ではないと思います。

今日はそんなRDBとの連携を接続定義(コネクション)の作成から体験しましたので、どうぞご覧ください!


と、いうことでRDBとの連携を行ってみたいと思いますが、何はともあれ、RDBとの接続を行わないことには何も出来ません。

ちなみに、今回接続を行うRDBはOracle 11.2.0.2.0です。簡単なEMPテーブルなどがセットされています。

RDBとの接続を行うには、コネクションを作成する必要がある、ということは知っていました。知っていましたが、どうやって作ればいいのかが分からなかったので、マニュアルに頼ってみます。

「フローサービスマニュアル」_「フローの設計」_「フローの構成要素」_「コネクション」

コネクションとは、フローの中で使用するデータベース、インターネットプロトコルなどの接続情報のことです。

接続のためのサーバーアドレス、ポート番号、ユーザー名、パスワードなどの情報に対してコネクション名をつけて定義することを接続設定といい、定義しておくによって簡単にコンポーネントから接続情報を参照できます。

コンポーネントによっては、コネクションの接続情報を使用せずに、コンポーネントプロパティに直接定義を指定して接続することもできます。

とのこと。
管理コンソール、フローデザイナーから作成できるみたいです。

今回は管理コンソールからコネクションを作成してみます。使用するメニューは「設定」の「コネクション」メニューです。

分かりやすく、「新規」のメニューがありますので進めてみます。

メニュー「設定」-「コネクション」

すると、RDBとの接続情報の入力画面が立ち上がってきます。そこに必要な情報を入力します。

「接続名」は任意の名前を設定します。
「データベースタイプ」は違いがよく分からなかったので、管理コンソールのヘルプを例に「Oracle(Thin)」を選択しました。

すると、その他の項目には自動的にフォーマットが設定されるので、それを編集してあげればいいようです。

RDBとの接続情報入力画面

「URL」の項目はRDBが導入されている環境に合わせて入力する内容が変わりますね。

あとは、データベースユーザーとパスワードを入力して…

RDBのユーザーとパスワード情報を入力

作成できました!

作成されたRDB接続設定

作成したら、実際に接続できるのか試したくなりますよね。

管理コンソール/デザイナーではもちろん接続テストまで出来るんです。

メニュー内にある「テスト」ボタン

で、実際に試してみると…

エラーメッセージ「No suitable driver found for jdbc:oracle:thin:@localhost:1521:XE」

なんと…失敗してしまいました…

エラーメッセージは
「No suitable driver found for jdbc:oracle:thin:@localhost:1521:XE」
「使えるJDBCドライバが見つかりません」というところでしょうか。

…ん?JDBCドライバ?
なにか設定が必要なのでしょうか…?

サポートのEさんに聞いてみました。

キクチ「こんなエラーメッセージが出たんですけど、どうすればいいんですかね…?」
Eさん「あ、ASTERIA Warpインストールしてから、JDBCドライバってダウンロードした?」
キクチ「いえ、してないです。自分でダウンロードが必要なんですか?」
Eさん「そうだね。ASTERIA的には何のRDBに接続するのか、インストールしたときにはわからないから、自分でダウンロードしてあげる必要があるよ。」
キクチ「なるほど!落としてきたドライバはどこに配置してあげればいいんですかね?」
Eさん「その辺はマニュアルに記載があるから調べてみて!」

なんと…マニュアルにはしっかり記載がされているんですね…教えてもらった箇所を参照してみます。

「フローサービスマニュアル」_「詳細なトピック」_「フローの構成要素」_「コネクションプロパティ」_「RDB」

しっかり、1行目に記載がありましたね。
「使用するデータベースのJDBCドライバーを入手します。」
やはり、マニュアルはちゃんと確認してから始めなきゃダメですね。

と、いうことで今回接続を行うOracleのJDBCドライバの入手です。

ダウンロードしたJDBCドライバを[Install_DIR]/jre/lib/extに配置します。

JDBCドライバを[Install_DIR]/jre/lib/extに配置

フローサービスを再起動して…

フローサービスの再起動

再度接続テストを行ってみます。今度は成功しました!

接続テストに成功

と、いうことでASTERIA WarpとRDBとの接続が完了したので、DBの中身が参照できるか確認してみましょう。

デザイナー上にRDBからのデータの取得を行う「RDBGetコンポーネント」を配置し…

デザイナー上に「RDBGetコンポーネント」を配置

「コネクション名」プロパティに作成したコネクション
「Oracle_11g」
を指定します。

「コネクション名」プロパティはコンボボックスで指定できるので、選択するだけでどのRDBに接続を行うかを指定できますね。

RDBGetのプロパティ

「コネクション名」プロパティが設定された状態で「RDBGetコンポーネント」の右クリックメニュー「SQLビルダー」を選択するとSQLの構築を画面を用いて行えます。

※SQLビルダーの起動は、RDBGetコンポーネントのダブルクリックでも行えるみたいです!

RDBGetコンポーネントのコンテキストメニュー「SQLビルダー」をクリックして起動

左側にオブジェクトの一覧が表示されています。

左側にオブジェクトの一覧が表示されている「SQLビルダー」の画面

sqlplusから確認した内容と比較してみると、全てのオブジェクトが表示されているのが確認できますね。

sqlplusでオブジェクトを表示

SQLビルダーの使い方については「RDBGetコンポーネント」のリファレンスに記載があったので確認してみます。

「フローサービスマニュアル」_「データベース」_「RDBGet」

ふむふむ…基本的にはマウス操作のみでSQL文の構築ができてしまうみたいですね。

データを取得したいオブジェクトを選択・ドラックアンドドロップしてあげると、フィールドの一覧が確認できて…

SQLBuilder内で「テーブル」選択

あとはデータを取得したいフィールドにチェックを入れてあげれば、どんどんSQLが構築されるんですね!

SQLBuilder内で表示するフィールドを選択

なるほど。とても楽チンですね。フィールドの一覧を確認しながら選択できるので、間違った項目を選択することもなさそうです。

フィールド名のスペルを間違えてRDBに怒られることもなくなるなぁ~なんてニヤニヤしていたらHさんがもうひとつ便利な機能を教えてくれました。

Hさん「どうしたの?なんかニヤニヤしてるけど…具合でも悪いの?」
キクチ「…え。ぼくニヤニヤしてました?(汗)いや、SQLビルダー使えばSQLの構築がすごく楽チンになるなぁと思ったら…ニヤニヤしてました…」
Hさん「あぁ、確かにスペルミスとかでテストやり直すのはすごく手間かかるもんね。」
キクチ「そうですよね!エビデンスとかも全部取り直しのときもありますし…まぁ最初からちゃんと確認してテストしろって話かも知れないですけど…」
Hさん「SQLビルダーだとフィールド名とかまでDBから勝手に取ってきてくれるからね、楽チンだね。でもテストだったらもうひとつ便利な機能があるの知ってる?」
キクチ「え。どんな機能ですか?」
Hさん「SELECTテスト。作ったSQLで狙ったデータが取得できるかSQLビルダーでそのまま確認ができるよ。もし違ってたらSQL変更してまたすぐ確認できるし。」
キクチ「え。データの確認まで出来るってことですか?てことは、ちゃんとデータが取得出来てるかいちいちフローを動かさなくてもいいってことですよね。」
Hさん「そうだね。開発してるときにデータの取得確認までは行えるから、データ変換がおかしいときとかでも問題の切り分けが簡単だと思うよ。」

なんと、このまま取得するデータの確認まで出来るみたいです。

SQLビルダー下部の「SELECTテスト」ボタンを押下してみます。すると…

SQLBuilder内の「SELECTテスト」ボタン

結果表が表示されました!

「SELECTテスト」ボタンを押した結果

これならSQLが苦手な人でも、確認しながら設定していくことが出来ますね。

では、SQLの構築も行えたので、そのままCSVファイルに出力してみたいと思います。

フローの全体図はこんな感じ。

フロー全体図

何の変換もかけず、単純にCSVに出力しています。

変換もかけず、そのままCSV出力

実行してみると…

SELECTテストで確認したデータがCSVとして出力

先ほどSELECTテストで確認したデータがしっかりCSVとして出力されています!

簡単にRDBからのデータの引き出しが出来てしまいました。

手組みのプログラムだったら、RDBとの接続やデータの取得などテスト項目はとても増えてしまいますが、ASTERIAだとフローの開発時点で細かいテストは終わっている状態になるので、連携の流れをどうするか、どんなデータ変換をかけるのか、といった項目に時間をかけることが出来ますね!


と、いうことで今回はここまでにしたいと思います。

RDBとの接続、データの取得までの手順を理解していただけたでしょうか。

次回は、SQLへの抽出条件の設定に挑戦してみたいと思います!どうぞお楽しみに!

【ASTERIA Warp 事例集】業務自動化/RPA、EAI、マスターデータ管理、クラウド連携・・・業務効率化・データ活用事例をまとめ読み

ASTERIA Warp関連サイトのご紹介

X ASTERIA Warp Developer Network(ADN)サイト

<技術情報をお探しの方>

ASTERIA Warp Developer Network
(ADN)サイト

ASTERIA Warp製品の技術情報やTips、また情報交換の場として「ADNフォーラム」をご用意しています。

X ASTERIA Warpユーザーグループ(AUG)サイト

<ASTERIA Warpユーザーの方>

ASTERIA Warpユーザーグループ
(AUG)サイト

ASTERIA Warpユーザー同士の交流の場として、各種イベント案内や開催レポートを掲載しています。

X ASTERIA Warpユーザーサイト

<ASTERIA Warpユーザーの方>

ASTERIA Warpユーザーサイト
Login

製品更新版や評価版のダウンロード、各種ドキュメントのご提供、また 技術的なお問合せもこちらで受付ています。

X ASTERIA Warpパートナーサイト

<ASTERIA Warpパートナーの方>

ASTERIA Warpパートナーサイト
Login

パートナーライセンスの発行や各種ドキュメントのご提供をしています。

ページ先頭へ