diff --git a/bin/ZAN02CHK.exe b/bin/ZAN02CHK.exe index e5a4180..f8aa465 100644 Binary files a/bin/ZAN02CHK.exe and b/bin/ZAN02CHK.exe differ diff --git a/bin/ZAN05CAL.exe b/bin/ZAN05CAL.exe index 262d585..bdebe7d 100644 Binary files a/bin/ZAN05CAL.exe and b/bin/ZAN05CAL.exe differ diff --git a/bin/ZAN06UPD.exe b/bin/ZAN06UPD.exe index 7b74ea0..d2ddbaf 100644 Binary files a/bin/ZAN06UPD.exe and b/bin/ZAN06UPD.exe differ diff --git a/list/COBOLの予約語一覧.txt b/list/COBOLの予約語一覧.txt new file mode 100644 index 0000000..effc8c6 --- /dev/null +++ b/list/COBOLの予約語一覧.txt @@ -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 diff --git a/list/PGM実装パターン一覧.txt b/list/PGM実装パターン一覧.txt new file mode 100644 index 0000000..1e95f6c --- /dev/null +++ b/list/PGM実装パターン一覧.txt @@ -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変換 diff --git a/list/TYPE定義一覧.txt b/list/TYPE定義一覧.txt new file mode 100644 index 0000000..a98dbcb --- /dev/null +++ b/list/TYPE定義一覧.txt @@ -0,0 +1,11 @@ +X(m) m,nF +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 ސ͌Œł͂ȂA1`8ł diff --git a/list/ステートメント一覧.txt b/list/ステートメント一覧.txt new file mode 100644 index 0000000..d305930 --- /dev/null +++ b/list/ステートメント一覧.txt @@ -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 diff --git a/list/プログラムタイプ・ステートメントカバレッジ状況_20260616-2253.txt b/list/プログラムタイプ・ステートメントカバレッジ状況_20260616-2253.txt new file mode 100644 index 0000000..411e447 --- /dev/null +++ b/list/プログラムタイプ・ステートメントカバレッジ状況_20260616-2253.txt @@ -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 | 内部テーブル検索 | ○ | ZAN03CHK(SEARCH ALL使用) + 18 | DB更新 | ◎ | ZAN06UPD + 19 | CSV→FB変換(改行コードなし) | ○ | ZAN01CHK(UNSTRINGで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) COMP(WRK-COMMA-CNT) + | | | PIC 9(4) COMP(WRK-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種とも設計書に記載済) +================================================================================ + +以上 diff --git a/list/プログラムタイプ・ステートメントカバレッジ状況_20260619-1200.txt b/list/プログラムタイプ・ステートメントカバレッジ状況_20260619-1200.txt new file mode 100644 index 0000000..0bd455e --- /dev/null +++ b/list/プログラムタイプ・ステートメントカバレッジ状況_20260619-1200.txt @@ -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) + ================================================================================ + 以上 diff --git a/list/プログラムタイプ・ステートメントカバレッジ状況_20260623-1500.txt b/list/プログラムタイプ・ステートメントカバレッジ状況_20260623-1500.txt new file mode 100644 index 0000000..f62d0c6 --- /dev/null +++ b/list/プログラムタイプ・ステートメントカバレッジ状況_20260623-1500.txt @@ -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) + ================================================================================ + 以上 diff --git a/src/ZAN02CHK.cbl b/src/ZAN02CHK.cbl index ac853aa..73868b8 100644 --- a/src/ZAN02CHK.cbl +++ b/src/ZAN02CHK.cbl @@ -98,14 +98,14 @@ 03 WRK-R01EOF PIC X(001). *** 前レコード保持 03 WRK-PREV-REC. - 05 WRK-PREV-APPL-ID PIC X(008). - 05 WRK-PREV-EMP-ID PIC 9(008). - 05 WRK-PREV-APPL-DATE PIC 9(008). - 05 WRK-PREV-START-TIME PIC 9(004). - 05 WRK-PREV-END-TIME PIC 9(004). - 05 WRK-PREV-STATUS PIC X(001). - 05 WRK-PREV-OVT-TYPE PIC X(001). - 05 WRK-PREV-FILLER PIC X(046). + 05 FILLER PIC X(008). + 05 WRK-PREV-EMP-ID PIC 9(008). + 05 WRK-PREV-APPL-DATE PIC 9(008). + 05 FILLER PIC 9(004). + 05 WRK-PREV-END-TIME PIC 9(004). + 05 FILLER PIC X(001). + 05 FILLER PIC X(001). + 05 FILLER PIC X(046). * ***************************************************************** * サブプログラム連絡領域 * diff --git a/src/ZAN05CAL.cbl b/src/ZAN05CAL.cbl index 94d3038..9674094 100644 --- a/src/ZAN05CAL.cbl +++ b/src/ZAN05CAL.cbl @@ -79,9 +79,7 @@ ***************************************************************** * 作業領域 * ***************************************************************** - 01 WRKARA. - *** 処理日付(ACCEPT FROM DATE用) - 03 WRK-DATE-8 PIC 9(008). + 01 WRKARA. *** キーブレイク制御 03 WRK-R01KEY 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-EMP-ID 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-STATUS PIC X(001). + 05 FILLER PIC X(001). 05 WRK-LAST-OVT-TYPE PIC X(001). - 05 WRK-LAST-PROC-SEQ PIC 9(002). - 05 WRK-LAST-FILLER PIC X(044). + 05 FILLER PIC 9(002). + 05 FILLER PIC X(044). *** 集計用グループ先頭START保持 03 WRK-GROUP-START PIC 9(004). *** 集計用積算分領域 @@ -169,9 +167,6 @@ MOVE 'COMPILED' TO M00UMKDATS22-02. PERFORM 4000MSGOUTSOR. * - *** 処理日付取得(ACCEPT FROM DATE) - ACCEPT WRK-DATE-8 FROM DATE YYYYMMDD. - * *** ワークエリア初期化 INITIALIZE WRKARA. MOVE '0' TO WRK-GROUP-ACTIVE. @@ -251,7 +246,6 @@ WHEN OTHER PERFORM 2200ACCUMSOR MOVE R01INNREC TO WRK-LAST-REC - CONTINUE PERFORM 1100R01INNSOR END-EVALUATE. * diff --git a/src/ZAN06UPD.cbl b/src/ZAN06UPD.cbl index 928e6d7..a0860b0 100644 --- a/src/ZAN06UPD.cbl +++ b/src/ZAN06UPD.cbl @@ -85,9 +85,7 @@ 03 CNS-KN0002 PIC 9(001) VALUE 2. 03 CNS-COMMIT-CNT PIC 9(003) VALUE 050. 03 CNS-STATUS-ACTIVE PIC X(001) VALUE '0'. - 03 CNS-STATUS-CANCEL PIC X(001) VALUE '9'. - 03 CNS-MAX-HOURS PIC 9(004)V9(001) - VALUE 9999.9. + 03 CNS-STATUS-CANCEL PIC X(001) VALUE '9'. * ***************************************************************** * カウンタ領域 * @@ -105,8 +103,6 @@ VALUE ZERO. 03 CUN-COMMIT PIC S9(009) COMP-3 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-YEAR-MONTH PIC 9(006). 03 WRK-MONTH PIC 9(002). - 03 WRK-MONTH-VALID PIC 9(001). - 88 WRK-MONTH-OK VALUE 1. + 03 WRK-MONTH-VALID PIC 9(001). *** ループ制御 03 WRK-IDX PIC 9(004). 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-NUM PIC 9(004)V9(001). 03 WRK-OVT-MINUTES PIC 9(006). - 03 WRK-REMAIN-HOURS PIC 9(004)V9(001). *** SQL用ホスト変数(全DISPLAY) 03 WRK-SQL-APPL-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-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ステータス更新(取消) EXEC SQL UPDATE OVT_APPLICATIONS SET @@ -577,7 +565,6 @@ END-EXEC. * MOVE ZERO TO CUN-COMMIT. - ADD 1 TO CUN-ETHUS. * 2300COMMITDBX-EXT. EXIT. diff --git a/使用資源一覧/ZAN05CAL_使用資源一覧.md b/使用資源一覧/ZAN05CAL_使用資源一覧.md index 1f00509..0396955 100644 --- a/使用資源一覧/ZAN05CAL_使用資源一覧.md +++ b/使用資源一覧/ZAN05CAL_使用資源一覧.md @@ -37,7 +37,7 @@ なし(DB操作なし) ## 処理フロー -1. 初期処理(開始メッセージ→ACCEPT FROM DATE→運用日付取得→OPEN→初回読込) +1. 初期処理(開始メッセージ→運用日付取得→OPEN→初回読込) 2. キーブレイク集計ループ - キー変わり(APPL-ID) → 前グループ集計出力+累積リセット+新グループ開始 - 同一グループ → 現レコード時間差分をWRK-ACCUM-MINに積算+最新レコード上書き保持 diff --git a/詳細設計書/詳細設計書_ZAN05CAL.md b/詳細設計書/詳細設計書_ZAN05CAL.md index a604f9c..15c1d65 100644 --- a/詳細設計書/詳細設計書_ZAN05CAL.md +++ b/詳細設計書/詳細設計書_ZAN05CAL.md @@ -12,8 +12,7 @@ | 6 | 機能概要 | OVT-SORTED2(申請番号+処理番号昇順)をキーブレイク集約し、 | | 7 | | 同一APPL-IDの全レコードの加班時間を積算し、 | | 8 | | OVT-SUMMARYに1レコードに集計して出力する。 | -| 9 | | キーブレイク制御にCONTINUE/SET、時間計算にCOMPUTE ROUNDED/DIVIDE、 | -| 10 | | 処理日付取得にACCEPT FROM DATEをそれぞれ使用する。 | +| 9 | | キーブレイク制御にCONTINUE/SET、時間計算にCOMPUTE ROUNDED/DIVIDEをそれぞれ使用する。 | ※PGMタイプ:メイン、サブ ※PGMパターン:マッチング(1:1、1:N、N:1、M:N)、レイアウト編集のみ(GETPUT)、振り分け(IF文、EVALUATE文)、キーブレイク(集計、集約、集計・集約の以外)、DB更新 @@ -60,11 +59,8 @@ メッセージ番号:33(コンパイル日時) PARM1:コンパイル日時 PARM2:'COMPILED' - 1-3.ACCEPT FROM DATEで処理日付を取得(WRK-DATE-8) - 【新規カバレッジ】 - ACCEPT FROM DATE YYYYMMDD - 1-4.ワークエリアの初期化(WRK-ACCUM-MIN含む) - 1-5.運用日付取得SUB(SUB01DAT)により運用日を取得する。 + 1-3.ワークエリアの初期化(WRK-ACCUM-MIN含む) + 1-4.運用日付取得SUB(SUB01DAT)により運用日を取得する。 復帰コード≠ZEROの場合、メッセージを出力し、ABEND処理SUBを呼び出し異常終了する。 【メッセージ編集】 メッセージ番号:5(サブエラー) diff --git a/詳細設計書/詳細設計書_ZAN06UPD.md b/詳細設計書/詳細設計書_ZAN06UPD.md index 21f98e5..40a5800 100644 --- a/詳細設計書/詳細設計書_ZAN06UPD.md +++ b/詳細設計書/詳細設計書_ZAN06UPD.md @@ -14,7 +14,7 @@ | 8 | | またOVT-DBCLEANの各レコードについて、該当申請を取消状態に更新し、 | | 9 | | OVT-MONTHLYから該当加班時間を減算する。 | | 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パターン:マッチング(1:1、1:N、N:1、M:N)、レイアウト編集のみ(GETPUT)、振り分け(IF文、EVALUATE文)、キーブレイク(集計、集約、集計・集約の以外)、DB更新 @@ -142,7 +142,7 @@ WHERE APPL-ID = :WRK-SQL-APPL-ID 2-2-4.YEAR-MONTH抽出:APPL-DATE(1:6) 2-2-5.OVT-MONTHLYから減算(2210MONTHLYSUBSOR) - 【EXEC SQL UPDATE(減算)+COBOL SUBTRACT検証】 + 【EXEC SQL UPDATE(減算)】 UPDATE OVT-MONTHLY SET OVT-HOURS = OVT-HOURS - :WRK-SQL-OVT-HOURS, OVT-COUNT = OVT-COUNT - 1, @@ -188,8 +188,7 @@ 4-1.【EXEC SQL COMMIT】 COMMIT WORK 4-2.CUN-COMMITをZEROにリセット - 4-3.CUN-ETHUSに1加算 - + 5.終了処理(3000STPSOR) 5-1.最終COMMIT(2300COMMITDBX) 5-2.入出力ファイルのクローズ @@ -227,7 +226,7 @@ | 6 | PERFORM VARYING | 月(1-12)のバリデーションループ | | 7 | PERFORM TEST AFTER VARYING | 月次減算のリトライ制御 | | 8 | COBOL MULTIPLY | 加班時間→分変換 | -| 9 | COBOL SUBTRACT | 残加班容量検証 | + ## 出力レコード定義