119 lines
4.9 KiB
Markdown
119 lines
4.9 KiB
Markdown
# JIN07SUB 詳細設計書
|
||
|
||
## プログラム概要
|
||
|
||
| 項目 | 内容 |
|
||
|------|------|
|
||
| プログラムID | JIN07SUB(人事→JINji, 07, 社員情報取得→SUB) |
|
||
| プログラムタイプ | サブプログラム(CALL される側) |
|
||
| PGMパターン | 25(サブPGM) |
|
||
| 機能 | 指定 EMP-ID に一致する EMP-VALID レコードの項目を返却する |
|
||
| 終了方式 | EXIT PROGRAM(GOBACK 不使用。キーワードカバー目的で基本設計書の承認に基づき例外的に採用) |
|
||
| DBアクセス | なし |
|
||
| 使用ファイル | JIN07R01(EMP-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-PTR(ADDRESS OF 予約語カバー)
|
||
1-2. OPEN INPUT JIN07R01
|
||
1-3. PERFORM 1000FNDSOR(社員検索)
|
||
1-4. CLOSE JIN07R01
|
||
1-5. EXIT PROGRAM(GOBACK 不使用)
|
||
|
||
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 のみ(インデックスなし)。全件走査し一致レコードを返す。
|