複数の条件によって出力する値を振り分けたい
キーワード:Mapper,スイッチ判定による出力の切り替え
概要
複数の条件によって出力する値を振り分けたい場合、スイッチ判定による出力の切り替えロジックを使用します。
CSVファイルを読み取り、点数にしたがって評価を判定し、評価(優・良・可・不可)を付与したファイルを出力する処理を作成します。
処理の流れ
サンプルプロジェクトの処理の流れは以下の通りです。
- 「CSVファイル読み取り処理」で入力ファイルを読み取ります。
- 「マッピング処理」で「スイッチ判定による出力の切り替えロジック」を配置し、条件により出力値を振り分けます。
- 「CSVファイル書き込み処理」で出力ファイルに書き込みます。

実行結果のイメージについては、サンプルプロジェクトのサンプルデータ「点数一覧(評価あり).csv」を参照してください。
ポイントとなる機能
名前 |
説明 |
ツールパレット上の場所 |
スイッチ判定による出力の切り替えロジック |
条件と照らし合わせて真偽値を判定し、trueとなったところで文字列を返します。 |
「分岐」-「基本」-「スイッチ判定による出力の切り替え」 |
処理のポイント
スイッチ判定による出力の切り替えロジックに、複数の条件および文字列を指定します。
サンプルプロジェクトの使用方法
上記処理を実装したサンプルプロジェクトを用意しています。サンプルプロジェクトを使用する場合の手順は、以下の通りです。
- サンプルプロジェクトの展開
サンプルプロジェクトファイル「rl_reference_053.zip」を展開します。
- プロジェクトのアップロード
「rl_reference_053.zip」を展開後に作成される「rl_reference_053プロジェクト」ディレクトリがプロジェクトファイルとなります。
DataSpider Studioを起動し、マイプロジェクトの画面から[ファイル]-[ローカルからアップロード]で展開したディレクトリ「rl_reference_053プロジェクト」をアップロードしてください。
- サンプルデータの準備
「rl_reference_053.zip」を展開後に作成される「samples」ディレクトリがサンプルデータとなります。
$DATASPIDER_HOME/server/samplesディレクトリに上書きしてください。
スクリプトの作成手順

プロセスフローおよびデータフローは、「
サンプルプロジェクトの説明」のスクリプト画像を参照して適宜設定してください。
- デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル読み取り」から、CSVファイル読み取りをスクリプトキャンバスに配置します。
- CSVファイル読み取り処理の設定は、以下のように行います。
[必須設定]タブ
[読み取り設定]タブ
- デザイナのツールパレット「変換」-「基本」-「マッピング」から、マッピング処理をスクリプトキャンバスに配置します。
- デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル書き込み」から、CSVファイル書き込みをスクリプトキャンバスに配置します。
- CSVファイル書き込み処理の設定は、以下のように行います。
[必須設定]タブ
[書き込み設定]タブ
- Mapperエディタのツールパレット「分岐」-「基本」-「スイッチ判定による出力の切り替え」から、スイッチ判定による出力の切り替えロジックをマッピングキャンバスに配置します。
- マッピングキャンバスは、以下のように設定します。
マッピングキャンバス

番号 |
ロジック名 |
説明 |
ツールパレット上の場所 |
(1) |
単純な繰り返し |
指定したノードを繰り返します。 |
「繰り返し」-「基本」-「単純な繰り返し」 |
(2) |
スイッチ判定による出力の切り替え |
スイッチで出力を切り替えます。 [必須設定]タブの[条件数]は「3」を設定します。 |
「分岐」-「基本」-「スイッチ判定による出力の切り替え」 |
(3) |
以上 |
上入力数値が下入力数値以上かどうかを判定します。 |
「条件」-「数値」-「以上」 |
(4) |
数値定数 |
数値定数を出力します。 [必須設定]タブの[数値]は「80」を設定します。 |
「数値」-「基本」-「数値定数」 |
(5) |
単一行文字列定数 |
単一行の文字列定数を出力します。 [必須設定]タブの[一行文字列]は「優」を設定します。 |
「文字列」-「基本」-「単一行文字列定数」 |
(6) |
以上 |
上入力数値が下入力数値以上かどうかを判定します。 |
「条件」-「数値」-「以上」 |
(7) |
数値定数 |
数値定数を出力します。 [必須設定]タブの[数値]は「70」を設定します。 |
「数値」-「基本」-「数値定数」 |
(8) |
単一行文字列定数 |
単一行の文字列定数を出力します。 [必須設定]タブの[一行文字列]は「良」を設定します。 |
「文字列」-「基本」-「単一行文字列定数」 |
(9) |
以上 |
上入力数値が下入力数値以上かどうかを判定します。 |
「条件」-「数値」-「以上」 |
(10) |
数値定数 |
数値定数を出力します。 [必須設定]タブの[数値]は「60」を設定します。 |
「数値」-「基本」-「数値定数」 |
(11) |
単一行文字列定数 |
単一行の文字列定数を出力します。 [必須設定]タブの[一行文字列]は「可」を設定します。 |
「文字列」-「基本」-「単一行文字列定数」 |
(12) |
単一行文字列定数 |
単一行の文字列定数を出力します。 [必須設定]タブの[一行文字列]は「不可」を設定します。 |
「文字列」-「基本」-「単一行文字列定数」 |
処理のポイント
- スイッチ判定による出力の切り替えロジックの最後の入力ハンドラには、すべての条件にあてはまらなかった場合に出力する文字列「不可」を設定します。
|
- スクリプトを実行し、正常終了すれば成功です。