CSV取り込みは「現場が自力でメンテできる」強い手段ですが、設計が甘いと事故の温床になります。
典型は、列の意味が曖昧・表記揺れ・必須漏れ・更新対象の判定ミス・取り込み後に気づく誤登録です。
この記事では、CSVを“運用として回す”ために必要な仕様を、データ定義から検証・差し戻しまで整理します。
CSVで何でもできるようにすると、誰も使えなくなります。
まず「CSVでメンテする対象」を限定します。例は次のとおりです。
“慎重に”の領域は、ステータス運用(ステータス設計)やログ(権限・ログ)と衝突しやすいからです。
たとえば「問い合わせをCSVで一括で完了にする」は可能でも、説明責任が崩れます。
CSVの事故で多いのは、更新対象がズレることです。
そのため、更新判定のキーは、現場が理解でき、かつ一意である必要があります。
CSVは、フォームよりも入力の自由度が高い分、必須/任意の基準がブレると破綻します。
考え方はフォーム設計(必須・任意の基準)と同じで、
「後工程で詰まるなら必須」「なくても業務が回るなら任意」に寄せます。
また、選択肢がある列は「自由入力」にせず、コード化・正規化します。
カテゴリや種別を自由入力にすると、集計(レポート)が死にます。
取り込み処理が途中で止まるのは最悪です。理想は「全行検証→エラー一覧返却→修正→再アップ」です。
エラー文言は、フォームのエラー設計(文言と位置)と同じく、
「どの行のどの列が、何が原因で、どう直せば良いか」まで返します。
「一部だけ成功、一部失敗」も実務では必要ですが、最初は“全体を安全に”運用できる形を優先したほうが事故が少ないです。
CSVは一気に大量更新が走るため、「やっぱ戻したい」が必ず起きます。
最低限、次の情報は履歴として残します。
権限・ログは 権限・ログ設計 と整合し、
少なくとも「CSV取り込みは管理者のみ」「履歴閲覧は閲覧権限でも可」など、運用に合わせて線引きします。
価格表や在庫情報の更新が多く、CSVが主役になりやすい領域です。
業務像は 卸売・商社(BtoB企業)向け を前提に、
ロット・納期・分納条件(関連:商社の見積項目)がCSV列に反映される設計が現実的です。
タイヤサイズ、作業工賃、持込可否、部品種別など“更新頻度が高いマスタ”が多いです。
業務像は 自動車販売・整備・タイヤショップ向け を前提に、
工賃表の更新はCSV、予約枠は画面で調整(関連:時間枠設計)など、役割分担を決めると運用が回ります。
インテンスとしても、CSVは「自由に編集できる」より「事故らない」設計を優先したほうが、長期運用で得になります。
CSV取り込みは、仕様が“運用そのもの”です。
対象を限定し、更新キーを固定し、必須/任意とコード体系を揃え、取り込み前検証で差し戻し可能にする。
さらに履歴と権限を固めれば、CSVは現場の武器になります。