59 lines
3.0 KiB
Markdown
59 lines
3.0 KiB
Markdown
# KIN09CSV 使用資源一覧
|
||
|
||
## プログラム概要
|
||
- **プログラムID**: KIN09CSV
|
||
- **プログラム名**: CSV出力処理
|
||
- **処理概要**: DAILY_RECORDSテーブルをCURSORで読込み、CSV形式に編集(STRING WITH POINTER)して出力。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処理 | 1100PARMSOR(YEARMONTH未設定時)/ 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 |
|
||
|
||
## 処理フロー
|
||
1. 初期処理(1000ITTSOR): 開始メッセージ→ワーク初期化→COMMAND-LINE解析→OPEN出力
|
||
2. ヘッダー出力: WRITE AFTER ADVANCING PAGE(改ページ+CSVヘッダー)
|
||
3. CURSOR OPEN(1200-DAILY-OPEN): DAILY_RECORDS CURSOR OPEN + 初回FETCH
|
||
4. 日別明細ループ(2000MAJSOR): CSV編集(STRING WITH POINTER)→WRITE AFTER ADVANCING 1 LINE
|
||
- 100行ごとにヘッダー再出力: WRITE AFTER ADVANCING 2 LINES
|
||
- CSV危険文字サニタイズ: INSPECT REPLACING
|
||
5. MODE=SHORT(2500-SHORT-MODE): MONTHLY_ABSENCE CURSOR→月次サマリCSV出力
|
||
6. 終了処理(3000STPSOR): CLOSE→件数出力→終了メッセージ
|
||
|
||
## 使用構文(特記事項)
|
||
|
||
| 構文 | 使用箇所 | 備考 |
|
||
|------|---------|------|
|
||
| ACCEPT FROM COMMAND-LINE | 1100PARMSOR | "YEARMONTH=202605,MODE=FULL"解析 |
|
||
| STRING DELIMITED BY | 2000MAJSOR/2500-SHORT-MODE | CSV行編集(WITH POINTER) |
|
||
| WRITE AFTER ADVANCING PAGE | 1000ITTSOR | 改ページ+CSVヘッダー初回出力 |
|
||
| WRITE AFTER ADVANCING 2 LINES | 2000MAJSOR | 100行ごとのヘッダー再出力時 |
|
||
| 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) |
|
||
| INITIALIZE | 1000ITTSOR | WRKARA初期化 |
|
||
| FUNCTION WHEN-COMPILED | 1000ITTSOR | コンパイル日時表示 |
|