Project Oxygen & Ideo-LabIDEO LAB Dashboard 2026

COBOL / Copybook Impact Analyzer V2 – Modernisation COBOL, CICS, DB2 et API Mapping

Objectif du guide

Installer, tester et exploiter cobol_copybook_impact_analyzer_v2.py, un utilitaire autonome qui analyse des programmes COBOL, copybooks, sections FILE/WORKING-STORAGE/LINKAGE, DB2, CICS, COMMAREA et produit des sorties utiles pour la modernisation API, JSON Schema, OpenAPI et dependency graph.

TĂ©lĂ©charger l’utilitaire COBOL / Copybook Impact Analyzer V2

Le bouton principal pointe explicitement vers /static/toolbox/cobol_copybook_impact_analyzer_v2.py. DĂ©pose ce script dans static/toolbox/ pour l’exposer depuis IDEO-Lab.

La V2 ne se limite plus à extraire quelques champs. Elle commence à traiter COBOL comme un écosystÚme complet : programmes, copybooks, layouts imbriqués, dépendances, DB2, CICS, fichiers, COMMAREA, champs sensibles, génération de schémas et comparaison avant/aprÚs copybook.

Inventory
Inventaire programmes, copybooks, fichiers, DB2 tables, CICS commands et dépendances.
Mapping
Extraction des champs COBOL, PIC, USAGE, OCCURS, REDEFINES et génération JSON/OpenAPI.
Impact
Scoring de risque, findings, comparison baseline et graph Mermaid des dépendances.

Ce que le moteur analyse

DomaineSignaux analysésProduction attendue
Programme COBOLPROGRAM-ID, divisions, sections, CALL, PERFORM, GO TO.Inventaire programme, complexité, dépendances, appels internes/externes.
Copybook / fieldsCOPY, 01/05/10/77/88, PIC, USAGE, OCCURS, REDEFINES.Field mapping, estimation de taille, JSON Schema et impact structurel.
CICSEXEC CICS LINK, COMMAREA, LENGTH, transaction candidates.Mapping API candidate, dĂ©pendances CICS et surface d’exposition.
DB2EXEC SQL, tables, cursors, statements, access patterns.Références DB2, tables impactées, risques de modernisation.
FichiersSELECT, ASSIGN, FD, records, sequential/indexed files.Inventaire I/O batch, fichiers candidats Ă  API ou data service.
ModernisationChamps sensibles, baseline compare, policy JSON, graph Mermaid.Rapport de risque, cartographie et artefacts d’API draft.
Positionnement : la V2 est une base de modernisation COBOL vers API / JSON / OpenAPI / z/OS Connect, mais aussi un outil d’inventaire technique pour analyser l’impact des changements de copybook.

Téléchargement des fichiers

Cette page fournit les liens explicites vers le script Python, les samples COBOL/copybook, la policy JSON, les artefacts gĂ©nĂ©rĂ©s et le pack complet. Pour IDEO-Lab, les fichiers doivent ĂȘtre dĂ©posĂ©s sous /static/toolbox/.

Utilitaire principal

Script Python autonome, sans dépendance externe, utilisable sur un répertoire de sources COBOL/copybooks.

COBOL program

Programme sample avec DB2, CICS, COPY et logique API candidate.

Download .cbl

Request copybook

Copybook d’entrĂ©e pour gĂ©nĂ©ration JSON Schema / API request.

Download request

Response copybook

Copybook de sortie avec fields imbriqués et données sensibles.

Download response

Account record

Copybook record orienté fichier/compte client.

Download record

Baseline copybook

Version baseline utilisée pour comparer les changements de layout.

Download baseline

Policy JSON

Policy d’analyse : champs sensibles, patterns, rùgles site-specific.

Download policy

Artefacts générés utiles

JSON Schema

Schéma JSON produit depuis les champs COBOL.

Download schema

OpenAPI draft

Draft OpenAPI candidate pour exposition API.

