書き込み時にエラーが発生したデータを特定・抽出したい
キーワード:書き込み,エラー,エラーデータ
概要
書き込み時にエラーが発生したデータを特定・抽出したい場合、例外監視処理・繰り返し(データ件数)処理を使用します。サンプルプロジェクトの説明
書き込み処理を1件ずつ行い、例外を監視することでエラーデータを特定します。

処理の流れ
サンプルプロジェクトの処理の流れは以下の通りです。- 「CSVファイル読み取り処理」で抽出対象のデータを読み取ります。
- 「繰り返し(データ件数)処理」で入力データの件数分、以下の処理を繰り返します。
- 「例外監視処理」で例外を監視します。
- 「マッピング処理」で入力データの変換を行います。
- 「CSVファイル書き込み処理」で変換したデータを正常データファイルに書き込みます。
- 例外が発生した場合、「CSVファイル書き込み処理」でエラーとなったデータをエラーデータファイルに書き込みます。

- 正常データの出力結果については、サンプルプロジェクトのサンプルデータ「output.csv」を参照してください。
- エラーが発生したデータの抽出結果については、サンプルプロジェクトのサンプルデータ「error.csv」を参照してください。
ポイントとなる機能
名前 | 説明 | ツールパレット上の場所 |
---|---|---|
例外監視処理 | 対象となる処理の例外を監視し、例外処理を行います。 | 「基本」-「フロー」-「例外監視」 |
繰り返し(データ件数)処理 | 入力データの件数分、処理を繰り返します。 | 「基本」-「フロー」-「繰り返し(データ件数)」 |
処理のポイント
繰り返し(データ件数)処理内に例外監視処理を配置することで、エラーが発生しても中断せずに処理を続行します。また、繰り返し(データ件数)処理のコンポーネント変数「count」を使用して行番号を取得し、エラーデータを特定します。
例外処理内で例外通知処理、break処理などを使用することによって、1件でもエラーが発生した場合に処理を中断することも可能です。
サンプルプロジェクトの使用方法
上記処理を実装したサンプルプロジェクトを用意しています。サンプルプロジェクトを使用する場合の手順は、以下の通りです。サンプルプロジェクトのダウンロード | 逆引きリファレンス シナリオ093のサンプルプロジェクト |
---|
- サンプルプロジェクトの展開
サンプルプロジェクトファイル「rl_reference_093.zip」を展開します。 - プロジェクトのアップロード
「rl_reference_093.zip」を展開後に作成される「rl_reference_093プロジェクト」ディレクトリがプロジェクトファイルとなります。
DataSpider Studioを起動し、マイプロジェクトの画面から[ファイル]-[ローカルからアップロード]で展開したディレクトリ「rl_reference_093プロジェクト」をアップロードしてください。 - サンプルデータの準備
「rl_reference_093.zip」を展開後に作成される「samples」ディレクトリがサンプルデータとなります。
$DATASPIDER_HOME/server/samplesディレクトリに上書きしてください。
スクリプトの作成手順

- デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル読み取り」から、CSVファイル読み取り処理をスクリプトキャンバスに配置します。
- CSVファイル読み取り処理の設定は、以下のように行います。
[必須設定]タブ
- CSVファイル読み取り処理の設定は、以下のように行います。
- デザイナのツールパレット「基本」-「フロー」-「繰り返し(データ件数)」から、繰り返し(データ件数)処理をスクリプトキャンバスに配置します。
- 繰り返し(データ件数)処理の設定は、以下のように行います。
[必須設定]タブ
- 繰り返し(データ件数)処理の設定は、以下のように行います。
- デザイナのツールパレット「基本」-「フロー」-「例外監視」から、例外監視処理をスクリプトキャンバスに配置します。
- デザイナのツールパレット「変換」-「基本」-「マッピング」から、マッピング処理(「mapping」)をスクリプトキャンバスに配置します。
- デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル書き込み」から、CSVファイル書き込み処理をスクリプトキャンバスに配置します。
- CSVファイル書き込み処理の設定は、以下のように行います。
[必須設定]タブ
[書き込み設定]タブ
- CSVファイル書き込み処理の設定は、以下のように行います。
- マッピング処理(「mapping」)のMapperエディタを開き、入力データと行番号をCSVファイル書き込み処理の入力スキーマにマッピングする処理を作成します。
- マッピングキャンバスは、以下のように設定します。
マッピングキャンバス
番号 ロジック名 説明 ツールパレット上の場所 (1) 単純な繰り返し 指定したノードを繰り返します。 「繰り返し」-「基本」-「単純な繰り返し」 (2) 数値に変換 入力を数値型へ変換します。 「数値」-「基本」-「数値に変換」 (3) 数値定数 数値定数を出力します。
[必須設定]タブの[数値]には「1」と入力します。「数値」-「基本」-「数値定数」 (4) 足し算 二つの入力数値を足して返します。 「数値」-「演算」-「足し算」
処理のポイント
- 繰り返し(データ件数)のコンポーネント変数「count」は0から開始されるため、行番号として使用する場合は「count」に1を足してください。
- 本サンプルでは意図的にエラーを発生させるため、文字データを数値に変換させています。
- マッピングキャンバスは、以下のように設定します。
- デザイナのツールパレット「変換」-「基本」-「マッピング」から、マッピング処理(「mapping(1)」)をスクリプトキャンバスに配置します。
- デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル書き込み」から、CSVファイル書き込み処理をスクリプトキャンバスに配置します。
- CSVファイル書き込み処理の設定は、以下のように行います。
[必須設定]タブ
[書き込み設定]タブ
処理のポイント
- 複数件のエラーデータを出力する場合、[書き込み設定]タブの[追加書き込み]にチェックを入れてください。
- CSVファイル書き込み処理の設定は、以下のように行います。
- マッピング処理(「mapping(1)」)のMapperエディタを開き、エラーデータと行番号をCSVファイル書き込み処理の入力スキーマにマッピングする処理を作成します。
- マッピングキャンバスは、以下のように設定します。
マッピングキャンバス
番号 ロジック名 説明 ツールパレット上の場所 (1) 数値定数 数値定数を出力します。
[必須設定]タブの[数値]には「1」と入力します。「数値」-「基本」-「数値定数」 (2) 足し算 二つの入力数値を足して返します。 「数値」-「演算」-「足し算」
処理のポイント
- 繰り返し(データ件数)のコンポーネント変数「count」は0から開始されるため、行番号として使用する場合は「count」に1を足してください。
- マッピングキャンバスは、以下のように設定します。
- スクリプトを実行し、以下の結果になれば成功です。
- 正常なデータは「output.csv」に書き込まれます。
- エラーが発生したデータは「error.csv」に書き込まれます。