データベース監視
データベースの指定したテーブルを定期的に監視し、特定の値でレコードの検出を行いデータ連携するフローを作成する手順を紹介します。RDBGetコンポーネントを利用して指定したフィールドの値でレコードを取得し、データの連携処理を行った後にそのフィールドの値をRDBPutコンポーネントで更新するフローを作成します。作成したフローをスケジュールトリガーで実行します。
RDBデータ読み込み処理を作成する
1.パレットの「データベース」タブからRDBGetコンポーネントを配置する
2.RDBコンポーネントのインスペクタで「コネクション名」プロパティの値を作成済みのコネクション名に指定する
ここでは、あらかじめ作成されている「asteria_internal」を指定しています。
3.エラー処理の「レコードが無い」プロパティを「フローを終了する」に設定する
RDBGetコンポーネントの左上にエラー処理プロパティが設定されたマークがつきます。
HINT
取得対象レコードがない(0件)ときの動作
取得対象のレコードがないときは「レコードが無い場合エラー」プロパティとエラー処理の「レコードが無い」プロパティの設定に従います。ここでは「フローを終了する」にしてフローを終了させていますが、「レコードが無い場合エラー」プロパティを「いいえ」にする、もしくはエラー処理プロパティの「レコードが無い」プロパティを「エラーを無視する」にしておき、後続で0件時の動作を分岐して作成することもできます。
SQLビルダーで取得するフィールド、抽出条件を設定する
1.RDBGetコンポーネントアイコンをダブルクリックし、表示されたSQLビルダーで左側のテーブル名を中央の欄までドラッグして、テーブルを配置する
2.取得する項目にチェックマークを付ける
3.更新をチェックする項目を右クリックして「条件の追加」を選択する
4.条件の編集画面で抽出する条件を設定すると画面下部の条件文が自動的に表示される
HINT
ここでは「固定値との比較」を使ってレコードの抽出条件を定義しています。SQLパラメーターを使って実行時の動的な値と比較したり、条件式を直接入力してSQL文に追加記述したりすることもできます。
「OK」ボタンをクリックして条件の編集操作を終了すると右欄の条件タブやSQLビルダー下部のSQL文が更新されます。
5.SELECTテストでテスト結果を確認後、SQLビルダーの「OK」をクリックして閉じる
6.フィールド定義の更新を確認するダイアログで「はい」をクリックする
7.RDBGetコンポーネントアイコンをクリックしインスペクタの「SQL文」プロパティ、および「ストリーム」ペインのフィールド定義が更新されたことを確認する
以上でRDBGetコンポーネントの設定は終了です。取得したレコードをもとに後続処理でデータ連携する処理を作成していきます。
更新をチェックする項目の値を書き換える
1.Mapperコンポーネント、RDBPutコンポーネントを配置する
2.「ストリーム定義をRecordに変換します」というダイアログが表示されたら「はい」をクリックして閉じる
3.RDBPutコンポーネントを選択し、「コネクション名」プロパティで使用するコネクションを指定し、「実行する処理」プロパティが「Update」であることを確認し、ダブルクリックする
4.表示された「テーブルとフィールドの設定」ダイアログで更新対象のテーブルを選択し、キーにする項目、更新する項目にチェックマークを付けて「OK」をクリックする
5.RDBPutコンポーネントのインスペクタの「入力」タブにフィールド名とキー情報が反映されていることを確認する
キー情報の値は「キーにする」プロパティで変更することができます。
6.Mapperコンポーネントのフィールド定義も自動的に設定されていることを確認し、データのマッピングを行う。
抽出条件で指定しているフィールドの値を更新します。ここではConst関数を使って固定で「1」をセットしています。
HINT
実行する処理」プロパティをUpdateに設定したときの動作
「キーにする」項目で「はい」を指定したフィールドにマッチするレコードをキー以外のフィールドを用いて更新します。キーとするフィールドを更新することはできません。ここではキーとなる項目と抽出条件で指定している項目でUpdate処理を実行しています。
作成したフローをスケジュール登録する
1.「実行」メニューの「実行設定」−「一定間隔で実行」を選択する
2.「実行設定」ダイアログが表示されるので、「開始日時」と「実行間隔」を指定し、「登録」をクリックする
登録が終了したら「閉じる」をクリックして「実行設定」ダイアログを閉じます。指定した間隔でフローが実行されます。
HINT
フローテンプレート データベース監視
フローテンプレート「DB更新フラグ監視」、「DB更新日時監視」で用意されているウィザードを使ってデータベース監視を行うフローを作成することもできます。
「DB更新フラグ監視」
<ウィザード>
「DB更新日時監視」
<ウィザード>