KE53070 詳細設計書
| 項目 |
内容 |
| プログラムID |
KE53070(ソース名 KE53070P) |
| プログラム名 |
エントリー → 仕訳伝票マスター用フォーム変換 |
| 言語 |
PL/I(OPTIONS(MAIN))。パターン PPB0010P(ファイルのIO・SINGLE、87/04/03) |
| 業務ID |
MMFSCV00(ソースの +DC GYOM) |
| 起動JOB |
SOPOENTJ(エントリー 収入速報反映)の KE53070P ステップ(JCL L53) |
| 作成日 |
2026/10/22 |
| 作成方法 |
ソースコードからのリバース作成 |
前提
- INCLUDE の KESHWMST(仕訳伝票マスター用フォーム)を展開して解析した(付録B)。
- 支給されたソースは UTF-8(EBCDIC から変換済み。SO/SI は「␎␏」で表示)で、文字コードの変換は不要だった。
- JCL SOPOENTJ と、ジョブの対応方針(移行の要否)を加味した(2.3、2.4)。根拠となる JCL の行番号は「JCL L○○」と書く。
- 外部手続き LSS0170 はソースが無いため、ブラックボックス(BB)として扱う。JCL の DD 名から、店所コードマスター(VETENCD)を参照するものと推定する。
- 入力・出力の値の例(7章)はすべて架空である。
- ★印は、ソースから読み取れる潜在的な問題点または注意点を示す。
1. 概要
1.1 機能
ソース先頭のコメント:「エントリー→仕訳伝票マスター用フォームへ変換」
- 仕訳のエントリーデータ(INFILE)を先頭から読む。
- 1件ごとに、仕訳伝票マスター用のフォーム(KESHWMST)に項目を移して OUTFILE に書く。入力と出力は1対1で、読み飛ばすデータは無い。
- 書く前に、次の2つのチェックを行い、該当すれば SYSPRINT にメッセージを出す。メッセージを出してもデータは出力する(ソースのコメント「※データは作成する」)。
-
ロジ部門のチェック:貸方の相手店が「Sロジ」(LSS0170 の判定が 'S')で、借方の部門が '1' の場合。
-
不動産賃貸のチェック(26.08 追加):借方または貸方の科目が 9160056(不動産賃貸収入)で、その相手店が現行の不動産賃貸の店所コード(7店所)以外の場合。
ソースのコメントにある運用:メッセージが出たら経理部に確認し、問題があればデータを受け取って再処理する。問題が無ければそのままにする。
1.2 処理概要図
GATEXTR(ADRI 抽出、PACKSWDT)
│ TEMP.SOPOENTJ.WORK0010(DASD80)
▼
INFILE ──────────▶ KE53070P ──────────▶ OUTFILE = SEAD.SOPOENTJ.WORK0010(DASD11)
(仕訳エントリー、 │ (仕訳伝票マスター用フォーム、 │
150バイト) │ KESHWMST 160バイト) ├──▶ DAIBATEJ で使用
│ └──▶ SORT(COPY)→ SEAD.SOPOENTJ.DATABACK(バックアップ)
├──▶ LSS0170(相手店のロジ区分の判定。BB)── VETENCD(SEAD.TENSCODE.CDMASTER)
▼
SYSPRINT(チェックのメッセージ)
2. 外部インターフェース
2.1 ファイル一覧
| DD名 |
編成/属性(DCL) |
入出力 |
内容 |
読込/書出領域 |
| INFILE |
RECORD INPUT(順次) |
入力 |
仕訳のエントリーデータ |
INAREA(150バイト。付録A) |
| OUTFILE |
RECORD OUTPUT(順次) |
出力 |
仕訳伝票マスター用フォーム |
OUTAREA(KESHWMST 160バイト。付録B) |
| SYSPRINT |
- |
出力 |
DISPLAY のメッセージ |
- |
| VETENCD |
(DCL なし。LSS0170 が使う) |
入力 |
店所コードマスター(推定) |
- |
- 出力は JCL の DCB(RECFM=FB、LRECL=160)で、OUTAREA(160バイト)と一致する(JCL L61〜L63)。
- ★ 入力は GATEXTR の出力をそのまま読み、JCL に DCB の指定が無い(JCL L55〜L58)。INAREA の 150バイトと、GATEXTR が作るレコード長が合っているかは要確認。
2.2 外部手続き
| 名称 |
引数 |
内容 |
| LSS0170(BB) |
PARMX CHAR(4):店所コード(貸方相手店 INKSTEN) PARMY CHAR(1):判定結果(戻り) PARMZ CHAR(4):用途不明(初期値空白のまま渡す) |
店所コードマスター(DD VETENCD=SEAD.TENSCODE.CDMASTER)で店所の区分を調べて返す(推定)。'S' を「Sロジ」の店所として扱う |
- ★ PARMY・PARMZ は毎回クリアしないので、LSS0170 が値を設定しない場合は前の値が残る(BB の仕様次第)。
2.3 JCL との対応(SOPOENTJ)
| 行 |
ステップ |
内容 |
本PGとの関係 |
| L1〜L4 |
JOB 文 |
MSGCLASS=H、COND=(9,LT)、REGION=6144K、CLASS=B。JOBLIB ENT.BATCHA.LOD |
- |
| L8〜L13 |
SCRATCH(IEHPROGM) |
TEMP.SOPOENTJ.WORK0010(DASD80)を削除 |
本PG の入力の事前削除 |
| L15〜L21 |
SCRATCH(IEHPROGM) |
SEAD.SOPOENTJ.WORK0010・SEAD.SOPOENTJ.DATABACK(DASD11)を削除 |
本PG の出力とバックアップの事前削除 |
| L22〜L51 |
ADRIEXTR(GATEXTR) |
EXTRACT DATACODE=PACKSWDT で抽出し、TEMP.SOPOENTJ.WORK0010 を作る(DISP=(,CATLG,DELETE)、200CYL) |
本PG の入力を作る |
| L53〜L67 |
KE53070P |
本PG。INFILE=TEMP.SOPOENTJ.WORK0010(SHR)、VETENCD=SEAD.TENSCODE.CDMASTER(SHR)、OUTFILE=SEAD.SOPOENTJ.WORK0010((,KEEP,DELETE)、FB、LRECL=160、BLKSIZE=6240) |
- |
| L69〜L84 |
SORT(USORTM) |
SORT FIELDS=COPY で SEAD.SOPOENTJ.WORK0010 を SEAD.SOPOENTJ.DATABACK に写す |
本PG の出力のバックアップ |
- 出力の SEAD.SOPOENTJ.WORK0010 は、ジョブの最後でも削除されず、別ジョブ DAIBATEJ が使う。
- ジョブの COND=(9,LT) により、リターンコードが9を超えたステップの後は実行しない。本PG はリターンコードを設定しないので、チェックに該当しても後続の SORT は動く。
2.4 移行の対応方針
ジョブの対応方針(支給資料)は次のとおり。
| JCL 行 |
ステップ |
方針 |
特記事項 |
| L8 |
SCRATCH |
移行不要 |
TEMP.SOPOENTJ.WORK0010 |
| L15 |
SCRATCH |
(記載なし) |
SEAD.SOPOENTJ.WORK0010、SEAD.SOPOENTJ.DATABACK |
| L31 |
GATEXTR |
(記載なし) |
CSV データの取り込み(#11523) |
| L53 |
KE53070P |
(記載なし) |
SEAD.SOPOENTJ.WORK0010 は DAIBATEJ で使用(#11523) |
| L69 |
SORT |
移行不要 |
SEAD.SOPOENTJ.WORK0010(KE53070P の OUTFILE)→ SEAD.SOPOENTJ.DATABACK |
- 移行後の本PG の入力は、GATEXTR の置き換え(CSV データの取り込み、#11523)が作るデータになる。入力の形式(CSV か固定長か)が変わる場合は、INAREA の項目の切り出し方を合わせて決める必要がある。
- 出力(SEAD.SOPOENTJ.WORK0010)は DAIBATEJ が使うので、移行後も KESHWMST の形(160バイト)と項目の意味を保つ必要がある。
- バックアップの SORT(COPY)は移行不要のため、移行後は DATABACK を作らない。
- L15 の SCRATCH(出力の事前削除)の方針は資料に記載が無い。出力を毎回作り直す前提なので、移行後の出力先での事前削除(または上書き)の扱いを決める必要がある。
3. データ定義
3.1 入力エリア(INAREA、150バイト)
- 付録A のとおり。伝票番号(INEDPNH 3桁+INEDPNO 6桁)、発行年月日(INHAK20・INHAKYY・INHAKMM・INHAKDD)、伝票区分 INDENKB、発行店、借方(科目・摘要・銀行・相手店・業種・部門)、貸方(同)、金額 INKINGK(11桁)からなる。
- 業種・部門・銀行は CHAR で定義し、数字として使うための重ね定義(INKRGYS_P など、PIC'9')を持つ。
3.2 出力エリア(OUTAREA=KESHWMST、160バイト)
- 付録B のとおり。伝票番号 KIEDPNO、発行店 KIHAKTC、発行年月日 KIHAKDT、借方 KIKARIN(7項目)、貸方 KIKASIK(7項目)、合計金額 KIGOKKN(FIXED DEC(11))ほか。
- 入力日時(KIINPNA)、入力区分、モニターID、廃棄区分などは、このプログラムでは設定しない(クリア値のまま)。
3.3 ワークエリア
| 名称 |
属性 |
初期値 |
内容 |
| EOF_SW |
BIT(1) |
'1'B |
INFILE の終了で '0'B |
| NUMR |
CHAR(10) |
'0123456789' |
数字チェック(VERIFY)用 |
| PARMX/PARMY/PARMZ |
CHAR(4)/CHAR(1)/CHAR(4) |
空白 |
LSS0170 の引数 |
| CAD_SW、SP_SW、KM_SW、OUT_SW、GOKE_FIX、II、LEN、SO_SW、SOSI(SO_W・SI_W)、NENDO、CDAREA(付録C) |
- |
- |
宣言のみ(未使用。パターンや他プログラムからの流用と推定) |
4. 処理フロー
開始
├─ ON ENDFILE(INFILE) → EOF_SW='0'B
├─ OPEN INFILE、OUTFILE
├─ INFILE を1件読む
├─ DO WHILE(INFILE が終わるまで)
│ OUTAREA をクリア
│ 伝票番号・発行年月日・発行店を編集 … 5.2
│ 借方・貸方・金額を編集 … 5.3
│ ロジ部門のチェック(LSS0170)→ 該当なら ERR_RTN … 5.4
│ 不動産賃貸のチェック(借方・貸方)→ 該当なら ERR_RTN_1/2 … 5.5
│ OUTFILE に WRITE
│ INFILE を1件読む
│ END
├─ CLOSE INFILE、OUTFILE
終了
5. 処理詳細
5.1 開始処理
- ENDFILE 条件で EOF_SW を '0'B にする。
- INFILE と OUTFILE を OPEN し、INFILE を1件読む。
- INFILE が0件のときは、ループに入らず、空の OUTFILE ができる(メッセージなし)。
5.2 見出し項目の編集
| 出力項目 |
編集内容 |
ソース |
| OUTAREA 全体 |
'' でクリア(数字項目は0、文字項目は空白) |
L118 |
| KIEDPNO(伝票番号6桁) |
← INEDPNO(下6桁。上3桁の INEDPNH は出力しない) |
L119 |
| KIHAKYY(年) |
← INHAKYY(西暦下2桁。上2桁の INHAK20 は出力しない) |
L120 |
| KIHAKMM(月) |
← INHAKMM |
L121 |
| KIHAKDD(日) |
伝票区分 INDENKB=10 なら ← INHAKDD、それ以外は 99 |
L122〜L124 |
| KIHAKTC(発行店) |
← INHKTEN |
L125 |
- ★ 伝票区分が10以外の伝票は、日が 99 になる(月単位の伝票として扱う意図と推定)。
5.3 借方・貸方・金額の編集
| 出力項目 |
借方 |
貸方 |
編集内容 |
| 科目 |
KIAKAMC ← INKRKAM |
KIBKAMC ← INKSKAM |
そのまま |
| 摘要 |
KIATEKI ← INKRTEK |
KIBTEKI ← INKSTEK |
そのまま |
| 銀行 |
KIABANK |
KIBBANK |
入力(CHAR(7))が数字だけなら数字7桁として設定、それ以外は 0 |
| 相手店 |
KIAAITE ← INKRTEN |
KIBAITE ← INKSTEN |
そのまま |
| 業種 |
KIAGYOS |
KIBGYOS |
入力(CHAR(1))が数字なら設定、それ以外は 1 |
| 部門 |
KIABUMO |
KIBBUMO |
入力(CHAR(1))が数字なら設定、それ以外は 1 |
| 金額 |
KIGOKKN ← INKINGK |
- |
11桁の数字をパック10進 FIXED DEC(11) に変換 |
- 数字かどうかは
VERIFY(項目, '0123456789') = 0 で判定する(L129〜L151)。空白も数字以外として扱う。
- ★ 業種・部門が空白や数字以外のときは、黙って 1 にする(メッセージなし)。
- 借方・貸方のセンター(KIASENT・KIBSENT)は設定しない(空白)。
5.4 ロジ部門のチェック
- PARMX ← INKSTEN(貸方相手店、4桁の数字を文字に変換)。
-
CALL LSS0170(PARMX, PARMY, PARMZ)。
- PARMY='S'(Sロジ) かつ INKRBUM(借方部門)='1' なら、ERR_RTN を呼ぶ。
ERR_RTN のメッセージ:* NO-EDPNO-BUMON-TNCD-KIN = ∥ 伝票番号上3桁 ∥ '-' ∥ 下6桁 ∥ '-' ∥ 借方部門 ∥ '-' ∥ 貸方相手店 ∥ '-' ∥ 金額
- ★ 店所は貸方の相手店、部門は借方の部門で判定している。ソースのコメントは「「Sロジ」かつ部門「1」」で、どちらの部門を見るべきかは要確認。
- データは出力する(チェックはメッセージだけ)。
5.5 不動産賃貸のチェック(26.08 追加)
| 判定 |
条件 |
メッセージ |
| 借方 |
INKRKAM=9160056 かつ INKRTEN が下表の7店所以外 |
ERR_RTN_1:* FUDOSAN-CHINTAI-CHECK = ∥ 借方科目 ∥ '-' ∥ 借方相手店 |
| 貸方 |
INKSKAM=9160056 かつ INKSTEN が下表の7店所以外 |
ERR_RTN_2:* FUDOSAN-CHINTAI-CHECK = ∥ 貸方科目 ∥ '-' ∥ 貸方相手店 |
現行の不動産賃貸の店所コード:1394、1159、5551、5559、5654、2253、0159
- 借方・貸方の両方に該当すれば、メッセージは2行出る。データは出力する。
- ★ 店所コードがソースに直接書かれている。店所が増減するとソースの修正が必要になる。
5.6 終了処理
- INFILE と OUTFILE を CLOSE する。
6. SYSPRINT のメッセージイメージ
7章の例の場合:
* NO-EDPNO-BUMON-TNCD-KIN = 001-123456-1-0701-00000150000
* FUDOSAN-CHINTAI-CHECK = 9160056-1234
- 項目は入力の値をそのまま(PIC の数字はゼロ埋め)つないで出す。
7. 入力と出力の例
7.1 入力(INFILE、主な項目だけ)
| 伝票番号(上3+下6) |
発行年月日(20+YY MM DD) |
伝票区分 |
発行店 |
借方(科目/相手店/業種/部門/銀行) |
貸方(科目/相手店/業種/部門/銀行) |
金額 |
| 001-123456 |
20 26 09 30 |
10 |
1001 |
1111111/1001/1/1/空白 |
2222222/0701/1/2/0123456 |
150000 |
| 001-123457 |
20 26 09 30 |
20 |
1001 |
9160056/1234/空白/空白/空白 |
3333333/1001/1/1/空白 |
80000 |
- 1件目の貸方相手店 0701 は、LSS0170 の判定で 'S'(Sロジ)とする(例)。
7.2 出力(OUTFILE、主な項目だけ)
| 伝票番号 |
発行年月日 |
発行店 |
借方(科目/相手店/業種/部門/銀行) |
貸方(科目/相手店/業種/部門/銀行) |
金額 |
| 123456 |
26 09 30 |
1001 |
1111111/1001/1/1/0000000 |
2222222/0701/1/2/0123456 |
150000 |
| 123457 |
26 09 99
|
1001 |
9160056/1234/1/1/0000000 |
3333333/1001/1/1/0000000 |
80000 |
- 1件目:Sロジ かつ借方部門 1 なので、ERR_RTN のメッセージが出る(データは出力する)。
- 2件目:伝票区分が10以外なので日は 99。借方の業種・部門が空白なので 1。借方科目が不動産賃貸で、相手店 1234 は7店所以外なので、ERR_RTN_1 のメッセージが出る。
8. メッセージ一覧
| No |
メッセージ |
出力先 |
契機 |
| 1 |
* NO-EDPNO-BUMON-TNCD-KIN = ∥ 伝票番号 ∥ 借方部門 ∥ 貸方相手店 ∥ 金額 |
SYSPRINT(DISPLAY) |
貸方相手店が Sロジ かつ借方部門='1'(5.4) |
| 2 |
* FUDOSAN-CHINTAI-CHECK = ∥ 借方科目 ∥ 借方相手店 |
同上 |
借方科目が 9160056 で相手店が7店所以外(5.5) |
| 3 |
* FUDOSAN-CHINTAI-CHECK = ∥ 貸方科目 ∥ 貸方相手店 |
同上 |
貸方科目が 9160056 で相手店が7店所以外(5.5) |
9. 異常処理
| 事象 |
検出 |
処理 |
| INFILE の終了 |
ENDFILE 条件 |
EOF_SW='0'B でループを終える(正常) |
| チェックに該当 |
5.4、5.5 の判定 |
メッセージを出し、データは出力して続行 |
| 銀行・業種・部門が数字以外 |
VERIFY |
銀行は 0、業種・部門は 1 にして続行(メッセージなし) |
| 数字項目(PIC)に数字以外が入っている |
CONVERSION 条件 |
ON 定義なし → 異常終了 |
| その他 |
- |
ON ERROR の定義なし → PL/I 標準のエラー処理(異常終了) |
| リターンコード |
- |
設定なし(正常時は 0。チェックに該当しても 0) |
- ★ チェックに該当してもリターンコードは0のため、ジョブの結果からは分からない。SYSPRINT を目で確認する運用が前提。
10. 留意事項(★)
-
チェックはメッセージだけ:該当してもデータは出力し、リターンコードも0(ソースのコメントどおり。運用で経理部に確認する前提)。
-
ロジ部門のチェックの対象:店所は貸方相手店、部門は借方部門で判定している(5.4)。
-
不動産賃貸の店所がソースに固定:7店所の増減のたびにソースの修正が必要(5.5)。
-
伝票区分が10以外は日が 99(5.2)。
-
数字以外の業種・部門は黙って 1、銀行は 0(5.3)。
-
伝票番号の上3桁と年の上2桁は出力しない(KIEDPNO 6桁、KIHAKYY 2桁)。
-
LSS0170 は BB:店所コードマスター(VETENCD)を参照すると推定されるが、引数 PARMY・PARMZ の意味と、値を返さない場合の扱いが不明(2.2)。
-
件数の表示が無い:入力・出力の件数をジョブログで確認できない。
-
未使用の変数が多い(3.3):CDAREA、SOSI、GOKE_FIX など。
-
入力のレコード長:GATEXTR の出力をそのまま読み、JCL に DCB が無い。INAREA(150バイト)と合っているか要確認(2.1)。移行後は入力が CSV の取り込み(#11523)に変わるため、項目の切り出し方を合わせて決める(2.4)。
-
出力は DAIBATEJ が使う:移行後も KESHWMST の形と項目の意味を保つ必要がある(2.4)。
-
出力の事前削除の方針が未記載:JCL L15 の SCRATCH の移行方針が資料に無い(2.4)。
11. 未使用項目
| 項目 |
内容 |
| INHAK20、INKRDEL、INKSDEL |
入力の項目のうち参照しないもの(INEDPNH は DISPLAY だけで使う) |
| KISPAC1、KIDATKB、KIASENT、KIBSENT、KIINPNA(KIINPTC〜KIINPMI)、KIINPKB、KIMONID、KIINPYY、KISPAC2、KIHAIKB |
出力の項目のうち設定しないもの(クリア値のまま) |
| CAD_SW、SP_SW、KM_SW、OUT_SW、GOKE_FIX、II、LEN、SO_SW、SOSI、SO_W、SI_W、NENDO、CDAREA |
宣言のみ |
| SUBSTR、DATE、LOW、LENGTH、INDEX、STRING |
BUILTIN の宣言のみ(VERIFY だけ使う) |
付録A INAREA(入力、150バイト)
| LV |
項目名 |
属性 |
位置 |
長さ |
本PGでの使用 |
| 01 |
INAREA |
(集団項目) |
1 |
150 |
READ INFILE INTO の入力域 |
| 02 |
INEDPNH |
PIC'(0003)9' |
1 |
3 |
DISPLAY(ERR_RTN)に使用 |
| 02 |
INEDPNO |
PIC'(0006)9' |
4 |
6 |
KIEDPNO ← INEDPNO。DISPLAY(ERR_RTN)にも使用 |
| 02 |
INHAK20 |
PIC'(0002)9' |
10 |
2 |
未使用 |
| 02 |
INHAKYY |
PIC'(0002)9' |
12 |
2 |
KIHAKYY ← INHAKYY |
| 02 |
INHAKMM |
PIC'(0002)9' |
14 |
2 |
KIHAKMM ← INHAKMM |
| 02 |
INHAKDD |
PIC'(0002)9' |
16 |
2 |
INDENKB=10 のとき KIHAKDD ← INHAKDD(それ以外は KIHAKDD=99) |
| 02 |
INDENKB |
PIC'(0002)9' |
18 |
2 |
KIHAKDD の編集判定(=10 か否か)に使用 |
| 02 |
INHKTEN |
PIC'(0004)9' |
20 |
4 |
KIHAKTC ← INHKTEN(発行店) |
| 02 |
INKRKAM |
PIC'(0007)9' |
24 |
7 |
KIAKAMC ← INKRKAM(借方科目)。=9160056 の不動産賃貸チェック、DISPLAY(ERR_RTN_1)にも使用 |
| 02 |
INKRTEK |
PIC'(0004)9' |
31 |
4 |
KIATEKI ← INKRTEK(借方摘要) |
| 02 |
INKRBAN |
CHAR(0007) |
35 |
7 |
VERIFY(INKRBAN,NUMR)=0(全桁数字)のとき KIABANK ← INKRBAN_P(DEF: PIC'(0007)9' で重ね定義)、それ以外は KIABANK=0 |
| 02 |
INKRTEN |
PIC'(0004)9' |
42 |
4 |
KIAAITE ← INKRTEN(借方相手店)。不動産賃貸チェック(1394/1159/5551/5559/5654/2253/0159 以外はERR_RTN_1)、DISPLAY(ERR_RTN_1)にも使用 |
| 02 |
INKRGYS |
CHAR(0001) |
46 |
1 |
VERIFY(INKRGYS,NUMR)=0 のとき KIAGYOS ← INKRGYS_P(DEF: PIC'(0001)9' で重ね定義)、それ以外は KIAGYOS=1 |
| 02 |
INKRBUM |
CHAR(0001) |
47 |
1 |
VERIFY=0 のとき KIABUMO ← INKRBUM_P(DEF: PIC'(0001)9' で重ね定義)、それ以外は KIABUMO=1。PARMY='S' かつ INKRBUM='1' の判定(ERR_RTN)、DISPLAY(ERR_RTN)にも使用 |
| 02 |
INKRDEL |
CHAR(0020) |
48 |
20 |
未使用 |
| 02 |
INKSKAM |
PIC'(0007)9' |
68 |
7 |
KIBKAMC ← INKSKAM(貸方科目)。=9160056 の不動産賃貸チェック、DISPLAY(ERR_RTN_2)にも使用 |
| 02 |
INKSTEK |
PIC'(0004)9' |
75 |
4 |
KIBTEKI ← INKSTEK(貸方摘要) |
| 02 |
INKSBAN |
CHAR(0007) |
79 |
7 |
VERIFY(INKSBAN,NUMR)=0 のとき KIBBANK ← INKSBAN_P(DEF: PIC'(0007)9' で重ね定義)、それ以外は KIBBANK=0 |
| 02 |
INKSTEN |
PIC'(0004)9' |
86 |
4 |
KIBAITE ← INKSTEN(貸方相手店)。PARMX ← INKSTEN で LSS0170 呼出(ロジ判定)、不動産賃貸チェック(INKSKAM=9160056 時)、DISPLAY(ERR_RTN、ERR_RTN_2)にも使用 |
| 02 |
INKINGK |
PIC'(0011)9' |
90 |
11 |
KIGOKKN ← INKINGK(金額)。DISPLAY(ERR_RTN)にも使用 |
| 02 |
INKSGYS |
CHAR(0001) |
101 |
1 |
VERIFY(INKSGYS,NUMR)=0 のとき KIBGYOS ← INKSGYS_P(DEF: PIC'(0001)9' で重ね定義)、それ以外は KIBGYOS=1 |
| 02 |
INKSBUM |
CHAR(0001) |
102 |
1 |
VERIFY(INKSBUM,NUMR)=0 のとき KIBBUMO ← INKSBUM_P(DEF: PIC'(0001)9' で重ね定義)、それ以外は KIBBUMO=1 |
| 02 |
INKSDEL |
CHAR(0048) |
103 |
48 |
未使用 |
合計 150 バイト(3+6+2+2+2+2+2+4+7+4+7+4+1+1+20+7+4+7+4+11+1+1+48)。
付録B OUTAREA=KESHWMST の展開(出力、160バイト)
ソースの DCL 01 OUTAREA , %INCLUDE KESHWMST ;(L63〜L64)で取り込まれる仕訳伝票マスター用フォームを展開したもの。
FIXED DEC(11) は6バイト(パック)で計算。
| LV |
項目名 |
属性 |
位置 |
長さ |
本PGでの使用 |
| 01 |
OUTAREA |
(集団項目) |
1 |
160 |
WRITE OUTFILE FROM の出力域。各レコード処理の先頭で OUTAREA='' によりクリア |
| 02 |
KIEDPNO |
PIC'(0006)9' |
1 |
6 |
INEDPNO をセット |
| 02 |
KISPAC1 |
CHAR(0001) |
7 |
1 |
未設定(OUTAREA='' のクリア値:数字項目は0、文字項目は空白) |
| 02 |
KIDATKB |
PIC'(0001)9' |
8 |
1 |
未設定(OUTAREA='' のクリア値:数字項目は0、文字項目は空白) |
| 02 |
KIHAKTC |
PIC'(0004)9' |
9 |
4 |
INHKTEN をセット |
| 02 |
KIHAKDT |
(集団項目) |
13 |
6 |
個別項目(YY/MM/DD)に分けてセット |
| 03 |
KIHAKYY |
PIC'(0002)9' |
13 |
2 |
INHAKYY をセット |
| 03 |
KIHAKMM |
PIC'(0002)9' |
15 |
2 |
INHAKMM をセット |
| 03 |
KIHAKDD |
PIC'(0002)9' |
17 |
2 |
INDENKB=10 なら INHAKDD、それ以外は 99 |
| 02 |
KIKARIN |
(集団項目) |
19 |
26 |
借方情報(個別項目にセット) |
| 03 |
KIASENT |
CHAR(0002) |
19 |
2 |
未設定(OUTAREA='' のクリア値:数字項目は0、文字項目は空白) |
| 03 |
KIAKAMC |
PIC'(0007)9' |
21 |
7 |
INKRKAM をセット |
| 03 |
KIATEKI |
PIC'(0004)9' |
28 |
4 |
INKRTEK をセット |
| 03 |
KIAGYOS |
PIC'(0001)9' |
32 |
1 |
INKRGYS が数字なら INKRGYS_P、数字でなければ 1 |
| 03 |
KIABUMO |
PIC'(0001)9' |
33 |
1 |
INKRBUM が数字なら INKRBUM_P、数字でなければ 1 |
| 03 |
KIAAITE |
PIC'(0004)9' |
34 |
4 |
INKRTEN をセット |
| 03 |
KIABANK |
PIC'(0007)9' |
38 |
7 |
INKRBAN が数字なら INKRBAN_P、数字でなければ 0 |
| 02 |
KIKASIK |
(集団項目) |
45 |
26 |
貸方情報(個別項目にセット) |
| 03 |
KIBSENT |
CHAR(0002) |
45 |
2 |
未設定(OUTAREA='' のクリア値:数字項目は0、文字項目は空白) |
| 03 |
KIBKAMC |
PIC'(0007)9' |
47 |
7 |
INKSKAM をセット |
| 03 |
KIBTEKI |
PIC'(0004)9' |
54 |
4 |
INKSTEK をセット |
| 03 |
KIBGYOS |
PIC'(0001)9' |
58 |
1 |
INKSGYS が数字なら INKSGYS_P、数字でなければ 1 |
| 03 |
KIBBUMO |
PIC'(0001)9' |
59 |
1 |
INKSBUM が数字なら INKSBUM_P、数字でなければ 1 |
| 03 |
KIBAITE |
PIC'(0004)9' |
60 |
4 |
INKSTEN をセット |
| 03 |
KIBBANK |
PIC'(0007)9' |
64 |
7 |
INKSBAN が数字なら INKSBAN_P、数字でなければ 0 |
| 02 |
KIGOKKN |
FIXED DEC(0011) |
71 |
6 |
INKINGK をセット(金額) |
| 02 |
KIINPNA |
(集団項目) |
77 |
12 |
未設定(OUTAREA='' のクリア値:数字項目は0、文字項目は空白) |
| 03 |
KIINPTC |
PIC'(0004)9' |
77 |
4 |
未設定(OUTAREA='' のクリア値:数字項目は0、文字項目は空白) |
| 03 |
KIINPMM |
PIC'(0002)9' |
81 |
2 |
未設定(OUTAREA='' のクリア値:数字項目は0、文字項目は空白) |
| 03 |
KIINPDD |
PIC'(0002)9' |
83 |
2 |
未設定(OUTAREA='' のクリア値:数字項目は0、文字項目は空白) |
| 03 |
KIINPHH |
PIC'(0002)9' |
85 |
2 |
未設定(OUTAREA='' のクリア値:数字項目は0、文字項目は空白) |
| 03 |
KIINPMI |
PIC'(0002)9' |
87 |
2 |
未設定(OUTAREA='' のクリア値:数字項目は0、文字項目は空白) |
| 02 |
KIINPKB |
PIC'(0001)9' |
89 |
1 |
未設定(OUTAREA='' のクリア値:数字項目は0、文字項目は空白) |
| 02 |
KIMONID |
CHAR(0003) |
90 |
3 |
未設定(OUTAREA='' のクリア値:数字項目は0、文字項目は空白) |
| 02 |
KIINPYY |
CHAR(0002) |
93 |
2 |
未設定(OUTAREA='' のクリア値:数字項目は0、文字項目は空白) |
| 02 |
KISPAC2 |
CHAR(0065) |
95 |
65 |
未設定(OUTAREA='' のクリア値:数字項目は0、文字項目は空白) |
| 02 |
KIHAIKB |
PIC'(0001)9' |
160 |
1 |
未設定(OUTAREA='' のクリア値:数字項目は0、文字項目は空白) |
合計 160 バイト(6+1+1+4+6+26+26+6+12+1+3+2+65+1。KIGOKKN は FIXED DEC(11) のパック6バイト)。
付録C CDAREA(ワーク、80バイト)
| LV |
項目名 |
属性 |
位置 |
長さ |
本PGでの使用 |
| 01 |
CDAREA |
(集団項目) |
1 |
80 |
未使用(宣言のみ) |
| 02 |
CDKMCA |
PIC'(0007)9' |
1 |
7 |
未使用 |
| 02 |
CDDUM1 |
CHAR(0001) |
8 |
1 |
未使用 |
| 02 |
CDTEKI |
PIC'(0004)9' |
9 |
4 |
未使用 |
| 02 |
CDDUM2 |
CHAR(0001) |
13 |
1 |
未使用 |
| 02 |
CDSYMD |
PIC'(0006)9' |
14 |
6 |
未使用 |
| 02 |
CDDUM4 |
CHAR(0001) |
20 |
1 |
未使用 |
| 02 |
CDEYMD |
PIC'(0006)9' |
21 |
6 |
未使用 |
| 02 |
CDSPAC |
CHAR(0054) |
27 |
54 |
未使用 |
合計 80 バイト(7+1+4+1+6+1+6+54)。