Download OpenAPI

Mermaid graph

Graphe Mermaid des dépendances programme/copybooks/DB2/CICS.

Download graph

Arborescence static recommandée

static files
static/
  toolbox/
    cobol_copybook_impact_analyzer_v2.py
    cobol_copybook_impact_analyzer_v2_pack.zip
    sample_cobol_v2_customer_api.cbl
    sample_cobol_v2_customer_request.cpy
    sample_cobol_v2_customer_response.cpy
    sample_cobol_v2_customer_response_baseline.cpy
    sample_cobol_v2_customer_account_record.cpy
    sample_cobol_v2_policy.json
    sample_cobol_v2_customer_schema.json
    sample_cobol_v2_openapi.json
    sample_cobol_v2_dependency_graph.mmd
    cobol_copybook_impact_analyzer_v2_guide.html

Installation de COBOL / Copybook Impact Analyzer V2

Le script est autonome. Il suffit d’une version Python moderne et d’un rĂ©pertoire contenant des fichiers .cbl, .cob, .cpy ou Ă©quivalents.

1. Arborescence locale recommandée

Project tree
cobol_impact_lab/
  bin/
    cobol_copybook_impact_analyzer_v2.py
  input/
    cobol_sources/
      sample_cobol_v2_customer_api.cbl
      sample_cobol_v2_customer_request.cpy
      sample_cobol_v2_customer_response.cpy
      sample_cobol_v2_customer_account_record.cpy
    baseline/
      sample_cobol_v2_customer_response_baseline.cpy
    sample_cobol_v2_policy.json
  output/
    reports/
    csv/
    json/
    schema/
    graph/
Lien direct du script Ă  installer

Ce bouton pointe explicitement vers /static/toolbox/cobol_copybook_impact_analyzer_v2.py.

2. Installation Linux / macOS

Linux / macOS setup
mkdir -p cobol_impact_lab/bin cobol_impact_lab/input/cobol_sources cobol_impact_lab/input/baseline
mkdir -p cobol_impact_lab/output/reports cobol_impact_lab/output/csv cobol_impact_lab/output/json cobol_impact_lab/output/schema cobol_impact_lab/output/graph
cp cobol_copybook_impact_analyzer_v2.py cobol_impact_lab/bin/
cp sample_cobol_v2_customer_api.cbl cobol_impact_lab/input/cobol_sources/
cp sample_cobol_v2_customer_request.cpy cobol_impact_lab/input/cobol_sources/
cp sample_cobol_v2_customer_response.cpy cobol_impact_lab/input/cobol_sources/
cp sample_cobol_v2_customer_account_record.cpy cobol_impact_lab/input/cobol_sources/
cp sample_cobol_v2_customer_response_baseline.cpy cobol_impact_lab/input/baseline/
cp sample_cobol_v2_policy.json cobol_impact_lab/input/
cd cobol_impact_lab
python3 bin/cobol_copybook_impact_analyzer_v2.py input/cobol_sources --profile api

3. Installation Windows PowerShell

Windows PowerShell setup
New-Item -ItemType Directory -Force cobol_impact_lab\bin, cobol_impact_lab\input\cobol_sources, cobol_impact_lab\input\baseline
New-Item -ItemType Directory -Force cobol_impact_lab\output\reports, cobol_impact_lab\output\csv, cobol_impact_lab\output\json, cobol_impact_lab\output\schema, cobol_impact_lab\output\graph
Copy-Item .\cobol_copybook_impact_analyzer_v2.py .\cobol_impact_lab\bin\
Copy-Item .\sample_cobol_v2_customer_api.cbl .\cobol_impact_lab\input\cobol_sources\
Copy-Item .\sample_cobol_v2_customer_request.cpy .\cobol_impact_lab\input\cobol_sources\
Copy-Item .\sample_cobol_v2_customer_response.cpy .\cobol_impact_lab\input\cobol_sources\
Copy-Item .\sample_cobol_v2_customer_account_record.cpy .\cobol_impact_lab\input\cobol_sources\
Copy-Item .\sample_cobol_v2_customer_response_baseline.cpy .\cobol_impact_lab\input\baseline\
Copy-Item .\sample_cobol_v2_policy.json .\cobol_impact_lab\input\
Set-Location .\cobol_impact_lab
python .\bin\cobol_copybook_impact_analyzer_v2.py .\input\cobol_sources --profile api

