# JIN09RPT 使用資源一覧 ## プログラム概要 - **プログラムID**: JIN09RPT - **プログラム名**: 社員別スキル集計レポート処理 - **処理概要**: SKILL-EVAL(M件, EMP-ID昇順)を社員キーブレイクで集計し、社員別スキル集計結果(SKILL-SUM)を出力する ## 使用ファイル | DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 | |------|---------------|------|-------------|-----------|--------| | JIN09R01 | SKILL-EVAL | 順編成 | F (固定長) | 200B | SKILL-EVAL-REC | | JIN09R02 | SKILL-MST | 順編成 | F (固定長) | 80B | SKILL-MST-REC | | JIN09W01 | SKILL-SUM | 順編成 | F (固定長) | 120B | JIN09REC | | JIN09W02 | VALID-ERROR | 順編成 | F (固定長) | 80B | VALID-ERROR-REC | ## 使用COPY句 | COPY句 | 用途 | 使用箇所 | |--------|------|---------| | SKILL-EVAL-REC | スキル評価明細レコード定義(R01入力) | FILE SECTION | | SKILL-MST-REC | 評価基準マスタレコード定義(R02入力) | FILE SECTION | | JIN09REC | 社員別スキル集計結果レコード定義(W01出力) | FILE SECTION | | VALID-ERROR-REC | エラーレコード定義(W02出力) | FILE SECTION | | JINDATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE | | JINMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE | | JINENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE | ## 使用サブプログラム | サブPGM | 役割 | CALL箇所 | |---------|------|---------| | SUB01DAT | 運用日付取得 | 1000ITTSOR | | SUB02MSG | メッセージ編集出力 | 6000MSGOUTSOR | | SUB03END | ABEND処理 | 9999ABDSOR | ※ SUB02MSG は終了処理(4000STPSOR)で CANCEL 'SUB02MSG' により解放する ## 使用DB2テーブル なし(DB操作なし) ## 予約語カバー | 予約語 | 使用箇所 | |--------|---------| | CANCEL | 4000STPSOR で CANCEL 'SUB02MSG' | | I-O-CONTROL | ENVIRONMENT DIVISION の I-O-CONTROL 段落 | | NEXT | 2200JUDGESOR の NEXT SENTENCE | | SENTENCE | 2200JUDGESOR の NEXT SENTENCE | | EJECT | PROCEDURE DIVISION 先頭のソース行 EJECT | | FALSE | 2000MAJSOR の SET WRK-FIRST-FLG-Y TO FALSE | ※ SKIP2 はソース行 `*SKIP2` がコメントでありディレクティブとして機能しないため、予約語カバー対象から除外する(W-1 是正)。 ## 処理フロー 1. 初期処理(開始メッセージ→運用日付取得→OPEN) 2. マスタLOAD(R02全件→内部表構築→R02 CLOSE) 3. 評価明細READループ(R01) 4. 社員キーブレイク判定(WRK-FIRST-FLG / WRK-PREV-EMP-ID) 5. レベル判定(NESTED IF 3段 + 複合条件 AND/OR) 6. SEARCH ALLで該当スキル特定→内部表UPDATE(件数・合計点) 7. 社員グループ出力(内部表走査→平均点DIVIDE→W01 WRITE) 8. 終了処理(CLOSE→件数出力→CANCEL→終了メッセージ)