サブシステムEをJIN04PRT〜JIN08TST追加で9本に拡充(全48プログラム)。JIN01-09のIBM COBOL完全版・bin再ビルド版・設計書・使用資源一覧・カバレッジ統計・DDL(schema_jin)・COPY(DB-COMMON/JIN04RPT-REC/JIN05REC)をroot側最新に同期。KYU03AGG/KYU08PRI/SHA02MNC/SHA10S10再テスト済み(全PASS)

This commit is contained in:
qiuqiuqiu
2026-08-05 00:11:07 +08:00
parent 182b161208
commit a918489f93
88 changed files with 2953 additions and 300 deletions
+118
View File
@@ -0,0 +1,118 @@
# JIN07SUB 詳細設計書
## プログラム概要
| 項目 | 内容 |
|------|------|
| プログラムID | JIN07SUB(人事→JINji, 07, 社員情報取得→SUB |
| プログラムタイプ | サブプログラム(CALL される側) |
| PGMパターン | 25(サブPGM |
| 機能 | 指定 EMP-ID に一致する EMP-VALID レコードの項目を返却する |
| 終了方式 | EXIT PROGRAMGOBACK 不使用。キーワードカバー目的で基本設計書の承認に基づき例外的に採用) |
| DBアクセス | なし |
| 使用ファイル | JIN07R01EMP-VALID, 200B, JIN01REC |
### 前提条件
| NO | 対象ファイル | 条件 |
|----|-------------|------|
| 1 | EMP-VALID | JIN01KNS でチェック済のデータであること |
| 2 | EMP-VALID | 社員番号で 1 件ヒットすることを前提とする(複数ヒット時は先頭一致レコードを返却) |
### 使用ファイル一覧
| NO | 使用ファイル名 | 識別子 | DD名 | I/O | COPY群 | 形式 | レコード長 | 媒体 | 備考 |
|----|--------------|--------|------|-----|--------|------|-----------|------|------|
| 1 | EMP-VALID | R01 | JIN07R01 | I | JIN01REC | FB | 200 | PS | 社員情報検索対象 |
### キー項目一覧
| NO | ファイル名 | マッチングキー | キー条件 |
|----|-----------|--------------|----------|
| 1 | EMP-VALID | EMP-ID | 指定 EMP-ID と完全一致 |
---
## 入出力パラメータ(LINKAGE SECTION 個別引数)
> OMITTED 引数対応のため、各引数を独立した 01 レベルで定義する(連絡領域 COPY は単一 01 のため OMITTED 引数を表現できない。個別引数方式を採用)。
| NO | 入出力 | 引数名 | PIC | 説明 |
|----|--------|--------|-----|------|
| 1 | I | LK-EMP-ID | X(8) | 検索条件(社員番号) |
| 2 | O | LK-KANA-SEI | X(20) | 一致レコード返却値 |
| 3 | O | LK-KANA-MEI | X(20) | 一致レコード返却値 |
| 4 | O | LK-KANJI-NAME | N(40) | 一致レコード返却値。CALL 時に OMITTED 指定可能 |
| 5 | O | LK-SUB-CODE | X(4) | 一致レコード返却値 |
| 6 | O | LK-BIRTH-DATE | X(8) | 一致レコード返却値 |
| 7 | O | LK-EMP-ID-OUT | X(8) | 一致レコード返却値(社員番号) |
| 8 | O | LK-FILLER | X(60) | 一致レコード返却値 |
| 9 | O | LK-RESULT | X(2) | 検索結果('OK'=一致 / 'NG'=不一致) |
### 呼出し例(JIN08TST
```
CALL 'JIN07SUB' USING LK-EMP-ID, LK-KANA-SEI, LK-KANA-MEI, LK-KANJI-NAME,
LK-SUB-CODE, LK-BIRTH-DATE, LK-EMP-ID-OUT, LK-FILLER,
LK-RESULT
CALL 'JIN07SUB' USING LK-EMP-ID, LK-KANA-SEI, LK-KANA-MEI, OMITTED,
LK-SUB-CODE, LK-BIRTH-DATE, LK-EMP-ID-OUT, LK-FILLER,
LK-RESULT
```
### リターンコード一覧(LK-RESULT)
| NO | コード | 説明 |
|----|--------|------|
| 1 | 'OK' | 一致レコードを検索し、返却値へ設定した |
| 2 | 'NG' | 一致レコードなし(返却値は初期状態のまま) |
---
## 処理詳細
### 段落一覧(SOR規約名)
| 段落名 | 機能 |
|:-------|:-----|
| 0000MAINSOR | 制御処理(ADDRESS OF 取得 → OPEN → 検索 → CLOSE → EXIT PROGRAM |
| 1000FNDSOR | EMP-VALID 順次検索(一致レコード項目返却 / IS OMITTED 判定) |
### 処理フロー
```
1. 0000MAINSOR(制御処理)
1-1. MOVE ADDRESS OF LK-EMP-ID TO WS-PTRADDRESS OF 予約語カバー)
1-2. OPEN INPUT JIN07R01
1-3. PERFORM 1000FNDSOR(社員検索)
1-4. CLOSE JIN07R01
1-5. EXIT PROGRAMGOBACK 不使用)
2. 1000FNDSOR(社員検索)
2-1. PERFORM UNTIL LK-RESULT = 'OK' OR WRK-R01EOF-Y
2-2. READ JIN07R01
AT END → WRK-R01EOF='1''NG' のまま終了)
NOT AT END → IF R01EMP-ID = LK-EMP-ID
・LK-KANA-SEI / LK-KANA-MEI / LK-SUB-CODE / LK-BIRTH-DATE /
LK-EMP-ID-OUT / LK-FILLER へ転記
・IF LK-KANJI-NAME NOT OMITTED → LK-KANJI-NAME へ転記
IS OMITTED 判定。OMITTED 時は返却スキップ)
・LK-RESULT = 'OK'PERFORM UNTIL 条件成立により次ループで検索終了)
END-IF
```
---
## カバレッジ対象キーワード
| 予約語/記号 | 区分 | 使用箇所 |
|:-----------|:----:|:---------|
| EXIT PROGRAM | 予約語 | 0000MAINSOR: サブプログラム終了(GOBACK 不使用) |
| ADDRESS OF | 予約語 | 0000MAINSOR: MOVE ADDRESS OF LK-EMP-ID TO WS-PTR |
| OMITTED | 予約語 | 1000FNDSOR: IF LK-KANJI-NAME OMITTED 判定(呼出側は CALL USING ... OMITTED |
## 補足
- AGENTS.md 規約は「サブプログラムは GOBACK」だが、基本設計書の承認により JIN07SUB はキーワードカバー目的で EXIT PROGRAM を使用する。
- EMP-VALID は 200B 固定長(JIN01REC)。R01 レコード 01 レベルは JIN01REC REPLACING (A)→R01。
- 検索は順次 READ のみ(インデックスなし)。全件走査し一致レコードを返す。