4. Test de validation

Validation command
python bin/cobol_copybook_impact_analyzer_v2.py input/cobol_sources \
  --profile api \
  --custom-policy input/sample_cobol_v2_policy.json \
  --compare-with input/baseline \
  --html output/reports/sample_cobol_v2_report.html \
  --json output/json/sample_cobol_v2_analysis.json \
  --csv-fields output/csv/sample_cobol_v2_fields.csv \
  --csv-dependencies output/csv/sample_cobol_v2_dependencies.csv \
  --csv-findings output/csv/sample_cobol_v2_findings.csv \
  --csv-programs output/csv/sample_cobol_v2_programs.csv \
  --csv-copybooks output/csv/sample_cobol_v2_copybooks.csv \
  --csv-db2 output/csv/sample_cobol_v2_db2.csv \
  --csv-cics output/csv/sample_cobol_v2_cics.csv \
  --csv-files output/csv/sample_cobol_v2_files.csv \
  --csv-compare output/csv/sample_cobol_v2_compare.csv \
  --json-schema output/schema/sample_customer_schema.json \
  --openapi output/schema/sample_openapi.json \
  --mermaid output/graph/sample_dependency_graph.mmd
Résultat attendu : le sample doit détecter un programme, trois copybooks, plus de cinquante champs, des références DB2/CICS, des findings de modernisation et générer JSON Schema, OpenAPI et Mermaid graph.

Fichiers input attendus

La V2 accepte un fichier unique ou un répertoire complet. Elle est conçue pour travailler sur des sources COBOL et copybooks déjà exportés en texte depuis un repository mainframe, Git, Endevor, Changeman ou équivalent.

Utilitaire nécessaire pour analyser les sources

TĂ©lĂ©charger d’abord le script Python, puis lancer l’analyse sur un dossier de sources COBOL/copybooks.

1. Types de fichiers acceptés

TypeContenu typiqueUsage
.cbl / .cobProgrammes COBOL, divisions, procedures, EXEC SQL/CICS.Inventaire programme, dépendances, modernisation applicative.
.cpyCopybooks, layouts 01/05/10, PIC, OCCURS, REDEFINES.Mapping field-level, JSON Schema, impact de changement.
Policy JSONPatterns de champs sensibles, rĂšgles site-specific.Adapter le scoring et les findings Ă  un contexte entreprise.
Baseline folderAncienne version de copybooks ou programmes.Comparer avant/aprÚs et détecter les impacts de layout.

2. Exemple minimal de copybook

sample_cobol_v2_customer_request.cpy
01 CUSTOMER-REQUEST.
   05 REQUEST-HEADER.
      10 REQUEST-ID        PIC X(36).
      10 CHANNEL-CODE      PIC X(08).
   05 CUSTOMER-KEY.
      10 CUSTOMER-ID       PIC 9(10).
      10 CUSTOMER-SSN      PIC X(11).
   05 REQUEST-OPTIONS.
      10 INCLUDE-ACCOUNTS  PIC X(01).
      10 MAX-ROWS          PIC 9(04) COMP.

3. Samples disponibles

Customer API program

Programme COBOL avec COPY, DB2 et CICS LINK.

Download

Request copybook

Layout d’entrĂ©e pour endpoint API candidate.

Download

Response copybook

Layout de sortie avec données client et compte.

Download

Account record

Record orienté batch/file section.

Download

Response baseline

