1件前の値と現在の値を比較したい

Avatar
dstn

1件前の値と現在の値を比較したい

キーワード:値の比較,マッチング,データベース,CSV

概要

データベースからデータを1件ずつ読み取り、現在のデータと1件前に読み取ったデータを比較します。
データが一致した場合、現在のデータをCSVファイルに出力します。

サンプルプロジェクトの説明

顧客情報データベースより取得したメールアドレスを繰り返し(データ件数)処理の中でスクリプト変数に代入します。
現在および前回のデータを代入したスクリプト変数を比較し、一致した場合に現在のデータをCSVファイルに出力します。

処理の流れ

サンプルプロジェクトの処理の流れは以下の通りです。
  1. 検索系SQL実行処理」でデータベースからデータを読み取ります。
  2. 繰り返し(データ件数)処理」でレコードごとに以下の処理を繰り返します。
  3. 変数代入処理」で現在のメールアドレスの値を「メール_現在」というスクリプト変数に代入します。
  4. 条件分岐処理」で「メール_現在」と「メール_前回」のスクリプト変数の値を比較します。
  5. 「メール_現在」と「メール_前回」の値が一致した場合、「CSVファイル書き込み処理」でCSVファイルに現在のデータを書き込みます。
  6. 変数代入処理」で「メール_現在」の値を「メール_前回」というスクリプト変数に代入します。
実行結果のイメージについては、サンプルプロジェクトのサンプルデータ「output.csv」を参照してください。

ポイントとなる機能

名前 説明 ツールパレット上の場所
条件分岐処理 条件分岐を行います。 「基本」-「フロー」-「条件分岐」

処理のポイント

データが一致した場合にCSVファイル書き込み処理を行うため、条件分岐処理の [条件][変数と変数の比較]を設定します。

サンプルプロジェクトの使用方法

上記処理を実装したサンプルプロジェクトを用意しています。サンプルプロジェクトを使用する場合の手順は、以下の通りです。

サンプルプロジェクトのダウンロード 逆引きリファレンス シナリオ018のサンプルプロジェクト
  1. サンプルプロジェクトの展開
    サンプルプロジェクトファイル「rl_reference_018.zip」を展開します。

  2. プロジェクトのアップロード
    「rl_reference_018.zip」を展開後に作成される「rl_reference_018プロジェクト」ディレクトリがプロジェクトファイルとなります。
    DataSpider Studioを起動し、マイプロジェクトの画面から[ファイル]-[ローカルからアップロード]で展開したディレクトリ「rl_reference_018プロジェクト」をアップロードしてください。

  3. サンプルデータの準備
    「rl_reference_018.zip」を展開後に作成される「samples」ディレクトリがサンプルデータとなります。
    $DATASPIDER_HOME/server/samplesディレクトリに上書きしてください。

  4. サンプルデータベースの準備
    共通サンプルDBの「sample.zip」を展開し、「Sample.mdb」をODBCのデータソースに登録します。

  5. グローバルリソースの設定
    コントロールパネルの[グローバルリソースの設定]から、[新しいグローバルリソースの追加]を選択し、Accessのグローバルリソースを追加します。
    グローバルリソースの設定方法については、DataSpider Servistaヘルプの「グローバルリソースのプロパティ」を参照してください。

スクリプトの作成手順

プロセスフローおよびデータフローは、「 サンプルプロジェクトの説明」のスクリプト画像を参照して適宜設定してください。
  1. データの比較に使用するスクリプト変数を作成します。
    • スクリプト変数のプロパティは、以下のように設定します。

      スクリプト変数のプロパティ

      変数名 変数型 初期値
      メール_現在 文字列型  
      メール_前回 文字列型  

  2. デザイナのツールパレット「データベース」-「Access」-「検索系SQL実行」から、検索系SQL実行処理をスクリプトキャンバスに配置します。
    • 検索系SQL実行処理の設定は、以下のように行います。

      [必須設定]タブ



  3. デザイナのツールパレット「基本」-「フロー」-「繰り返し(データ件数)」から、繰り返し(データ件数)処理をスクリプトキャンバスに配置します。
    • 繰り返し(データ件数)処理の設定は、以下のように行います。

      [必須設定]タブ


  4. デザイナのツールパレット「基本」-「処理」-「変数代入」から、変数代入処理(「variable」)をスクリプトキャンバスに配置します。

  5. 変数代入処理(「variable」)のMapperエディタを開き、読み取ったメールアドレスの値をスクリプト変数に代入する処理を作成します。
    • マッピングキャンバスは、以下のように設定します。

      マッピングキャンバス



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

      [必須設定]タブ



      処理のポイント
      • [条件][変数と変数の比較]を選択することで、スクリプト変数同士の比較が可能です。

  7. デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル書き込み」から、CSVファイル書き込み処理をスクリプトキャンバスに配置します。
    • CSVファイル書き込み処理の設定は、以下のように行います。

      [必須設定]タブ

      [書き込み設定]タブ


      [上書き]および[追加書き込み]にチェックを入れます。

  8. デザイナのツールパレット「基本」-「処理」-「変数代入」から、変数代入処理(「variable(1)」)をスクリプトキャンバスに配置します。

  9. 変数代入処理(「variable(1)」)のMapperエディタを開き、「メール_現在」の値を「メール_前回」というスクリプト変数に代入する処理を作成します。
    • マッピングキャンバスは、以下のように設定します。

      マッピングキャンバス



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

コメント

ログインしてコメントを残してください。

Powered by Zendesk