ASTERIA Warp 製品ブログ

RDBからデータを抽出してみた ~菊ちゃんのASTERIA Warp体験記~

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

いよいよ日差しが強くなり夏の気配をびんびん感じますが、みなさんお元気でいらっしゃいますか。そろそろネクタイがうっとうしい季節になってきましたね。

ぼくはといえばセミナー講師として忙しい日々を送らせていただいています。最近の体験セミナーは毎回満員御礼!6月以降は開催回数を増やして、一人でも多くの皆さんにASTERIA Warpを知っていただけるように頑張っていきたいと思いますので、ぜひ、一度お越しください!

さて、今回の体験記は前回に引き続きRDBとの連携です。

前回、RDBとの接続から簡単なデータの取得を行いましたが、業務で使う上では取得するデータを制限する必要がありますよね。

そんなSQLへの抽出条件を、ASTERIA Warpではどのように付与するのか。簡単な条件から体験してみましたので、どうぞご覧ください。


さて、RDBへの抽出条件付与ということで、きっとSQLビルダーで行うんだろうなぁ~という予想のもと、前回作成したフローを利用して試してみました。

RDBからCSV出力を行なうまでのフロー

SQLビルダー画面を開いてみると、こんな感じ。

前回設定されたSQLが復元されているSQLBuilder

前回設定されたSQLがしっかりと復元されています。

それでは「JOB」フィールドに条件をつけてみたいと思います。何の条件もつけない状態だと…

何も条件を設定しない場合、14件が抽出されたSQLBuilder内でのテスト

データは14件取得されました。ここに条件をつけることできちんとデータの絞込みを行えるのか、確認していきたいと思います!

RDBGetコンポーネントのリファレンスを参照すると、条件付与の方法も記載されていました。

「フローサービスマニュアル」_「コンポーネント」_「データベース」_「RDBGet」_「■SQLビルダーの使い方」_「●レコードの抽出(WHERE)」

「JOB」フィールドを選択して右クリックすると…

コンテキストメニュー「条件の追加」

条件の追加メニューが表示されました。これを選択すると、「条件の編集」画面が立ち上がってきます。

ここに「JOB」フィールドに対する条件値を入力してあげるようです。

条件編集画面

条件式はコンボボックスで選択可能ですね、

条件式をプルダウン選択

「JOB」フィールドが「ANALYST」のデータに絞り込んでみます。

「JOB」フィールドが「ANALYST」のデータに絞込

条件値を入力すると、下の条件文も同時に生成されますね。「OK」ボタンで設定を完了すると…

SQL文のWHERE句が自動生成

SQLにも条件文が追加され、画面上のフィールド欄からも条件が付与されたことが読み取れます。

SELECTテストを実行すると、

2件に絞り込まれましたSELECTテスト

「JOB」フィールドが「ANALYST」のデータ、2件に絞り込まれました!

ちなみに、条件の付与はSQLビルダー右側のソートタブからも行えるようです。こちらだと論理演算子も指定できるので複数の条件を付与する際に役立ちそうですね。

同様の手順をSQLBuilderのソートタブから設定した場合

な~んだ、条件つけるのも簡単じゃ~ん、と思ったそこのアナタ。SQLビルダーにはもっと便利な機能があるんですよ☆

…ぼくはいつも通りH師匠に教えていただいたのですが…

Hさん「あ、今回はSQLビルダーやるんだ」
キクチ「はい!簡単に条件つけられちゃうんで、すごく楽チンですよね。」
Hさん「じゃあさ、パラメータ渡してデータ抽出できるのも知ってる?」
キクチ「パラ…メータ…?」
Hさん「そう、パラメータ。 例えばさ、リクエスト投げた人のIDに関連するデータを見たいとか、今日の日付のデータだけを見たいとか、動的に条件を変えられるんだよね。」
キクチ「え、それすごい便利じゃないですか! しかも実業務でよくありそうなパターン!」
Hさん「そうだね。ちょっとその辺も試してみたら?」

…と、いうことでパラメータの渡し方も調べてみました。

以下の状況を想定してパラメータの渡し方を試してみます。

  1. CSVファイルに記載されている社員番号を読み取る
  2. 記載された社員番号が「MGR」フィールドに一致する社員情報を出力する
    (記載された社員番号の部下の社員を抽出する)

社員番号が記載されたファイルはこんな感じにしました。7698という番号の社員を上司に持つ社員を抜き出します。

パラメータファイル内に記述されたパラメータ「7698」

フローはこんな感じになりました。

社員番号情報を取得、SQLパラメータにマッピング、社員番号をキーにデータ取得、ファイル保存

とてもシンプルなフローになりましたね。あとは細かくSQLビルダーの設定を行っていきます。

まずはEMPテーブルから取得したいフィールドの一覧にチェックを入れると…

EMPテーブルから取得したいフィールドの一覧

あとは条件文をつけてあげるのですが、今回はファイルから取得した社員番号をWHERE句に埋め込むので、まずはパラメータを設定してあげます。

パラメータタブで任意のパラメータ名と型などを指定してあげます。今回は「社員番号」というパラメータを設定しました。

パラメータタブで「社員番号」パラメータを設定

すると、「条件の編集」画面でパラメータを使えるようになります。

「パラメータとの比較」モードに切り替えることで、設定したパラメータ「社員番号」を条件文に埋め込むことが出来るんですね。

「条件の編集」画面で「パラメータとの比較」モードに切り替え

作成された条件文には「?社員番号?」という見慣れない文字列が埋め込まれています。

この「?社員番号?」が予約語となってSQLの実行時にファイルから取得された社員番号「7698」に置き換わるんですね。

WHERE MGR = ?社員番号?

さあ、あとは「社員番号」というパラメータにファイルから取得してきた社員番号情報をセットしてあげます。

最初に配置したMapperコンポーネントでファイルから取得した社員番号をSQLパラメーター「社員番号」にマッピングしてあげます。

取得した社員番号をパラメータ「社員番号」にセット

これで実行してみるとファイルには…

「MGR」フィールドが「7698」に絞られたデータが出力

「MGR」フィールドが「7698」に絞られたデータが出力されています!


いかがでしたでしょうか。条件の付与はもちろん、動的に条件を変えたい場合も簡単に設定できてしまいますね。

今回はここまでにしたいと思います。次回は、データの取得のみならず、RDBの更新にチャレンジしていきます!

お楽しみに!

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

ASTERIA Warp関連サイトのご紹介

X

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

ASTERIA Warp Developer Network
(ADN)サイト

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

X

<ASTERIA Warpユーザーの方>

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

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

X

<ASTERIA Warpユーザーの方>

ASTERIA Warpユーザーサイト
Login

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

X

<ASTERIA Warpパートナーの方>

ASTERIA Warpパートナーサイト
Login

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