FLARES LLC
FLARES LLC

Technical document

CSV取り込みのエラーレポートを利用者向けに設計する

CSV取り込みの失敗は、システムの失敗ではなく修正可能な入力不備であることが多くあります。利用者が直せるエラーレポートを返すことが、運用の鍵になります。 CSV取り込みのエラー設計では、失敗を検出するだけでなく、利用者が次に直せる形で返すことが品質になります。
データ連携 / エラー設計約10分公開日 2026年7月5日更新日 2026年7月5日
CSV取り込みのエラーレポートを利用者向けに設計するのアイキャッチ

Summary

この文書の要点

  • 行番号、列名、入力値、修正理由をセットで返す。
  • エラーと警告を分け、取り込み可否を明確にする。
  • 行番号、列名、エラー種別、修正例、重大度を構造化して返す。
  • 構文エラー、型変換エラー、業務ルール違反、重複を別カテゴリにする。

どこが設計の難所か

CSV取り込みで「validation failed」とだけ表示されても、利用者は何を直せばよいか分かりません。技術者がログを見ないと解決できない取り込みは、日常業務に乗りません。

CSVには複数のエラーが同時に含まれます。最初の1件で止めると修正と再取り込みを何度も繰り返すことになります。一方で、大量エラーをそのまま表示しても読めません。

CSV取り込みで「エラーがあります」とだけ表示しても、利用者はどこを直せばよいか分かりません。開発者向けの例外メッセージをそのまま出すと、情報としても安全性としても不十分です。

境界をどう切るか

取り込み処理では、構造エラー、行エラー、警告を分けます。構造エラーは処理を止め、行エラーは一覧化し、警告は取り込み可能だが確認が必要なものとして扱います。

設計では、パース、ヘッダー検証、型変換、業務検証、登録を段階化し、それぞれの失敗を同じエラーレポート形式へ変換します。画面はこのレポートを使って、行ごとの修正導線を提供します。

実装で効く細部

エラーレポートには、行番号、列名、入力値、期待形式、修正例、エラーコードを含めます。React画面ではエラー行を絞り込み、CSVとしてダウンロードできるようにします。テンプレート版をヘッダーやメタデータで確認します。

エラーレポートは`row_number`、`column_key`、`column_label`、`code`、`message`、`severity`、`suggestion`を持つ配列にします。React側ではCSVの該当行をハイライトし、エラーのみのダウンロードや修正後再アップロードを支援します。

  • ファイル全体エラーと行単位エラーを分ける。
  • 警告は登録可能、エラーは登録不可など、重大度ごとの扱いを明確にする。
  • 内部の例外名やSQLエラーを利用者向けメッセージへ直接出さない。

壊れ方を観測する

検証では、複数行エラー、テンプレート違い、重複キー、警告のみのファイル、エラー修正後の再取り込みを確認します。文言が業務担当者に伝わるかもレビュー対象にします。

検証では、文字コード違い、列不足、空値、数値形式、日付形式、重複、参照先なしをサンプル化します。エラー件数が多い場合の表示、ダウンロード、ページングも確認します。

捨てた選択肢とトレードオフ

親切なエラーを作るには実装コストがかかります。ただし、取り込み業務ではエラー対応が運用時間の大半になることがあります。最初からレポート設計に投資する価値があります。

詳細なエラーを返すほど修正しやすくなりますが、実装とメッセージ管理の負荷は増えます。最初は登録を止める重大エラーから始め、警告や修正候補は利用頻度に応じて追加するのが現実的です。

現場に残す判断軸

CSV取り込みは、成功時より失敗時の体験が重要です。利用者が自分で直せるエラーレポートを返すことで、システム運用の負担を大きく減らせます。

CSV取り込みのエラーは、失敗の通知ではなく修正作業のUIです。エラーを構造化すると、取り込み機能そのものの信頼性が上がります。

Technical documents

技術文書を増やしていきます。

AI、クラウド、業務アプリ開発、要件定義、運用設計に関する考え方を、今後も文書として整理します。

技術文書一覧へ