概要
システム間でファイル連携をする際に、仕様を明確にしていなかったために、後々問題になることがあります。事前にどのようなことを取り決めておかないといけないかを列挙してみました。
詳細
共通検討事項
全ファイル共通
検討事項 |
例 |
備考 |
ファイル名 |
固定名、可変名 |
yyyyMMddHHmmsssを付けたりする。 |
拡張子 |
csv, tsv, json, xml, xlsx |
拡張子だけではデータ形式が不明な場合もある。 |
連携対象 |
全データ, 前回との差分データ |
|
データなし時の連携 |
ファイルなし, 空ファイル |
|
連携後のファイル |
削除する, 放置する |
|
テキストファイル共通
検討事項 |
例 |
備考 |
ファイル名 |
固定名、可変名 |
末尾にyyyyMMddHHmmsssを付けたりする。 |
文字コード |
UTF-8, Shift_JIS |
BOMの有無。 |
改行コード |
CR, LF, CRLF |
|
個別検討事項
可変ファイル
検討事項 |
例 |
備考 |
セパレータ |
カンマ, タブ |
|
文字コード |
UTF-8, Shift_JIS |
BOMの有無。 |
改行コード |
CR, LF, CRLF |
|
値に含まれる制御文字 |
カンマ, タブ, 改行, ダブルクォート, 改行 |
|
ダブルクォートでの囲み |
常にあり, 常になし, 文字列のみあり, 必要に応じてあり |
|
タイトル行 |
あり, なし |
|
ヘッダー行 |
あり, なし |
ヘッダー行と明細行で項目数が異なることもある。 |
フッター行 |
あり, なし |
フッター行と明細行で項目数が異なることもある。 |
固定長ファイル
検討事項 |
例 |
備考 |
タイトル列 |
あり, なし |
|
フッター行 |
あり, なし |
フッター行と明細行で項目数が異なることもある。 |
JSON
XML
補足
- 特に CSVファイル が厄介な気がします。CSVファイルと言いながら、中身がタブ区切りであったりすることが多々あります。テキストファイルの連携は、早い段階で実ファイルを入手して確認するのが最善かと思います。
- デヂエのデータを連携した際は、値に改行が含まれていて苦労しました。
編集後記
思いつくままに記載したので、まだまだ検討すべきことはあると思います。
フォロー頂けるとありがたいです。