業務システムのCSV取込で重要なのは、正常なファイルを一度読み込めることだけではありません。現場では列名の変更、空欄、日付の書き方、表計算ソフトによる値の変化が起きます。問題があるときに担当者が自分で原因を把握し、安全に修正をやり直せる設計が、継続して使える機能につながります。
架空の備品管理会社が、取引先から受け取った商品一覧を管理画面へ取り込む場面を考えます。商品コードには先頭のゼロがあり、同じ商品が二つの行に現れます。一部の数量は空欄です。この例は実際の顧客データではなく、開発前に取込ルールを確認するための題材です。
ファイルの約束を先に決める
文字コード、区切り文字、引用符、改行、必須列、最大容量を明示します。見た目が同じCSVでも、値の中にカンマや改行を含む場合があります。単純に文字を分割する処理では壊れるため、合意した形式を扱える読み込み方法を選び、実際の出力元に近いサンプルで確認します。
商品コードは数値ではなく文字列として保持するなど、列ごとの意味を決めます。空欄を変更なしとするのか、値の削除とするのかも重要です。全角と半角の統一や表記の正規化は、同一と扱ってよい項目だけに限定してください。管理番号まで一律に変換すると、別の識別子を誤ってまとめる可能性があります。
検証結果は直せる形で返す
エラーには元ファイルの行番号、列名、問題の種類、期待する形式を表示します。「取込失敗」だけでは、担当者はファイル全体を調べ直す必要があります。行番号の基準に見出しを含むかも統一し、元の値と解釈後の値が異なる場合は確認画面で差を見せます。
エラー一覧をダウンロードできると便利ですが、元ファイルの全情報を誰にでも渡してよいわけではありません。必要な項目に限定し、出力の権限も確認します。表計算ソフトで開くためのファイルを返す場合は、セルが意図せず式として実行されない出力方法についても、用途に合わせて検討してください。
確定の単位と再実行を設計する
一件でも不正なら全件を止めるのか、独立した正常行だけを受け付けるのかを決めます。商品とその関連データを別々に確定すると中途半端な状態が残るため、業務上のまとまりを考慮します。部分成功なら、受け付けた行と未処理の行を明確に分け、単なる成功率ではなく次に必要な作業を伝えます。
同じファイルを再送した場合や、通信が切れて結果が見えなかった場合も想定します。取込番号と業務キーを使い、確認済みの操作を重複実行しないようにします。ただし同名ファイルでも内容は変わり得ます。ファイル名だけで再取込を拒否せず、どの内容をどのルールで処理したかを記録します。
修正の一周を受入条件にする
先頭ゼロ、引用符を含む名称、重複コード、空欄、途中で壊れた行を含む試験ファイルを用意します。担当者が検証結果を見て修正し、再取込後に正しい件数と値を確認できるかを試してください。確認画面を開いている間に既存データが変わった場合の扱いも確認します。
Brainbaby Labsには、個人情報を除いたサンプルCSVと「追加・更新・削除」のルールを共有すると、具体的な開発範囲を相談できます。単に取込ボタンを増やすのではなく、間違いを見つけて作業を完了できる管理画面として設計することが目標です。