# ファイル定義書 ## 変更履歴 | No | 変更内容 | 担当者 | 変更日 | 承認者 | 備考 | |----|---------|--------|--------|--------|------| | 1 | 新規作成 | AI | YYYY/MM/DD | | | ## Layout(レコードレイアウト) ### ファイル基本情報 | ファイル名 | COPY ID | 媒体 | レコード形式 | レコード長 | |-----------|---------|------|-------------|-----------| | | | PS | FB | | ### レコード定義 | No | レベル | 項目名 | 項目名(英字名) | 属性 | バイト数 | OCCURS | 開始位置 | REDEFINES | 所属グループ | 備考 | |----|--------|--------|---------------|------|---------|--------|---------|-----------|-------------|------| | 1 | | | | | | | | | | | | 2 | | | | | | | | | | | | 3 | | | | | | | | | | | | 4 | | | | | | | | | | | --- ## 記載説明 | 項目 | 説明 | |------|------| | 媒体 | ファイル(PS)の場合は"PS"と記録 | | レコード形式 | 固定長(FB)または可変長(VB)と記録 | | レコード長 | レコード長は全項目のバイト数を合計して記録。FDのRECORD SIZEと一致させること。REDEFINES項目は合計に含まない。 | | レベル | レベル番号の定義:01, 03, 05, 07, 09... と飛び飛びのレベル番号とする。同じレベル番号は兄弟関係となる。 | | 属性(PIC TYPE) | 属性(TYPE)とバイト数を記入するものとする。原則PIC記法で記録。COBOL記述に沿ったシートの記載内容に準拠。 | ## COBOLデータ型一覧 | No | COBOL記述 | 略記法 | バイト数 | 説明 | 日本語説明 | 例 | バイト数(例) | |----|-----------|--------|---------|------|-----------|-----|-------------| | 1 | PIC X(n) | X(n) | n | 英数字 | 固定長英数字 | X(10) | 10 | | 2 | PIC G(n) | G(n) | n×2 | DBCS文字 | ダブルバイト文字(日本語) | G(20) | 40 | | 3 | PIC 9(n) | 9(n) | n | 数字・10進(符号無) | 符号無し整数 | 9(7) | 7 | | 4 | PIC S9(n) | S9(n) | n | 数字・10進(符号有) | 符号付き整数 | S9(7) | 7 | | 5 | PIC S9(n)V9(m) | S9(n)V9(m) | n+m | 数字・10進(符号有・小数) | 暗黙小数点付き(DISPLAY) | S9(7)V9(2) | 9 | | 6 | PIC S9(n) COMP-3 | S9(n) COMP-3 | INT((n+2)/2) | パック10進(符号有) | 内部10進数 | S9(7) COMP-3 | 4 | | 7 | PIC 9(n) COMP-3 | 9(n) COMP-3 | INT((n+1)/2) | パック10進(符号無) | 内部10進数(符号無) | 9(7) COMP-3 | 4 | | 8 | PIC S9(n)V9(m) COMP-3 | S9(n)V9(m) COMP-3 | INT((n+m+2)/2) | パック10進(符号有・小数) | 暗黙小数点付きCOMP-3 | S9(7)V9(2) COMP-3 | 5 | | 9 | PIC S9(4) COMP | S9(4) COMP | 2 | 2進(2バイト) | 半語長バイナリ | S9(4) COMP | 2 | | 10 | PIC S9(9) COMP | S9(9) COMP | 4 | 2進(4バイト) | 全語長バイナリ | S9(9) COMP | 4 | | 11 | PIC S9(18) COMP | S9(18) COMP | 8 | 2進(8バイト) | 2語長バイナリ | S9(18) COMP | 8 | | 12 | PIC S9(n)V9(m) COMP | S9(n)V9(m) COMP | n+m≦4→2, ≦9→4, ≦18→8 | 2進(符号有・小数) | 暗黙小数点付きCOMP | S9(9)V9(2) COMP | 8 | | 13 | PIC S9(n) BINARY | S9(n) BINARY | n≦4→2, n≦9→4, n≦18→8 | 2進(バイナリ) | COMPと同一 | S9(15) BINARY | 8 | | 14 | ZZZ9 | ZZZ9 | Zの数+9の数 | 数字編集パターン | ゼロ抑制編集 | ZZZZ9 | 5 | ## COBOL記述例 ### 例1: 基本レイアウト COBOL定義: ``` 01 TEST-RECORD. 03 FIELD-1 PIC X(10). 03 FIELD-2 PIC S9(7) COMP-3. 03 FIELD-3 PIC 9(4). 03 FIELD-4 PIC S9(9) COMP. 03 FILLER PIC X(5). ``` FD記述: | No | レベル | 項目名 | 項目名(英字名) | 属性(PIC TYPE) | バイト数 | OCCURS | 開始位置 | REDEFINES | 所属グループ | 備考 | |----|--------|--------|---------------|----------------|---------|--------|---------|-----------|-------------|------| | 1 | 01 | テストレコード | TEST-RECORD | | | | 1 | | | | | 2 | 03 | フィールド1 | FIELD-1 | X | 10 | | 1 | | TEST-RECORD | | | 3 | 03 | フィールド2 | FIELD-2 | S9(7) COMP-3 | 5 | | 11 | | TEST-RECORD | | | 4 | 03 | フィールド3 | FIELD-3 | 9(4) | 4 | | 16 | | TEST-RECORD | | | 5 | 03 | 予約 | FILLER | X(5) | 5 | | 20 | | TEST-RECORD | | ### 例2: REDEFINESを使用する場合 COBOL定義: ``` 01 REDEF-REC. 03 BASE-FIELD PIC X(10). 03 REDEF-FIELD REDEFINES BASE-FIELD. 05 INFO-1 PIC X(5). 05 INFO-2 PIC X(5). ``` FD記述: | No | レベル | 項目名 | 項目名(英字名) | 属性(PIC TYPE) | バイト数 | OCCURS | 開始位置 | REDEFINES | 所属グループ | 備考 | |----|--------|--------|---------------|----------------|---------|--------|---------|-----------|-------------|------| | 1 | 01 | REDEFINESレコード | REDEF-REC | | | | 1 | | | | | 2 | 03 | ベースフィールド | BASE-FIELD | X(10) | 10 | | 1 | | REDEF-REC | | | 3 | 03 | 再定義フィールド | REDEF-FIELD | | | | 11 | BASE-FIELD | REDEF-REC | | | 4 | 05 | 情報1 | INFO-1 | 9(5) | 5 | | 11 | | REDEF-REC | | | 5 | 05 | 情報2 | INFO-2 | 9(5) | 5 | | 16 | | REDEF-REC | | ### 例3: OCCURSを使用する場合 COBOL定義: ``` 01 OCCURS-REC. 03 OCCURS-ITEM OCCURS 3. 05 SUB-1 PIC X(5). 03 AFTER-ITEM PIC 9(3). ``` FD記述: | No | レベル | 項目名 | 項目名(英字名) | 属性(PIC TYPE) | バイト数 | OCCURS | 開始位置 | REDEFINES | 所属グループ | 備考 | |----|--------|--------|---------------|----------------|---------|--------|---------|-----------|-------------|------| | 1 | 01 | OCCURSレコード | OCCURS-REC | | | | 1 | | | | | 2 | 03 | OCCURS項目 | OCCURS-ITEM | | | 3 | 1 | | OCCURS-REC | | | 3 | 05 | サブ項目1 | SUB-1 | X(5) | 5 | | 1 | | OCCURS-REC | | | 4 | 03 | OCCURS後 | AFTER-ITEM | 9(3) | 3 | | 16 | | OCCURS-REC | | ### 例4: OCCURSの多重入れ子 COBOL定義: ``` 01 OCCURS-MULTI-REC. 03 GRP-ITEM OCCURS 3. 05 SUB1 PIC X(5). 05 SUB2 OCCURS 4. 07 SUB2-DATA PIC 9(3). 03 AFTER-ITEM PIC 9(3). ``` FD記述: | No | レベル | 項目名 | 項目名(英字名) | 属性(PIC TYPE) | バイト数 | OCCURS | 開始位置 | REDEFINES | 所属グループ | 備考 | |----|--------|--------|---------------|----------------|---------|--------|---------|-----------|-------------|------| | 1 | 01 | OCCURS多重入れ子レコード | OCCURS-MULTI-REC | | | | 1 | | | | | 2 | 03 | グループ項目 | GRP-ITEM | | | 3 | 1 | | OCCURS-MULTI-REC | | | 3 | 05 | サブ項目1 | SUB-1 | X(5) | 5 | | 1 | | OCCURS-MULTI-REC | | | 4 | 05 | サブ項目2 | SUB-2 | | | 4 | 6 | | OCCURS-MULTI-REC | | | 5 | 07 | サブ項目2データ | SUB2-DATA | 9(3) | 3 | | 6 | | OCCURS-MULTI-REC | | | 6 | 03 | OCCURS後 | AFTER-ITEM | 9(3) | 3 | | 52 | | OCCURS-MULTI-REC | |