Ancienne version utilisée pour le diff.

Download

Policy JSON

Paramétrage des patterns sensibles.

Download

RÚgle de sécurité : un vrai copybook peut révéler des noms de champs sensibles, structures métier, tables DB2, transactions CICS et conventions internes. Utiliser une version anonymisée pour partage externe.

Utilisation quotidienne

1. Mode démo intégré

Demo mode
python cobol_copybook_impact_analyzer_v2.py --demo

2. Analyse simple d’un rĂ©pertoire source

Simple analysis
python cobol_copybook_impact_analyzer_v2.py input/cobol_sources --profile modernization

3. Analyse complĂšte avec tous les exports

Full export analysis
python cobol_copybook_impact_analyzer_v2.py input/cobol_sources \
  --profile api \
  --custom-policy input/sample_cobol_v2_policy.json \
  --compare-with input/baseline \
  --json output/json/analysis.json \
  --html output/reports/report.html \
  --csv-fields output/csv/fields.csv \
  --csv-dependencies output/csv/dependencies.csv \
  --csv-findings output/csv/findings.csv \
  --csv-programs output/csv/programs.csv \
  --csv-copybooks output/csv/copybooks.csv \
  --csv-db2 output/csv/db2.csv \
  --csv-cics output/csv/cics.csv \
  --csv-files output/csv/files.csv \
  --csv-compare output/csv/compare.csv \
  --json-schema output/schema/customer_schema.json \
  --openapi output/schema/openapi.json \
  --mermaid output/graph/dependency_graph.mmd

4. Mode batch strict

Batch strict mode
python cobol_copybook_impact_analyzer_v2.py input/cobol_sources \
  --profile production \
  --html output/reports/nightly_cobol_impact.html \
  --csv-findings output/csv/nightly_findings.csv \
  --fail-on WARNING
Lecture recommandĂ©e : commencer par le rapport HTML pour la comprĂ©hension humaine, puis utiliser les CSV/JSON pour alimenter un rĂ©fĂ©rentiel technique, un catalogue d’API candidates ou un dashboard de modernisation.

ParamĂštres de ligne de commande

1. ParamĂštres d’entrĂ©e et de sortie

ParamĂštreDescriptionExemple
input_pathFichier ou répertoire COBOL/copybooks à analyser.input/cobol_sources
--profileProfil d’analyse : modernization, api, db2, cics, batch, training.--profile api
--custom-policyPolicy JSON pour patterns sensibles et rĂšgles site-specific.--custom-policy input/policy.json
--compare-withRépertoire baseline pour comparaison avant/aprÚs.--compare-with input/baseline
--html, --jsonExports principaux pour rapport humain et intégration technique.--html output/report.html
--json-schema, --openapi, --mermaidArtefacts de modernisation et mapping API.--openapi output/openapi.json

2. Exports CSV disponibles

ParamĂštreContenuUsage
--csv-fieldsChamps COBOL normalisés : niveau, nom, PIC, usage, taille, parent.Mapping field-level, analyse API, documentation.
--csv-dependenciesDépendances COPY/CALL/DB2/CICS/fichiers.Dependency graph, impact analysis.
--csv-findingsAnomalies, risques, recommandations.Backlog de modernisation ou audit technique.
--csv-programsProgrammes détectés et métriques principales.Inventaire applicatif.
--csv-copybooksCopybooks, champs, complexité et références.Catalogue copybook.
--csv-db2 / --csv-cicsRéférences DB2 et CICS.Exposition API, analyse transactionnelle.

3. Exemple profil API

API profile
python cobol_copybook_impact_analyzer_v2.py input/cobol_sources \
  --profile api \
  --json-schema output/schema/customer_schema.json \
  --openapi output/schema/customer_openapi.json \
  --mermaid output/graph/customer_graph.mmd

Exemples d’utilisation

ScĂ©nario 1 – Inventaire COBOL / copybooks

