COBOLコードをブラウザ内でマスキングする
プログラム名、節・段落、データ項目、値、コメントを選び、COBOLの列構造を考慮した共有用コピーを作成できます。入力ソースはDevelop Toolsのサーバーへ送信・保存されません。
COBOLコードマスキングツールを開く結論
顧客情報と業務固有名を置換し、DIVISION、SECTION、レベル番号、PIC、USAGE、処理文を残した共有用コピーを作ります。
元ソースを直接編集せず、共有用コピーで作業してください。
COBOLを単純な文字列置換として扱わない
PROGRAM-ID、データ項目、段落、ファイル名は参照先と対応しています。全部をFILLERへ変えたり、同じ元名を別々の名前へ変えたりすると調査材料が失われます。
IDENTIFICATION DIVISION.
PROGRAM-ID. CUSTOMER-PAYMENT-BATCH.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-CUSTOMER-NO PIC X(10).
01 WS-PAYMENT-AMOUNT PIC S9(9)V99 COMP-3.
IDENTIFICATION DIVISION.
PROGRAM-ID. Class001.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 variable001 PIC X(10).
01 variable002 PIC S9(9)V99 COMP-3.
COBOLコードマスキングツールで確認する手順
- 1. 問題を説明できる最小範囲を別コピーへ切り出します。
- 2. プログラム・節/段落・データ項目・値・コメントの対象を選択します。
- 3. マスキング後に同じ名前の宣言と参照が対応しているか確認します。
- 4. PIC、COMP-3、REDEFINES、OCCURS、FILE STATUS等が読めるか確認します。
- 5. 必要な数値だけ右クリックで解除し、結果だけを共有します。
見落としを防ぐ確認表
| 分類 | 確認対象 |
|---|---|
| 人物・顧客 | 氏名、顧客番号、契約番号、口座番号 |
| システム | PROGRAM-ID、業務名、COPYBOOK、CALL先 |
| ファイル | SELECT名、ASSIGN名、Dataset、DD名 |
| コード構造 | PIC、USAGE、レベル番号、段落・参照 |
具体例の考え方
PROGRAM-IDとデータ項目名を連番名へ置換し、PIC X(10)やPIC S9(9)V99 COMP-3は残します。これにより桁や内部表現を説明できます。
外部共有前の最終チェック
- 顧客名、契約番号、口座番号、社員番号、支店コード、業務コードが残っていないか検索する
- PROGRAM-ID、データ項目、段落、ファイル名、COPYBOOK名、CALL先名からシステムを推測できないか確認する
- VALUE句、DISPLAY文、コメント、SQL Literal、URL、Dataset名、DD名も確認する
- PIC、USAGE、COMP-3、レベル番号、REDEFINES、OCCURSの調査に必要な形が残っているか比較する
- 数値をマスキングした場合は、OCCURS回数や88レベル値など説明に必要な数値を右クリックで個別解除する
- 共有するのはマスキング結果だけにし、元ソースと対応表は権限管理された場所に残す
マスキング結果だけで情報漏えいを完全に防げるとは限りません。コードと一緒に送るABENDログ、JCL、ダンプ、COPYBOOK、画面画像にも同じ情報がないか確認してください。
COBOLコードマスキングツールでできること・できないこと
| 確認項目 | 現在の対応 | 注意点 |
|---|---|---|
| 入力 | COBOLテキストの貼り付け | .cbl・.cob・.cpyの直接読込やEBCDIC変換は行わない |
| ソース形式 | 固定形式を推定し、>>SOURCE FORMAT FREE/FIXEDも追跡 | コンパイラーと同等の完全な構文解析ではない |
| 識別子 | PROGRAM-ID、段落・節、データ項目、COPY名などを分類 | 同じ名前は大文字・小文字を区別せず同じ置換名へ対応 |
| 保持 | シーケンス番号、標識欄、レベル番号、PIC句を保持 | 値のマスキングではVALUEやOCCURS回数などPIC外の数値も0になる |
| 参照 | PERFORM、THRU、REDEFINES、RENAMES、DEPENDING ON等の同名参照を対応 | 意味解析やコンパイル成功を保証しない |
| 埋め込み | EXEC SQL内のホスト変数・識別子も字句単位で処理 | SQL・CICS専用の完全なParserではない |
| 出力 | 結果のコピー、右クリックによる個別解除、全消去 | ファイル保存、Mapping一覧、S0C7診断、自動修正は行わない |
| プライバシー | 入力とマスキングをブラウザ内で処理 | ソースや結果をDevelop Toolsのサーバーへ送信・保存しない |
このツールは共有用コピーを作る補助機能です。利用中のCOBOLコンパイラー、COPYBOOK、JCL、実データを含めたビルド・実行確認を代替しません。
利用中のコンパイラー公式資料で確認する
- IBM Enterprise COBOL for z/OS 6.5 Documentation
- IBM Documentation: NUMCHECK
- IBM Documentation: FILE STATUS clause
- IBM Documentation: REDEFINES clause
- IBM Documentation: COBOL reference format
COBOLの言語仕様、内部表現、FILE STATUS、コンパイラーオプションは製品とバージョンで差があります。IBM Enterprise COBOLを例にした説明は一次資料で確認し、別製品へそのまま当てはめないでください。
具体例:顧客決済バッチの定義をAIへ貼る
PROGRAM-IDとデータ項目名を連番名へ置換し、PIC X(10)やPIC S9(9)V99 COMP-3は残します。これにより桁や内部表現を説明できます。
マスキング結果は構文解析、コンパイル、S0C7やI/Oエラーの自動診断結果ではありません。元ソースと比較し、調査に必要な構造と共有不要な情報を目視確認します。
- 問題を再現する最小範囲を切り出す
- 識別子・値・コメントをマスキングする
- PIC・USAGE・参照関係を確認する
- 結果だけを共有する
JCL、ABENDログ、Dump、実データ、COPYBOOKを一緒に送る場合は、それぞれを個別に確認してください。
よくある質問
- COBOLのコンパイルエラーやS0C7も自動で直せますか?
- 直せません。ツールは共有用のマスキングを行います。利用中のコンパイラー、Language Reference、実行環境で診断してください。
- PIC・COMP-3・REDEFINES・OCCURSは保持されますか?
- PIC句、Keyword、レベル番号、同名参照を考慮します。ただし値をマスキングするとOCCURS回数等のPIC外数値も0になるため、必要な数値は結果側の右クリックで個別解除してください。
- 入力したCOBOLソースはサーバーへ送信されますか?
- 入力とマスキング結果はブラウザ内で処理され、Develop Toolsのサーバーへ送信・保存されません。