1件前の値と現在の値を比較したい
キーワード:値の比較,マッチング,データベース,CSV
シナリオ一覧に戻る
概要
データベースからデータを1件ずつ読み取り、現在のデータと1件前に読み取ったデータを比較します。
データが一致した場合、現在のデータをCSVファイルに出力します。
顧客情報データベースより取得したメールアドレスを繰り返し(データ件数)処理の中でスクリプト変数に代入します。
現在および前回のデータを代入したスクリプト変数を比較し、一致した場合に現在のデータをCSVファイルに出力します。
処理の流れ
サンプルプロジェクトの処理の流れは以下の通りです。
- 「検索系SQL実行処理」でデータベースからデータを読み取ります。
- 「繰り返し(データ件数)処理」でレコードごとに以下の処理を繰り返します。
- 「変数代入処理」で現在のメールアドレスの値を「メール_現在」というスクリプト変数に代入します。
- 「条件分岐処理」で「メール_現在」と「メール_前回」のスクリプト変数の値を比較します。
- 「メール_現在」と「メール_前回」の値が一致した場合、「CSVファイル書き込み処理」でCSVファイルに現在のデータを書き込みます。
- 「変数代入処理」で「メール_現在」の値を「メール_前回」というスクリプト変数に代入します。
実行結果のイメージについては、サンプルプロジェクトのサンプルデータ「output.csv」を参照してください。
ポイントとなる機能
名前 |
説明 |
ツールパレット上の場所 |
条件分岐処理 |
条件分岐を行います。 |
「基本」-「フロー」-「条件分岐」 |
処理のポイント
データが一致した場合にCSVファイル書き込み処理を行うため、条件分岐処理の[条件]で[変数と変数の比較]を設定します。
サンプルプロジェクトの使用方法
上記処理を実装したサンプルプロジェクトを用意しています。サンプルプロジェクトを使用する場合の手順は、以下の通りです。
サンプルプロジェクトファイル名 |
rl_reference_018.zip |
- サンプルプロジェクトの展開
サンプルプロジェクトファイル「rl_reference_018.zip」を展開します。
- プロジェクトのアップロード
「rl_reference_018.zip」を展開後に作成される「rl_reference_018プロジェクト」ディレクトリがプロジェクトファイルとなります。
DataSpider Studioを起動し、マイプロジェクトの画面から[ファイル]-[ローカルからアップロード]で展開したディレクトリ「rl_reference_018プロジェクト」をアップロードしてください。
- サンプルデータの準備
「rl_reference_018.zip」を展開後に作成される「samples」ディレクトリがサンプルデータとなります。
$DATASPIDER_HOME/server/samplesディレクトリに上書きしてください。
- サンプルデータベースの準備
共通サンプルDBの「sample.zip」を展開し、「Sample.mdb」をODBCのデータソースに登録します。
- グローバルリソースの設定
コントロールパネルの[グローバルリソースの設定]から、[新しいグローバルリソースの追加]を選択し、Accessのグローバルリソースを追加します。
グローバルリソースの設定方法については、「グローバルリソースのプロパティ」を参照してください。
スクリプトの作成手順
プロセスフローおよびデータフローは、「サンプルプロジェクトの説明」のスクリプト画像を参照して適宜設定してください。
- データの比較に使用するスクリプト変数を作成します。
- スクリプト変数のプロパティは、以下のように設定します。
スクリプト変数のプロパティ
変数名 |
変数型 |
初期値 |
メール_現在 |
文字列型 |
|
メール_前回 |
文字列型 |
|
- デザイナのツールパレット「データベース」-「Access」-「検索系SQL実行」から、検索系SQL実行処理をスクリプトキャンバスに配置します。
- 検索系SQL実行処理の設定は、以下のように行います。
[必須設定]タブ

- デザイナのツールパレット「基本」-「フロー」-「繰り返し(データ件数)」から、繰り返し(データ件数)処理をスクリプトキャンバスに配置します。
- 繰り返し(データ件数)処理の設定は、以下のように行います。
[必須設定]タブ
- デザイナのツールパレット「基本」-「処理」-「変数代入」から、変数代入処理(「variable」)をスクリプトキャンバスに配置します。
- 変数代入処理(「variable」)のMapperエディタを開き、読み取ったメールアドレスの値をスクリプト変数に代入する処理を作成します。
- マッピングキャンバスは、以下のように設定します。
マッピングキャンバス

- デザイナのツールパレット「基本」-「フロー」-「条件分岐」から、条件分岐処理をスクリプトキャンバスに配置します。
- 条件の設定は、以下のように行います。
[必須設定]タブ

処理のポイント
- [条件]の[変数と変数の比較]を選択することで、スクリプト変数同士の比較が可能です。
|
- デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル書き込み」から、CSVファイル書き込み処理をスクリプトキャンバスに配置します。
- CSVファイル書き込み処理の設定は、以下のように行います。
[必須設定]タブ
[書き込み設定]タブ

[上書き]および[追加書き込み]にチェックを入れます。
- デザイナのツールパレット「基本」-「処理」-「変数代入」から、変数代入処理(「variable(1)」)をスクリプトキャンバスに配置します。
- 変数代入処理(「variable(1)」)のMapperエディタを開き、「メール_現在」の値を「メール_前回」というスクリプト変数に代入する処理を作成します。
- マッピングキャンバスは、以下のように設定します。
マッピングキャンバス

- スクリプトを実行し、正常終了すれば成功です。