Cas de départ : obtenir une cartographie des programmes, copybooks, champs et dépendances.

Inventory analysis
python cobol_copybook_impact_analyzer_v2.py input/cobol_sources \
  --profile modernization \
  --html output/reports/inventory_report.html \
  --csv-programs output/csv/programs.csv \
  --csv-copybooks output/csv/copybooks.csv \
  --csv-dependencies output/csv/dependencies.csv

ScĂ©nario 2 – GĂ©nĂ©ration JSON Schema / OpenAPI

Cas modernisation : prĂ©parer un endpoint API candidat Ă  partir d’un layout COBOL.

API artifact generation
python cobol_copybook_impact_analyzer_v2.py input/cobol_sources \
  --profile api \
  --json-schema output/schema/customer_schema.json \
  --openapi output/schema/customer_api_openapi.json \
  --html output/reports/api_candidate_report.html

ScĂ©nario 3 – Impact avant/aprĂšs modification copybook

Cas critique : comparer une nouvelle version avec une baseline avant mise en production.

Baseline compare
python cobol_copybook_impact_analyzer_v2.py input/cobol_sources \
  --compare-with input/baseline \
  --csv-compare output/csv/copybook_compare.csv \
  --html output/reports/copybook_impact_report.html

ScĂ©nario 4 – Analyse DB2 / CICS

Cas transactionnel : extraire les tables DB2 et commandes CICS pour évaluer les dépendances runtime.

DB2 CICS analysis
python cobol_copybook_impact_analyzer_v2.py input/cobol_sources \
  --profile cics \
  --csv-db2 output/csv/db2_references.csv \
  --csv-cics output/csv/cics_references.csv \
  --mermaid output/graph/runtime_dependencies.mmd

ScĂ©nario 5 – ContrĂŽle nocturne automatisĂ©

Cron entry
0 4 * * * /opt/cobol-impact/bin/python /opt/cobol-impact/cobol_copybook_impact_analyzer_v2.py \
  /data/cobol/source/current \
  --profile production \
  --compare-with /data/cobol/source/baseline \
  --html /var/www/reports/cobol/nightly_impact.html \
  --csv-findings /var/log/cobol/nightly_findings.csv \
  --json /var/log/cobol/nightly_analysis.json \
  --fail-on WARNING >> /var/log/cobol/cobol_impact.log 2>&1

Modernisation API, JSON Schema et OpenAPI

Le rÎle le plus stratégique de cette V2 est de transformer des assets COBOL en artefacts compréhensibles par les équipes modernes : JSON Schema, OpenAPI, graph de dépendances et catalogue de champs.

1. Chaßne de transformation recommandée

Modernization pipeline
COBOL source + copybooks
  -> field extraction
  -> dependency inventory
  -> sensitive field detection
  -> JSON Schema draft
  -> OpenAPI draft
  -> human validation
  -> API gateway / zOS Connect candidate

2. Artefacts de sortie

ArtefactContenuUsage
JSON SchemaTypes JSON dérivés de PIC, groupes, OCCURS et formats numériques.Contrat de données, validation payload, mapping front/back.
OpenAPI draftEndpoint candidat, request/response schema, metadata API.Point de départ pour design API et z/OS Connect.
Mermaid graphRelations entre programmes, copybooks, DB2 tables, CICS commands.Documentation visuelle, impact analysis, onboarding.
Field CSVMapping détaillé des champs COBOL.Review métier, mapping data, conformité, anonymisation.

3. Points Ă  valider manuellement

  • Les REDEFINES ne se convertissent jamais automatiquement sans arbitrage mĂ©tier.
  • Les OCCURS DEPENDING ON doivent ĂȘtre validĂ©s avec les rĂšgles de cardinalitĂ© rĂ©elle.
  • Les champs COMP-3 nĂ©cessitent une validation du signe, de l’échelle et des dĂ©cimales.
  • Les copybooks partagĂ©s peuvent impacter plusieurs programmes et plusieurs endpoints candidats.
  • Les champs sensibles doivent ĂȘtre classĂ©s avant exposition API.
