BLOGIT基礎
定期CSV連携を安定させる|ファイル名・締め・再取込の設計
APIを使わないCSV連携でも、運用を決めれば安定します。逆に、共有フォルダへ置くだけでは古い版や再取込を見分けられません。

先に結論一ファイルの対象範囲と識別子を決め、受領・検証・取込・照合を別状態で管理します。
対象期間と締め時刻を決める
前日分、月初から締め日までなど、含む開始・終了を明記します。作成時刻ではなくデータの対象期間をファイル内にも持たせます。
締め後の訂正を次回差分で送るか、差替えファイルにするかを決めます。過去ファイルを黙って上書きしません。
ファイル名と置き場所を一意にする
連携名、対象日、版、連番を含め、同名ファイルの上書きを避けます。作成途中のファイルを取込まないよう、完了後に名称変更する等の手順を使います。
SFTP等の安全な経路を使い、共有パスワードやメール添付へ依存しません。送信・受信・処理済み・エラーの場所と保存期間を決めます。
取込前検査と再取込を設計する
列数、見出し、文字コード、件数、日付範囲、合計、ファイルサイズを検査します。仕様違いは全件エラーか、一部取込かを明示します。
ファイルIDと行IDを使い、同じファイルの再送で二重登録しないようにします。差替えは以前の処理を取り消すのか差分だけ反映するのかを責任者と決めます。
送受信双方で照合する
送信件数と受信件数、正常・警告・エラー、重要合計を比較します。0件ファイルも正常な0件か処理失敗かを区別します。
未着、遅延、連続失敗を通知し、休日の連絡先を決めます。手動復旧後も自動処理が同じデータを再度入れないよう確認します。
相談前にそろえるもの
- 対象期間・締め
- 一意なファイル名・版
- 安全な置き場所
- 取込前検査・重複防止
- 送受信件数・合計
全部そろっていなくても構いません。分かる範囲を確認し、業務ルールや金額に関わる部分は担当者と一緒に決めます。