企業間でやりとりするファイルでよく見かけるフォーマットとして、レコードが「ヘッダレコード」「データレコード」「トレーラレコード」に分かれているフォーマットがあります。
このフォーマットについて覚えておくと、出向先のソースコードを読むのが楽になったり他社とのやりとりが楽になります。
以下で、「ヘッダレコード」「データレコード」「トレーラレコード」の簡単な説明と使用例を記載します。
【それぞれのレコードの説明】
・ヘッダレコード
ファイルの1レコード目のレコード。
一般的には、そのファイルが何日のデータなのかが記載される。
・データレコード
ファイルの中間レコード。
実際にやりとりするデータの中身が記載される。
・トレーラレコード
ファイルの最終レコード。
一般的には、そのファイルのデータレコード件数が記載される。
【フォーマット例】
取扱商品ファイルを想定した例を記載します。
可変長のCSVファイルを想定します。
(固定長の場合も多いです。固定長の場合は、カンマ区切りではなくバイト数で区切ることになります。)
・ヘッダレコード
1項目目:ファイル区分(1がセットされる)
2項目目:ファイル作成日付(YYYYMMDD)
・データレコード
1項目目:ファイル区分(2がセットされる)
※5がセットされることも多いです
2項目目:商品コード(7桁の数値)
3項目目:商品名(全角文字)
4項目目:値段(数値)
・トレーラレコード
1項目目:ファイル区分(9がセットされる)
2項目目:データレコードの件数(数値)
【ファイルのレコード例】
1,20190602
2,0000001,ほげ商品,100
2,0000002,ふが商品,250
2,0000003,ぴよ商品,1000
9,3
【ファイル受信時の処理例】
ヘッダレコードやトレーラレコードは、受信側のチェック処理に利用できます。
以下、ファイルを1レコード目から順番に読む場合の処理例について記載します。
・ファイル区分が1の時
1レコード目がファイル区分1でなければ異常終了。
(送信側が中間ファイル等誤ったファイルを送信することを想定)
バッチ日付と比較し一致しなければ異常終了。
(送信側が誤って過去ファイルを送信することを想定)
・ファイル区分が2の時
業務上必要な処理を実行。
・ファイル区分が9の時
最終レコードのファイル区分が9でなければ異常終了。
(ファイルを全件受信できていないことを想定)
件数がファイル区分2のレコード数と一致しなければ異常終了。
(ファイルを全件受信できていないことを想定)