repository restructure: move .git to production/, rename dirs (design→基本設計書, list→品質管理, docs→参考資料), add Subsystem A KIN01-03 files, update AGENTS.md and README.md, cleanup tmp/ tools/ bk/
This commit is contained in:
@@ -0,0 +1,155 @@
|
||||
# 詳細設計書
|
||||
|
||||
## 基本情報
|
||||
|
||||
| # | 項目 | 内容 |
|
||||
|---|------|------|
|
||||
| 1 | システム名 | 勤怠休暇管理システム |
|
||||
| 2 | プログラムID | KIN02UPD |
|
||||
| 3 | プログラム名 | 休暇申請DB更新処理 |
|
||||
| 4 | PGMタイプ | メイン |
|
||||
| 5 | PGMパターン | DB更新 |
|
||||
| 6 | 機能概要 | WORK-LEAVEファイルの各レコードをDB2テーブルLEAVE_RECORDSに反映する。 |
|
||||
| 7 | | ステータスによって新規登録(INSERT)、変更(DELETE+INSERT)、取消(DELETE)を行う。 |
|
||||
|
||||
※PGMタイプ:メイン、サブ
|
||||
※PGMパターン:マッチング(1:1、1:N、N:1、M:N)、レイアウト編集のみ(GETPUT)、振り分け(IF文、EVALUATE文)、キーブレイク(集計、集約、集計・集約の以外)、DB更新
|
||||
|
||||
### 前提条件
|
||||
|
||||
| NO | 対象ファイル | 条件 |
|
||||
|----|-------------|------|
|
||||
| 1 | KIN01W01 | KIN01INPの出力順に従う。ソート不要。 |
|
||||
|
||||
### 使用ファイル一覧
|
||||
|
||||
| NO | 使用ファイル/DB名 | 識別子 | DD名 | I/O | COPY群 | 形式 | ブロック | レコード長 | 媒体 | 備考 |
|
||||
|----|------------------|--------|------|-----|--------|------|---------|-----------|------|------|
|
||||
| 1 | WORK-LEAVE | R01 | KIN01W01 | I | KIN01REC | FB | | 80 | PS | |
|
||||
| 2 | ERROR-LOG | W01 | KIN02W01 | O | KIN05REC | VB | | 200 | PS | DBエラー時出力 |
|
||||
| 3 | LEAVE_RECORDS | DB | — | I/U/D | — | — | — | — | DB | SQLite |
|
||||
|
||||
### キー項目一覧
|
||||
|
||||
| NO | ファイル名 | ソート条件(キー項目) | キー条件(マッチング/キーブレイク) |
|
||||
|----|-----------|---------------------|-------------------------------------------|
|
||||
| 1 | WORK-LEAVE | なし | なし |
|
||||
|
||||
### 使用モジュール一覧
|
||||
|
||||
| NO | 機能 | プログラムID | 使用COPY名 |
|
||||
|----|------|-------------|-----------|
|
||||
| 1 | メッセージ編集出力SUB | SUB02MSG | ZANMSGAC |
|
||||
| 2 | ABEND処理SUB | SUB03END | ZANENDAC |
|
||||
|
||||
---
|
||||
|
||||
## 処理詳細
|
||||
|
||||
```
|
||||
1.初期処理(1000ITTSOR)
|
||||
1-1.開始メッセージ出力
|
||||
【メッセージ編集】
|
||||
メッセージ番号:1(開始メッセージ)
|
||||
1-2.コンパイル日時出力
|
||||
【メッセージ編集】
|
||||
メッセージ番号:33(コンパイル日時)
|
||||
PARM1:コンパイル日時
|
||||
PARM2:'COMPILED'
|
||||
1-3.ワークエリアの初期化
|
||||
1-4.DB接続
|
||||
EXEC SQL CONNECT TO 'data/kin.db'
|
||||
1-5.R01ファイルOPEN(入力)+ W01ファイルOPEN(出力)
|
||||
1-6.R01を初回読込(1100R01INNSOR)
|
||||
|
||||
2.主処理(2000MAJSOR)(R01を全て読み終えるまで下記を繰り返す)
|
||||
2-1.レコード処理(2100PROCSOR)
|
||||
2-1-1.R01各項目をホスト変数(WS-*)にMOVEする。
|
||||
2-1-2.ロジック分岐判定(EVALUATE)
|
||||
2-1-2-1.STATUS='1' AND APPL-ID=0(新規)の場合
|
||||
INSERT処理(2110INSERTSOR)
|
||||
【SQL】
|
||||
INSERT INTO LEAVE_RECORDS
|
||||
(EMP_ID, LEAVE_TYPE, START_DATE, START_TIME,
|
||||
END_DATE, END_TIME, STATUS)
|
||||
VALUES
|
||||
(:WS-EMP-ID, :WS-LEAVE-TYPE,
|
||||
:WS-START-DATE, :WS-START-TIME,
|
||||
:WS-END-DATE, :WS-END-TIME,
|
||||
:WS-STATUS)
|
||||
SQLCODE≠0の場合、DBエラー処理(9100DBERRSOR)を実行する。
|
||||
CUN-DBXINSを+1する。
|
||||
2-1-2-2.STATUS='1' AND APPL-ID>0(変更)の場合
|
||||
UPDATE処理(2120UPDATESOR)
|
||||
【SQL】
|
||||
DELETE FROM LEAVE_RECORDS
|
||||
WHERE APPLICATION_ID = :WS-APPL-ID
|
||||
INSERT INTO LEAVE_RECORDS
|
||||
(EMP_ID, LEAVE_TYPE, START_DATE, START_TIME,
|
||||
END_DATE, END_TIME, STATUS)
|
||||
VALUES
|
||||
(:WS-EMP-ID, :WS-LEAVE-TYPE,
|
||||
:WS-START-DATE, :WS-START-TIME,
|
||||
:WS-END-DATE, :WS-END-TIME,
|
||||
:WS-STATUS)
|
||||
各SQLでSQLCODE≠0の場合、DBエラー処理(9100DBERRSOR)を実行する。
|
||||
CUN-DBXUPDを+1する。
|
||||
2-1-2-3.STATUS='9'(取消)の場合
|
||||
DELETE処理(2130DELETESOR)
|
||||
【SQL】
|
||||
DELETE FROM LEAVE_RECORDS
|
||||
WHERE APPLICATION_ID = :WS-APPL-ID
|
||||
SQLCODE≠0の場合、DBエラー処理(9100DBERRSOR)を実行する。
|
||||
CUN-DBXDELを+1する。
|
||||
2-1-2-4.その他
|
||||
何も処理しない(CONTINUE)
|
||||
2-2.次レコード読込(1100R01INNSOR)(2件目以降)
|
||||
|
||||
3.終了処理(3000STPSOR)
|
||||
3-1.COMMIT
|
||||
EXEC SQL COMMIT WORK
|
||||
3-2.入出力ファイルのクローズ
|
||||
3-3.件数メッセージ出力
|
||||
【メッセージ編集】
|
||||
メッセージ番号:6(入力件数)
|
||||
PARM1:'KIN01W01'
|
||||
PARM2:入力件数
|
||||
PARM1:'INS'、'UPD'、'DEL'
|
||||
PARM2:各処理件数
|
||||
3-4.終了メッセージ出力
|
||||
【メッセージ編集】
|
||||
メッセージ番号:2(終了メッセージ)
|
||||
|
||||
4.DBエラー処理(9100DBERRSOR)
|
||||
4-1.ROLLBACK
|
||||
EXEC SQL ROLLBACK WORK
|
||||
4-2.ERROR-LOG出力(W01OUTFIL)
|
||||
【MOVE → INITIALIZE & WRITE】
|
||||
MOVE SQLCODE TO WRK-SQLCODE-DISP
|
||||
W01ERR-CATEGORY = '01'(固定)
|
||||
W01ERR-DETAIL = 'KIN02UPD SQLCODE=' + WRK-SQLCODE-DISP + ' APPL-ID=' + WS-APPL-ID
|
||||
CUN-W01OUTを+1する。
|
||||
4-3.エラーメッセージ出力
|
||||
【メッセージ編集】
|
||||
メッセージ番号:5(サブエラー)
|
||||
PARM1:'KIN02UPD SQL ERROR'
|
||||
PARM2:SQLCODE
|
||||
PARM3:WS-APPL-ID
|
||||
4-4.ABEND処理SUB呼出(9999ABDSOR)
|
||||
ABENDコード:999
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 出力レコード定義
|
||||
|
||||
### 出力ファイル1(W01/ERROR-LOG)
|
||||
|
||||
| No | 項目名 | 設定元 | 備考 |
|
||||
|----|--------|--------|------|
|
||||
| 1 | ERR-CATEGORY | 01で固定 | DBエラー |
|
||||
| 2 | ERR-DETAIL | STRINGで編集 | KIN02UPD SQLCODE= + WRK-SQLCODE-DISP + APPL-ID= + WS-APPL-ID |
|
||||
|
||||
### DB更新結果
|
||||
|
||||
LEAVE_RECORDSテーブルに直接反映される。
|
||||
Reference in New Issue
Block a user