Files
cobol-tna-system/詳細設計書/詳細設計書_JIN07SUB.md

119 lines
4.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 のみ(インデックスなし)。全件走査し一致レコードを返す。