RegexpMatch(正規表現マッチ)によるフォーマットエラー検出方法

注文データのような重要データにフォーマット誤りや不正値が含まれると、データ登録・加工時にエラーが発生する恐れがあります。それを防止するために、Asteria Warpの「正規表現関数」を活用し、データを自動チェックして不正を検出し、担当者へ通知するフローを構築しました。

フローの解説

フローでは、まず対象の注文データを読み込み、RegexpMatch 関数を用いて各フィールドのフォーマットや値をチェックします。

全レコードの「確認結果」が true の場合のみデータベースへ登録し、1件でも false があれば登録を中止してエラーデータを抽出し、エラーファイルを出力して担当者へメール通知します。

フローの詳細

FileGet1コンポーネント

対象ファイルを読み込みます。

ファイルパスに対象パス「20251028/20251028注文データ.csv」を入力する

20251028注文データ.csvファイルの中身

Mapper1コンポーネント

このMapperでは「データ出力」、「データ確認」の2つのレイヤーが存在します。

「データ出力」レイヤー

読み込まれた各フィールドをそのまま出力を行う

データ出力レイヤー

「データ確認」レイヤー

各フィールドのフォーマット、値をRegexpMatch関数より確認を行う

データ確認レイヤー

RegexpMatchの設定

各フィールドの正規表現は以下ファイルを参照ください。

BranchStart1コンポーネント

条件式に「$record.確認結果="true"」を設定する

※判定方法に「すべて一致」を選択する

その設定により、全レコードの「確認結果」がtrueのみ、BranchStart1の右方向へ流されてデータベースへ登録処理を行いう

一方、1件でも「確認結果」がfalseの場合は、BranchStart1の下方向へ流されて担当者へエラーメールを送信する

RecordFilter1コンポーネント

フィルタリングの案件に「条件式」を設定する

条件式に「$record.確認結果="false"」を設定し、falseのレコードを絞り込む

Mapper4コンポーネント

エラーレコードを出力するための準備を行う

出力するエラーファイル名をExtract関数、Embed関数により作成する

FilePut1コンポーネント

直前Mapper4コンポーネントのEmbed関数により代入されるパスにファイルを出力する

Mapper3コンポーネント

メール本文を作成

Mapper5コンポーネント

添付するファイルパスをFileGetコンポーネントへ代入する

FileGet2コンポーネント

添付するファイルを読み込む

SimpleMail1コンポーネント

担当者へエラーメール送信するための設定を行う

コネクション名:「対象コネクション名」を設定 例:SMTPtest

差出人:「対象メール」を設定 例:example@gmail.com

宛先:「対象メール」を設定  例:tanaka123@gmail.com

件名:「任意の件名」を設定  例:注文データのフォーマットエラーについて

入力ストリームを本文とする:「はい」を選択

ファイルを添付:「はい」を選択

フローの実行結果

注文データの読込処理
RegexpMatchにより、各フィールドの確認処理
「確認結果」にfalseのレコードが存在するため、担当者へエラーメール送信処理へ進む
エラーメール送信(添付ファイル付き)
注文データ_エラーファイルの内容

ファイル読込後にデータ不正を検出することで、エラー箇所の特定やメール通知による即時対応が可能となり、システムの保守性向上につながります。

最後までお読みいただき、ありがとうございました。

少しでもご参考になれば幸いです。