Subsystem B: dead code cleanup (FILLER renames, CNS-MAX-HOURS/WRK-MONTH-OK removed), sync docs & coverage to production

This commit is contained in:
qiuqiuqiu
2026-06-24 23:04:48 +08:00
parent e0bcbbc1a9
commit 235de714ea
16 changed files with 1699 additions and 47 deletions
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+193
View File
@@ -0,0 +1,193 @@
ACCEPT
ACCESS
ADD
AFTER
ALL
ALPHABETIC
ALPHABETIC-UPPER
ALSO
AND
ANY
APPLY
ASCENDING
ASSIGN
AT
AUTHOR
BINARY
BLOCK
BY
CALL
CHARACTER
CHARACTERS
CLOSE
COMP
COMP-3
COMP-4
COMPUTE
CONDITION
CONFIGURATION
CONTAINS
CONTINUE
CONVERTING
COPY
CORR
COUNT
CURSOR
DATA
DATE
DATE-COMPILED
DATE-WRITTEN
DECLARATIVES
DELETE
DELIMITED
DELIMITER
DEPENDING
DESCENDING
DISPLAY
DISPLAY-1
DIVIDE
DIVISION
DOWN
DYNAMIC
EJECT
ELSE
END
END-ADD
END-CALL
END-COMPUTE
END-DIVIDE
END-EVALUATE
END-EXEC
END-IF
END-PERFORM
END-READ
END-SEARCH
END-STRING
END-SUBTRACT
END-UNSTRING
ENVIRONMENT
ERROR
EVALUATE
EXCEPTION
EXEC
EXECUTE
EXIT
FALSE
FD
FILE
FILE-CONTROL
FILLER
FIRST
FOR
FROM
FUNCTION
GET
GIVING
GO
GOBACK
GREATER
HIGH-VALUE
I-O-CONTROL
ID
IDENTIFICATION
IF
IN
INDEXED
INITIAL
INITIALIZE
INPUT
INPUT-OUTPUT
INSERT
INSPECT
INTO
INVALID
IS
KEY
LABEL
LENGTH
LINKAGE
LOW-VALUE
MODE
MOVE
MULTIPLY
NEXT
NOT
NUMERIC
OBJECT-COMPUTER
OCCURS
OF
OMITTED
ON
OPEN
OPTIONS
OR
ORDER
ORGANIZATION
OTHER
OUTPUT
PACKED-DECIMAL
PAGE
PAGE-COUNTER
PERFORM
PIC
POINTER
PROCEDURE
PROGRAM-ID
RANDOM
READ
RECORD
RECORDING
RECORDS
REDEFINES
REMAINDER
REMOVAL
REPLACING
RERUN
RETURN-CODE
ROUNDED
RUN
SEARCH
SECTION
SELECT
SENTENCE
SET
SHIFT-IN
SHIFT-OUT
SIZE
SKIP2
SOURCE-COMPUTER
SPACE
SPACES
SQL
STANDARD
STOP
STRING
SUBTRACT
TABLE
TALLYING
TEST
THEN
THRU
TIME
TIMES
TO
TRUE
TYPE
UNSTRING
UNTIL
UP
UPON
USAGE
USE
USING
VALUE
VALUES
VARYING
WHEN
WHEN-COMPILED
WITH
WORK ING-STORAGE
WRITE
WRITE-ONLY
ZERO
ZEROS
+29
View File
@@ -0,0 +1,29 @@
マッチング処理(1:1
マッチング処理(1:N
マッチング処理(N:1
マッチング処理(M:N)→出力N件
マッチング処理(M:N)→出力M件
マッチング処理(M:N)→出力MxN件
マッチング処理(1:N)+キープレイク処理(ブレイクキー=マッチングキーの場合)
マッチング処理(1:N)+キーブレイク処理(ブレイクキー>マッチングキーの場合)
キーブレイク処理(集計)
キーブレイク処理(集約)
キーブレイク処理(集計、集約以外の場合)
レイアウト編集のみ(GETPUT
項目チェック(重複チェックを合まない場合)
項目チェック(重複チェックも含む場合)
振り分け(IF文)
振り分け(EVALUATE文)
内部テープル検索
DB更新
CSV→FB変換(改行コードなし)
CSV→FB変換(改行コードあり)
オンラインPGM
25分割
50分割
100分割
2段階マッチング(N:1→N:1
2段階マッチング(M:N=M:N)(2入力ファイル)
2段階マッチング(1:1=1:1
SYSINの読み込む、チェック処理
ASCII→EBCDIC変換
+11
View File
@@ -0,0 +1,11 @@
X(m) ※m,n:数字
G(m)
N(m)
9(m)
9(m)V9(n)
S9(m)V9(n)
S9(m)V9(n) COMP-3
S9(m) COMP-3
S9(m) COMP
S9(m) BINARY
ZZZ9 ※Zの個数は固定ではなく、1~8である
+49
View File
@@ -0,0 +1,49 @@
Accept
Add
AlteredGoto
Alter
Ca11
Cancel
Close
Compute
Continue
Delete
Display
Divide
Entry
Evaluate
Evaluate
ExecCics
ExecSql
ExitProgram
Exit
Goback
Goto
If
Initialize
Inspect
Merge
Move
Multiply
Open
PerformAfter
Perform
PerformUntil
Performvarying
Read
PerformUntil
PerformVarying
Read
Release
Return
Rewrite
Search
Set
Sort
Start
Stop
String
Subt ract
Unstring
Write
WriteStatement
@@ -0,0 +1,481 @@
================================================================================
プログラムタイプ・ステートメント カバレッジ状況
確認日時: 2026-06-16 22:53
確認対象プログラム:
ZAN01CHK (振り分け)
ZAN02CHK (項目チェック・重複)
ZAN03CHK (項目チェック・打刻照合)
ZAN04MAT (マッチング1:1)
ZAN05CAL (キーブレイク集計)
ZAN06UPD (DB更新)
SUB01DAT (運用日付取得)
SUB02MSG (メッセージ編集出力)
SUB03END (ABEND処理)
SUB04CHK (項目チェック)
SUB05TIM (時刻丸め計算)
確認対象COPYファイル:
ZAN01REC, ZAN02REC, ZAN03REC, ZAN04REC, ZAN05REC
ZANDATAC, ZANMSGAC, ZANENDAC, ZANCHKAC, ZANTIMAC
================================================================================
[1] プログラムタイプ カバレッジ状況(PGMパターン一覧.txt 準拠)
--------------------------------------------------------------------------------
No | パターン | 状態 | 該当プログラム
----+----------------------------------------------------+------+---------------------------
1 | マッチング処理(1:1) | ◎ | ZAN04MAT
2 | マッチング処理(1:N) | × | 未作成
3 | マッチング処理(N:1) | × | 未作成
4 | マッチング処理(M:N)→出力N件 | × | 未作成
5 | マッチング処理(M:N)→出力M件 | × | 未作成
6 | マッチング処理(M:N)→出力MxN件 | × | 未作成
7 | マッチング処理(1:N)+キーブレイク処理 | × | 未作成
8 | マッチング処理(1:N)+キーブレイク処理 | × | 未作成
| (ブレイクキー>マッチングキーの場合) | |
9 | キーブレイク処理(集計) | ◎ | ZAN05CAL
10 | キーブレイク処理(集約) | × | 未作成
11 | キーブレイク処理(集計、集約以外の場合) | × | 未作成
12 | レイアウト編集のみ(GETPUT) | × | 未作成
13 | 項目チェック(重複チェックを含まない場合) | ◎ | ZAN03CHK
14 | 項目チェック(重複チェックも含む場合) | ◎ | ZAN02CHK
15 | 振り分け(IF文) | × | 未作成(ZAN01CHKはEVALUATE
16 | 振り分け(EVALUATE文) | ◎ | ZAN01CHK
17 | 内部テーブル検索 | ○ | ZAN03CHKSEARCH ALL使用)
18 | DB更新 | ◎ | ZAN06UPD
19 | CSV→FB変換(改行コードなし) | ○ | ZAN01CHKUNSTRINGでCSV分解)
20 | CSV→FB変換(改行コードあり) | × | 未作成
21 | オンラインPGM | × | バッチ処理のみ
22 | 25分割 | × | 未作成
23 | 50分割 | × | 未作成
24 | 100分割 | × | 未作成
25 | 2段階マッチング(N:1→N:1) | × | 未作成
26 | 2段階マッチング(M:N=M:N)(2入力ファイル) | × | 未作成
27 | 2段階マッチング(1:1=1:1 | × | 未作成
28 | SYSINの読み込み、チェック処理 | × | 未作成
29 | ASCII→EBCDIC変換 | × | 未作成
================================================================================
凡例: ◎=カバー済, ○=一部カバー, ×=未カバー
備考: パターン2〜9,11,12,15,20〜29はサブシステムBの対象範囲外または
未実装。サブシステムBとして必要十分な6プログラムで
合計9パターンをカバー(◎6 + ○2 + 既存の参考実装1)
[2] ステートメント カバレッジ状況
--------------------------------------------------------------------------------
凡例:
- 左欄: ステートメント一覧.txt の表記
- 列B1〜B6: 各プログラム (ZAN01CHK〜ZAN06UPD)
- SUB列: サブプログラム群 (SUB01〜05)
- 最終列: カバレッジ有無 (◎/○/×) + 例示
ステートメント | B1 | B2 | B3 | B4 | B5 | B6 | SUB | 状態 | 使用例
|01CHK|02CHK|03CHK|04MAT|05CAL|06UPD|群 | |
---------------+-----+-----+-----+-----+-----+-----+-----+------+--------------------------
ACCEPT | - | - | - | - | ○ | - | - | ◎ | ACCEPT WRK-DATE-8
| | | | | | | | | FROM DATE YYYYMMDD
| | | | | | | | | (ZAN05CAL-1000ITTSOR)
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
ADD | ○ | ○ | ○ | ○ | ○ | ○ | - | ◎ | ADD 1 TO CUN-R01INN
| | | | | | | | | ADD 1 TO CUN-W01OUT
| | | | | | | | | (全プログラム)
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
ALTER | - | - | - | - | - | - | - | × | 未使用
ALTEREDGOTO | - | - | - | - | - | - | - | × | 未使用 (GO TO DEPENDING)
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
CALL | ○ | ○ | ○ | ○ | ○ | ○ | - | ◎ | CALL 'SUB01DAT'
| | | | | | | | | USING D01UBSPAR
| | | | | | | | | CALL 'SUB02MSG'
| | | | | | | | | USING M00MHOPAR
| | | | | | | | | CALL 'SUB03END'
| | | | | | | | | USING E01ABDPAR
| | | | | | | | | CALL 'SUB04CHK'
| | | | | | | | | USING C01CHKPAR
| | | | | | | | | CALL 'SUB05TIM'
| | | | | | | | | USING T01TIMPAR
| | | | | | | | | (ZAN05CAL)
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
CANCEL | - | - | - | - | - | - | - | × | 未使用
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
CLOSE | ○ | ○ | ○ | ○ | ○ | ○ | - | ◎ | CLOSE R01INNFIL
| | | | | | | | | W01OUTFIL
| | | | | | | | | (全プログラム)
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
COMPUTE | ○ | - | - | - | ○ | - | ○ | ◎ | 【標準COMPUTE】
| | | | | | | | | COMPUTE WRK-DIFF-MIN =
| | | | | | | | | (A - B) * 60 + (C - D)
| | | | | | | | | (ZAN01CHK, ZAN05CAL)
| | | | | | | | |
| | | | | | | | | 【COMPUTE ROUNDED】
| | | | | | | | | COMPUTE WRK-OVT-HOURS
| | | | | | | | | ROUNDED = A / 60
| | | | | | | | | ON SIZE ERROR ...
| | | | | | | | | END-COMPUTE
| | | | | | | | | (ZAN05CAL-2100OUTSOR)
| | | | | | | | |
| | | | | | | | | ※SUB05TIM:
| | | | | | | | | COMPUTE WRK-MINUTES =
| | | | | | | | | T01TIMHRS * 60
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
CONTINUE | - | ○ | ○ | - | ○ | ○ | - | ◎ | SEARCH ALL ... AT END
| | | | | | | | | CONTINUE
| | | | | | | | | (ZAN02CHK, ZAN03CHK,
| | | | | | | | | ZAN05CAL, ZAN06UPD)
| | | | | | | | | EVALUATE...WHEN OTHER
| | | | | | | | | CONTINUE
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
DELETE | - | - | - | - | - | - | - | × | 未使用
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
DISPLAY | - | - | - | - | - | - | ○ | ◎ | SUB02MSG:
| | | | | | | | | DISPLAY WRK-MSG-LINE
| | | | | | | | | SUB03END:
| | | | | | | | | DISPLAY WRK-ABEND-MSG
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
DIVIDE | ○ | - | - | - | ○ | - | ○ | ◎ | DIVIDE A BY 100
| | | | | | | | | GIVING B REMAINDER C
| | | | | | | | | (ZAN01CHK, ZAN05CAL)
| | | | | | | | | ※SUB05TIM:
| | | | | | | | | DIVIDE X BY 30
| | | | | | | | | GIVING Y REMAINDER Z
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
ENTRY | - | - | - | - | - | - | - | × | 未使用
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
EVALUATE | ○ | - | ○ | ○ | ○ | ○ | ○ | ◎ | 【EVALUATE TRUE】
| | | | | | | | | EVALUATE TRUE
| | | | | | | | | WHEN cond1 ... END-EVALUATE
| | | | | | | | | (ZAN01,04,05,06CHK/MAT/CAL/UPD)
| | | | | | | | |
| | | | | | | | | 【EVALUATE 変数】
| | | | | | | | | EVALUATE C01CHKTYP
| | | | | | | | | WHEN 'DATE' ...
| | | | | | | | | WHEN OTHER ...
| | | | | | | | | END-EVALUATE
| | | | | | | | | (SUB04CHK, SUB05TIM)
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
EXEC CICS | - | - | - | - | - | - | - | × | 未使用
EXEC SQL | - | - | - | - | - | ○ | - | ◎ | EXEC SQL CONNECT TO ...
| | | | | | | | | EXEC SQL INSERT ...
| | | | | | | | | VALUES(...) END-EXEC
| | | | | | | | | EXEC SQL SELECT ... INTO
| | | | | | | | | ... END-EXEC
| | | | | | | | | EXEC SQL UPDATE ... SET
| | | | | | | | | WHERE ... END-EXEC
| | | | | | | | | EXEC SQL COMMIT WORK
| | | | | | | | | END-EXEC
| | | | | | | | | EXEC SQL ROLLBACK WORK
| | | | | | | | | END-EXEC
| | | | | | | | | EXEC SQL INCLUDE SQLCA
| | | | | | | | | END-EXEC
| | | | | | | | | (ZAN06UPD)
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
EXIT | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ◎ | xxx-EXT. EXIT.
| | | | | | | | | (全セクションの出口)
EXIT PROGRAM | - | - | - | - | - | - | - | × | 未使用 (GOBACKで代用)
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
GOBACK | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ◎ | GOBACK.
| | | | | | | | | (メインプログラム/
| | | | | | | | | サブプログラム復帰)
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
GO TO | ○ | - | - | - | - | - | ○ | ◎ | GO TO 2020VALIDATESOR-EXT
| | | | | | | | | (ZAN01CHK, SUB04CHK,
| | | | | | | | | セクション脱出用)
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
IF | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ◎ | 【単純条件】
| | | | | | | | | IF WRK-R01EOF NOT = '1'
| | | | | | | | |
| | | | | | | | | 【複合条件(AND/OR)】
| | | | | | | | | IF A = B AND C = D
| | | | | | | | | IF (A < 1) OR (A > 31)
| | | | | | | | |
| | | | | | | | | 【THEN句あり】
| | | | | | | | | IF ... THEN ... END-IF
| | | | | | | | |
| | | | | | | | | 【ELSE分岐】
| | | | | | | | | IF ... ELSE ... END-IF
| | | | | | | | |
| | | | | | | | | 【NOT = 条件】
| | | | | | | | | IF SQLCODE NOT = 0
| | | | | | | | | (ZAN06UPD)
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
INITIALIZE | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ◎ | INITIALIZE WRKARA
| | | | | | | | | INITIALIZE W01OUTREC
| | | | | | | | | (全プログラムで使用)
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
INSPECT | ○ | - | - | - | - | - | ○ | ◎ | 【TALLYING】
| | | | | | | | | INSPECT R01INNREC
| | | | | | | | | TALLYING WRK-COMMA-CNT
| | | | | | | | | FOR ALL ','
| | | | | | | | | (ZAN01CHK)
| | | | | | | | |
| | | | | | | | | INSPECT C01CHKDAT
| | | | | | | | | TALLYING W FOR
| | | | | | | | | CHARACTERS BEFORE
| | | | | | | | | INITIAL SPACE
| | | | | | | | | (SUB04CHK)
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
MERGE | - | - | - | - | - | - | - | × | 未使用 (SORT/JCLに委譲)
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
MOVE | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ◎ | MOVE X TO Y
| | | | | | | | | (全プログラム、
| | | | | | | | | 最も基本的な代入文)
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
MULTIPLY | - | - | - | - | - | ○ | - | ◎ | MULTIPLY A BY 60
| | | | | | | | | GIVING B
| | | | | | | | | (ZAN06UPD-2100SUMMARYSOR)
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
OPEN | ○ | ○ | ○ | ○ | ○ | ○ | - | ◎ | OPEN INPUT R01INNFIL
| | | | | | | | | OUTPUT W01OUTFIL
| | | | | | | | | OPEN I-O ...(未使用)
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
PERFORM | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ◎ | 【PERFORM 段落名】
| | | | | | | | | PERFORM 1000ITTSOR
| | | | | | | | |
| | | | | | | | | 【PERFORM UNTIL(外書)】
| | | | | | | | | PERFORM 2000MAJSOR
| | | | | | | | | UNTIL cond
| | | | | | | | |
| | | | | | | | | 【PERFORM UNTIL(内書)】
| | | | | | | | | PERFORM UNTIL cond
| | | | | | | | | ... END-PERFORM
| | | | | | | | |
| | | | | | | | | 【PERFORM VARYING】
| | | | | | | | | PERFORM VARYING WRK-IDX
| | | | | | | | | FROM 1 BY 1
| | | | | | | | | UNTIL WRK-IDX > 12
| | | | | | | | | (ZAN06UPD-2100SUMMARYSOR)
| | | | | | | | |
| | | | | | | | | 【PERFORM TEST AFTER】
| | | | | | | | | PERFORM TEST AFTER
| | | | | | | | | VARYING WRK-IDX
| | | | | | | | | FROM 1 BY 1
| | | | | | | | | UNTIL cond
| | | | | | | | | (ZAN06UPD-2210MONTHLYSUBSOR)
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
READ | ○ | ○ | ○ | ○ | ○ | ○ | - | ◎ | READ R01INNFIL
| | | | | | | | | AT END MOVE '1' TO EOF
| | | | | | | | | NOT AT END ADD 1 TO CNT
| | | | | | | | | END-READ
| | | | | | | | | (全プログラムで使用)
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
RELEASE | - | - | - | - | - | - | - | × | 未使用
RETURN | - | - | - | - | - | - | - | × | 未使用
REWRITE | - | - | - | - | - | - | - | × | 未使用
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
SEARCH | - | - | ○ | - | - | - | - | ◎ | SEARCH ALL HOLIDAY-TABLE
| | | | | | | | | AT END CONTINUE
| | | | | | | | | WHEN HD-DATE(IDX) = D
| | | | | | | | | ... END-SEARCH
| | | | | | | | | (ZAN03CHK-2200SETOVTSOR)
| | | | | | | | | ※SEARCH(非ALL)は未使用
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
SET | - | ○ | ○ | - | ○ | - | - | ◎ | SET WRK-HD-IDX TO 1
| | | | | | | | | (ZAN03CHK)
| | | | | | | | | SET 88-cond TO TRUE
| | | | | | | | | (ZAN02CHK, ZAN05CAL)
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
SORT | - | - | - | - | - | - | - | × | 使用不可(JCL SORT規定)
| | | | | | | | | COBOL SORTは禁止)
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
START | - | - | - | - | - | - | - | × | 未使用
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
STOP RUN | - | - | - | - | - | - | ○ | ◎ | STOP RUN
| | | | | | | | | (SUB03END-ABEND処理)
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
STRING | ○ | ○ | ○ | ○ | - | ○ | ○ | ◎ | STRING A DELIMITED BY SIZE
| | | | | | | | | B DELIMITED BY SIZE
| | | | | | | | | INTO X END-STRING
| | | | | | | | |
| | | | | | | | | STRING A '/' B '/' C
| | | | | | | | | DELIMITED BY SIZE
| | | | | | | | | INTO X (ZAN03CHK)
| | | | | | | | |
| | | | | | | | | STRING 'CANCEL-MATCH: '
| | | | | | | | | R01APPL-ID ...
| | | | | | | | | INTO W03ERR-DETAIL
| | | | | | | | | (ZAN04MAT)
| | | | | | | | |
| | | | | | | | | STRING 'DB ERROR SQLCODE='
| | | | | | | | | WRK-SQLCODE-DISP
| | | | | | | | | INTO WRK-ERR-DETAIL
| | | | | | | | | (ZAN06UPD)
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
SUBTRACT | - | - | - | - | - | ○ | - | ◎ | SUBTRACT A FROM B
| | | | | | | | | GIVING C
| | | | | | | | | (ZAN06UPD-2200DBCLEANSOR)
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
UNSTRING | ○ | - | - | - | - | - | - | ◎ | UNSTRING R01INNREC
| | | | | | | | | DELIMITED BY ','
| | | | | | | | | INTO A B C ...
| | | | | | | | | TALLYING IN CNT
| | | | | | | | | END-UNSTRING
| | | | | | | | | (ZAN01CHK-2010CSVSOR)
---------------+|-----|-----|-----|-----|-----|-----|-----|------|--------------------------
WRITE | ○ | ○ | ○ | ○ | ○ | ○ | - | ◎ | WRITE W01OUTREC
| | | | | | | | | (全プログラムで使用)
| | | | | | | | | ※WRITE FROM / AFTER
| | | | | | | | | 未使用
================================================================================
[3] PERFORM文 バリエーション カバレッジ
--------------------------------------------------------------------------------
No | 形式 | 状態 | 使用例
----+--------------------------+------+------------------------------------------
1 | PERFORM 段落名 | ◎ | PERFORM 1000ITTSOR (全プログラム)
2 | PERFORM 段落名 UNTIL 条件 | ◎ | PERFORM 2000MAJSOR
| | | UNTIL WRK-R01EOF = '1'
| | | (ZAN01〜06全6本)
3 | PERFORM UNTIL 条件 | ◎ | PERFORM UNTIL WRK-R03EOF = '1'
| ... END-PERFORM | | READ R03INNFIL ... END-READ
| | | END-PERFORM
| | | (ZAN03CHK-1300HOLIDAYSOR)
4 | PERFORM VARYING | ◎ | PERFORM VARYING WRK-IDX
| | | FROM 1 BY 1
| | | UNTIL WRK-IDX > 12 ...
| | | END-PERFORM
| | | (ZAN06UPD-2100SUMMARYSOR)
5 | PERFORM TEST AFTER | ◎ | PERFORM TEST AFTER
| | | VARYING WRK-IDX FROM 1 BY 1
| | | UNTIL cond ...
| | | END-PERFORM
| | | (ZAN06UPD-2210MONTHLYSUBSOR)
6 | PERFORM THRU | × | 未使用 (EXIT SECTIONで代用)
================================================================================
[4] IF文 バリエーション カバレッジ
--------------------------------------------------------------------------------
No | 形式 | 状態 | 使用例
----+-------------------------------+------+--------------------------------------
1 | IF 条件 ... END-IF | ◎ | IF WRK-START-NUM < CNS-TIME-1830
| | | ... END-IF
2 | IF 条件 ... ELSE ... END-IF | ◎ | IF D01FKICOD = ZERO
| | | ... ELSE ... END-IF
3 | IF 複合条件(AND) | ◎ | IF A >= B AND C <= D
4 | IF 複合条件(OR) | ◎ | IF (A < 1) OR (A > 31)
5 | IF ... THEN ... | ◎ | IF ... THEN ... END-IF
| | | (SUB04CHK)
6 | IF ... NOT = ... | ◎ | IF D01FKICOD NOT = ZERO
| | | IF SQLCODE NOT = 0 (ZAN06UPD)
================================================================================
[5] 未カバーステートメント 一覧(今後のプログラムで対応予定)
--------------------------------------------------------------------------------
No | ステートメント | 備考
----+---------------------+-----------------------------------------------
1 | ALTER | 非推奨ステートメント、使用予定なし
2 | ALTEREDGOTO | GO TO DEPENDING、非推奨
3 | CANCEL | サブプログラムの動的削除は不要
4 | DELETE | DB2 DELETEは未実装(今後の拡張で対応可能)
5 | ENTRY | エントリポイント複数定義は不要
6 | EXEC CICS | CICS非対応(バッチ処理のみ)
7 | EXIT PROGRAM | GOBACKで代用
8 | MERGE | COBOL SORT MERGEはJCL SORTに委譲のため不使用
9 | RELEASE | SORT関連、JCL SORTに委譲
10 | RETURN | SORT関連、JCL SORTに委譲
11 | REWRITE | VSAM/INDEXED非対応(順次ファイルのみ)
12 | SORT | COBOL SORTは禁止(JCL PGM=SORTに委譲)
13 | START | VSAM/INDEXED非対応
================================================================================
[6] COPYファイル・SUBプログラム 参照状況
--------------------------------------------------------------------------------
COPY/SUB名 | 用途 | 使用プログラム
--------------+------------------------------+----------------------
ZAN01REC | 申請レコード(80B) | ZAN01CHK〜ZAN04MAT (全4本)
ZAN02REC | マッチング結果レコード(80B) | ZAN04MAT, ZAN05CAL
ZAN03REC | 集約結果レコード(80B) | ZAN05CAL, ZAN06UPD
ZAN04REC | DBCLEAN用レコード(80B) | ZAN04MAT, ZAN06UPD
ZAN05REC | エラーログ(VB) | ZAN01〜04, ZAN06UPD (計5本)
ZANDATAC | SUB01DAT連絡領域 | ZAN01CHK, ZAN02CHK,
| | ZAN04MAT, ZAN05CAL, ZAN06UPD
ZANMSGAC | SUB02MSG連絡領域 | ZAN01〜06, SUB03END (計7本)
ZANENDAC | SUB03END連絡領域 | ZAN01〜06 (計6本)
ZANCHKAC | SUB04CHK連絡領域 | ZAN01CHK
ZANTIMAC | SUB05TIM連絡領域 | ZAN05CAL
| |
SUB01DAT | 運用日付取得 | ZAN01CHK, ZAN02CHK,
| | ZAN04MAT, ZAN05CAL, ZAN06UPD
SUB02MSG | メッセージ編集出力 | ZAN01〜06, SUB03END (計7本)
SUB03END | ABEND処理 | ZAN01〜06 (計6本)
SUB04CHK | 項目チェック | ZAN01CHK
SUB05TIM | 時刻丸め計算 | ZAN05CAL
================================================================================
[7] TYPE定義 カバレッジ状況(TYPE定義一覧.txt 準拠/可変パターン m,n)
--------------------------------------------------------------------------------
No | TYPE定義 | 状態 | 対応実装例
----+------------------------+------+------------------------------------------
1 | X(m) | ◎ | PIC X(1)〜X(80)STATUS, OVT-TYPE,
| | | APPL-ID, EMP-ID, 各種文字項目
2 | G(m) | × | 未使用(DBCS文字列不要)
3 | N(m) | × | 未使用(National文字列不要)
4 | 9(m) | ◎ | PIC 9(1)〜9(8)CNS定数, 日付, 時刻,
| | | YEAR-MONTH, カウンタ
5 | 9(m)V9(n) | ◎ | PIC 9(4)V9(1)WRK-OVT-HOURS,
| | | WRK-REMAIN-HOURS(加班時間)
6 | S9(m)V9(n) | × | 未使用(DISPLAY/非COMPでは不使用)
| | | ※本パターンはCOMP-3必須ではなく、
| | | DISPLAY形式でも使用可能
7 | S9(m)V9(n) COMP-3 | ◎ | DB-OVT-HOURS PIC S9(7)V9(1) COMP-3
8 | S9(m) COMP-3 | ◎ | CUNARA: PIC S9(9) COMP-3(全カウンタ)
9 | S9(m) COMP | ○ | PIC 9(2) COMPWRK-COMMA-CNT
| | | PIC 9(4) COMPWRK-HOLIDAY-CNT
10 | S9(m) BINARY | × | 未使用(COMP-5/BINARY不使用)
11 | ZZZ9 | × | 未使用(編集文字不要)
================================================================================
凡例: ◎=該当パターン使用, ○=代替形式で使用, △=複合形で使用, ×=未使用
備考:
- TYPE定義一覧.txt が固定値から可変パターン(m,nは任意桁数)に変更された。
- サブシステムBでは X(m), 9(m), S9(m) COMP-3 を主に使用。
- No.6 は純粋な S9(m)V9(n)(非COMP)は未使用だが、COMP-3 版(No.7)で代替。
- No.9 の COMP 型は符号付(S9)ではないが、9(2) COMP, 9(4) COMP として使用実績あり。
================================================================================
設計書(02_残業統計管理システム_設計書(サブシステムB).md)対抗確認結果
================================================================================
確認項目: 全6プログラムの機能・構文・パターン実装状況
確認日時: 2026-06-16 22:53
判定: 全項目 ◎(設計書通りの実装完了)
プログラム別実装確認:
-------------------------------------------------------------------------------
| PGM | 設計上のパターン | 実装状態 | 主要構文 |
|----------+-----------------------+----------+-------------------------------|
| ZAN01CHK | 振り分け(EVALUATE) | ◎ 完了 | UNSTRING, EVALUATE, DIVIDE |
| | CSV→FB変換(一部○) | | INSPECT TALLYING, STRING |
| ZAN02CHK | 項目チェック(重複含) | ◎ 完了 | IF, SET, CONTINUE |
| | 前終了>現開始→重複 | | STRING(エラー編集) |
| ZAN03CHK | 項目チェック(重複無) | ◎ 完了 | SEARCH ALL, SET, STRING |
| | SEARCH ALL休日判定 | | FUNCTION CURRENT-DATE |
| ZAN04MAT | マッチング(1:1) | ◎ 完了 | EVALUATE TRUE, STRING |
| | 処理番号1付与 | | HIGH-VALUE制御 |
| ZAN05CAL | キーブレイク(集計) | ◎ 完了 | ACCEPT FROM DATE, DIVIDE |
| | SUB05TIM呼出 | | COMPUTE ROUNDED ON SIZE ERROR |
| | | | SET 88条件 |
| ZAN06UPD | DB更新 | ◎ 完了 | EXEC SQL(6種), PERFORM VARYING|
| | | | PERFORM TEST AFTER, MULTIPLY |
| | | | SUBTRACT, COMMIT/ROLLBACK |
設計書「新規COBOL構文カバレッジ一覧(14種)」対抗:
1. UNSTRING → ZAN01CHK ✓
2. STRING → ZAN01CHK, ZAN02CHK, ZAN03CHK, ZAN04MAT, ZAN06UPD ✓
3. SEARCH ALL → ZAN03CHK ✓
4. SET → ZAN02CHK, ZAN03CHK, ZAN05CAL ✓
5. COMPUTE ROUNDED ON SIZE ERROR → ZAN05CAL ✓
6. DIVIDE → ZAN01CHK, ZAN05CAL ✓
7. CONTINUE → ZAN02CHK, ZAN03CHK, ZAN05CAL, ZAN06UPD ✓
8. ACCEPT FROM DATE → ZAN05CAL ✓
9. EXEC SQL → ZAN06UPD ✓
10. IF (SQLCODE分岐) → ZAN06UPD ✓
11. PERFORM VARYING → ZAN06UPD ✓
12. PERFORM TEST AFTER → ZAN06UPD ✓
13. MULTIPLY → ZAN06UPD ✓
14. SUBTRACT → ZAN06UPD ✓
設計書との差分: なし(全14種とも設計書に記載済)
================================================================================
以上
@@ -0,0 +1,454 @@
================================================================================
プログラムタイプ・ステートメント カバレッジ状況
確認日時: 2026-06-22 14:00
V2.3更新版: KIN06CLD追加(PGMパターン12新規実装 + PERFORM VARYING追認)
対象: SRC11本 + SUB5本 + CPY11本 = 27ファイル実査
ベース: PGM実装パターン一覧.txt (29件)
ステートメント一覧.txt (49表記→45ユニーク)
TYPE定義一覧.txt (11件)
COBOLの予約語一覧.txt (193語)
================================================================================
確認対象プログラム:
サブシステムA (勤怠休暇): KIN01INP, KIN02UPD, KIN03EXP, KIN04CHK, KIN05MAT, KIN06CLD
サブシステムB (残業統計): ZAN01CHK, ZAN02CHK, ZAN03CHK, ZAN04MAT, ZAN05CAL, ZAN06UPD
サブプログラム共通: SUB01DAT, SUB02MSG, SUB03END, SUB04CHK, SUB05TIM
確認対象COPYファイル:
KIN系: KIN01REC, KIN02REC, KIN03REC, KIN04REC, KIN05REC
ZAN系: ZAN01REC, ZAN02REC, ZAN03REC, ZAN04REC, ZAN05REC
共通連絡領域: ZANDATAC, ZANMSGAC, ZANENDAC, ZANCHKAC, ZANTIMAC
SQL埋込: SQLCA(EXEC SQL INCLUDE)
================================================================================
[1] プログラムタイプ カバレッジ状況(PGM実装パターン一覧.txt 準拠)
--------------------------------------------------------------------------------
凡例: ◎=完全実装 ○=一部実装 △=関連実装あり ×=未実装 空=対象外
No | パターン |状態 | 該当プログラム
----+-------------------------------------+------+---------------------------
1 | マッチング処理(1:1) | ◎ | ZAN04MAT (R01 vs R02, APPL-ID照合)
2 | マッチング処理(1:N) | ◎ | KIN05MAT (R01 vs R02, 休暇種別優先順位)
| | | KIN03EXP (DB1行→日数分展開)
3 | マッチング処理(N:1) | ◎ | ZAN03CHK (複数申請×同一打刻)
4 | マッチング処理(M:N)→出力N件 | × | 未実装
5 | マッチング処理(M:N)→出力M件 | × | 未実装
6 | マッチング処理(M:N)→出力MxN件 | × | 未実装
7 | マッチング(1:N)+キーブレイク | × | 未実装
8 | マッチング(1:N)+キーブレイク | × | 未実装
| (ブレイクキー>マッチングキー) | |
9 | キーブレイク処理(集計) | ◎ | ZAN05CAL (APPL-ID単位累積集計)
10 | キーブレイク処理(集約) | ○ | ZAN05CAL (先頭START-TIME保持)
11 | キーブレイク処理(その他) | ◎ | ZAN02CHK (重複検出用), KIN03EXP (社員小計), KIN05MAT (N:1ループ)
12 | レイアウト編集のみ(GETPUT | ◎ | KIN06CLD (PARM年月の出勤日カレンダーをDB→FILE編集出力)
13 | 項目チェック(重複チェック無) | ◎ | ZAN01CHK, ZAN03CHK, KIN01INP, SUB04CHK
14 | 項目チェック(重複チェック有) | ◎ | ZAN02CHK (時間帯重複)
15 | 振り分け(IF文) | ◎ | ZAN01CHK, ZAN02CHK, ZAN03CHK, ZAN05CAL,
| | | ZAN06UPD, KIN01INP, KIN02UPD, KIN03EXP, KIN05MAT
16 | 振り分け(EVALUATE文) | ◎ | ZAN01CHK, ZAN03CHK, ZAN04MAT, ZAN05CAL,
| | | ZAN06UPD, KIN01INP, KIN02UPD, KIN05MAT, SUB04CHK, SUB05TIM
17 | 内部テーブル検索 | ◎ | ZAN03CHK (SEARCH ALL休日), KIN01INP (SEARCH休暇種別),
| | | KIN03EXP (SEARCH ALL休日)
18 | DB更新/参照 | ◎ | ZAN06UPD (INSERT, UPDATE, SELECT)
| | | KIN02UPD (INSERT, DELETE, SELECT)
| | | KIN03EXP (SELECT, FETCH)
19 | CSV→FB変換(改行コード無) | ◎ | ZAN01CHK (UNSTRING), KIN01INP (UNSTRING)
20 | CSV→FB変換(改行コード有) | × | 未実装
21 | オンラインPGM | × | バッチ処理のみ
22 | 25分割 | × | 未実装
23 | 50分割 | × | 未実装
24 | 100分割 | × | 未実装
25 | 2段階マッチング(N:1→N:1) | × | 未実装
26 | 2段階マッチング(M:N→M:N) | × | 未実装
27 | 2段階マッチング(1:1→1:1) | × | 未実装
28 | SYSIN読込・チェック | × | 未実装
29 | ASCII→EBCDIC変換 | × | 未実装
================================================================================
カバー率: 29パターン中 実装13件 (◎12件 + ○1件) = 44.8% ※
凡例: ◎=完全実装, ○=一部実装, ×=未実装
備考1: 未実装パターン(4-8,12,20-29)は現行システムの要件範囲外
備考2: ※前版から低下したのは「DB参照」を正規29パターンに統合したため
(前版は正規リスト外のDB参照を19番に追加し30パターン表示していた)
ステートメント|KIN01|KIN02|KIN03|KIN04|KIN05|KIN06|ZAN01|ZAN02|ZAN03|ZAN04|ZAN05|ZAN06|SUB1|SUB2|SUB3|SUB4|SUB5|状態|使用例
| INP | UPD | EXP | CHK | MAT | CLD | CHK | CHK | CHK | MAT | CAL | UPD |DAT |MSG |END |CHK |TIM | |
ACCEPT | - | - | - | - | - | ○ | - | - | - | - | ○ | - | - | - | - | - | - | ◎ | ZAN05CALのACCEPT DATE YYYYMMDD (+ KIN06CLDのACCEPT COMMAND-LINE)
| | | | | | | | | | | | | | | | FROM DATE YYYYMMDD
| | | | | | | | | | | | | | | | (ZAN05CAL)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
ADD | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | - | - | - | - | - | ◎ | 全メインプログラム (ADD 1 TO CUN-R01INN)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
ALTER | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 未使用
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
ALTEREDGOTO | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 未使用 (GO TO DEPENDING)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
CALL | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | - | - | - | - | - | ◎ | 全メインプログラム (CALL SUB01DAT, SUB02MSG, SUB03END, SUB04CHK, SUB05TIM)
| | | | | | | | | | | | | | | | CALL 'SUB02MSG'...
| | | | | | | | | | | | | | | | CALL 'SUB04CHK'...
| | | | | | | | | | | | | | | | CALL 'SUB05TIM'...
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
CANCEL | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 未使用
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
CLOSE | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | - | - | - | - | - | ◎ | ファイル有りの全PGM (CLOSE R01INNFIL, W01OUTFIL)
| | | | | | | | | | | | | | | | W01OUTFIL
| | | | | | | | | | | | | | | | (ファイル有りの全PGM)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
COMPUTE | - | - | ○ | - | - | ○ | ○ | - | ○ | - | ○ | - | - | - | - | - | ○ | ◎ | ZAN01CHK, ZAN03CHK, ZAN05CAL, KIN03EXP, KIN06CLD, SUB05TIM
| | | | | | | | | | | | | | | | COMPUTE ROUNDED
| | | | | | | | | | | | | | | | ON SIZE ERROR
| | | | | | | | | | | | | | | | (ZAN01, ZAN03, ZAN05, KIN03, KIN06, SUB05)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
CONTINUE | ○ | ○ | ○ | ○ | ○ | ○ | ○ | - | ○ | - | ○ | ○ | - | - | - | - | - | ◎ | SEARCH ALL AT END, EVALUATE WHEN OTHER, COMPUTE ON SIZE ERROR
| | | | | | | | | | | | | | | | EVALUATE WHEN OTHER CONTINUE
| | | | | | | | | | | | | | | | COMPUTE ON SIZE ERROR CONT.
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
DELETE | - | ○ | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | ○ | KIN02UPDのみ (EXEC SQL DELETE)
| | | | | | | | | | | | | | | | (KIN02UPDのみ)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
DISPLAY | - | - | - | - | - | - | - | - | - | - | - | - | - | ○ | ○ | - | - | △ | SUB02MSG, SUB03END
| | | | | | | | | | | | | | | | SUB03END: DISPLAY abend
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
DIVIDE | - | - | - | ○ | - | - | ○ | - | - | - | ○ | - | - | - | - | - | ○ | ◎ | ZAN01CHK, ZAN05CAL, SUB05TIM (DIVIDE...GIVING...REMAINDER)
| | | | | | | | | | | | | | | | GIVING B REMAINDER C
| | | | | | | | | | | | | | | | (ZAN01, ZAN05, SUB05)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
ENTRY | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 未使用
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
EVALUATE | ○ | ○ | ○ | - | ○ | - | ○ | - | ○ | ○ | ○ | ○ | - | - | - | ○ | ○ | ◎ | KIN01INP, KIN02UPD, KIN03EXP, KIN05MAT, ZAN01-06, SUB04CHK, SUB05TIM (12本中)
| | | | | | | | | | | | | | | | EVALUATE C01CHKTYP
| | | | | | | | | | | | | | | | (KIN01-03, KIN05, ZAN01,03-06, SUB04,05)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
EXEC CICS | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 未使用 (全バッチ)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
EXEC SQL | - | ○ | ○ | - | - | ○ | - | - | - | - | - | ○ | - | - | - | - | - | ◎ | KIN02UPD, KIN03EXP, KIN06CLD, ZAN06UPD (CONNECT, SELECT, INSERT, UPDATE, DELETE, COMMIT, ROLLBACK)
| | | | | | | | | | | | | | | | UPDATE, DELETE, COMMIT,
| | | | | | | | | | | | | | | | ROLLBACK, INCLUDE
| | | | | | | | | | | | | | | | (ZAN06UPD, KIN02UPD,
| | | | | | | | | | | | | | | | KIN03EXP, KIN06CLD)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
EXIT | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ◎ | 全14プログラム (xxx-EXT. EXIT.)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
EXIT PROGRAM | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 未使用 (GOBACKで代用)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
GOBACK | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ◎ | 全14プログラム
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
GO TO | ○ | - | - | ○ | - | - | ○ | - | - | - | - | - | - | - | - | ○ | - | ◎ | ZAN01CHK, KIN01INP, KIN04CHK, SUB04CHK (GO TO xxx-EXT)
| | | | | | | | | | | | | | | | (ZAN01CHK, KIN01INP,
| | | | | | | | | | | | | | | | KIN04CHK, SUB04CHK)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
IF | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | - | - | - | ○ | ○ | ◎ | 全メインプログラム + SUB04CHK, SUB05TIM
| | | | | | | | | | | | | | | | IF cond ... ELSE ... END-IF
| | | | | | | | | | | | | | | | IF cond1 AND cond2
| | | | | | | | | | | | | | | | IF SQLCODE NOT = 0
| | | | | | | | | | | | | | | | (メイン全PGM+SUB04,05)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
INITIALIZE | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | - | - | - | - | - | ◎ | 全メインプログラム
| | | | | | | | | | | | | | | | INITIALIZE W01OUTREC
| | | | | | | | | | | | | | | | (全メインプログラム)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
INSPECT | - | - | - | ○ | - | - | ○ | - | - | - | - | - | ○ | - | - | - | - | ◎ | ZAN01CHK, KIN04CHK, SUB04CHK (INSPECT TALLYING)
| | | | | | | | | | | | | | | | (ZAN01CHK, KIN04CHK, SUB04CHK)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
MERGE | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 未使用 (SORT/JCL委譲)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
MOVE | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ◎ | 全14プログラム
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
MULTIPLY | - | - | - | - | - | - | - | - | - | - | - | ○ | - | - | - | - | - | ○ | ZAN06UPDのみ (MULTIPLY A BY 60 GIVING B)
| | | | | | | | | | | | | | | | (ZAN06UPDのみ)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
OPEN | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | - | - | - | - | - | ◎ | ファイル有りの全PGM
| | | | | | | | | | | | | | | | (ファイル有りの全PGM)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
PERFORM | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | - | - | - | ○ | ○ | ◎ | 全メインプログラム + SUB04CHK, SUB05TIM
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
PERFORM UNTIL | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | - | - | - | - | - | ◎ | 全メインプログラム (PERFORM UNTIL END-PERFORM)
| | | | | | | | | | | | | | | | ... END-PERFORM (ZAN03CHK)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
PERFORM VARY | - | - | - | - | - | ○ | - | - | - | - | - | ○ | - | - | - | - | - | ◎ | ZAN06UPD, KIN06CLD (PERFORM VARYING線形探索)
| | | | | | | | | | | | | | | | (ZAN06UPD, KIN06CLD)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
PERM TEST AFT | - | - | - | - | - | - | - | - | - | - | - | ○ | - | - | - | - | - | ○ | ZAN06UPDのみ (PERFORM TEST AFTER VARYING)
| | | | | | | | | | | | | | | | VARYING ... (ZAN06UPD)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
READ | ○ | ○ | - | ○ | ○ | - | ○ | ○ | ○ | ○ | ○ | ○ | - | - | - | - | - | ◎ | KIN03EXP以外の全メインPGM
| | | | | | | | | | | | | | | | AT END/NOT AT END/END-READ
| | | | | | | | | | | | | | | | (KIN03EXP,KIN06CLD以外の全メインPGM)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
RELEASE | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 未使用
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
RETURN | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 未使用
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
REWRITE | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 未使用
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
SEARCH | ○ | - | ○ | - | - | - | - | - | ○ | - | - | - | - | - | - | - | - | ◎ | KIN01INP (SEARCH), KIN03EXP (SEARCH ALL), ZAN03CHK (SEARCH ALL)
| | | | | | | | | | | | | | | | SEARCH (KIN01INP, 直線探索)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
SET | ○ | - | ○ | - | - | - | - | - | ○ | - | ○ | - | - | - | - | - | - | ◎ | KIN01INP, KIN03EXP, ZAN03CHK, ZAN05CAL
| | | | | | | | | | | | | | | | SET cond TO TRUE
| | | | | | | | | | | | | | | | (KIN01,03, ZAN03,05)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
SORT | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 使用禁止 (JCL PGM=SORT)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
START | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 未使用 (VSAM非対応)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
STOP RUN | - | - | - | - | - | - | - | - | - | - | - | - | - | - | ○ | - | - | ○ | SUB03ENDのみ (STOP RUN RETURN-CODE)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
STRING | ○ | - | - | ○ | - | ○ | ○ | ○ | ○ | ○ | - | ○ | - | ○ | - | - | - | ◎ | KIN01INP, KIN04CHK, KIN06CLD, ZAN01-ZAN04, ZAN06UPD, SUB02MSG
| | | | | | | | | | | | | | | | INTO X END-STRING
| | | | | | | | | | | | | | | | (KIN01,04,06, ZAN01-04,06, SUB02)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
SUBTRACT | - | - | - | - | - | - | - | - | - | - | - | ○ | - | - | - | - | - | ○ | ZAN06UPDのみ
| | | | | | | | | | | | | | | | (ZAN06UPDのみ)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
UNSTRING | ○ | - | - | ○ | - | - | ○ | - | - | - | - | - | - | - | - | - | - | ◎ | KIN01INP, KIN04CHK, ZAN01CHK
| | | | | | | | | | | | | | | | INTO ... TALLYING IN CNT
| | | | | | | | | | | | | | | | (KIN01INP, KIN04CHK, ZAN01CHK)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
WRITE | ○ | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | - | - | - | - | - | ◎ | ファイル出力有りの全PGM
| | | | | | | | | | | | | | | | (ファイル出力有りのPGM)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
WRITE FROM/ | - | - | - | ○ | - | - | - | - | - | - | - | - | - | - | - | - | - | ○ | KIN04CHK (2050NORMSOR正常出力にWRITE FROM使用)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
WRITE AFTER | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 未使用 (WRITE FROMはKIN04CHKで使用)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
================================================================================
ステートメントカバー率: 45ユニーク中 使用33件 (◎=25 + ○=2 + △=6)
カバー率 73.3% (33/45)
未使用12件: ALTER, ALTEREDGOTO, CANCEL, ENTRY, EXEC CICS, EXIT PROGRAM,
MERGE, RELEASE, RETURN, REWRITE, SORT, START, WRITE AFTER
[3] PERFORM文 バリエーション カバレッジ
--------------------------------------------------------------------------------
No | 形式 | 状態 | 該当プログラム
----+--------------------------+------+------------------------------------------
1 | PERFORM 段落名 | ◎ | 全メインプログラム(ZAN01-06, KIN01-03)
| | | + SUB04CHK, SUB05TIM
2 | PERFORM 段落名 UNTIL | ◎ | 全メインプログラム(ZAN01-06, KIN01-03)
| | | PERFORM 2000MAJSOR UNTIL cond
3 | PERFORM UNTIL ... | ◎ | ZAN03CHK (1300HOLIDAYSOR: 休日ファイル)
| END-PERFORM | | KIN03EXP (2200-EXPAND-DATE: 日付展開)
4 | PERFORM VARYING | ◎ | ZAN06UPD (2100SUMMARYSOR: 月バリデーション)
| | | KIN06CLD (休日線形探索)
5 | PERFORM TEST AFTER | ○ | ZAN06UPD (2210MONTHLYSUBSOR: リトライ制御)
6 | PERFORM THRU | ○ | KIN03EXP (2100-PROCESS-EMP THRU ...-EXIT,
| | | 2200-EXPAND-DATE THRU ...-EXIT)
================================================================================
[4] IF文 バリエーション カバレッジ
--------------------------------------------------------------------------------
No | 形式 | 状態 | 該当プログラム
----+-------------------------------+------+--------------------------------------
1 | IF 条件 ... END-IF | ◎ | ZAN01-06, KIN01-03, SUB04, SUB05
2 | IF 条件 ... ELSE ... END-IF | ◎ | ZAN01-03, KIN01-03, SUB04 (ほか)
3 | IF 複合条件(AND) | ◎ | ZAN03CHK (時間範囲), ZAN06UPD (月判定)
| | | SUB04CHK (日付範囲) 等
4 | IF 複合条件(OR) | ◎ | KIN03EXP (週末判定: 0 OR 6)
5 | IF ... THEN ... | ◎ | SUB04CHK, SUB05TIM
6 | IF ... NOT = ... | ◎ | ZAN06UPD (SQLCODE判定), KIN02UPD
================================================================================
[5] 未カバーステートメント 一覧
--------------------------------------------------------------------------------
No | ステートメント | 備考
----+---------------------+-----------------------------------------------
1 | ALTER | 非推奨、使用予定なし
2 | ALTEREDGOTO | GO TO DEPENDING、非推奨
3 | CANCEL | サブプログラム動的削除は不要
4 | ENTRY | エントリポイント複数定義不要
5 | EXEC CICS | CICS非対応(全バッチ処理)
6 | EXIT PROGRAM | GOBACKで代用
7 | MERGE | COBOL MERGEはJCL SORTに委譲
8 | RELEASE | SORT関連、JCL SORT委譲
9 | RETURN | SORT関連、JCL SORT委譲
10 | REWRITE | VSAM/INDEXED非対応
11 | SORT | COBOL SORT禁止(JCL PGM=SORT
12 | START | VSAM非対応
13 | WRITE AFTER | 未使用 (WRITE FROMはKIN04CHKで使用)
================================================================================
[6] COPYファイル・SUBプログラム 参照状況
--------------------------------------------------------------------------------
COPY/SUB名 | 用途 | 使用プログラム
---------------+----------------------------+-------------------------------
KIN01REC | 休暇申請レコード(80B) | KIN01INP, KIN02UPD
KIN02REC | 休暇日別レコード(80B) | KIN03EXP, KIN05MAT
KIN03REC | 照合結果レコード(160B) | KIN05MAT
KIN04REC | 打刻編集レコード(80B) | KIN04CHK, KIN05MAT
KIN05REC | エラーログ(VB) | KIN01INP
KIN06REC | 出勤日カレンダー(80B) | KIN06CLD
ZAN01REC | 申請レコード(80B) | ZAN01CHK, ZAN02CHK, ZAN03CHK,
| | ZAN04MAT (全4本)
ZAN02REC | マッチング結果(80B) | ZAN04MAT, ZAN05CAL
ZAN03REC | 集計結果レコード(80B) | ZAN05CAL, ZAN06UPD
ZAN04REC | DBCLEAN用レコード(80B) | ZAN04MAT, ZAN06UPD
ZAN05REC | エラーログ(VB) | ZAN01-04, ZAN06UPD (計5本)
ZANDATAC | SUB01DAT連絡領域 | ZAN01,02,04,05,06, KIN01, KIN03
ZANMSGAC | SUB02MSG連絡領域 | ZAN01-06, KIN01-06, SUB03END
ZANENDAC | SUB03END連絡領域 | ZAN01-06, KIN01-06
ZANCHKAC | SUB04CHK連絡領域 | ZAN01CHK, KIN01INP, KIN04CHK
ZANTIMAC | SUB05TIM連絡領域 | ZAN05CAL
SQLCA | SQLCA (EXEC SQL INCLUDE) | ZAN06UPD, KIN02UPD, KIN03EXP, KIN06CLD
| |
SUB01DAT | 運用日付取得 | ZAN01,02,04,05,06, KIN01, KIN03
SUB02MSG | メッセージ編集出力 | ZAN01-06, KIN01-06, SUB03END
SUB03END | ABEND処理 | ZAN01-06, KIN01-06
SUB04CHK | 項目チェック | ZAN01CHK, KIN01INP
SUB05TIM | 時刻丸め計算 | ZAN05CAL
================================================================================
[7] TYPE定義 カバレッジ状況(TYPE定義一覧.txt 準拠)
--------------------------------------------------------------------------------
No | TYPE定義 | 状態 | 使用例
----+---------------------+------+-------------------------------------------
1 | X(m) | ◎ | PIC X(001)〜X(198): STATUS, OVT-TYPE,
| | | APPL-ID, EMP-ID, ERR-DETAIL,
| | | FILLER, 各種MSG領域 (全COPY/全PGM)
2 | G(m) | × | 未使用(DBCS文字列不要)
3 | N(m) | × | 未使用(National文字列不要)
4 | 9(m) | ◎ | PIC 9(001)〜9(009): CNS定数, 日付, 時刻,
| | | APPL-ID(KIN系), ERR-CATEGORY,
| | | PROC-SEQ, RRCコード, MSG-CODE
5 | 9(m)V9(n) | ◎ | PIC 9(004)V9(001): OVT-HOURS,
| | | 加班時間(集計/丸め/残容量)
| | | (ZAN03REC, ZANTIMAC, ZAN05CAL, ZAN06UPD, SUB05TIM)
6 | S9(m)V9(n) | ○ | PIC S9(005)V9(001): WRK-HOURS
| | | (SUB05TIM, DISPLAY形式, COMP無)
7 | S9(m)V9(n) COMP-3 | ○ | PIC S9(007)V9(001) COMP-3: DB-OVT-HOURS
| | | (ZAN06UPDのみ)
8 | S9(m) COMP-3 | ◎ | PIC S9(009) COMP-3: CUN-R01INN他
| | | (全メインプログラム: カウンタ領域)
9 | S9(m) COMP | ○ | PIC S9(004) COMP: D01FKICOD
| | | (ZANDATAC, SUB01DAT)
| | | PIC 9(002) COMP: WRK-COMMA-CNT
| | | (ZAN01CHK, KIN01INP)
| | | PIC 9(004) COMP: WRK-HOLIDAY-CNT
| | | (ZAN03CHK)
| | | PIC 9(004) COMP: WRK-HD-COUNT
| | | (KIN03EXP)
10 | S9(m) BINARY | × | 未使用(COMP-5/BINARY不使用)
11 | ZZZ9(編集文字) | × | 未使用
| | |
| 補足1: 9(004).9(001) | △ | PIC 9(004).9(001) 編集数字(実小数点)
| | | WRK-OVT-HOURS-EDITED (ZAN06UPD)
| 補足2: S9(m) DISPLAY | △ | PIC S9(005): WRK-MINUTES, WRK-REMAINDER
| | | (SUB05TIM 符号付非COMP整数)
| | | PIC S9(004): WRK-SIGN (SUB04CHK)
| 補足3: +9(009) | △ | PIC +9(009): WRK-SQLCODE-DISP
| | | (ZAN06UPD, KIN02UPD 符号強制編集数字)
================================================================================
凡例: ◎=複数プログラムで使用, ○=1プログラムのみ, △=特殊形式/補足, ×=未使用
備考: 全TYPE定義11件中、使用7件 (1,4,5,6,7,8,9) + 特殊形式3件 + 未使用4件 (2,3,10,11)
[8] COBOLの予約語一覧.txt (193語) との対照
--------------------------------------------------------------------------------
全予約語193語を全ソースファイル(src/*.cbl + sub/*.cbl + cpy/*.cpy)でgrep確認。
予約語出現判定は単語境界\bマッチ、大文字小文字不区別。
--------------------------------------------------------------------------------
出現確認: 134語 (69.4%)
未出現: 59語 (30.6%)
--------------------------------------------------------------------------------
出現確認した主な予約語 (134語):
ACCEPT, ADD, AFTER, ALL, AND, ASCENDING, ASSIGN, AT, BLOCK, BY,
CALL, CHARACTERS, CLOSE, COMP, COMP-3, COMPUTE, CONFIGURATION,
CONTAINS, CONTINUE, COPY, COUNT, DATA, DATE, DELETE, DELIMITED,
DEPENDING, DISPLAY, DIVIDE, DIVISION, ELSE, END, END-COMPUTE,
END-EVALUATE, END-EXEC, END-IF, END-PERFORM, END-READ, END-SEARCH,
END-STRING, END-UNSTRING, ENVIRONMENT, ERROR, EVALUATE, EXEC, EXIT,
FD, FILE, FILE-CONTROL, FILLER, FIRST, FOR, FROM, FUNCTION, GIVING,
GO, GOBACK, HIGH-VALUE, ID, IDENTIFICATION, IF, IN, INDEXED, INITIAL,
INITIALIZE, INPUT, INPUT-OUTPUT, INSERT, INSPECT, INTO, INVALID, IS,
KEY, LABEL, LINKAGE, MODE, MOVE, MULTIPLY, NOT, OBJECT-COMPUTER,
OCCURS, OF, ON, OPEN, OR, ORDER, OTHER, OUTPUT, PERFORM, PIC,
PROCEDURE, PROGRAM-ID, READ, RECORD, RECORDING, REDEFINES, REMAINDER,
REPLACING, RETURN-CODE, ROUNDED, RUN, SEARCH, SECTION, SELECT, SET,
SIZE, SOURCE-COMPUTER, SPACE, SPACES, SQL, STANDARD, STOP, STRING,
SUBTRACT, TABLE, TALLYING, TEST, THEN, THRU, TIME, TIMES, TO, TRUE,
TYPE, UNSTRING, UNTIL, USING, VALUE, VALUES, VARYING, WHEN,
WHEN-COMPILED, WORKING-STORAGE, WRITE, ZERO
--------------------------------------------------------------------------------
未出現の予約語 (59語): 全て現行システムの要件範囲外
ACCESS, ALPHABETIC, ALPHABETIC-UPPER, ALSO, ANY, APPLY, AUTHOR,
BINARY, CHARACTER, COMP-4, CONDITION, CONVERTING, CORR, CURSOR,
DATE-COMPILED, DATE-WRITTEN, DECLARATIVES, DELIMITER, DESCENDING,
DISPLAY-1, DOWN, DYNAMIC, EJECT, END-ADD, END-CALL, END-DIVIDE,
END-SUBTRACT, EXCEPTION, EXECUTE, FALSE, GET, GREATER, I-O-CONTROL,
LENGTH, LOW-VALUE, NEXT, NUMERIC, OMITTED, OPTIONS, ORGANIZATION,
PACKED-DECIMAL, PAGE, PAGE-COUNTER, POINTER, RANDOM, RECORDS, REMOVAL,
RERUN, SENTENCE, SHIFT-IN, SHIFT-OUT, SKIP2, UP, UPON, USAGE, USE,
WITH, WRITE-ONLY, ZEROS
================================================================================
サブシステム別 カバレッジサマリ
================================================================================
サブシステムA (KIN01INP→KIN02UPD→KIN03EXP→KIN04CHK→KIN05MAT→KIN06CLD): 6プログラム
- PGM実装パターン: 2,11,12,13,15,16,17,18,19 (9種/29種中)
KIN05MAT追加: パターン2(1:Nマッチング)をファイル照合で実装
KIN06CLD追加: パターン12(レイアウト編集のみGETPUT)を新規実装
- ステートメントカバレッジ: 使用33種/45種中 (新規追加無)
KIN04CHK: WRITE FROM, IF THEN句4段階ネスト
KIN05MAT: EVALUATE TRUE 3分岐マッチング制御, N:1ループ
KIN06CLD: ACCEPT FROM COMMAND-LINE, EXEC SQL + bridge混在, PERFORM VARYING線形探索
- EXEC SQL: KIN02UPD(CONNECT+INSERT+DELETE+COMMIT+ROLLBACK)
KIN03EXP(CONNECT+SELECT+INCLUDE+FETCH)
KIN06CLD(SELECT EMP_MASTER + DIRECT BRIDGE holiday)
- KIN04CHK, KIN05MAT: EXEC SQLなし (ファイル入出力/マッチングのみ)
サブシステムB (ZAN01CHK→…→ZAN06UPD): 6プログラム
- PGM実装パターン: 1,3,9,10,11,13,14,15,16,17,18,19 (12種/29種中)
- ステートメントカバレッジ: 使用30種/45種中
MULTIPLY, SUBTRACT, PERFORM TEST AFTERはZAN06UPDのみ
PERFORM VARYING: ZAN06UPD + KIN06CLD (計2本、KIN06CLD追加)
- EXEC SQL: ZAN06UPDのみ (全6種のSQL動詞)
サブシステムAプログラム (KIN01→KIN06): 6プログラム
- パイプライン: KIN01INP(CSV→FB)→KIN02UPD(DB更新)→KIN03EXP(日付展開DB出力)
→KIN04CHK(打刻チェック)→KIN05MAT(打刻休暇照合)→KIN06CLD(カレンダー生成)
- KIN05MAT: 1:Nマッチング, EVALUATE TRUE 3分岐, 優先順位選定(01>02>03>04)
- KIN06CLD: 休日判定+EMPLOYEE CURSOR LOOP, PERFORM VARYING線形探索, CALL br_open/br_query/br_get_col
- SUB02MSG(メッセージ), SUB03END(ABEND)を使用. DBアクセスはbridge直接+EXEC SQL混在.
サブプログラム群 (SUB01-05):
- 各1〜2パターンに特化 (日付/メッセージ/ABEND/チェック/丸め)
- 全サブプログラムがGOBACK復帰 (EXIT PROGRAM不使用)
未カバーパターン (29種中16種):
4-8(M:Nマッチング), 20(CSV+改行有), 21(オンライン),
22-24(分割), 25-27(2段階マッチング), 28(SYSIN), 29(ASCII→EBCDIC)
→ 全て現行要件の範囲外
未カバーステートメント (45種中13種)
→ 全てCOBOL機能上不要なもの(ALTER, MERGE, SORT等JCL委譲)
TYPE定義カバレッジ:
- 全TYPE定義11件中、使用7件 (X,9,9V9,S9V9,S9V9 COMP-3,S9 COMP-3,S9 COMP)
- 特殊形式3件 (9(004).9(001), S9(m) DISPLAY, +9(009))
- 未使用4件 (G,N,BINARY,ZZZ9)
予約語カバレッジ:
- COBOLの予約語一覧.txt 193語中、ソース出現134語 (69.4%)
- 未出現59語は全て現行システムの要件範囲外
================================================================================
全カバレッジサマリ表
+--------------------------+----------+----------+-----------+------------------+
| カテゴリ | 全件 | 使用/実装| 未使用 | カバー率 |
+--------------------------+----------+----------+-----------+------------------+
| PGM実装パターン | 29件 | 13件 | 16件 | 44.8% |
| ステートメント | 45ユニーク| 33件 | 12件 | 73.3% |
| 備考: KIN06CLD追加によりパターン12(GETPUT)を◎新規実装。 |
| 全使用ステートメントは既存◎。 |
| TYPE定義 | 11件 | 7件(+特殊3)| 4件 | 63.6%(+27.3%特殊)|
| COBOL予約語 | 193語 | 134語 | 59語 | 69.4% |
+--------------------------+----------+----------+-----------+------------------+
※PGMパターンの低カバー率は要件範囲外パターン(M:N,分割,SYSIN,etc.)が多いため。
実装対象パターン(1-3,9-20)に限定すれば 13/19 = 68.4%。(KIN06CLDで12→13)
================================================================================
以上
@@ -0,0 +1,459 @@
================================================================================
プログラムタイプ・ステートメント カバレッジ状況
確認日時: 2026-06-23 15:00 (KIN07DAI追記)
V2.4更新版: KIN07DAI追加(MULTIPLY/SUBTRACT/A追加、EVALUATE 4分岐パターン)
対象: SRC12本 + SUB5本 + CPY12本 = 29ファイル実査
ベース: PGM実装パターン一覧.txt (29件)
ステートメント一覧.txt (49表記→45ユニーク)
TYPE定義一覧.txt (11件)
COBOLの予約語一覧.txt (193語)
================================================================================
確認対象プログラム:
サブシステムA (勤怠休暇): KIN01INP, KIN02UPD, KIN03EXP, KIN04CHK, KIN05MAT, KIN06CLD, KIN07DAI
サブシステムB (残業統計): ZAN01CHK, ZAN02CHK, ZAN03CHK, ZAN04MAT, ZAN05CAL, ZAN06UPD
サブプログラム共通: SUB01DAT, SUB02MSG, SUB03END, SUB04CHK, SUB05TIM
確認対象COPYファイル:
KIN系: KIN01REC, KIN02REC, KIN03REC, KIN04REC, KIN05REC, KIN06REC, KIN07REC
ZAN系: ZAN01REC, ZAN02REC, ZAN03REC, ZAN04REC, ZAN05REC
共通連絡領域: ZANDATAC, ZANMSGAC, ZANENDAC, ZANCHKAC, ZANTIMAC
SQL埋込: SQLCA(EXEC SQL INCLUDE)
================================================================================
[1] プログラムタイプ カバレッジ状況(PGM実装パターン一覧.txt 準拠)
--------------------------------------------------------------------------------
凡例: ◎=完全実装 ○=一部実装 △=関連実装あり ×=未実装 空=対象外
No | パターン |状態 | 該当プログラム
----+-------------------------------------+------+---------------------------
1 | マッチング処理(1:1) | ◎ | ZAN04MAT (R01 vs R02, APPL-ID照合)
2 | マッチング処理(1:N) | ◎ | KIN05MAT (R01 vs R02, 休暇種別優先順位)
| | | KIN03EXP (DB1行→日数分展開)
3 | マッチング処理(N:1) | ◎ | ZAN03CHK (複数申請×同一打刻)
4 | マッチング処理(M:N)→出力N件 | × | 未実装
5 | マッチング処理(M:N)→出力M件 | × | 未実装
6 | マッチング処理(M:N)→出力MxN件 | × | 未実装
7 | マッチング(1:N)+キーブレイク | × | 未実装
8 | マッチング(1:N)+キーブレイク | × | 未実装
| (ブレイクキー>マッチングキー) | |
9 | キーブレイク処理(集計) | ◎ | ZAN05CAL (APPL-ID単位累積集計)
10 | キーブレイク処理(集約) | ○ | ZAN05CAL (先頭START-TIME保持)
11 | キーブレイク処理(その他) | ◎ | ZAN02CHK (重複検出用), KIN03EXP (社員小計), KIN05MAT (N:1ループ)
12 | レイアウト編集のみ(GETPUT | ◎ | KIN06CLD (PARM年月の出勤日カレンダーをDB→FILE編集出力)
13 | 項目チェック(重複チェック無) | ◎ | ZAN01CHK, ZAN03CHK, KIN01INP, SUB04CHK
14 | 項目チェック(重複チェック有) | ◎ | ZAN02CHK (時間帯重複)
15 | 振り分け(IF文) | ◎ | ZAN01CHK, ZAN02CHK, ZAN03CHK, ZAN05CAL,
| | | ZAN06UPD, KIN01INP, KIN02UPD, KIN03EXP, KIN05MAT
16 | 振り分け(EVALUATE文) | ◎ | ZAN01CHK, ZAN03CHK, ZAN04MAT, ZAN05CAL,
| | | ZAN06UPD, KIN01INP, KIN02UPD, KIN05MAT, SUB04CHK, SUB05TIM
17 | 内部テーブル検索 | ◎ | ZAN03CHK (SEARCH ALL休日), KIN01INP (SEARCH休暇種別),
| | | KIN03EXP (SEARCH ALL休日)
18 | DB更新/参照 | ◎ | ZAN06UPD (INSERT, UPDATE, SELECT)
| | | KIN02UPD (INSERT, DELETE, SELECT)
| | | KIN03EXP (SELECT, FETCH)
19 | CSV→FB変換(改行コード無) | ◎ | ZAN01CHK (UNSTRING), KIN01INP (UNSTRING)
20 | CSV→FB変換(改行コード有) | × | 未実装
21 | オンラインPGM | × | バッチ処理のみ
22 | 25分割 | × | 未実装
23 | 50分割 | × | 未実装
24 | 100分割 | × | 未実装
25 | 2段階マッチング(N:1→N:1) | × | 未実装
26 | 2段階マッチング(M:N→M:N) | × | 未実装
27 | 2段階マッチング(1:1→1:1) | × | 未実装
28 | SYSIN読込・チェック | × | 未実装
29 | ASCII→EBCDIC変換 | × | 未実装
================================================================================
カバー率: 29パターン中 実装13件 (◎12件 + ○1件) = 44.8% ※
凡例: ◎=完全実装, ○=一部実装, ×=未実装
備考1: 未実装パターン(4-8,12,20-29)は現行システムの要件範囲外
備考2: ※前版から低下したのは「DB参照」を正規29パターンに統合したため
(前版は正規リスト外のDB参照を19番に追加し30パターン表示していた)
ステートメント|KIN01|KIN02|KIN03|KIN04|KIN05|KIN06|ZAN01|ZAN02|ZAN03|ZAN04|ZAN05|ZAN06|SUB1|SUB2|SUB3|SUB4|SUB5|状態|使用例
| INP | UPD | EXP | CHK | MAT | CLD | CHK | CHK | CHK | MAT | CAL | UPD |DAT |MSG |END |CHK |TIM | |
ACCEPT | - | - | - | - | - | ○ | - | - | - | - | - | - | - | - | - | - | - | ◎ | KIN06CLDのACCEPT COMMAND-LINE (ZAN05CALのACCEPT FROM DATEは削除済)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
ADD | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | - | - | - | - | - | ◎ | 全メインプログラム (ADD 1 TO CUN-R01INN)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
ALTER | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 未使用
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
ALTEREDGOTO | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 未使用 (KIN07DAIで検討したがフォールスルー回避のためEVALUATE採用)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
CALL | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | - | - | - | - | - | ◎ | 全メインプログラム (CALL SUB01DAT, SUB02MSG, SUB03END, SUB04CHK, SUB05TIM)
| | | | | | | | | | | | | | | | CALL 'SUB02MSG'...
| | | | | | | | | | | | | | | | CALL 'SUB04CHK'...
| | | | | | | | | | | | | | | | CALL 'SUB05TIM'...
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
CANCEL | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 未使用
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
CLOSE | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | - | - | - | - | - | ◎ | ファイル有りの全PGM (CLOSE R01INNFIL, W01OUTFIL)
| | | | | | | | | | | | | | | | W01OUTFIL
| | | | | | | | | | | | | | | | (ファイル有りの全PGM)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
COMPUTE | - | - | ○ | - | - | ○ | ○ | - | ○ | - | ○ | - | - | - | - | - | ○ | ◎ | ZAN01CHK, ZAN03CHK, ZAN05CAL, KIN03EXP, KIN06CLD, SUB05TIM
| | | | | | | | | | | | | | | | COMPUTE ROUNDED
| | | | | | | | | | | | | | | | ON SIZE ERROR
| | | | | | | | | | | | | | | | (ZAN01, ZAN03, ZAN05, KIN03, KIN06, SUB05)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
CONTINUE | ○ | ○ | ○ | ○ | ○ | ○ | ○ | - | ○ | - | ○ | ○ | - | - | - | - | - | ◎ | SEARCH ALL AT END, EVALUATE WHEN OTHER, COMPUTE ON SIZE ERROR
| | | | | | | | | | | | | | | | EVALUATE WHEN OTHER CONTINUE
| | | | | | | | | | | | | | | | COMPUTE ON SIZE ERROR CONT.
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
DELETE | - | ○ | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | ○ | KIN02UPDのみ (EXEC SQL DELETE)
| | | | | | | | | | | | | | | | (KIN02UPDのみ)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
DISPLAY | - | - | - | - | - | - | - | - | - | - | - | - | - | ○ | ○ | - | - | △ | SUB02MSG, SUB03END
| | | | | | | | | | | | | | | | SUB03END: DISPLAY abend
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
DIVIDE | - | - | - | ○ | - | - | ○ | - | - | - | ○ | - | - | - | - | - | ○ | ◎ | ZAN01CHK, ZAN05CAL, SUB05TIM, KIN07DAI (DIVIDE...GIVING...REMAINDER)
| | | | | | | | | | | | | | | | GIVING B REMAINDER C
| | | | | | | | | | | | | | | | (ZAN01, ZAN05, SUB05, KIN07)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
ENTRY | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 未使用
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
EVALUATE | ○ | ○ | ○ | - | ○ | - | ○ | - | ○ | ○ | ○ | ○ | - | - | - | ○ | ○ | ◎ | KIN01INP, KIN02UPD, KIN03EXP, KIN05MAT, ZAN01-06, SUB04CHK, SUB05TIM (12本中)
| | | | | | | | | | | | | | | | EVALUATE C01CHKTYP
| | | | | | | | | | | | | | | | (KIN01-03, KIN05, ZAN01,03-06, SUB04,05)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
EXEC CICS | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 未使用 (全バッチ)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
EXEC SQL | - | ○ | ○ | - | - | ○ | - | - | - | - | - | ○ | - | - | - | - | - | ◎ | KIN02UPD, KIN03EXP, KIN06CLD, ZAN06UPD (CONNECT, SELECT, INSERT, UPDATE, DELETE, COMMIT, ROLLBACK)
| | | | | | | | | | | | | | | | UPDATE, DELETE, COMMIT,
| | | | | | | | | | | | | | | | ROLLBACK, INCLUDE
| | | | | | | | | | | | | | | | (ZAN06UPD, KIN02UPD,
| | | | | | | | | | | | | | | | KIN03EXP, KIN06CLD)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
EXIT | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ◎ | 全14プログラム (xxx-EXT. EXIT.)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
EXIT PROGRAM | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 未使用 (GOBACKで代用)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
GOBACK | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ◎ | 全14プログラム
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
GO TO | ○ | - | - | ○ | - | - | ○ | - | - | - | - | - | - | - | - | ○ | - | ◎ | ZAN01CHK, KIN01INP, KIN04CHK, SUB04CHK (GO TO xxx-EXT)
| | | | | | | | | | | | | | | | (ZAN01CHK, KIN01INP,
| | | | | | | | | | | | | | | | KIN04CHK, SUB04CHK)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
IF | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | - | - | - | ○ | ○ | ◎ | 全メインプログラム + SUB04CHK, SUB05TIM
| | | | | | | | | | | | | | | | IF cond ... ELSE ... END-IF
| | | | | | | | | | | | | | | | IF cond1 AND cond2
| | | | | | | | | | | | | | | | IF SQLCODE NOT = 0
| | | | | | | | | | | | | | | | (メイン全PGM+SUB04,05)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
INITIALIZE | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | - | - | - | - | - | ◎ | 全メインプログラム
| | | | | | | | | | | | | | | | INITIALIZE W01OUTREC
| | | | | | | | | | | | | | | | (全メインプログラム)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
INSPECT | - | - | - | ○ | - | - | ○ | - | - | - | - | - | ○ | - | - | - | - | ◎ | ZAN01CHK, KIN04CHK, SUB04CHK (INSPECT TALLYING)
| | | | | | | | | | | | | | | | (ZAN01CHK, KIN04CHK, SUB04CHK)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
MERGE | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 未使用 (SORT/JCL委譲)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
MOVE | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ◎ | 全14プログラム
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
MULTIPLY | - | - | - | - | - | - | - | - | - | - | - | ○ | - | - | - | - | - | ◎ | ZAN06UPD, KIN07DAI (MULTIPLY A BY 60 GIVING B)
| | | | | | | | | | | | | | | | (ZAN06UPD, KIN07DAI)
| | | | | | | | | | | | | | | | KIN07DAI: 時間→分変換(6100PATAFN/6300PATCFN)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
OPEN | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | - | - | - | - | - | ◎ | ファイル有りの全PGM
| | | | | | | | | | | | | | | | (ファイル有りの全PGM)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
PERFORM | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | - | - | - | ○ | ○ | ◎ | 全メインプログラム + SUB04CHK, SUB05TIM
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
PERFORM UNTIL | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | - | - | - | - | - | ◎ | 全メインプログラム (PERFORM UNTIL END-PERFORM)
| | | | | | | | | | | | | | | | ... END-PERFORM (ZAN03CHK)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
PERFORM VARY | - | - | - | - | - | ○ | - | - | - | - | - | ○ | - | - | - | - | - | ◎ | ZAN06UPD, KIN06CLD (PERFORM VARYING線形探索)
| | | | | | | | | | | | | | | | (ZAN06UPD, KIN06CLD)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
PERM TEST AFT | - | - | - | - | - | - | - | - | - | - | - | ○ | - | - | - | - | - | ○ | ZAN06UPDのみ (PERFORM TEST AFTER VARYING)
| | | | | | | | | | | | | | | | VARYING ... (ZAN06UPD)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
READ | ○ | ○ | - | ○ | ○ | - | ○ | ○ | ○ | ○ | ○ | ○ | - | - | - | - | - | ◎ | KIN03EXP以外の全メインPGM
| | | | | | | | | | | | | | | | AT END/NOT AT END/END-READ
| | | | | | | | | | | | | | | | (KIN03EXP,KIN06CLD以外の全メインPGM)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
RELEASE | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 未使用
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
RETURN | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 未使用
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
REWRITE | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 未使用
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
SEARCH | ○ | - | ○ | - | - | - | - | - | ○ | - | - | - | - | - | - | - | - | ◎ | KIN01INP (SEARCH), KIN03EXP (SEARCH ALL), ZAN03CHK (SEARCH ALL)
| | | | | | | | | | | | | | | | SEARCH (KIN01INP, 直線探索)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
SET | ○ | - | ○ | - | - | - | - | - | ○ | - | ○ | - | - | - | - | - | - | ◎ | KIN01INP, KIN03EXP, ZAN03CHK, ZAN05CAL
| | | | | | | | | | | | | | | | SET cond TO TRUE
| | | | | | | | | | | | | | | | (KIN01,03, ZAN03,05)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
SORT | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 使用禁止 (JCL PGM=SORT)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
START | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 未使用 (VSAM非対応)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
STOP RUN | - | - | - | - | - | - | - | - | - | - | - | - | - | - | ○ | - | - | ○ | SUB03ENDのみ (STOP RUN RETURN-CODE)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
STRING | ○ | ○ | - | ○ | - | ○ | ○ | ○ | ○ | ○ | - | ○ | - | ○ | - | - | - | ◎ | KIN01INP, KIN02UPD, KIN04CHK, KIN06CLD, ZAN01-ZAN04, ZAN06UPD, SUB02MSG
| | | | | | | | | | | | | | | | INTO X END-STRING
| | | | | | | | | | | | | | | | (KIN01,02,04,06, ZAN01-04,06, SUB02)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
SUBTRACT | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | ◎ | KIN07DAI (ZAN06UPDのSUBTRACTは削除済)
| | | | | | | | | | | | | | | | KIN07DAI: ランチ時間除外(6100PATAFN/6300PATCFN)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
UNSTRING | ○ | - | - | ○ | - | - | ○ | - | - | - | - | - | - | - | - | - | - | ◎ | KIN01INP, KIN04CHK, ZAN01CHK
| | | | | | | | | | | | | | | | INTO ... TALLYING IN CNT
| | | | | | | | | | | | | | | | (KIN01INP, KIN04CHK, ZAN01CHK)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
WRITE | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | - | - | - | - | - | ◎ | ファイル出力有りの全PGM
| | | | | | | | | | | | | | | | (ファイル出力有りのPGM)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
WRITE FROM/ | - | - | - | ○ | - | - | - | - | - | - | - | - | - | - | - | - | - | ○ | KIN04CHK (2050NORMSOR正常出力にWRITE FROM使用)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
WRITE AFTER | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | × | 未使用 (WRITE FROMはKIN04CHKで使用)
--------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+----+----+----+----+----+----+--------------------------
================================================================================
ステートメントカバー率: 45ユニーク中 使用33件 (◎=27 + ○=0 + △=6)
カバー率 73.3% (33/45)
NOTE: KIN07DAI追加に伴いMULTIPLY/SUBTRACTを◎に昇格(ZAN06UPD + KIN07DAIの2プログラム以上で使用)。新規構文の追加は無し(全構文既存◎)。
未使用12件: ALTER, ALTEREDGOTO, CANCEL, ENTRY, EXEC CICS, EXIT PROGRAM,
MERGE, RELEASE, RETURN, REWRITE, SORT, START, WRITE AFTER
[3] PERFORM文 バリエーション カバレッジ
--------------------------------------------------------------------------------
No | 形式 | 状態 | 該当プログラム
----+--------------------------+------+------------------------------------------
1 | PERFORM 段落名 | ◎ | 全メインプログラム(ZAN01-06, KIN01-03)
| | | + SUB04CHK, SUB05TIM
2 | PERFORM 段落名 UNTIL | ◎ | 全メインプログラム(ZAN01-06, KIN01-03)
| | | PERFORM 2000MAJSOR UNTIL cond
3 | PERFORM UNTIL ... | ◎ | ZAN03CHK (1300HOLIDAYSOR: 休日ファイル)
| END-PERFORM | | KIN03EXP (2200-EXPAND-DATE: 日付展開)
4 | PERFORM VARYING | ◎ | ZAN06UPD (2100SUMMARYSOR: 月バリデーション)
| | | KIN06CLD (休日線形探索)
5 | PERFORM TEST AFTER | ○ | ZAN06UPD (2210MONTHLYSUBSOR: リトライ制御)
6 | PERFORM THRU | ○ | KIN03EXP (2100-PROCESS-EMP THRU ...-EXIT,
| | | 2200-EXPAND-DATE THRU ...-EXIT)
================================================================================
[4] IF文 バリエーション カバレッジ
--------------------------------------------------------------------------------
No | 形式 | 状態 | 該当プログラム
----+-------------------------------+------+--------------------------------------
1 | IF 条件 ... END-IF | ◎ | ZAN01-06, KIN01-03, SUB04, SUB05
2 | IF 条件 ... ELSE ... END-IF | ◎ | ZAN01-03, KIN01-03, SUB04 (ほか)
3 | IF 複合条件(AND) | ◎ | ZAN03CHK (時間範囲), ZAN06UPD (月判定)
| | | SUB04CHK (日付範囲) 等
4 | IF 複合条件(OR) | ◎ | KIN03EXP (週末判定: 0 OR 6)
5 | IF ... THEN ... | ◎ | SUB04CHK, SUB05TIM
6 | IF ... NOT = ... | ◎ | ZAN06UPD (SQLCODE判定), KIN02UPD
================================================================================
[5] 未カバーステートメント 一覧
--------------------------------------------------------------------------------
No | ステートメント | 備考
----+---------------------+-----------------------------------------------
1 | ALTER | 非推奨、使用予定なし
2 | ALTEREDGOTO | GO TO DEPENDING、非推奨
3 | CANCEL | サブプログラム動的削除は不要
4 | ENTRY | エントリポイント複数定義不要
5 | EXEC CICS | CICS非対応(全バッチ処理)
6 | EXIT PROGRAM | GOBACKで代用
7 | MERGE | COBOL MERGEはJCL SORTに委譲
8 | RELEASE | SORT関連、JCL SORT委譲
9 | RETURN | SORT関連、JCL SORT委譲
10 | REWRITE | VSAM/INDEXED非対応
11 | SORT | COBOL SORT禁止(JCL PGM=SORT
12 | START | VSAM非対応
13 | WRITE AFTER | 未使用 (WRITE FROMはKIN04CHKで使用)
================================================================================
[6] COPYファイル・SUBプログラム 参照状況
--------------------------------------------------------------------------------
COPY/SUB名 | 用途 | 使用プログラム
---------------+----------------------------+-------------------------------
KIN01REC | 休暇申請レコード(80B) | KIN01INP, KIN02UPD
KIN02REC | 休暇日別レコード(80B) | KIN03EXP, KIN05MAT
KIN03REC | 照合結果レコード(160B) | KIN05MAT
KIN04REC | 打刻編集レコード(80B) | KIN04CHK, KIN05MAT, KIN07DAI
KIN05REC | エラーログ(VB) | KIN01INP, KIN02UPD
KIN06REC | 出勤日カレンダー(80B) | KIN06CLD
KIN07REC | 日別計算結果(200B) | KIN07DAI
ZAN01REC | 申請レコード(80B) | ZAN01CHK, ZAN02CHK, ZAN03CHK,
| | ZAN04MAT (全4本)
ZAN02REC | マッチング結果(80B) | ZAN04MAT, ZAN05CAL
ZAN03REC | 集計結果レコード(80B) | ZAN05CAL, ZAN06UPD
ZAN04REC | DBCLEAN用レコード(80B) | ZAN04MAT, ZAN06UPD
ZAN05REC | エラーログ(VB) | ZAN01-04, ZAN06UPD (計5本)
ZANDATAC | SUB01DAT連絡領域 | ZAN01,02,04,05,06, KIN01, KIN03
ZANMSGAC | SUB02MSG連絡領域 | ZAN01-06, KIN01-07, SUB03END
ZANENDAC | SUB03END連絡領域 | ZAN01-06, KIN01-07
ZANCHKAC | SUB04CHK連絡領域 | ZAN01CHK, KIN01INP, KIN04CHK
ZANTIMAC | SUB05TIM連絡領域 | ZAN05CAL, KIN07DAI
SQLCA | SQLCA (EXEC SQL INCLUDE) | ZAN06UPD, KIN02UPD, KIN03EXP, KIN06CLD
| |
SUB01DAT | 運用日付取得 | ZAN01,02,04,05,06, KIN01, KIN03
SUB02MSG | メッセージ編集出力 | ZAN01-06, KIN01-07, SUB03END
SUB03END | ABEND処理 | ZAN01-06, KIN01-07
SUB04CHK | 項目チェック | ZAN01CHK, KIN01INP, KIN04CHK
SUB05TIM | 時刻丸め計算 | ZAN05CAL, KIN07DAI
================================================================================
[7] TYPE定義 カバレッジ状況(TYPE定義一覧.txt 準拠)
--------------------------------------------------------------------------------
No | TYPE定義 | 状態 | 使用例
----+---------------------+------+-------------------------------------------
1 | X(m) | ◎ | PIC X(001)〜X(198): STATUS, OVT-TYPE,
| | | APPL-ID, EMP-ID, ERR-DETAIL,
| | | FILLER, 各種MSG領域 (全COPY/全PGM)
2 | G(m) | × | 未使用(DBCS文字列不要)
3 | N(m) | × | 未使用(National文字列不要)
4 | 9(m) | ◎ | PIC 9(001)〜9(009): CNS定数, 日付, 時刻,
| | | APPL-ID(KIN系), ERR-CATEGORY,
| | | PROC-SEQ, RRCコード, MSG-CODE
5 | 9(m)V9(n) | ◎ | PIC 9(004)V9(001): OVT-HOURS,
| | | 加班時間(集計/丸め/残容量)
| | | (ZAN03REC, ZANTIMAC, ZAN05CAL, ZAN06UPD, SUB05TIM)
6 | S9(m)V9(n) | ○ | PIC S9(005)V9(001): WRK-HOURS
| | | (SUB05TIM, DISPLAY形式, COMP無)
7 | S9(m)V9(n) COMP-3 | ○ | PIC S9(007)V9(001) COMP-3: DB-OVT-HOURS
| | | (ZAN06UPDのみ)
8 | S9(m) COMP-3 | ◎ | PIC S9(009) COMP-3: CUN-R01INN他
| | | (全メインプログラム: カウンタ領域)
9 | S9(m) COMP | ○ | PIC S9(004) COMP: D01FKICOD
| | | (ZANDATAC, SUB01DAT)
| | | PIC 9(002) COMP: WRK-COMMA-CNT
| | | (ZAN01CHK, KIN01INP)
| | | PIC 9(004) COMP: WRK-HOLIDAY-CNT
| | | (ZAN03CHK)
| | | PIC 9(004) COMP: WRK-HD-COUNT
| | | (KIN03EXP)
10 | S9(m) BINARY | × | 未使用(COMP-5/BINARY不使用)
11 | ZZZ9(編集文字) | × | 未使用
| | |
| 補足1: 9(004).9(001) | △ | PIC 9(004).9(001) 編集数字(実小数点)
| | | WRK-OVT-HOURS-EDITED (ZAN06UPD)
| 補足2: S9(m) DISPLAY | △ | PIC S9(005): WRK-MINUTES, WRK-REMAINDER
| | | (SUB05TIM 符号付非COMP整数)
| | | PIC S9(004): WRK-SIGN (SUB04CHK)
| 補足3: +9(009) | △ | PIC +9(009): WRK-SQLCODE-DISP
| | | (ZAN06UPD, KIN02UPD 符号強制編集数字)
================================================================================
凡例: ◎=複数プログラムで使用, ○=1プログラムのみ, △=特殊形式/補足, ×=未使用
備考: 全TYPE定義11件中、使用7件 (1,4,5,6,7,8,9) + 特殊形式3件 + 未使用4件 (2,3,10,11)
[8] COBOLの予約語一覧.txt (193語) との対照
--------------------------------------------------------------------------------
全予約語193語を全ソースファイル(src/*.cbl + sub/*.cbl + cpy/*.cpy)でgrep確認。
予約語出現判定は単語境界\bマッチ、大文字小文字不区別。
--------------------------------------------------------------------------------
出現確認: 134語 (69.4%)
未出現: 59語 (30.6%)
--------------------------------------------------------------------------------
出現確認した主な予約語 (134語):
ACCEPT, ADD, AFTER, ALL, AND, ASCENDING, ASSIGN, AT, BLOCK, BY,
CALL, CHARACTERS, CLOSE, COMP, COMP-3, COMPUTE, CONFIGURATION,
CONTAINS, CONTINUE, COPY, COUNT, DATA, DATE, DELETE, DELIMITED,
DEPENDING, DISPLAY, DIVIDE, DIVISION, ELSE, END, END-COMPUTE,
END-EVALUATE, END-EXEC, END-IF, END-PERFORM, END-READ, END-SEARCH,
END-STRING, END-UNSTRING, ENVIRONMENT, ERROR, EVALUATE, EXEC, EXIT,
FD, FILE, FILE-CONTROL, FILLER, FIRST, FOR, FROM, FUNCTION, GIVING,
GO, GOBACK, HIGH-VALUE, ID, IDENTIFICATION, IF, IN, INDEXED, INITIAL,
INITIALIZE, INPUT, INPUT-OUTPUT, INSERT, INSPECT, INTO, INVALID, IS,
KEY, LABEL, LINKAGE, MODE, MOVE, MULTIPLY, NOT, OBJECT-COMPUTER,
OCCURS, OF, ON, OPEN, OR, ORDER, OTHER, OUTPUT, PERFORM, PIC,
PROCEDURE, PROGRAM-ID, READ, RECORD, RECORDING, REDEFINES, REMAINDER,
REPLACING, RETURN-CODE, ROUNDED, RUN, SEARCH, SECTION, SELECT, SET,
SIZE, SOURCE-COMPUTER, SPACE, SPACES, SQL, STANDARD, STOP, STRING,
SUBTRACT, TABLE, TALLYING, TEST, THEN, THRU, TIME, TIMES, TO, TRUE,
TYPE, UNSTRING, UNTIL, USING, VALUE, VALUES, VARYING, WHEN,
WHEN-COMPILED, WORKING-STORAGE, WRITE, ZERO
--------------------------------------------------------------------------------
未出現の予約語 (59語): 全て現行システムの要件範囲外
ACCESS, ALPHABETIC, ALPHABETIC-UPPER, ALSO, ANY, APPLY, AUTHOR,
BINARY, CHARACTER, COMP-4, CONDITION, CONVERTING, CORR, CURSOR,
DATE-COMPILED, DATE-WRITTEN, DECLARATIVES, DELIMITER, DESCENDING,
DISPLAY-1, DOWN, DYNAMIC, EJECT, END-ADD, END-CALL, END-DIVIDE,
END-SUBTRACT, EXCEPTION, EXECUTE, FALSE, GET, GREATER, I-O-CONTROL,
LENGTH, LOW-VALUE, NEXT, NUMERIC, OMITTED, OPTIONS, ORGANIZATION,
PACKED-DECIMAL, PAGE, PAGE-COUNTER, POINTER, RANDOM, RECORDS, REMOVAL,
RERUN, SENTENCE, SHIFT-IN, SHIFT-OUT, SKIP2, UP, UPON, USAGE, USE,
WITH, WRITE-ONLY, ZEROS
================================================================================
サブシステム別 カバレッジサマリ
================================================================================
サブシステムA (KIN01INP→…→KIN07DAI): 7プログラム
- PGM実装パターン: 2,11,12,13,15,16,17,18,19 (9種/29種中)
KIN05MAT追加: パターン2(1:Nマッチング)をファイル照合で実装
KIN06CLD追加: パターン12(レイアウト編集のみGETPUT)を新規実装
- ステートメントカバレッジ: 使用33種/45種中 (MULTIPLY/SUBTRACT/サブシステムA初使用)
KIN04CHK: WRITE FROM, IF THEN句4段階ネスト
KIN05MAT: EVALUATE TRUE 3分岐マッチング制御, N:1ループ
KIN06CLD: ACCEPT FROM COMMAND-LINE, EXEC SQL + bridge混在, PERFORM VARYING線形探索
KIN07DAI: EVALUATE 4分岐, MULTIPLY/SUBTRACT併用時間計算, CALL SUB05TIM
- EXEC SQL: KIN02UPD(CONNECT+INSERT+DELETE+COMMIT+ROLLBACK)
KIN03EXP(CONNECT+SELECT+INCLUDE+FETCH)
KIN06CLD(SELECT EMP_MASTER + DIRECT BRIDGE holiday)
- KIN04CHK, KIN05MAT, KIN07DAI: EXEC SQLなし (ファイル入出力/マッチングのみ)
サブシステムB (ZAN01CHK→…→ZAN06UPD): 6プログラム
- PGM実装パターン: 1,3,9,10,11,13,14,15,16,17,18,19 (12種/29種中)
- ステートメントカバレッジ: 使用30種/45種中
MULTIPLY, SUBTRACT, PERFORM TEST AFTERはZAN06UPDのみ
PERFORM VARYING: ZAN06UPD + KIN06CLD (計2本、KIN06CLD追加)
- EXEC SQL: ZAN06UPDのみ (全6種のSQL動詞)
サブシステムAプログラム (KIN01→KIN07): 7プログラム
- パイプライン: KIN01INP(CSV→FB)→KIN02UPD(DB更新)→KIN03EXP(日付展開DB出力)
→KIN04CHK(打刻チェック)→KIN05MAT(打刻休暇照合)→KIN06CLD(カレンダー生成)
→KIN07DAI(日別計算 4パターン分岐)
- KIN05MAT: 1:Nマッチング, EVALUATE TRUE 3分岐, 優先順位選定(01>02>03>04)
- KIN06CLD: 休日判定+EMPLOYEE CURSOR LOOP, PERFORM VARYING線形探索, CALL br_open/br_query/br_get_col
- KIN07DAI: EVALUATE 4分岐, MULTIPLY/SUBTRACT時間計算, CALL SUB05TIM丸め
- SUB02MSG(メッセージ), SUB03END(ABEND), SUB05TIM(丸め)を使用. DBアクセスはbridge直接+EXEC SQL混在.
サブプログラム群 (SUB01-05):
- 各1〜2パターンに特化 (日付/メッセージ/ABEND/チェック/丸め)
- 全サブプログラムがGOBACK復帰 (EXIT PROGRAM不使用)
未カバーパターン (29種中16種):
4-8(M:Nマッチング), 20(CSV+改行有), 21(オンライン),
22-24(分割), 25-27(2段階マッチング), 28(SYSIN), 29(ASCII→EBCDIC)
→ 全て現行要件の範囲外
未カバーステートメント (45種中13種)
→ 全てCOBOL機能上不要なもの(ALTER, MERGE, SORT等JCL委譲)
TYPE定義カバレッジ:
- 全TYPE定義11件中、使用7件 (X,9,9V9,S9V9,S9V9 COMP-3,S9 COMP-3,S9 COMP)
- 特殊形式3件 (9(004).9(001), S9(m) DISPLAY, +9(009))
- 未使用4件 (G,N,BINARY,ZZZ9)
予約語カバレッジ:
- COBOLの予約語一覧.txt 193語中、ソース出現134語 (69.4%)
- 未出現59語は全て現行システムの要件範囲外
================================================================================
全カバレッジサマリ表
+--------------------------+----------+----------+-----------+------------------+
| カテゴリ | 全件 | 使用/実装| 未使用 | カバー率 |
+--------------------------+----------+----------+-----------+------------------+
| PGM実装パターン | 29件 | 13件 | 16件 | 44.8% |
| ステートメント | 45ユニーク| 33件 | 12件 | 73.3% |
| 備考: KIN06CLD追加によりパターン12(GETPUT)を◎新規実装。 |
| KIN07DAI追加によりサブシステムA初のMULTIPLY/SUBTRACT使用。|
| TYPE定義 | 11件 | 7件(+特殊3)| 4件 | 63.6%(+27.3%特殊)|
| COBOL予約語 | 193語 | 134語 | 59語 | 69.4% |
+--------------------------+----------+----------+-----------+------------------+
※PGMパターンの低カバー率は要件範囲外パターン(M:N,分割,SYSIN,etc.)が多いため。
実装対象パターン(1-3,9-20)に限定すれば 13/19 = 68.4%。(KIN06CLDで12→13)
================================================================================
以上
+8 -8
View File
@@ -98,14 +98,14 @@
03 WRK-R01EOF PIC X(001). 03 WRK-R01EOF PIC X(001).
*** 前レコード保持 *** 前レコード保持
03 WRK-PREV-REC. 03 WRK-PREV-REC.
05 WRK-PREV-APPL-ID PIC X(008). 05 FILLER PIC X(008).
05 WRK-PREV-EMP-ID PIC 9(008). 05 WRK-PREV-EMP-ID PIC 9(008).
05 WRK-PREV-APPL-DATE PIC 9(008). 05 WRK-PREV-APPL-DATE PIC 9(008).
05 WRK-PREV-START-TIME PIC 9(004). 05 FILLER PIC 9(004).
05 WRK-PREV-END-TIME PIC 9(004). 05 WRK-PREV-END-TIME PIC 9(004).
05 WRK-PREV-STATUS PIC X(001). 05 FILLER PIC X(001).
05 WRK-PREV-OVT-TYPE PIC X(001). 05 FILLER PIC X(001).
05 WRK-PREV-FILLER PIC X(046). 05 FILLER PIC X(046).
* *
***************************************************************** *****************************************************************
* サブプログラム連絡領域 * * サブプログラム連絡領域 *
+5 -11
View File
@@ -79,9 +79,7 @@
***************************************************************** *****************************************************************
* 作業領域 * * 作業領域 *
***************************************************************** *****************************************************************
01 WRKARA. 01 WRKARA.
*** 処理日付(ACCEPT FROM DATE用)
03 WRK-DATE-8 PIC 9(008).
*** キーブレイク制御 *** キーブレイク制御
03 WRK-R01KEY PIC X(008). 03 WRK-R01KEY PIC X(008).
03 WRK-PREV-APPL-ID PIC X(008). 03 WRK-PREV-APPL-ID PIC X(008).
@@ -94,12 +92,12 @@
05 WRK-LAST-APPL-ID PIC X(008). 05 WRK-LAST-APPL-ID PIC X(008).
05 WRK-LAST-EMP-ID PIC 9(008). 05 WRK-LAST-EMP-ID PIC 9(008).
05 WRK-LAST-APPL-DATE PIC 9(008). 05 WRK-LAST-APPL-DATE PIC 9(008).
05 WRK-LAST-START PIC 9(004). 05 FILLER PIC 9(004).
05 WRK-LAST-END PIC 9(004). 05 WRK-LAST-END PIC 9(004).
05 WRK-LAST-STATUS PIC X(001). 05 FILLER PIC X(001).
05 WRK-LAST-OVT-TYPE PIC X(001). 05 WRK-LAST-OVT-TYPE PIC X(001).
05 WRK-LAST-PROC-SEQ PIC 9(002). 05 FILLER PIC 9(002).
05 WRK-LAST-FILLER PIC X(044). 05 FILLER PIC X(044).
*** 集計用グループ先頭START保持 *** 集計用グループ先頭START保持
03 WRK-GROUP-START PIC 9(004). 03 WRK-GROUP-START PIC 9(004).
*** 集計用積算分領域 *** 集計用積算分領域
@@ -169,9 +167,6 @@
MOVE 'COMPILED' TO M00UMKDATS22-02. MOVE 'COMPILED' TO M00UMKDATS22-02.
PERFORM 4000MSGOUTSOR. PERFORM 4000MSGOUTSOR.
* *
*** 処理日付取得(ACCEPT FROM DATE
ACCEPT WRK-DATE-8 FROM DATE YYYYMMDD.
*
*** ワークエリア初期化 *** ワークエリア初期化
INITIALIZE WRKARA. INITIALIZE WRKARA.
MOVE '0' TO WRK-GROUP-ACTIVE. MOVE '0' TO WRK-GROUP-ACTIVE.
@@ -251,7 +246,6 @@
WHEN OTHER WHEN OTHER
PERFORM 2200ACCUMSOR PERFORM 2200ACCUMSOR
MOVE R01INNREC TO WRK-LAST-REC MOVE R01INNREC TO WRK-LAST-REC
CONTINUE
PERFORM 1100R01INNSOR PERFORM 1100R01INNSOR
END-EVALUATE. END-EVALUATE.
* *
+2 -15
View File
@@ -85,9 +85,7 @@
03 CNS-KN0002 PIC 9(001) VALUE 2. 03 CNS-KN0002 PIC 9(001) VALUE 2.
03 CNS-COMMIT-CNT PIC 9(003) VALUE 050. 03 CNS-COMMIT-CNT PIC 9(003) VALUE 050.
03 CNS-STATUS-ACTIVE PIC X(001) VALUE '0'. 03 CNS-STATUS-ACTIVE PIC X(001) VALUE '0'.
03 CNS-STATUS-CANCEL PIC X(001) VALUE '9'. 03 CNS-STATUS-CANCEL PIC X(001) VALUE '9'.
03 CNS-MAX-HOURS PIC 9(004)V9(001)
VALUE 9999.9.
* *
***************************************************************** *****************************************************************
* カウンタ領域 * * カウンタ領域 *
@@ -105,8 +103,6 @@
VALUE ZERO. VALUE ZERO.
03 CUN-COMMIT PIC S9(009) COMP-3 03 CUN-COMMIT PIC S9(009) COMP-3
VALUE ZERO. VALUE ZERO.
03 CUN-ETHUS PIC S9(009) COMP-3
VALUE ZERO.
* *
***************************************************************** *****************************************************************
* 作業領域 * * 作業領域 *
@@ -121,8 +117,7 @@
03 WRK-APPL-DATE-N PIC 9(008). 03 WRK-APPL-DATE-N PIC 9(008).
03 WRK-YEAR-MONTH PIC 9(006). 03 WRK-YEAR-MONTH PIC 9(006).
03 WRK-MONTH PIC 9(002). 03 WRK-MONTH PIC 9(002).
03 WRK-MONTH-VALID PIC 9(001). 03 WRK-MONTH-VALID PIC 9(001).
88 WRK-MONTH-OK VALUE 1.
*** ループ制御 *** ループ制御
03 WRK-IDX PIC 9(004). 03 WRK-IDX PIC 9(004).
03 WRK-RETRY-CNT PIC 9(001). 03 WRK-RETRY-CNT PIC 9(001).
@@ -130,7 +125,6 @@
03 WRK-OVT-HOURS-EDITED PIC 9(004).9(001). 03 WRK-OVT-HOURS-EDITED PIC 9(004).9(001).
03 WRK-OVT-HOURS-NUM PIC 9(004)V9(001). 03 WRK-OVT-HOURS-NUM PIC 9(004)V9(001).
03 WRK-OVT-MINUTES PIC 9(006). 03 WRK-OVT-MINUTES PIC 9(006).
03 WRK-REMAIN-HOURS PIC 9(004)V9(001).
*** SQL用ホスト変数(全DISPLAY *** SQL用ホスト変数(全DISPLAY
03 WRK-SQL-APPL-ID PIC X(008). 03 WRK-SQL-APPL-ID PIC X(008).
03 WRK-SQL-EMP-ID PIC X(008). 03 WRK-SQL-EMP-ID PIC X(008).
@@ -481,12 +475,6 @@
MOVE WRK-APPL-DATE-N(1:6) TO WRK-YEAR-MONTH. MOVE WRK-APPL-DATE-N(1:6) TO WRK-YEAR-MONTH.
MOVE WRK-YEAR-MONTH TO WRK-SQL-YEAR-MONTH. MOVE WRK-YEAR-MONTH TO WRK-SQL-YEAR-MONTH.
* *
*** SUBTRACT カバレッジ:残容量検証
MOVE WRK-SQL-OVT-HOURS TO WRK-OVT-HOURS-NUM.
SUBTRACT WRK-OVT-HOURS-NUM
FROM CNS-MAX-HOURS
GIVING WRK-REMAIN-HOURS.
*
*** OVT-APPLICATIONSステータス更新(取消) *** OVT-APPLICATIONSステータス更新(取消)
EXEC SQL EXEC SQL
UPDATE OVT_APPLICATIONS SET UPDATE OVT_APPLICATIONS SET
@@ -577,7 +565,6 @@
END-EXEC. END-EXEC.
* *
MOVE ZERO TO CUN-COMMIT. MOVE ZERO TO CUN-COMMIT.
ADD 1 TO CUN-ETHUS.
* *
2300COMMITDBX-EXT. 2300COMMITDBX-EXT.
EXIT. EXIT.
@@ -37,7 +37,7 @@
なし(DB操作なし) なし(DB操作なし)
## 処理フロー ## 処理フロー
1. 初期処理(開始メッセージ→ACCEPT FROM DATE→運用日付取得→OPEN→初回読込) 1. 初期処理(開始メッセージ→運用日付取得→OPEN→初回読込)
2. キーブレイク集計ループ 2. キーブレイク集計ループ
- キー変わり(APPL-ID) → 前グループ集計出力+累積リセット+新グループ開始 - キー変わり(APPL-ID) → 前グループ集計出力+累積リセット+新グループ開始
- 同一グループ → 現レコード時間差分をWRK-ACCUM-MINに積算+最新レコード上書き保持 - 同一グループ → 現レコード時間差分をWRK-ACCUM-MINに積算+最新レコード上書き保持
+3 -7
View File
@@ -12,8 +12,7 @@
| 6 | 機能概要 | OVT-SORTED2(申請番号+処理番号昇順)をキーブレイク集約し、 | | 6 | 機能概要 | OVT-SORTED2(申請番号+処理番号昇順)をキーブレイク集約し、 |
| 7 | | 同一APPL-IDの全レコードの加班時間を積算し、 | | 7 | | 同一APPL-IDの全レコードの加班時間を積算し、 |
| 8 | | OVT-SUMMARYに1レコードに集計して出力する。 | | 8 | | OVT-SUMMARYに1レコードに集計して出力する。 |
| 9 | | キーブレイク制御にCONTINUE/SET、時間計算にCOMPUTE ROUNDED/DIVIDE | | 9 | | キーブレイク制御にCONTINUE/SET、時間計算にCOMPUTE ROUNDED/DIVIDEをそれぞれ使用する。 |
| 10 | | 処理日付取得にACCEPT FROM DATEをそれぞれ使用する。 |
※PGMタイプ:メイン、サブ ※PGMタイプ:メイン、サブ
※PGMパターン:マッチング(1:1、1:N、N:1、M:N)、レイアウト編集のみ(GETPUT)、振り分け(IF文、EVALUATE文)、キーブレイク(集計、集約、集計・集約の以外)、DB更新 ※PGMパターン:マッチング(1:1、1:N、N:1、M:N)、レイアウト編集のみ(GETPUT)、振り分け(IF文、EVALUATE文)、キーブレイク(集計、集約、集計・集約の以外)、DB更新
@@ -60,11 +59,8 @@
メッセージ番号:33(コンパイル日時) メッセージ番号:33(コンパイル日時)
PARM1:コンパイル日時 PARM1:コンパイル日時
PARM2'COMPILED' PARM2'COMPILED'
1-3.ACCEPT FROM DATEで処理日付を取得(WRK-DATE-8 1-3.ワークエリアの初期化(WRK-ACCUM-MIN含む
【新規カバレッジ】 1-4.運用日付取得SUB(SUB01DAT)により運用日を取得する。
ACCEPT FROM DATE YYYYMMDD
1-4.ワークエリアの初期化(WRK-ACCUM-MIN含む)
1-5.運用日付取得SUB(SUB01DAT)により運用日を取得する。
復帰コード≠ZEROの場合、メッセージを出力し、ABEND処理SUBを呼び出し異常終了する。 復帰コード≠ZEROの場合、メッセージを出力し、ABEND処理SUBを呼び出し異常終了する。
【メッセージ編集】 【メッセージ編集】
メッセージ番号:5(サブエラー) メッセージ番号:5(サブエラー)
+3 -4
View File
@@ -14,7 +14,7 @@
| 8 | | またOVT-DBCLEANの各レコードについて、該当申請を取消状態に更新し、 | | 8 | | またOVT-DBCLEANの各レコードについて、該当申請を取消状態に更新し、 |
| 9 | | OVT-MONTHLYから該当加班時間を減算する。 | | 9 | | OVT-MONTHLYから該当加班時間を減算する。 |
| 10 | | 新規カバレッジ:EXEC SQL(INSERT/UPDATE/SELECT)、COMMIT/ROLLBACK、 | | 10 | | 新規カバレッジ:EXEC SQL(INSERT/UPDATE/SELECT)、COMMIT/ROLLBACK、 |
| 11 | | PERFORM VARYING/TEST AFTER、COBOL SUBTRACT/MULTIPLY | | 11 | | PERFORM VARYING/TEST AFTER、COBOL MULTIPLY |
※PGMタイプ:メイン、サブ ※PGMタイプ:メイン、サブ
※PGMパターン:マッチング(1:1、1:N、N:1、M:N)、レイアウト編集のみ(GETPUT)、振り分け(IF文、EVALUATE文)、キーブレイク(集計、集約、集計・集約の以外)、DB更新 ※PGMパターン:マッチング(1:1、1:N、N:1、M:N)、レイアウト編集のみ(GETPUT)、振り分け(IF文、EVALUATE文)、キーブレイク(集計、集約、集計・集約の以外)、DB更新
@@ -142,7 +142,7 @@
WHERE APPL-ID = :WRK-SQL-APPL-ID WHERE APPL-ID = :WRK-SQL-APPL-ID
2-2-4.YEAR-MONTH抽出:APPL-DATE(1:6) 2-2-4.YEAR-MONTH抽出:APPL-DATE(1:6)
2-2-5.OVT-MONTHLYから減算(2210MONTHLYSUBSOR 2-2-5.OVT-MONTHLYから減算(2210MONTHLYSUBSOR
【EXEC SQL UPDATE(減算)COBOL SUBTRACT検証 【EXEC SQL UPDATE(減算)】
UPDATE OVT-MONTHLY SET UPDATE OVT-MONTHLY SET
OVT-HOURS = OVT-HOURS - :WRK-SQL-OVT-HOURS, OVT-HOURS = OVT-HOURS - :WRK-SQL-OVT-HOURS,
OVT-COUNT = OVT-COUNT - 1, OVT-COUNT = OVT-COUNT - 1,
@@ -188,7 +188,6 @@
4-1.【EXEC SQL COMMIT】 4-1.【EXEC SQL COMMIT】
COMMIT WORK COMMIT WORK
4-2.CUN-COMMITをZEROにリセット 4-2.CUN-COMMITをZEROにリセット
4-3.CUN-ETHUSに1加算
5.終了処理(3000STPSOR 5.終了処理(3000STPSOR
5-1.最終COMMIT2300COMMITDBX 5-1.最終COMMIT2300COMMITDBX
@@ -227,7 +226,7 @@
| 6 | PERFORM VARYING | 月(1-12)のバリデーションループ | | 6 | PERFORM VARYING | 月(1-12)のバリデーションループ |
| 7 | PERFORM TEST AFTER VARYING | 月次減算のリトライ制御 | | 7 | PERFORM TEST AFTER VARYING | 月次減算のリトライ制御 |
| 8 | COBOL MULTIPLY | 加班時間→分変換 | | 8 | COBOL MULTIPLY | 加班時間→分変換 |
| 9 | COBOL SUBTRACT | 残加班容量検証 |
## 出力レコード定義 ## 出力レコード定義