ログファイルを読み取り、エラーレベルのログがあった場合はエラーメールを送信したい
キーワード:区切り文字,デリミタ文字,CSV
概要
ログファイルなど、「,」(半角カンマ)以外で区切られたファイルを読み取りたい場合、CSVファイル読み取り処理を使用し、 [デリミタ文字]を設定します。ログファイルを分析し、エラーレベルのログが存在する場合は、ログファイルを添付ファイルとしてエラーメールを送信します。
サンプルプロジェクトの説明
「|」(半角バーティカルバー)で区切られたログファイルを読み取り、「ログレベル」を判定します。エラーレベルのログが存在する場合、ログファイルを添付ファイルとしてメールを送信します。
本シナリオでは、「WARN」・「ERROR」・「FATAL」をエラーレベルとして扱います。

処理の流れ
サンプルプロジェクトの処理の流れは以下の通りです。- 「CSVファイル読み取り処理」で入力ファイルを読み取ります。
- 「マッピング処理」でエラーレベルのログを抽出します。
- エラーレベルのログが存在する場合、「繰り返し(データ件数)処理」で以下の処理を行います。
- 「1通メール送信処理」でログファイルを添付ファイルとしてエラーメールを送信します。

- エラーレベルのログがある場合、以下のメールが送信先メールアドレスに送信されます。
メール内容
件名 エラーを検知しました 本文 エラーログは添付ファイルを参照してください。 添付 indata.log
ポイントとなる機能
名前 | 説明 | ツールパレット上の場所 |
---|---|---|
マッピング処理 | 入力データの変換を行います。 | 「変換」-「基本」-「マッピング」 |
繰り返し(データ件数)処理 | 入力データの件数分、処理を繰り返します。 | 「基本」-「フロー」-「繰り返し(データ件数)」 |
処理のポイント
繰り返し(データ件数)処理は、データが1件以上ある場合に繰り返し処理を実行します。なお、繰り返し処理は1回のみ実行したいため、break処理を使用して繰り返し処理を終了させます。
サンプルプロジェクトの使用方法
上記処理を実装したサンプルプロジェクトを用意しています。サンプルプロジェクトを使用する場合の手順は、以下の通りです。サンプルプロジェクトのダウンロード | 逆引きリファレンス シナリオ063のサンプルプロジェクト |
---|
- サンプルプロジェクトの展開
サンプルプロジェクトファイル「rl_reference_063.zip」を展開します。 - プロジェクトのアップロード
「rl_reference_063.zip」を展開後に作成される「rl_reference_063プロジェクト」ディレクトリがプロジェクトファイルとなります。
DataSpider Studioを起動し、マイプロジェクトの画面から[ファイル]-[ローカルからアップロード]で展開したディレクトリ「rl_reference_063プロジェクト」をアップロードしてください。 - サンプルデータの準備
「rl_reference_063.zip」を展開後に作成される「samples」ディレクトリがサンプルデータとなります。
$DATASPIDER_HOME/server/samplesディレクトリに上書きしてください。 - コントロールパネルの[グローバルリソースの設定]から、[新しいグローバルリソースの追加]を選択し、メール送信サーバ接続設定のグローバルリソースを作成します。
グローバルリソースの作成方法については、メールアダプタのDataSpider Servistaヘルプの「グローバルリソースのプロパティ」を参照してください。
スクリプトの作成手順

- デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル読み取り」から、CSVファイル読み取り処理をスクリプトキャンバスに配置します。
- CSVファイル読み取り処理の設定は、以下のように行います。
[必須設定]タブ
- CSVファイル読み取り処理の設定は、以下のように行います。
- デザイナのツールパレット「変換」-「基本」-「マッピング」から、マッピング処理をスクリプトキャンバスに配置します。
- デザイナのツールパレット「基本」-「フロー」-「繰り返し(データ件数)」から、繰り返し(データ件数)処理をスクリプトキャンバスに配置します。
- 繰り返し(データ件数)処理の設定は、以下のように行います。
[必須設定]タブ
処理のポイント
- 繰り返し(データ件数)処理は、データが1件以上ある場合に繰り返し処理を実行します。
そのため、エラーレベルのログが存在する場合、繰り返し処理が実行されます。
- 繰り返し(データ件数)処理は、データが1件以上ある場合に繰り返し処理を実行します。
- 繰り返し(データ件数)処理の設定は、以下のように行います。
- マッピング処理のMapperエディタを開き、エラーレベルのログを抽出する処理を作成します。
- マッピングキャンバスは、以下のように設定します。
マッピングキャンバス
番号 ロジック名 説明 ツールパレット上の場所 (1) 条件による抽出 条件にマッチしたもののみ繰り返して出力します。 「繰り返し」-「条件指定」-「条件による抽出」 (2) 単一行文字列定数 単一行の文字列定数を出力します。
[必須設定]タブの[一行文字列]は「NG」を入力します。「文字列」-「基本」-「単一行文字列定数」 (3) 文字列ごとに置換 入力文字列を変換テーブルにより置換して返します。
[変換テーブル]は以下のように設定します。変換元 変換先 FATAL NG ERROR NG WARN NG 「文字列」-「変換」-「文字列ごとに置換」 (4) 同じ 二つの入力文字列が等しいかどうか判定します。 「条件」-「文字列」-「同じ」
処理のポイント
- 判定したい文字列が複数の場合、置換してから判定することでアイコンの配置数を減らすことができます。
- マッピングキャンバスは、以下のように設定します。
- デザイナのツールパレット「ネットワーク」-「メール」-「1通メール送信」から、1通メール送信処理をスクリプトキャンバスに配置します。
- 1通メール送信処理の設定は、以下のように行います。
[必須設定]タブ
[メッセージ]タブ
[添付ファイル]タブ
- 1通メール送信処理の設定は、以下のように行います。
- デザイナのツールパレット「基本」-「フロー」-「break」から、break処理をスクリプトキャンバスに配置します。
- break処理のプロパティはありません。
処理のポイント
- 繰り返し処理は1回のみ実行したいため、break処理を使用して繰り返し処理を終了させます。
break処理を実行すると、繰り返し(データ件数)処理を終了し、繰り返し(データ件数)終了アイコンより処理が継続されます。
- 繰り返し処理は1回のみ実行したいため、break処理を使用して繰り返し処理を終了させます。
- break処理のプロパティはありません。
- スクリプトを実行し、正常終了すれば成功です。