# SHA05TWN 使用資源一覧 ## プログラム概要 - **プログラムID**: SHA05TWN - **プログラム名**: 標準報酬月額等級判定処理 - **処理概要**: SALARY-MONTHLYをEMP-IDでN:1キーブレイク集約し、平均標準報酬月額とGRADE-TBLをN:1マッチングして等級改定を判定する。 ## 使用ファイル | DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 | |------|---------------|------|-------------|-----------|--------| | SHA05R01 | SALARY-MONTHLY | 順編成 | F (固定長) | 200B | なし(自前定義) | | SHA05R02 | GRADE-TBL | 順編成 | F (固定長) | 80B | なし(自前定義) | | SHA05W01 | REVISED-GRADE | 順編成 | F (固定長) | 200B | SHA05REC | | SHA05W02 | ERROR-LOG | 順編成 | V (可変長) | 200B | ZAN05REC | ## 使用COPY句 | COPY句 | 用途 | 使用箇所 | |--------|------|---------| | SHA05REC | REVISED-GRADE レコード定義(W01出力ファイル) | FILE SECTION | | ZAN05REC | エラーログレコード定義(W02出力ファイル) | FILE SECTION | | SHAMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE | | SHAENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE | | SHADATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE | ## 使用サブプログラム | サブPGM | 役割 | CALL箇所 | |---------|------|---------| | SUB01DAT | 運用日付取得 | 1000ITTSOR | | SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR | | SUB03END | ABEND処理 | 9999ABDSOR | ## 使用DB2テーブル なし(DB操作なし) ## 処理フロー 1. 初期処理(開始メッセージ→SUB01DAT運用日取得→PARM取得→OPEN→R02全件読込→GRADE-TBL格納→R01初回READ) 2. 主処理:R01終了まで繰り返し - 第1段階:キーブレイクN:1集約(同一EMP-ID: MONTHLY-AMOUNT累積→キー変更時: DIVIDEで平均標準報酬月額算出、TYPE='A'/'B'判定→該当なしはW02出力) - 第2段階:等級テーブルN:1マッチング(GRADE-TBL線形探索→平均額に合致する等級コード取得→該当なしはW02出力、OLD≠NEWならW01出力) - WRK-ACCUM INITIALIZE - R01次件READ 3. 終了処理(最終キーグループ処理→CLOSE→件数出力→終了メッセージ)