2.8 KiB
2.8 KiB
KIN09CSV 使用資源一覧
プログラム概要
- プログラムID: KIN09CSV
- プログラム名: CSV出力処理
- 処理概要: DAILY_RECORDSテーブルをCURSORで読込み、CSV形式に編集して出力。MODE=FULLで日別明細+月次サマリ、MODE=SHORTで月次サマリのみ。100行ごとにヘッダー再出力。
使用ファイル
| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 | 定義参照先 |
|---|---|---|---|---|---|---|
| KIN09W01 | CSV-OUTPUT | 順編成 | F (固定長) | 200B | KIN09REC | COPY句定義書.md |
使用COPY句
| COPY句 | 用途 | 使用箇所 |
|---|---|---|
| KIN09REC | W01出力レコード定義(CSV-OUTPUT-REC) | FILE SECTION |
| ZANMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE |
| ZANENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE |
使用サブプログラム
| サブPGM | 役割 | CALL箇所 |
|---|---|---|
| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR |
| SUB03END | ABEND処理 | 9999ABDSOR |
使用DB2テーブル
| テーブル名 | 操作種別 | 使用箇所 | SQL種別 |
|---|---|---|---|
| DAILY_RECORDS | SELECT | 1200-DAILY-OPEN | DECLARE CURSOR / OPEN / FETCH / CLOSE |
| MONTHLY_ABSENCE | SELECT | 2500-SHORT-MODE | DECLARE CURSOR / OPEN / FETCH / CLOSE |
処理フロー
- 初期処理(開始メッセージ→COMMAND-LINE解析→OPEN出力)
- ヘッダー出力(SHIFT JIS CSVヘッダー行)
- 日別明細ループ:DAILY_RECORDS CURSOR OPEN→FETCH→CSV編集(STRING WITH POINTER)→WRITE AFTER ADVANCING 1 LINE
- 100行ごとにヘッダー再出力(WRITE AFTER ADVANCING PAGE)
- MODE=SHORT: MONTHLY_ABSENCE CURSOR OPEN→FETCH→月次サマリCSV出力
- 終了処理(CLOSE→件数出力→終了メッセージ)
使用構文(特記事項)
| 構文 | 使用箇所 | 備考 |
|---|---|---|
| ACCEPT FROM COMMAND-LINE | 1100PARMSOR | "YEARMONTH=202605 MODE=FULL"解析 |
| STRING DELIMITED BY | 2000MAJSOR/2500-SHORT-MODE | CSV行編集(WITH POINTER) |
| WRITE AFTER ADVANCING PAGE | 2000MAJSOR | 改ページ+ヘッダー再出力 |
| WRITE AFTER ADVANCING 2 LINES | 2500-SHORT-MODE | ヘッダー後改行 |
| WRITE AFTER ADVANCING 1 LINE | 2000MAJSOR/2500-SHORT-MODE | データ行改行 |
| INSPECT REPLACING | 2000MAJSOR | CSVカンマ・改行サニタイズ |
| DECLARE CURSOR / OPEN / FETCH / CLOSE | 1200-DAILY-OPEN/2500-SHORT-MODE | 2重CURSOR(DAILY→MONTHLY) |
| OCCURS | WORKING-STORAGE | TARGET-EMP(100) |
| INITIALIZE | 1100PARMSOR/1200-DAILY-OPEN | 変数初期化 |
| MOVE CORRESPONDING | 2000MAJSOR | HV → CSV行項目編集 |