Attention : l’outil gĂ©nĂšre un draft technique, pas un contrat API final. Les artefacts doivent ĂȘtre relus par un expert COBOL, un architecte API et un responsable sĂ©curitĂ©/data.

Exports et exploitation des résultats

Rapport HTML

Vue lisible : score, findings, programmes, copybooks, DB2, CICS, fields et dépendances.

Analyse JSON

Format complet pour API, ingestion SQL, archivage ou comparaison automatique.

Fields CSV

Une ligne par champ COBOL avec PIC, usage, niveau, taille et parent.

Dependencies CSV

Dépendances COPY, CALL, DB2, CICS, fichiers et graph technique.

JSON Schema / OpenAPI

Artefacts de modernisation pour API candidate.

Mermaid

Graph visuel exploitable dans documentation Markdown ou portail technique.

Exemple de synthĂšse console

Console output
COBOL / Copybook Impact Analyzer V2
Status           : HIGH_RISK
Highest severity : WARNING
Risk score       : 100/100
Files            : 4
Programs         : 1
Copybooks        : 3
Fields           : 51
Dependencies     : 9
DB2 references   : 1
CICS references  : 1
Findings         : 22

Idée de table SQL pour historisation

SQL model idea
CREATE TABLE cobol_impact_run (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    source_name VARCHAR(255),
    profile VARCHAR(32),
    status VARCHAR(32),
    highest_severity VARCHAR(16),
    risk_score INTEGER,
    program_count INTEGER,
    copybook_count INTEGER,
    field_count INTEGER,
    db2_reference_count INTEGER,
    cics_reference_count INTEGER,
    finding_count INTEGER,
    report_path VARCHAR(500),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Vision produit : la V2 peut devenir un vĂ©ritable rĂ©fĂ©rentiel d’assets COBOL : inventory, impact analysis, API candidates, data contracts, dependency graph et score de modernisation.

Dépannage et bonnes pratiques

1. Le script ne détecte pas de champs

Cause possibleCorrection
Le fichier n’est pas en texte brut.Exporter les sources COBOL/copybooks en texte ASCII/UTF-8 ou EBCDIC converti.
Les colonnes COBOL ont été modifiées.Conserver la structure source, éviter les conversions qui cassent les niveaux et PIC.
Copybooks manquants.Ajouter les rĂ©pertoires de copybooks au dossier d’analyse.
Syntaxe site-specific.Ajouter progressivement des rÚgles parser ou une policy adaptée.

2. Les JSON Schema semblent incomplets

Certains layouts COBOL ne sont pas convertibles automatiquement : REDEFINES, OCCURS DEPENDING ON, champs signés, packed decimal, layouts multi-records et zones conditionnelles. Le schéma généré est un draft de travail.

Focused schema generation
python cobol_copybook_impact_analyzer_v2.py input/cobol_sources \
  --profile api \
  --custom-policy input/sample_cobol_v2_policy.json \
  --json-schema output/schema/review_schema.json \
  --csv-fields output/csv/review_fields.csv

3. Check-list avant partage externe

  • Anonymiser les noms de programmes, copybooks, tables DB2, transactions CICS et champs sensibles.
  • VĂ©rifier les champs type SSN, CARD, ACCOUNT, BALANCE, SECURITY, CUSTOMER, EMPLOYEE.
  • Ne jamais exposer directement un copybook de production sans validation sĂ©curitĂ©.
  • Relire les artefacts OpenAPI avant diffusion : l’outil produit un draft, pas un contrat final.
  • Conserver une baseline pour mesurer les impacts de changement.
Point critique : les copybooks sont des contrats de données métier. Une mauvaise conversion ou exposition API peut introduire des erreurs de données, de sécurité ou de compatibilité applicative.