こんにちは。インフォテリアのキクチです。
いよいよ日差しが強くなり夏の気配をびんびん感じますが、みなさんお元気でいらっしゃいますか。そろそろネクタイがうっとうしい季節になってきましたね。
ぼくはといえばセミナー講師として忙しい日々を送らせていただいています。最近の体験セミナーは毎回満員御礼!6月以降は開催回数を増やして、一人でも多くの皆さんにASTERIA Warpを知っていただけるように頑張っていきたいと思いますので、ぜひ、一度お越しください!
さて、今回の体験記は前回に引き続きRDBとの連携です。
前回、RDBとの接続から簡単なデータの取得を行いましたが、業務で使う上では取得するデータを制限する必要がありますよね。
そんなSQLへの抽出条件を、ASTERIA Warpではどのように付与するのか。簡単な条件から体験してみましたので、どうぞご覧ください。
さて、RDBへの抽出条件付与ということで、きっとSQLビルダーで行うんだろうなぁ~という予想のもと、前回作成したフローを利用して試してみました。
SQLビルダー画面を開いてみると、こんな感じ。
前回設定されたSQLがしっかりと復元されています。
それでは「JOB」フィールドに条件をつけてみたいと思います。何の条件もつけない状態だと…
データは14件取得されました。ここに条件をつけることできちんとデータの絞込みを行えるのか、確認していきたいと思います!
RDBGetコンポーネントのリファレンスを参照すると、条件付与の方法も記載されていました。
「JOB」フィールドを選択して右クリックすると…
条件の追加メニューが表示されました。これを選択すると、「条件の編集」画面が立ち上がってきます。
ここに「JOB」フィールドに対する条件値を入力してあげるようです。
条件式はコンボボックスで選択可能ですね、
「JOB」フィールドが「ANALYST」のデータに絞り込んでみます。
条件値を入力すると、下の条件文も同時に生成されますね。「OK」ボタンで設定を完了すると…
SQLにも条件文が追加され、画面上のフィールド欄からも条件が付与されたことが読み取れます。
SELECTテストを実行すると、
「JOB」フィールドが「ANALYST」のデータ、2件に絞り込まれました!
ちなみに、条件の付与はSQLビルダー右側のソートタブからも行えるようです。こちらだと論理演算子も指定できるので複数の条件を付与する際に役立ちそうですね。
な~んだ、条件つけるのも簡単じゃ~ん、と思ったそこのアナタ。SQLビルダーにはもっと便利な機能があるんですよ☆
…ぼくはいつも通りH師匠に教えていただいたのですが…
Hさん「あ、今回はSQLビルダーやるんだ」
キクチ「はい!簡単に条件つけられちゃうんで、すごく楽チンですよね。」
Hさん「じゃあさ、パラメータ渡してデータ抽出できるのも知ってる?」
キクチ「パラ…メータ…?」
Hさん「そう、パラメータ。 例えばさ、リクエスト投げた人のIDに関連するデータを見たいとか、今日の日付のデータだけを見たいとか、動的に条件を変えられるんだよね。」
キクチ「え、それすごい便利じゃないですか! しかも実業務でよくありそうなパターン!」
Hさん「そうだね。ちょっとその辺も試してみたら?」
…と、いうことでパラメータの渡し方も調べてみました。
以下の状況を想定してパラメータの渡し方を試してみます。
社員番号が記載されたファイルはこんな感じにしました。7698という番号の社員を上司に持つ社員を抜き出します。
フローはこんな感じになりました。
とてもシンプルなフローになりましたね。あとは細かくSQLビルダーの設定を行っていきます。
まずはEMPテーブルから取得したいフィールドの一覧にチェックを入れると…
あとは条件文をつけてあげるのですが、今回はファイルから取得した社員番号をWHERE句に埋め込むので、まずはパラメータを設定してあげます。
パラメータタブで任意のパラメータ名と型などを指定してあげます。今回は「社員番号」というパラメータを設定しました。
すると、「条件の編集」画面でパラメータを使えるようになります。
「パラメータとの比較」モードに切り替えることで、設定したパラメータ「社員番号」を条件文に埋め込むことが出来るんですね。
作成された条件文には「?社員番号?」という見慣れない文字列が埋め込まれています。
この「?社員番号?」が予約語となってSQLの実行時にファイルから取得された社員番号「7698」に置き換わるんですね。
さあ、あとは「社員番号」というパラメータにファイルから取得してきた社員番号情報をセットしてあげます。
最初に配置したMapperコンポーネントでファイルから取得した社員番号をSQLパラメーター「社員番号」にマッピングしてあげます。
これで実行してみるとファイルには…
「MGR」フィールドが「7698」に絞られたデータが出力されています!
いかがでしたでしょうか。
条件の付与はもちろん、動的に条件を変えたい場合も簡単に設定できてしまいますね。
今回はここまでにしたいと思います。
次回は、データの取得のみならず、RDBの更新にチャレンジしていきます!
お楽しみに!
ASTERIA Warpのプリセールスエンジニア&体験セミナー講師。関係各所から舞い込んでくるASTERIA Warpに関するご依頼になんとか応えながら日々鍛えてもらっています!
Related Posts
ASTERIA Warp製品の技術情報やTips、また情報交換の場として「ADNフォーラム」をご用意しています。
アステリア製品デベロッパー同士をつなげ、技術情報の共有やちょっとしたの疑問解決の場とすることを目的としたコミュニティです。