サブシステムEをJIN04PRT〜JIN08TST追加で9本に拡充(全48プログラム)。JIN01-09のIBM COBOL完全版・bin再ビルド版・設計書・使用資源一覧・カバレッジ統計・DDL(schema_jin)・COPY(DB-COMMON/JIN04RPT-REC/JIN05REC)をroot側最新に同期。KYU03AGG/KYU08PRI/SHA02MNC/SHA10S10再テスト済み(全PASS)

This commit is contained in:
qiuqiuqiu
2026-08-05 00:11:07 +08:00
parent 182b161208
commit a918489f93
88 changed files with 2953 additions and 300 deletions
+44 -43
View File
@@ -15,12 +15,12 @@
| 01 | マッチング(11 | 匹配 | ZAN04MAT | ◎ |
| 02 | マッチング(1N | 匹配 | KIN05MAT, KIN03EXP | ◎ |
| 03 | マッチング(N1 | 匹配 | ZAN03CHK | ◎ |
| 04 | レイアウト編集のみ(GETPUT | 编辑 | KIN06CLD, KYU08PRI | ◎ |
| 05 | 振り分け(IF文) | 分支 | 全メインプログラム(37本) | ◎ |
| 06 | 振り分け(EVALUATE文) | 分支 | 37本中25本(KIN04/KIN06以外、SHA01SHA08はIF主体 | ◎ |
| 04 | レイアウト編集のみ(GETPUT | 编辑 | KIN06CLD, KYU08PRI, JIN04PRT | ◎ |
| 05 | 振り分け(IF文) | 分支 | 全メインプログラム(42本) | ◎ |
| 06 | 振り分け(EVALUATE文) | 分支 | 42本中16本(JIN05UPD, KIN01INP, KIN02UPD, KIN03EXP, KIN05MAT, KIN07DAI, KYU04CAL, KYU07DIV, SHA02MNC, SHA09S25, SHA10S10, ZAN01CHK, ZAN03CHK, ZAN04MAT, ZAN05CAL, ZAN06UPD | ◎ |
| 07 | キーブレイク(集計) | key切 | ZAN05CAL | ◎ |
| 08 | キーブレイク(集約) | key切 | KYU03AGG | ◎ |
| 09 | DB更新 | 数据库 | KIN02UPD, ZAN06UPD, KYU02REG, KYU06UPD | ◎ |
| 09 | DB更新 | 数据库 | KIN02UPD, ZAN06UPD, KYU02REG, KYU06UPD, JIN05UPD | ◎ |
| 10 | 50分割 | 分割 | KYU07DIV | ◎ |
| 11 | 25分割 | 分割 | SHA09S25 | ◎ |
| 12 | 100分割 | 分割 | SHA10S10 | ◎ |
@@ -37,7 +37,7 @@
| 22 | 2段階マッチング(M:N⇒MN | 匹配 | SHA06TWM | ◎ |
| 23 | SELECT条件 | 数据库 | KYU05DED | ◎ |
| 24 | 内部テーブル検索 | 内部处理 | KIN01INP(SEARCH), KIN03EXP(SEARCH ALL), ZAN03CHK(SEARCH ALL), KYU05DED(SEARCH ALL), JIN02SKL(SEARCH ALL) | ◎ |
| 25 | サブプログラム使用 | 内部处理 | SUB01DATSUB05TIM | ◎ |
| 25 | サブプログラム使用 | 内部处理 | SUB01DATSUB05TIM, JIN07SUB | ◎ |
| 26 | DB検索 | 数据库 | KIN03EXP, KIN06CLD, KYU04CAL, KYU05DED | ◎ |
| 27 | 項目チェック(半角20桁/4桁) | 校验 | JIN01KNS | ◎ |
| 28 | SYSIN読込 | 内部处理 | KIN08DBU, KYU07DIV | ◎ |
@@ -46,7 +46,7 @@
| 31 | 項目チェック(重複含む) | 校验 | ZAN02CHK(時間帯重複) | ◎ |
| 32 | 1:N+キーブレイク(同キー) | 混合 | KYU04CAL | ◎ |
| 33 | 1:N+キーブレイク(異キー) | 混合 | SHA07KBR | ◎ |
| 34 | SORTINPUT/OUTPUT PROCEDURE | 排序 | SHA08SRT | ◎ |
| 34 | SORTINPUT/OUTPUT PROCEDURE | 排序 | SHA08SRT, JIN06SRT | ◎ |
| 35 | MERGE(複数ファイル結合) | 排序 | KYU09MRG | ◎ |
### 1.2 集計
@@ -121,15 +121,15 @@
| 11 | APPLY | × | I-O-CONTROL段落未使用 |
| 12 | ASCENDING | ◎ | OCCURS ASCENDING KEY(KIN01INP,KIN03EXP,KIN06CLD,SUB04CHK,ZAN03CHK,JIN02SKL)、SEARCH ALL |
| 13 | ASSIGN | ◎ | SELECT ASSIGN TO 全プログラム |
| 14 | AT | △ | READ AT END、SEARCH AT END使用。WRITE AT END-OF-PAGE未使用 |
| 14 | AT | △ | READ AT END、SEARCH AT END使用。WRITE AT END-OF-PAGEJIN04PRT: LINAGE制御ページヘッダー) |
| 15 | AUTHOR | ◎ | IDENTIFICATION DIVISION 全プログラム |
| 16 | BINARY | △ | PIC 9(002) BINARYJIN02SKL: マスタレベル定義) |
| 17 | BLOCK | ◎ | FD BLOCK CONTAINS 全ファイル入出力PGM |
| 18 | BY | | PERFORM VARYING BY、MULTIPLY BY、DIVIDE BY使用。CALL BY REFERENCE/CONTENT/VALUE未使用 |
| 19 | CALL | △ | CALL USING使用。ON EXCEPTION/NOT ON EXCEPTION未使用 |
| 18 | BY | | PERFORM VARYING BY、MULTIPLY BY、DIVIDE BY使用。CALL BY CONTENTJIN05UPD: 3400DBERRSOR |
| 19 | CALL | △ | CALL USING使用。ON EXCEPTIONJIN08TST: 1000ITTTST SUB01DAT呼出)。NOT ON EXCEPTION/RETURNING未使用 |
| 20 | CHARACTER | × | OBJECT-COMPUTER未使用 |
| 21 | CHARACTERS | ◎ | INSPECT CHARACTERS(ZAN01CHK,KIN04CHK,SUB04CHK) |
| 22 | CLOSE | | CLOSE(単純CLOSEのみ)。WITH LOCK/NO REWIND/REEL/FOR REMOVAL未使用 |
| 22 | CLOSE | | CLOSE(単純CLOSE)。WITH LOCKJIN04PRT, JIN05UPD |
| 23 | COMP | ◎ | USAGE COMP カウンタ/フラグ |
| 24 | COMP-3 | ◎ | USAGE COMP-3 集計/金額項目 |
| 25 | COMP-4 | △ | PIC 9(004) COMP-4 (JIN03RAN: バイナリカウンタ定義 + ADD 1 TO CUN-COMP4) |
@@ -144,7 +144,7 @@
| 34 | COUNT | ◎ | UNSTRING COUNT IN(KYU01CVT: CSV分解の項目数カウント) |
| 35 | CURSOR | ◎ | DECLARE/OPEN/FETCH/CLOSE CURSOR(KIN02UPD,KIN03EXP,KIN06CLD,KIN09CSV) |
| 36 | DATA | ◎ | DATA DIVISION 全プログラム |
| 37 | DATE | × | ACCEPT FROM DATE未使用(SUB01DATはFUNCTION CURRENT-DATE使用 |
| 37 | DATE | | ACCEPT FROM DATEJIN04PRT: 1000ITTSOR |
| 38 | DATE-COMPILED | ◎ | IDENTIFICATION DIVISION 全プログラム |
| 39 | DATE-WRITTEN | ◎ | IDENTIFICATION DIVISION 全プログラム |
| 40 | DECLARATIVES | ◎ | USE AFTER ERROR PROCEDURE(KYU01CVT: R01/W01/W02ファイルエラー時ABEND) |
@@ -153,13 +153,13 @@
| 43 | DELIMITER | × | UNSTRING DELIMITER IN未使用 |
| 44 | DEPENDING | ◎ | OCCURS DEPENDING ON(KIN03EXP,ZAN03CHK)、GO TO DEPENDING ON(KIN08DBU) |
| 45 | DESCENDING | △ | OCCURS DESCENDING KEY IS (JIN03RAN: 内部表3要素降順) |
| 46 | DISPLAY | △ | DISPLAY文(MSG出力)4プログラム。USAGE DISPLAY句未使用UPON/WITH NO ADVANCING未使用 |
| 46 | DISPLAY | △ | DISPLAY文(MSG出力)4プログラム。USAGE DISPLAY句未使用UPONJIN04PRT, JIN05UPD, JIN08TST)、WITH NO ADVANCINGJIN04PRT, JIN05UPD |
| 47 | DISPLAY-1 | × | 未使用 |
| 48 | DIVIDE | ◎ | DIVIDE INTO/BY/GIVING/REMAINDER/ROUNDED(ZAN01,ZAN05,SUB05,KIN07) |
| 49 | DIVISION | ◎ | IDENTIFICATION/ENVIRONMENT/DATA/PROCEDURE DIVISION 全プログラム |
| 50 | DOWN | | SET DOWN BY 1 (JIN03RAN: 終了処理) |
| 50 | DOWN | × | 未使用 |
| 51 | DYNAMIC | × | 未使用 |
| 52 | EJECT | × | 未使用 |
| 52 | EJECT | | ソース行 EJECTJIN09RPT: PROCEDURE DIVISION 直後) |
| 53 | ELSE | ◎ | IF ELSE END-IF 全プログラム |
| 54 | END | ◎ | END-IF、END-READ、END-PERFORM等スコープターミネータ 全プログラム |
| 55 | END-ADD | ◎ | JIN02SKLADD END-ADD |
@@ -179,10 +179,10 @@
| 69 | ERROR | ◎ | ON SIZE ERROR(COMPUTE:ZAN01,ZAN03,ZAN05) |
| 70 | EVALUATE | ◎ | EVALUATE ALSO/WHEN/WHEN OTHER(KYU04CAL: 勤怠区分×手当種別) |
| 71 | EXEC | △ | EXEC SQL使用。EXEC CICS未使用 |
| 72 | EXCEPTION | × | CALL ON EXCEPTION未使用 |
| 72 | EXCEPTION | | CALL ON EXCEPTIONJIN05UPD/JIN08TST: 1000ITTSOR SUB01DAT呼出) |
| 73 | EXECUTE | × | 未使用 |
| 74 | EXIT | △ | EXIT(段落終端)全プログラム、EXIT PERFORM(KIN06CLD,KIN07DAI,KIN08DBU)、EXIT SECTION(KIN08DBU)EXIT PROGRAM/EXIT PARAGRAPH/EXIT METHOD未使用 |
| 75 | FALSE | × | SET TO FALSE未使用 |
| 74 | EXIT | △ | EXIT(段落終端)全プログラム、EXIT PERFORM(KIN06CLD,KIN07DAI,KIN08DBU)、EXIT SECTION(KIN08DBU)EXIT PROGRAM(JIN07SUB)。EXIT PARAGRAPH/EXIT METHOD未使用 |
| 75 | FALSE | | SET condition TO FALSEJIN09RPT: SET WRK-FIRST-FLG-Y TO FALSE |
| 76 | FD | ◎ | FILE DESCRIPTION 全ファイル入出力PGM |
| 77 | FILE | ◎ | FILE SECTION、FILE-CONTROL 全プログラム |
| 78 | FILE-CONTROL | ◎ | FILE-CONTROL SELECT ASSIGN 全プログラム |
@@ -196,14 +196,14 @@
| 86 | GOBACK | ◎ | GOBACK 全20プログラム |
| 87 | GREATER | ◎ | JIN02SKLIF TBL-EMP-COUNT IS GREATER THAN ZERO |
| 88 | HIGH-VALUE | ◎ | MOVE HIGH-VALUE(ZAN03CHK,ZAN04MAT,ZAN05CAL) |
| 89 | I-O-CONTROL | × | I-O-CONTROL段落使用 |
| 89 | I-O-CONTROL | | I-O-CONTROL段落JIN09RPT: 空段落、SHA08SRT/JIN06SRT: SAME SORT AREA 使用 |
| 90 | ID | × | PROGRAM-ID以外のID未使用 |
| 91 | IDENTIFICATION | ◎ | IDENTIFICATION DIVISION 全プログラム |
| 92 | IF | ◎ | IF ELSE END-IF 全プログラム |
| 93 | IN | ◎ | INSPECT TALLYING IN、SEARCH IN、COPY IN |
| 94 | INDEXED | ◎ | OCCURS INDEXED BY(KIN01INP,KIN03EXP,KIN06CLD,ZAN03CHK) |
| 95 | INITIAL | △ | JIN01KNSPROGRAM-ID IS INITIAL: サブPGMコール時の初期化属性) |
| 96 | INITIALIZE | △ | INITIALIZE(基本形)全プログラム。JIN01KNSはINITIALIZE後の88-LevelにMOVE '0'で対応。REPLACING/WITH FILLER未使用 |
| 96 | INITIALIZE | △ | INITIALIZE(基本形)全プログラム。REPLACINGJIN05UPD: NUMERIC/ALPHANUMERIC指定) |
| 97 | INPUT | ◎ | OPEN INPUT、INPUT-OUTPUT SECTION |
| 98 | INPUT-OUTPUT | ◎ | INPUT-OUTPUT SECTION 全プログラム |
| 99 | INSERT | △ | EXEC SQL INSERT(KIN02UPD,KIN08DBU)。COBOL INSERT(コンパイラ指示文)未使用 |
@@ -219,13 +219,13 @@
| 109 | MODE | ◎ | RECORDING MODE F/V |
| 110 | MOVE | ◎ | MOVE TO 全20プログラム |
| 111 | MULTIPLY | ◎ | MULTIPLY BY/GIVING/ROUNDED(KIN07DAI,ZAN06UPD) |
| 112 | NEXT | × | READ NEXT未使用(順次読込のみ |
| 112 | NEXT | | NEXT SENTENCEJIN09RPT: レベル判定 ELSE 内 |
| 113 | NOT | ◎ | NOT AT END、NOT ON ERROR、IF NOT 全プログラム |
| 114 | NUMERIC | ◎ | IF NUMERIC(KIN06CLD,SUB04CHK) |
| 115 | OBJECT-COMPUTER | ◎ | OBJECT-COMPUTER 全プログラム |
| 116 | OCCURS | ◎ | OCCURS TIMES/DEPENDING ON/INDEXED BYJIN02SKL: ASCENDING KEY + DEPENDING ON |
| 117 | OF | ◎ | データ参照修飾、LENGTH OF(全プログラム) |
| 118 | OMITTED | × | CALL OMITTED未使用 |
| 118 | OMITTED | | CALL USING ... OMITTEDJIN08TST: 2000CALTST)、IS OMITTED 判定(JIN07SUB: 1000FNDSOR |
| 119 | ON | ◎ | ON SIZE ERROR、OCCURS DEPENDING ON |
| 120 | OPEN | ◎ | OPEN INPUT/OUTPUT 全ファイル入出力PGM |
| 121 | OPTIONS | × | CBL/PROCESS文未使用 |
@@ -237,7 +237,7 @@
| 127 | PACKED-DECIMAL | △ | JIN02SKLAGG-LEVEL/AGG-AVG-SCORE PIC 9(n) PACKED-DECIMAL |
| 128 | PAGE | ◎ | FD LINAGE IS(KYU08PRI: 66行ページ制御)、WRITE BEFORE/AFTER ADVANCING PAGE |
| 129 | PAGE-COUNTER | × | 未使用(KYU08PRIはWORKING-STORAGEのWRK-PAGE-COUNTERで代替。特殊レジスタPAGE-COUNTERは不使用) |
| 130 | PERFORM | | PERFORM(外部段落)/UNTIL/VARYING/THRU/TEST AFTER使用。TIMES/TEST BEFORE/VARYING AFTER未使用 |
| 130 | PERFORM | | PERFORM(外部段落)/UNTIL/VARYING/THRU/TEST AFTER使用。JIN09RPTでVARYING多重ループ(社員×明細×内部表20) |
| 131 | PIC | ◎ | PICTURE句 全プログラム |
| 132 | POINTER | ◎ | STRING WITH POINTER(KIN09CSV) |
| 133 | PROCEDURE | ◎ | PROCEDURE DIVISION 全プログラム |
@@ -258,34 +258,34 @@
| 148 | SEARCH | ◎ | SEARCH(KIN01INP)、SEARCH ALL(KIN03EXP,ZAN03CHK,JIN02SKL)、VARYING/AT END/WHEN全て使用 |
| 149 | SECTION | ◎ | CONFIGURATION/INPUT-OUTPUT/WORKING-STORAGE/LINKAGE/PROCEDURE SECTION |
| 150 | SELECT | ◎ | SELECT ASSIGN(FILE-CONTROL)全プログラム、SQL SELECT |
| 151 | SENTENCE | × | NEXT SENTENCE未使用 |
| 152 | SET | | SET TO TRUE(KIN08DBU,ZAN05CAL)SET TO FALSE/UP BY/DOWN BY/ADDRESS OF未使用 |
| 151 | SENTENCE | | NEXT SENTENCEJIN09RPT: レベル判定 ELSE 内) |
| 152 | SET | | SET TO TRUE(KIN08DBU,ZAN05CAL)SET TO FALSE(JIN09RPT: 条件名) |
| 153 | SHIFT-IN | × | 未使用 |
| 154 | SHIFT-OUT | × | 未使用 |
| 155 | SIZE | ◎ | ON SIZE ERROR(COMPUTE:ZAN01CHK,ZAN03CHK,ZAN05CAL) |
| 156 | SKIP2 | × | 未使用(SKIP1/SKIP2/SKIP3 |
| 156 | SKIP2 | × | 未使用(ソース行 `*SKIP2` はコメントであり SKIP2 ディレクティブではない。W-1 で◎主張を是正 |
| 157 | SOURCE-COMPUTER | ◎ | SOURCE-COMPUTER IBM-ZSERIES 全プログラム |
| 158 | SPACE | ◎ | SPACE/SPACES INITIALIZE後、VALUE、MOVE、条件比較 |
| 159 | SPACES | ◎ | SPACES(SPACEと同義、INSPECT REPLACING ALL等) |
| 160 | SQL | ◎ | EXEC SQL(KIN02UPD,KIN03EXP,KIN08DBU,KIN09CSV,ZAN06UPD) |
| 161 | STANDARD | ◎ | FD LABEL RECORDS STANDARD |
| 162 | STOP | | STOP RUNのみSUB03ENDSTOP literal未使用 |
| 163 | STRING | | STRING DELIMITED BY INTO使用。ON OVERFLOW未使用 |
| 162 | STOP | | STOP RUNSUB03ENDSTOP literalJIN04PRT: 9000ERRSOR |
| 163 | STRING | | STRING DELIMITED BY INTO使用。ON OVERFLOWJIN04PRT, JIN05UPD: 全STRING箇所) |
| 164 | SUBTRACT | ◎ | SUBTRACT FROM/GIVING/ROUNDED(KIN07DAI,ZAN06UPD) |
| 165 | TABLE | × | SEARCH TABLE参照(変数名にはHOLIDAY-TABLE等あるが、TABLE予約語としては未使用) |
| 166 | TALLYING | ◎ | INSPECT TALLYING、UNSTRING TALLYING IN(ZAN01CHK,KIN04CHK,SUB04CHK,KIN08DBU) |
| 167 | TEST | ◎ | PERFORM TEST AFTER(ZAN06UPD)。TEST BEFORE未使用だが単一形式で◎ |
| 168 | THEN | ◎ | IF THENSUB04CHK,SUB05TIMで明示的THEN使用) |
| 169 | THRU | △ | PERFORM THRU(KIN03EXP,KIN08DBU)。VALUE THRU未使用 |
| 170 | TIME | × | ACCEPT FROM TIME未使用(SUB01DATはFUNCTION CURRENT-DATE使用 |
| 169 | THRU | △ | PERFORM THRU(KIN03EXP,KIN08DBU)。VALUE THRUJIN05UPD: 88-level 'D' THRU 'G' |
| 170 | TIME | | ACCEPT FROM TIMEJIN04PRT: 1000ITTSOR |
| 171 | TIMES | ◎ | OCCURS TIMES(KIN01INP,KIN03EXP,KIN06CLD,KIN08DBU,ZAN03CHK) |
| 172 | TO | ◎ | MOVE TO、ADD TO、GO TO 全プログラム |
| 173 | TRUE | ◎ | EVALUATE TRUE、SET condition TO TRUE |
| 174 | TYPE | × | 変数名(WRK-ERR-TYPE等)はあるがTYPE予約語としては未使用 |
| 175 | UNSTRING | ◎ | UNSTRING DELIMITED BY INTO(KIN01INP,KIN04CHK,ZAN01CHK) |
| 176 | UNTIL | ◎ | PERFORM UNTIL 全プログラム |
| 177 | UP | | SET UP BY (JIN03RAN: 順位UP 出力件数UP) |
| 178 | UPON | × | DISPLAY UPON未使用 |
| 177 | UP | × | 未使用 |
| 178 | UPON | | DISPLAY UPONJIN04PRT, JIN05UPD: UPON CONSOLE |
| 179 | USAGE | ◎ | USAGE COMP/COMP-3 |
| 180 | USE | ◎ | USE AFTER ERROR PROCEDURE(KYU01CVT: DECLARATIVESでファイルエラー捕捉) |
| 181 | USING | ◎ | PROCEDURE DIVISION USING、CALL USING 全プログラム |
@@ -301,18 +301,18 @@
| 191 | ZERO | ◎ | ZERO/ZEROS VALUE、MOVE ZERO 全プログラム |
| 192 | ZEROS | ◎ | ZEROS(ZEROと同義、KIN08DBU LOW-VALUES) |
| 193 | ALTER | × | 非推奨 |
| 194 | CANCEL | × | 未使用 |
| 194 | CANCEL | | CANCEL 'SUB02MSG'JIN09RPT: 4000STPSOR |
| 195 | ENTRY | × | 未使用 |
| 196 | MERGE | ◎ | COBOL MERGE文(KYU09MRG: SALARY-NET + BONUS-DATA を社員番号昇順結合) |
| 197 | RELEASE | × | COBOL SORT未使用 |
| 198 | RETURN | ◎ | COBOL RETURN文(KYU09MRG: MERGE OUTPUT PROCEDUREでMERGE結果受取) |
| 197 | RELEASE | | COBOL RELEASE文(JIN06SRT: 2110READSOR INPUT PROCEDURE内でSORTレコード送出) |
| 198 | RETURN | ◎ | COBOL RETURN文(KYU09MRG: MERGE OUTPUT、JIN06SRT: 2120OUTPUSOR SORT OUTPUT PROCEDURE) |
| 199 | REWRITE | × | VSAM非対応 |
| 200 | SORT | × | JCL PGM=SORTに委譲 |
| 200 | SORT | | COBOL SORT文(JIN06SRT: 2000MAJSOR INPUT/OUTPUT PROCEDURE + ON ASCENDING KEY) |
| 201 | START | × | 順次読込のみ |
| 202 | SAME | × | SAME RECORD/SORT AREA未使用 |
| 202 | SAME | | SAME SORT AREA(SHA08SRT/JIN06SRT: SORTWORK)。SAME RECORD未使用 |
| 203 | FUNCTION | ◎ | FUNCTION MOD/WHEN-COMPILED/NUMVAL/INTEGER-OF-DATE/MIN/MAX/TRIM/LENGTH(KIN03EXP,KIN06CLD,KIN08DBU,KIN09CSV,JIN01KNS) |
| 204 | BEFORE | ◎ | WRITE BEFORE ADVANCING PAGE/1 LINE(KYU08PRI: 給与明細印刷の改ページ制御) |
| 205 | ADDRESS | × | ADDRESS OF未使用SET ADDRESS OF未使用 |
| 205 | ADDRESS | | MOVE ADDRESS OFJIN07SUB: 0000MAINSOR)。SET ADDRESS OF未使用 |
---
@@ -332,11 +332,12 @@
| カバレッジ率 | 90.9% |
| **予約語カバレッジ(Section 3)** | |
| 全予約語数 | 205 |
| 全構文形式使用(◎): | 119 |
| 一部構文形式使用(△): | 29 |
| 未使用(×) | 51 語 | Phase A除去: ACCESS/CHARACTER/EXCEPTION/ORGANIZATION/PAGE-COUNTER/UPON に加え VALUES(カバレッジ保留) |
| カバレッジ率(◎/205) | 58.0% |
| カバレッジ率(◎+△/205) | 75.1% | Phase A+B COMP-4/CORR/DESCENDING/DOWN/UP追加以降 |
| 全構文形式使用(◎): | 147 |
| 一部構文形式使用(△): | 28 |
| 未使用(×) | 30 語 | JIN07SUB/JIN08TST追加後(OMITTED を◎化、ADDRESS を△化。SKIP2 はコメント行のため × に是正) |
| カバレッジ率(◎/205) | 71.7% |
| カバレッジ率(◎+△/205) | 85.4% | JIN07SUB/JIN08TST追加後(OMITTED ◎化、ADDRESS △化。SKIP2 × 是正) |
| **TYPE定義カバレッジ(11種)** | |
| 全TYPE定義数 | 11 |
| 使用済TYPE | 10X, N, 9, 9V9, S9V9, S9V9 COMP-3, S9 COMP-3, S9 COMP, S9 BINARY, ZZZ9 |
@@ -344,7 +345,7 @@
| 未使用TYPE | 1G |
| TYPEカバレッジ率 | 90.9%(特殊含め100% |
> 本ファイルは全コードベース(JIN01-03 + KIN01-09 + ZAN01-06 + KYU01-09 + SHA01-10 + SUB01-05 = 42プログラム)を統合したカバレッジ状況。
> 本ファイルは全コードベース(JIN01-09 + KIN01-09 + ZAN01-06 + KYU01-09 + SHA01-10 + SUB01-05 = 48プログラム)を統合したカバレッジ状況。
> 定義ファイル(COBOLキーワード網羅定義書.md)と合わせて参照すること。
---
@@ -0,0 +1,114 @@
# サブシステムE(人事情報管理)整合性レビュー報告書
> 作成日: 2026-08-01
> 対象: 基本設計書 / 詳細設計書 / コード(src) / COPY定義 / 使用資源一覧 / テスト / カバレッジ統計
---
## 1. 検証範囲と実施内容
基本設計書に計画されるプログラム 9 本(JIN01KNS〜JIN09RPT)に対し、以下をレビューした:
- 基本設計書の設計合理性・ロジック
- 詳細設計書・コード・COPY 定義の整合性(レコード長・DD・COPY・CALL)
- IBM COBOL 適合性(予約語・固定書式・コーディング規約)
- テスト充足性(全ケース実行・テスト基準との一致)
- 使用資源一覧・カバレッジ統計の最新状況
GnuCOBOL 3.2.0 で全実在プログラムのコンパイル・テスト実実行済み。
---
## 2. 実装状況の実測
| プログラム | 基本設計 | src実装 | 詳細設計書 | 使用資源一覧 | テスト | テスト結果文書 | production反映 |
|:---|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
| JIN01KNS | ○ | ○ | ○ | ○ | ○ | × | ○ |
| JIN02SKL | ○ | ○ | ○ | ○ | ○ | × | ○ |
| JIN03RAN | ○ | ○ | ○ | ○ | ○ | × | ○ |
| JIN04PRT | ○ | ○ | **×** | ○ | ○ | × | **×** |
| JIN05UPD | ○ | ○ | **×** | ○ | ○ | × | **×** |
| JIN06SRT | ○ | **×** | × | × | × | × | **×** |
| JIN07SUB | ○ | **×** | × | × | × | × | **×** |
| JIN08TST | ○ | **×** | × | × | × | × | **×** |
| JIN09RPT | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
**計画 9 本に対して実装は 6 本。JIN06SRT / JIN07SUB / JIN08TST は未着手。**
---
## 3. 問題点リスト(重要度順)
### 🔴 高重要度(対応必須)
**H-1. JIN06SRT / JIN07SUB / JIN08TST が完全未実装**
- 基本設計書には計画 9 本・予約語カバー対象(SORT/RELEASE/PERFORM TIMES/EXIT PROGRAM/ADDRESS/OMITTED/EXIT PARAGRAPH)と記載
- しかし src にコード無し、詳細設計書・テスト・使用資源一覧・production 全て未着手
- SORT/RELEASE/ADDRESS/OMITTED はこの 3 本でしかカバーできない予約語のため、**カバレッジ統計の「×」リストにも現状は未達のまま**
**H-2. SKIP2 予約語カバーの「◎」主張が虚偽**
- `品質管理/カバレッジ統計.md``使用資源一覧/JIN09RPT_使用資源一覧.md`・基本設計書に「SKIP2 ◎(段落境界)」と記録
- しかし全コード中に SKIP2 ディレクティブが**皆無**。JIN09RPT.cbl:12 はヘッダコメント記載のみ、JIN04PRT/JIN05UPD の`*SKIP2` も col7=`*` のコメント行
- 実態は **◎144 / ×35**(表示 83.4% でなく **82.4%**
- 直近コミット 415427a の「6語(CANCEL/I-O-CONTROL/NEXT SENTENCE/EJECT/SKIP2/FALSE)カバー」は実際 **5 語**SKIP2 除く)
**H-3. JIN04PRT / JIN05UPD が production/ 未反映**
- 両プログラムは root 実装済み・テスト PASS なのに production/ に存在せず git 未反映
**H-4. JIN03RAN の `SET ... UP/DOWN BY` が IBM COBOL でコンパイル不可**
- `src/JIN03RAN.cbl:206, 251, 288``SET WRK-RANK-NO UP BY 1` 等の対象が `PIC 9(004)``PIC 9(004) BINARY` の**数値項目**
- IBM Enterprise COBOL の `SET ... UP/DOWN BY` は**インデックス名専用**。数値項目には使用不可 → コンパイルエラー
- GnuCOBOL はエラーなく受け付けるためローカルでは通過(潜在的本番障害)
**H-5. production 側カバレッジ統計が root と 63 行差分・かつ内部矛盾**
- production 側 `カバレッジ統計.md`119+29+51=199 ≠ 205、率も記載 75.1% と矛盾
---
## 4. 重要度:中(対応推奨)
- **M-1. JIN04PRT・JIN05UPD の詳細設計書が存在しない**root/production 双方)。開発フロー Phase 3(設計書解析→実装)に違反、双方向トレーサビリティ欠如
- **M-2. カバレッジ統計のプログラム数・タイプ数が JIN09RPT 追加後未更新**(「39本」「44プログラム」等。実際は 40 本)
- **M-3. SEARCH ALL の「SKILL-MST 昇順」前提が JCL/設計書で未担保**JIN02SKL・JIN09RPT)。JINJ020/JINJ090 に PGM=SORT 手順がなく、未ソート入力時の誤動作リスク
- **M-4. JIN09RPT の ODOOCCURS 1 TO 20 DEPENDING ON)初期値 0 が IBM の未定義動作リスク**(範囲外参照。GnuCOBOL は検出せず PASS)。SSRANGE 有効時は実行時 ABEND
- **M-5. SKILL-MST-REC の BINARY レコード長差異**GnuCOBOL=79B / IBM=80B`PIC 9(002) BINARY` のバイト数差)。単に長さだけでなく MST-LEVEL-NAME のオフセットもずれる
- **M-6. JIN09RPT の内部表定義が詳細設計書と不一致**(TBL-LEVEL 等)
- **M-7. 詳細設計書(JIN01/02/03/09)の段落名が実コードの SOR 規約名と完全不一致**(概念名 JIN01KNS-OPEN 等 vs 実装 1000ITTSOR 等)。トレーサビリティ崩壊
- **M-8. 使用資源一覧の誤記**JIN01KNSVALID-ERROR-REC 帰属、JIN01REC 内と誤記載)、JIN02SKLSUB02MSG CALL箇所 4000→6000、JIN01REC 誤使用)、JIN09RPTSKIP2 誤記載)
- **M-9. JIN05UPD のキーワードカバー実体不在**FALSE / EXIT PARAGRAPH がコメントのみで実装なし、VALID-ERROR-REC COPY を使用せず内約定義
- **M-10. 基本設計書のレコード長矛盾**JIN-LEDGER が行 40=132B なのに行 117=133B。実規格は 132B
- **M-11. JIN01〜05 のテスト結果文書が未作成**(テスト結果_KYU.md・テスト結果_JIN09RPT.md のみ)
- **M-12. JIN09RPT の MST>20 件時のオーバーフローガード無し**SKILL-LIST-MAX=20 がコード未反映)
---
## 5. 中:テスト充足性の不足点
| プログラム | 不足ケース |
|:---|:---|
| JIN01KNS | 全角混入(VF-A002)、MEI 単独エラー |
| JIN02SKL | MST 重複キー、SEARCH ALL 未ソート表、ODO 空表検索、純粋 1:1 |
| JIN03RAN | (網羅度高。概ね充足) |
| JIN04PRT | LINAGE 境界(FOOTING/TOP/BOTTOM 最大行)、PAGE-COUNTER 値検証、DATE/TIME/ON OVERFLOW 実例 |
| JIN05UPD | SQLCODE≠03400DBERRSOR)、上限500件ガード(CNS-MAX-TRANS)、CONNECT 失敗分岐 |
| JIN09RPT | MST 0 件×R01 複数、境界 89/51/1、S=100/90 解釈 |
---
## 6. まとめ:全体評価と推奨対応
**機能面**:実装 6 本は全て GnuCOBOL でコンパイル・テスト PASS。DD/CALL/COPY/レコード長・DB 定義(ddl/schema_jin.sql)の整合は概ね健全。IBM COBOL 適合の基本要件(SOURCE-COMPUTER、カラム位置、88-level 引用符、コメント方式、`>>SOURCE` 混入なし)はほぼ全項目合格。
**工程・整合面**:以下が特に重要。
1. **JIN06SRT/07SUB/08TST の実装が未完了**(基本設計上の予約語カバー対象もカバーできない)
2. **SKIP2 の◎主張が虚偽**(統計・資源一覧・コミット記述の是正 or SKIP2 実装)
3. **JIN03RAN の `SET` 非インデックス利用は IBM 本番でエラー**(最重要修正)
**推奨アクション(対応優先順)**
1. JIN03RAN.cbl の `SET ... UP/DOWN``ADD/SUBTRACT` に修正(H-4
2. SKIP2 の記載整合:実装 or 統計・資源一覧・コミットの修正(H-2)
3. JIN04PRT・JIN05UPD の production 反映と詳細設計書作成(H-3, M-1)
4. JIN06SRT/07SUB/08TST の実装(H-1)— 大規模、要計画立案
5. カバレッジ統計・使用資源一覧・基本設計書の矛盾是正(M-2, M-7〜M-10
6. 不足テストケースの追加(Section 5)
7. production カバレッジ統計の root 同期(H-5)