1. マスタとコード体系

受注・生産・出荷・請求・支払——どの業務フローも、その裏では「得意先」「品番」「工程」「単価」といった変わらない基礎データ(=マスタ)を参照して動いている。本ページでは、板倉製作所のシステムに登場する番号(コード)体系と、それを管理する29種類のマスタ、そしてマスタ保守の共通操作パターンを扱う。会社全体像や業務フローの全体地図は「0. 板倉製作所の業務全体像」を参照。

テーブル同士のつながりを図で見たいときは、16. データモデル(ER図)へ。このページが「どんなマスタがあるか」を扱うのに対し、あちらは「どのマスタがどうつながるか」を扱います。

このページの要点
  • 受注・生産・出荷・請求はすべて29種類のマスタ(得意先・品番・工程・単価等)を共通の土台に参照する。
  • コード体系は品番だけで複数系統あり、受注品番と部品品番の混同が新人の最初のつまずき。
  • 得意先コード20の実データ名は「デンソープレステック」であり「デンソー機工」ではない(要確認)。
石を組み合わせた土台の上に立つ工場の建物と、土台の石を一つ磨いている人物を描いた水彩風イラスト
形の異なる土台石が支える工場——マスタは29種の基礎データが業務全体を支える土台であることの比喩。

1. コード体系 — 新人が最初に覚えるべき識別子

板倉製作所のシステムには多数の「番号」が存在し、それぞれ意味も発行元も異なる。以下は pilot/app/public/data/screen-help.jsonのフィールド解説(実データの入力ガイド)と 各種spec、masters_registry.jsonの列定義から収集した主要コード体系。

1.1 品番系(もっとも重要、かつ最も混乱しやすい)

コード何を識別するか形式発行・維持元出典
受注品番
JHBNHN
得意先に納める完成品の品番。得意先が指定した品番そのもの、または板倉が採番した品番。 可変長(最大25桁) jhmp受注品番マスタ。新規登録はKSBS01(技術情報管理サブシステムMENUK1)。 itks01r.md
部品品番
BHHNBB
受注品番を構成する個々の部品(プレス部品・材料単位)の品番。 可変長(最大25桁) bhmp部品品番マスタ。 masters_map.md
品番変換
(品番参照 TB⇔AS・SK)
得意先ごとに異なる品番体系を相互変換するための対応表。例:デンソー(TB=トヨタ紡織/AS=アイシン/SK=?)側の品番と板倉社内品番の対応。デンソー機工からのEDIデータの品番をCVMP経由で社内品番へ変換する実例がある。 cvhnbn(変換前)→cvhn01/cvhn02(変換後、最大2件) cvmp品番変換マスタ(MENUM1 MSBS18/MSBS26相当)。新規受注時に得意先品番と社内品番の対応が取れていないと、EDI取込や照合処理が失敗する。 itjm63r.md / itjm64r.md
旧品番
WSHNKY
品番改番(設計変更等)が起きたとき、旧品番のレコードを削除済(E)にする仕組み。 可変長 KSBS01の登録処理内。 itks01r.md
注文品番
WSHNBC
外注先に発注するときに使う品番(社内品番と異なる場合がある)。 可変長 MENUG1外製管理の発注入力。 masters_map.md

1.2 設計・図面系

コード何を識別するか形式発行元出典
設計№
SNBNHNSNNOSK
図面番号。品番1件につき1設計№が対応(snmp設計№マスタ、key=snbnhn品番)。西暦変換マスタyxmpyxcdsk列を使って生成される西暦ベースの番号らしい推測 8桁 KSBS03「設計№登録」(MENUK1)。 masters_map.md
レーザー№
WSLN0110、最大10件/品番)
プレス部品のレーザー加工用管理番号。 最大8桁×最大10件 bhmp部品品番マスタ内、またはKSBS14「レーザー№入力」。品番⇔レーザー№の相互照会がKSBS16/18にある。 masters_map.md

1.3 受注・生産管理系の番号

コード何を識別するか形式備考出典
受注№
WSNOJU
個々の受注(注文)を識別する番号。 数値 受注票(伝票)に印字される。 masters_map.md
伝票№
(発注伝票№WSNOHA/客先伝票№WSNOTD、8桁・16桁)
発注や得意先とのやりとりに紐づく伝票の番号。8桁版・16桁版の2種類のデータ形式が別テーブルとして存在する。 数値 nkmpナンバー管理マスタ・jkmp受注管理マスタが年月+連番で伝票番号を発番する仕組みを持つ(jkyymmjkrnbnjknode)。 masters_map.md
号口区分
WSKUGO
この品番が「号口」=量産品であることを示す区分コード。NMMPコード区分18で名称照会。 コード 号口とは「型式が確定し、継続的に生産される製品」のこと。試作と対をなす概念。 screen-help.json
試作№
WHNOSS
試作」=量産開始前のお試し生産を識別する番号。 半角数字、最大8桁 号口と異なり、試作は一時的な生産(MENUT1試作管理サブシステム)。 masters_map.md
ロット№
WSNORTrnnort
作業指示単位の製造ロットを識別する番号。 6桁 rnmpロット№マスタが受注品番と紐づけて管理。材料管理№(W1NORT等)とは別物。 masters_map.md
QRコードデータ
WSDATA
現場の現物管理で読み取るQRコード。品番種別+単品品番+試作№+支給数を1本の文字列にエンコードしている。 49桁固定長文字列 支給品(アイシン)受入等で使用。 pilot/spec (SMMP関連)

1.4 マスタ系コード(得意先・仕入先・工程・材質等)

コード何を識別するか形式備考出典
得意先コード
TKCDTK
販売先企業を識別する社内コード。 数値(6,0) アイシン=3〜17の範囲、デンソー機工=20、等。tkmp得意先マスタが正本。 itc010r.md / itjm03r.md
仕入先コード
SICDSI
仕入先・外注先を識別する社内コード。 コード simp仕入先マスタが正本。 masters_map.md
工程コード
KOCDKO
生産工程(例:プレス、溶接、表面処理等)を識別するコード。 コード komp工程マスタが正本。工程係数(KOKEKO)という重み付け値も持つ。 masters_map.md
材質コード
ZSZISI
材料の材質を識別するコード。 コード zsmp材質マスタが正本(比重・単価も保持=材料費計算に直結)。 masters_map.md
内外コード
WSCDNG
部品が「内製(自社製造)」か「外注(外製)」かを示す区分。NMMPコード区分30で照会。 コード 受注品番マスタjhmp・構成マスタksmp双方で使う横断的な区分。 screen-help.json
担当班コード
WSCDTH
生産現場の担当班を識別。NMMPコード区分06で照会。 数値(3,0) 得意先マスタtkmpのTKD101(営業担当区分)とは別物なので注意(似た名前で紛らわしい)。 screen-help.json

1.5「区分」コード群 — NMMP(名称マスタ)に集約される汎用コード表

上記の「◯◯区分」(内容区分・表面処理区分・材料区分・板取区分・依頼区分・受注区分等)は、 個別のマスタテーブルを持たず、すべてnmmp名称マスタという1つの汎用コード表に コード区分(NMKBNM)ごとにまとめて格納されている。これはAS/400のオフコンでよく 使われる「名称マスタパターン」であり、新しい区分値を増やすたびにテーブルを新設しなくてよい 代わりに、このシステム全体でnmmpの中身を見ないとコードの意味が分からない、という 属人化ポイントになっている。詳しくは§5 特殊ケースを参照。

2. 主要マスタ一覧(MENUM1が管理する29テーブル)

analysis/out/masters_map.mdによれば、AS/400上の29種類の名寄せされたマスタファイルが CRUD(追加・変更・削除・照会)の対象になっている(26種は「トランザクション系」として意図的に マスタ保守の対象外=D9 defer-loud)。移行後のシステムでは、1つの汎用エンジン+JSONレジストリmasters/engine.tsanalysis/out/masters_registry.json)がこの29テーブル すべてを同じ操作パターンで処理する(docs/MIGRATION-MAP.md L1023-1024)

テーブル和名キー何を管理するか主な参照元業務件数実データ出典
tkmp得意先マスタ得意先コード得意先の名称・住所・営業担当区分・請求関連の並び順受注(MENUJ1)、出荷/請求(MENUS1)、経理(MENUR1)142masters_map.md
tk1p得意先マスター従属1得意先コード得意先ごとの請求締日・請求書発行区分(tkmpの拡張レコード)出荷/請求(MENUS1)140masters_map.md
simp仕入先マスタ仕入先コード仕入先の名称・住所・支払条件・振込銀行口座・会計科目外製管理(MENUG1)、経理(MENUR1)497masters_map.md
bhmp部品品番マスタ部品品番プレス部品の材質・板厚・レーザー№(最大10)・単価・展開周長・在庫数技術情報(MENUK1)、号口(MENUW1)、経理(MENUR1)10,096masters_map.md
jhmp受注品番マスタ受注品番完成品の得意先・型式・各種単価(決定/見積/号試)・受注残数・現在庫数受注(MENUJ1)、技術情報(MENUK1)6,704masters_map.md
jkmp受注管理マスタ年月年月ごとの伝票番号発番カウンタ(連番・件数・消費税率)受注(MENUJ1)374masters_map.md
ksmp構成マスタ受注品番+内外コード+部品品番受注品番を構成する部品(BOM=部品表)の展開関係、構成数技術情報(MENUK1)、号口/組付/試作28,783masters_map.md
snmp設計№マスタ品番品番と設計№(図面番号)の対応技術情報(MENUK1)38,206masters_map.md
komp工程マスタ工程コード工程名・工程係数(工数見積等に使う重み)生産全般38masters_map.md
nmmp名称マスタ名称区分+コード1+コード2あらゆる「区分」コードの名称対応表(汎用コードブック、§1.5参照)全サブシステム横断188masters_map.md
cvmp品番変換マスタ変換前品番得意先品番⇔社内品番の相互変換(TB⇔AS・SK)技術情報(MENUK1)、デンソーEDI取込102masters_map.md
tymp型種マスタ型種コード金型の型種の名称金型管理(MENUZ1)121masters_map.md
mdmp金型管理マスタ年度連番金型の品番・得意先・保管場所・棚番・移動/廃棄日・最終納期金型管理(MENUZ1)9,527masters_map.md
tbmp棚番管理マスタ保管場所+棚番倉庫の棚の位置・高さ・積載可能箱数・最終入庫日金型管理(MENUZ1)、自動倉庫250masters_map.md
zsmp材質マスタ材質コード材質の比重・単価(材料費計算の元データ)技術情報(MENUK1)、材料管理(MENUZ1)419masters_map.md
szmp使用材料マスタ受注品番+材質+板厚受注品番ごとの使用材料・板厚・材料区分材料管理(MENUZ1)7,732masters_map.md
hzmp標準在庫マスタ単品品番標準在庫数・現在庫・引当済数・得意先別の内示数(当月/翌月/翌々月)号口(MENUW1)352masters_map.md
kbmp社内かんばんマスタ部品品番かんばん方式の入り数・許容端数などの設定号口(MENUW1)126masters_map.md
prmp製品単価マスタ得意先+品番+仕様+単価区分+適用日得意先向け販売単価の履歴(適用日で切替)、外注費・材料費・加工費・表面処理費の内訳、寸法・重量・取り数などコスト積算根拠出荷/請求(MENUS1)、経理(MENUR1)12,100masters_map.md
sgmp作業者マスタ作業者コード作業者名・等級・所属班号口/組付/試作の実績入力184masters_map.md
smmp支給品マスタ(アイシン)受注品番+単品品番アイシンからの支給部品の対応関係と終了区分組付管理(MENUA1)24,092masters_map.md
clmpカレンダーマスタ年月日稼働日/休日区分、曜日、番号生産全般の納期計算14,692masters_map.md
dcmpDNPTカレンダーマスタ年月日clmpと同様の日付マスタだが「オリジナル日程」「進捗度」列を追加で持つデンソー関連の号口処理(MENUD1/MENUW1、§5参照)11,688masters_map.md
nkmpナンバー管理マスタ年月年月ごとの連番・件数・伝票番号・消費税率の発番カウンタ経理(MENUR1)、各種伝票発行197masters_map.md
rnmpロット№マスタロット№ロット№と受注品番の対応号口/試作の作業指示17,745masters_map.md
yxmp西暦変換マスタ西暦年和暦↔西暦変換に加え、設計№生成用のカウンタ列(yxcdsk)を保持技術情報(MENUK1)の設計№発番56masters_map.md
bkmp金融機関マスタ金融機関コード+支店コード銀行名・支店名・手数料区分(振込手数料計算用)経理(MENUR1)162masters_map.md
sqdpCL実行許可設定DSPCL名+DSP名端末(DSP)単位でどのCLプログラムの実行を許可するかの設定システム管理(MENUX1)、全プログラムの入口ゲート65itks01r.md
squpCL実行許可設定USERCL名+USER名ユーザー単位の同様の実行許可設定システム管理(MENUX1)182itks01r.md

件数列は2026年7月時点でDBに投入済みの実データ(7年分のAS/400ダンプ、51テーブル/587,000行)に対するSELECT count(*)の結果。集計方法の詳細は§6 実データスナップショットを参照。

豆知識
sqdp/squpは業務データではなくアクセス制御マスタ。全プログラムの入口で ITSQ01Rという共通の認可ゲートプログラムが呼ばれ、端末(DSP)またはユーザーがこの2マスタに 登録されていないと「このPCからは実行できません」「現在のユーザーでは実行できません」というエラーで 弾かれる。板倉製作所のオフコンには、Webシステムのログイン画面のような仕組みはなく、端末そのものと 利用者IDの組み合わせで実行可否を制御している推測

3. 新しい品番が立ち上がるときのマスタ整備チェーン

新しい得意先品番(新規または設計変更=設変品)を受注したとき、以下の順でマスタが整備される (KSBS01フローが起点。技術情報管理MENUK1が中心)。

  1. 受注品番データ登録 KSBS01(MENUK1)
    jhmp受注品番マスタに新規行を作成。得意先コード・受注品名・担当班・型式・号口区分・ 指示形態・内容区分・表面処理区分・標準在庫数を入力。旧品番があれば削除済(E)マークを付ける。 同じ画面からF5キーで「構成登録」(ITKS10R)、F6キーで「担当班」 (LTNM06R)のサブ画面に飛べる=品番登録と構成登録が一体の作業として設計されている。
    担当: 技術情報管理(MENUK1)
  2. 設計№登録 KSBS03(MENUK1)
    図面番号(設計№)をsnmpに登録。西暦変換マスタyxmpのカウンタを使って 発番される推測
    担当: 技術情報管理(MENUK1)
  3. 構成(BOM)登録 KSBS01のF5、または独立のKSBS09/KSBS10
    ksmp構成マスタに親品番(受注品番)→子品番(部品品番)の展開関係を登録。内外コード (内製/外注)も同時に確定する。
    担当: 技術情報管理(MENUK1)
  4. 単価設定 SSBS04「製品単価入力」(MENUS1)
    prmp製品単価マスタに得意先向け販売単価とコスト内訳(外注費・材料費・加工費・ 表面処理費)を登録。
    担当: 出荷管理(MENUS1)
  5. 受注データ累積処理 ITKS06R(JSBS08から自動呼び出し)
    実際に受注が確定するとjhmpの受注残数(JHJZSU)が加算される、という 後続の自動処理も存在する。
    担当: システム自動処理
注意
KSBS01→設計№登録→構成登録→単価設定の順序を外すと、後工程(号口の作業指示計算、出荷、請求)の どこかで参照エラーになる(例:jhmpが無ければ受注入力自体ができない、ksmpが 無ければ部品展開ができない)。itks01r.md

4. マスタ保守の共通操作パターン

MENUM1配下のマスタ保守画面は、全マスタで同じ4パターンの操作フローに統一されている (AS/400のMNM{W,U,D,Q}nnという命名規則がこの4操作を表す。W=追加、U=変更、D=削除、Q=照会)。 pilot/spec/masters/convention.md

操作キー主な流れ
追加 (W)キー入力→重複チェック(「既に登録済みです」)→全項目入力(5ページ構成、新UIでは1フォームに統合)→バリデーション→確認メッセージ→書き込み
変更 (U)F7=前データ/F8=次データキー入力(F7/F8で前後のレコードへ移動可能)→既存データ読み込み(キー項目自体は編集不可)→編集→同じバリデーション→更新
削除 (D)F23を2回キー入力→読み取り専用で内容表示→F23キーを2回押す二段階確認(「削除する場合はF23を押して下さい」→「確認した上で本当に削除する場合はF23を押して下さい」)→物理削除
照会 (Q)位置指定(先頭文字フィルタ等)→一覧表示→行クリックで詳細表示

この統一パターンのおかげで、新しいマスタ画面の使い方に迷ったときは「他のマスタと同じ 操作方法のはず」と考えてよい。

特殊ケース
削除(D)は物理削除で、参照整合性チェックが一切ない。関連するレコード(例:ksmp構成 データが残っている部品品番)を先に削除すると、他の画面が壊れる可能性がある(レガシーの仕様をそのまま 踏襲=D9 replicate)。「安全策が入っていないのは移行時のバグではなく、元からそういう仕様」という点を 新人は理解しておく必要がある。pilot/spec/masters/convention.md — no referential checks, D9 replicate
豆知識
現場から「変更・削除の操作をしているときに次のレコードへPageDownのように移動したい」という要望が上がり (新實/古橋、easy-feedback #14)、既存のF7=前データ/F8=次データナビゲーションを変更フォームと削除キー 画面にも拡張した(session 35)。1つの共通エンジンで実装されているため、修正は29〜31マスタ全部に同時 適用された。マスタ保守はデータ量が多く、1件ずつ照会・削除していく作業が日常的に発生する、という現場の 実態を示している。docs/decisions.md D24

5. 実データスナップショット

本ページの記述の裏取りとして、実際に運用されていたAS/400の7年分のデータダンプ (51テーブル・約587,000行、PostgreSQLに投入済み)に対して直接クエリを実行し、 上の§2の表に件数列として反映した。ここではその中でも新人が最初に押さえておくと 役立つ実データの中身——得意先コードの実際の割り当て、工程コード全件、NMMPの区分一覧、 カレンダーの実カバー期間、yxmpの中身——を抜粋する。

5.1 得意先マスタ 実データ(コード順・上位15件)

得意先コード得意先名(漢字)得意先名(カナ)
1板倉製作所 社内用イタクラセイサクショ
2サイセイサクサイセイサク
8株式会社アイシン 安城カ)アイシン アンジョウ
9株式会社アイシン 車体生技部(カブ)アイシン セイギセンター
10株式会社 アイシン(カブ)アイシン
11アイシン機工 株式会社アイシンキコウ (カブ)
12株式会社 アイシン 新豊工場(カブ)アイシン シントヨ
13株式会社 アイシン 西尾工場(カブ)アイシン ニシオ
14株式会社 アイシン 新川工場(カブ)アイシン シンカワ
15株式会社 アイシン 藤岡工場アイシン フジオカ
16株式会社 アイシン 試作工場(カブ)アイシン カリヤシサク
17株式会社 アイシン 衣浦工場(カブ)アイシン キヌウラコウジョウ
18AKKーM株式会社エイ・ケイ・ケイ・エム(カブ)
19アイシン機工 株式会社アイシンキコウ (カブ)
20株式会社 デンソープレステック(カブ)デンソープレステック
実データとの食い違い
  • アイシン系コード範囲 — §1.4は「アイシン=3〜17(一部除外あり)」としているが、実データでは コード3〜7に該当する得意先マスタ行は1件も存在しない。実際にアイシン系企業が登録されているのは 8〜17の10コードのみで、「一部除外」というより「3〜7は最初から未使用」という状態に近い。
  • 「アイシン機工」の重複登録 — コード11とコード19の両方に、まったく同じ名称「アイシン機工 株式会社」 が登録されている(住所等の追加項目は今回未確認)。名寄せされていない重複マスタ行の実例。
  • デンソー機工 = コード20? — 0. 全体像ページは得意先コード20を「デンソー(デンソー機工/ デンソープレステック)」としているが、tkmpをテキスト検索した限り、コード20の実データは 「株式会社 デンソープレステック」のみで、「デンソー機工」という名称の得意先マスタ行は 存在しない("機工"で検索してヒットするのはコード11/19のアイシン機工とコード110の 外山精機工業のみ)。デンソー機工とのEDIデータ処理(ITJM63R/ITJM64R)はtkmpのマスタ行を経由せず 別の識別子で処理されている可能性がある推測
  • トヨタ紡織の得意先コード — 0. 全体像ページのトヨタ紡織の得意先コード欄は「—」(未記載)だが、 実データでは4000(トヨタ紡織精工)・5000(トヨタ紡織)・5001(トヨタ紡織広瀬)の3コードが 存在する。アイシン・デンソー系が2桁の若いコードなのに対し、トヨタ紡織系だけ4桁の飛び番号になっている のも実データで初めて分かる特徴。

5.2 工程コード全38件(komp)

§1.4で「工程マスタが正本」とだけ紹介したkompは、実データではわずか38行しかなく、 新人が現場の工程名を一通り覚えるのに十分小さい。全件を掲載する。

工程コード工程名工程略名
0ブランクアナヌキテーキン
1(名称未設定)
10板取り板取り
20ブランクブランク
30絞り絞り
40成形成形
41面押し面押し
42直角出し直角出し
50曲げ曲げ
60切り起こし切起
70打ち出し打出
80ヘミング曲げヘミング
90バーリングバーリング
100孔打ち抜き孔抜き
110トリムトリム
120切り離し切離
130歪み取り歪み取り
140切削切削
150ネジ切りネジ切り
152(名称未設定)
152重複AESTH6524-BC
160テーキンテーキン
170穴あけ穴あけ
180巾出し巾出し
190面取り面取り
200角孔あけ角孔あけ
202カチオン(20UMイジョウ)
205(名称未設定)
210平面出し平面出し
220溶接溶接
230リーマ加工リーマ加工
240研磨研磨
700仕上げ仕上
701外形切り外形切り
800組付組付
810表面処理表面処理
900検査検査
910出荷出荷
実データとの食い違い
  • 工程係数(kokeko)が全38行とも0.00 — §1.4は工程マスタについて「工程係数(KOKEKO)という 重み付け値も持つ」と紹介しているが、実データではkokeko列の値は例外なくすべて0.00 だった。工数見積に使われる重みという触れ込みだが、少なくとも現行データでは実質未使用(あるいは 工数見積は別の場所・別の方法で行われている)と考えられる推測
  • 工程コード152が2行重複 — 同じキー「152」で「(名称未設定)」の行と「AESTH6524-BC」という 名称の行が両方存在する。後者は工程名というより品番のような文字列で、レガシーデータのゴミ行の可能性が 高い。

5.3 nmmp「区分」コード群の内訳

nmmpには空白区分を含め36種類の名称区分(nmkbnm)が実在した。 §1.5で例示した「区分13=支払種別」を実データで確認すると、以下の5件が登録されている。

区分コード2名称
131外注
132材料
133工具
134設備
139その他

ほかにも§1.4で言及した区分が実データで確認できる。区分06(担当班コード)には斉藤工機・ 製作部組・品質課・営業課のほか、大連本精機械有限公司・大連佐久機械貿易有限公司という 海外の協力会社まで含まれていた(15件)。区分18(号口区分)は「試作=1」「号口=9」の 2件のみ。区分30(内外コード)は「社内=1」「外製品=2」「S/A架空構成=8」「支給品=9」 「SUBASSY=10」の5件で、§1.4の内外コードの説明と一致する。

5.4 カレンダーマスタのカバー期間

テーブル件数最古の日付最新の日付
clmp(カレンダーマスタ)14,692日1988-01-032028-03-31
dcmp(DNPTカレンダーマスタ)11,688日1996-04-012028-03-31

clmpは1988年(昭和63年)分から先々2028年3月末まで、約40年分の稼働日/休日区分を あらかじめ持っている。dcmpは1996年4月開始で、デンソー案件(DNPT)が始まった時期の 推測とおおむね符合する。どちらも2028年3月末で終わっており、カレンダーの補充運用が今後必要になる ことが実データからも分かる。

5.5 yxmp(西暦変換マスタ)の中身

yxmpは2018年〜2073年の56行を持ち、yxcdsk(設計№用)列には 25種類の1文字コード(W, X, Y, Z, A, B, …)が年ごとに1つずつ、循環する形で割り当てられている (2018年=W、2019年=X、2020年=Y、2021年=Z、2022年=A、…)。これは§1.2および§6「特殊ケース」で 「推測」としていた「yxcdskは設計№生成用の採番カウンタとして使われている」という仮説と 整合する実データ——1年に1文字を割り当てるローテーション方式は、設計№の中に西暦の代わりに 埋め込む1桁コードとして自然な設計だからである。

5.6 正体が判明した補助テーブル13本 — データ考古学ブリーフより

§2の29マスタとは別に、以前は用途不明のまま存在していた中規模テーブルが13本あった。今回の調査(schema.sql列コメント→edges.csv読み書きプログラム→specs→実データ)でそれぞれの正体を特定した。各テーブルの詳細は所属ページを参照。

テーブル和名正体行数現役 / 停止時期
sjlp製造指示データ指示書発行ログ試作作業指示書の発行監査ログ(試作37,290現役(〜2026-06)
zkdp試作品在庫データ試作品専用在庫マスタ(試作567現役(〜2026-06)
kmdp組付品まとめ指示データトヨタ紡織専用「まとめ指示」のJUDP双子(試作/組付境界378データ停止 2022-08
gddp号口組付品出来高データ号口ロットの完成実績ログ(号口生産2,571現役(〜2026-06)
sddpS/A品出来高データS/A品版gddp(号口生産426現役(〜2026-06)
gkdp号口組付品使用部品データ号口ロットの部品消費トレース(号口生産19データ停止 2021-04
njdpかんばん品内示データかんばん品月次内示(号口生産1,191データ停止 2020-03
juxp1号口組付用一時データ工程内計画表バッチの使い捨てスクラッチ(号口生産191使い捨て(直近実行は2026-06〜09予定分)
ktmp構成ツリーマスタ担当班変更Excel往復専用のBOM木構造(号口生産942データ停止 2014-10
judps8受注データTO PC FOR紡織資料作成用トヨタ紡織向け管理表Excel連携ステージング(ITJM40R、受注管理)520現役ステージング(直近実行分のみ保持、〜2026-08予定分)
judpr8受注データTO PC FOR JZBS14-ITJM02R受注残一覧表Excel連携ステージング(受注管理)246現役ステージング(直近実行分のみ保持、〜2026-09予定分)
judpr9受注データTO PC FOR SSBS62-ITS001R範囲指定請求書Excel連携ステージング(請求)165現役ステージング(実機は使用日数363日で日常稼働中。この165行は当方のテスト実行による副産物で実機データではない、詳細は本節末尾)
bjdpq3部品状況ファイル引継ぎ処理(ITSS06R)専用のワークキュー。1行は最大10回の発行サイクルで自動的に刈り取られる使い捨て設計(受注管理・組付指示引継ぎ)17AS/400ダンプにBJDPQ3は含まれていない。現在の17行は全て当方のpilotテスト実行が書いたもの——実機の状況を示す資料として使ってはならない(訂正参照)

(出典: データ考古学ブリーフ§1-2)

鉄則 — judp*系テーブルの行数・日付だけで実機の稼働状況を語ってはならない

judp*(受注データTO PC)は約30本のファミリー(judpp1..9, judpq5, judpr1/5/7/8/9, judps1..9, judpt2, judpdk 等)があり、各テーブルが1つの下流Excelマクロに1対1で紐づくステージング群。共通パターンとして、呼び出し元CLが実行前にCLRPFMで全消去し、対象プログラムが最初に品番'EXCEPT'のセンチネル行を無条件で1行書いてから本データを書く(Excel側が空ファイルで失敗しないためのガード)。ここまでは以前から分かっていた話——「行数と鮮度は直近何回目の実行結果かを表すだけで、蓄積ログではない」。

ただし2026-07-29のヒアリングで、もう1段深い問題が判明した。本リポジトリのjudp*系テーブルの中身は、そもそもAS/400のダンプデータではない。顧客から受領した7年分ダンプ(bin/AS_DATA-*.zip、63ファイル)にはjudp*ステージング系は1本も含まれておらず、これらのテーブルに書き込むコードは各テーブルにつき移植版バッチ/帳票エンジン1箇所のみ(TRUNCATE→再構築)。つまり行に入っている内容は、当方が移植版エンジンを実DBに対して走らせたテストの副産物であり、AS/400実機のデータを反映したものではない(具体例はjudpr9、下記参照)。

したがって、これらのテーブルの行数・更新日付からAS/400実機の稼働状況(現役/停止の別)を推測することはできない。0件は「顧客が使っていない」ではなく「当方がまだそのエンジンを実DBに対して走らせていない」ことを示すにすぎず、日付が古いことも「AS/400での最終利用日」ではなく「当方が最後にテストを走らせた日」を示すにすぎない。同ファミリーのjudpr1/judpr5/judpr7/judps2/judps9が0件だったことも、AS/400側で使われていない証拠にはならない——単に当方がまだそのエンジンを実DBに対して走らせていないだけであり、DEAD-EMPTYという評価自体が誤りだった。

judpr9(下記)は、この原則を破って「データが古く固定されて見える=AS/400側が止まった」と誤読した実例。(出典: 新實さん、2026-07-29ヒアリングシート回答、docs/feedback/hearing/2026-07-29-niimi-hearing-sheet.md参照 / データ考古学ブリーフ§1補足, §2.12〜2.14)

確認したいこと — judpr9・bjdpq3
  • judpr9(請求書・範囲指定Excel連携)— 実データはEXCEPTセンチネルを除き全て2019年3月・得意先20のみに固定されている。ITS001R/SSBS62(請求書・範囲指定 FOR EXCEL)による請求書発行は、①2019年3月を最後に使われなくなった(別の請求フロー、例えばセッション34で発見したMENUR1経理管理サブシステムに統合された可能性)②今も定期的に使われているが、このDBスナップショットの取得タイミングがたまたま2019年3月時点の残骸を拾っただけ、のどちらか?
    【ヒアリングで判明】 ②側が確定した——新實さん: 「ITS001R(範囲指定 FOR EXCEL)の請求書は現在使用中です。2026年 6月分の請求書もそれを使用しました。」ITS001R自体は今も定期的に現役稼働している。 一方でjudpr9のデータが2019年3月・得意先20時点で固定して見える理由自体は依然不明で、新たな謎として残る——プログラムが現役なのに、なぜこのステージング テーブルだけ2019年3月以降更新されていないように見えるのか、追加調査が必要。(出典: 新實さん、2026-07-22ヒアリング シート回答、hearing.html F4docs/feedback/hearing/2026-07-22-niimi-hearing-sheet-F.md参照 / データ考古学ブリーフ§3-5)
    【2026-07-29ヒアリングで完全解決】 「謎」自体が存在しなかった。新實さんの添付(AS/400実機での DSPFD FILE(JUDPR9) LIBRARY(ITLIBD)スクリーンショット)により、実機のJUDPR9は 最終変更日26/07/21・最終使用日26/07/23・使用日数カウント363と、日常的に稼働していることが確認できた (現在の19レコードはITS001Rが実行のたびにCLRPFM→再書き込みする典型的なステージングファイルの姿)。 一方、本リポジトリのjudpr9はそもそもAS/400のダンプ由来ですらなかった——顧客受領の7年分ダンプ (bin/AS_DATA-20260630T064204Z-3-001.zip、63ファイル)にJUDPR9は含まれておらず、 本リポジトリでこのテーブルに書き込むコードは移植版ITS001RのinvoiceRange()pilot/app/src/menus1/invoices.ts:209-244TRUNCATE→再構築)だけ。中身は invoiceRange()を実DBに対して走らせたテスト実行の副産物で、回帰spec pilot/app/test/e2e/specs/shukka/its001-null-char-crash.e2e.ts:33-41ORDER BY無しのLIMIT 1で拾った得意先・年月がたまたま20・2019年3月だった (推測実行回の特定まではできない——記録に残るのは commit 154dd804(ITS001RのNULL CHAR(2)クラッシュ修正)のライブ検証だが、 同specは実データが同じなら常に同じ組を返す決定的なクエリなので、以降の再実行でも 全く同じ結果になる。確実なのは「当方のテスト実行が書いた」ところまで) (行数165も、invoiceRange()の出力形状='EXCEPT'センチネル1行+明細164行と一致)。 「2019年3月で止まっている」ように見えたのは実機の稼働状況ではなく、当方が自分で作ったテスト出力を 実機データと取り違えていただけであり、謎は最初から存在しなかった。 (出典: 新實さん、2026-07-29ヒアリングシート回答、docs/feedback/hearing/2026-07-29-niimi-hearing-sheet.md参照)
  • bjdpq3(引継ぎ専用ワークキュー)— 【訂正】この項目は、そもそも顧客に尋ねるべき質問ではなかった。
    当初は「17行中16行が無条件センチネル'EXCEPT'、残り1行がCATEST-*というテスト文字列」と記述し、CATEST-*の行だけをテスト汚染の候補として扱っていた。これは当方の誤りである。17行すべてが当方のpilotテスト実行の出力であり、AS/400由来のデータは1行も含まれていない。根拠は3点:
    1. AS/400ダンプ(bin/AS_DATA、63ファイル)にBJDPQ3が存在しない(BJDPQ2・BJDPQ4も同様)。移行元データが最初から無い。
    2. 17行すべてが端末名Q3NMDP='TESTJ'・日付20260630・時刻150700で完全に同一。pilot/app/test/menuj1/carryoverAlloc.test.ts:35const DSP = "TESTJOB "が、char(5)q3nmdpに切り詰められてTESTJになったもの。
    3. CATEST-SUCCCATEST-NOSTOCKは同テストのフィクスチャ文字列。書き込み元はpilot/app/src/menuj1/carryoverAlloc.ts:73,392INSERT INTO bjdpq3
    これはF4(judpr9)とまったく同じ誤りの再発である——自分たちのテスト実行が書いた行を、AS/400実機の状態を示す証拠として読んでしまった。bjdpq3bjdpq2bjdpq4の内容から実機の運用実態を推論してはならない。
    なおhearing.html G5で得た「bjdpq3は組付部品の引継ぎ&引当処理に使う中継ファイルで、処理完了後に内容を保持する必要はない」という用途・ライフサイクルの説明そのものは有効(設変で一部部品だけ新部品に変わる際、設変前の注文に引き当たっている部品を設変後の注文へスライドさせる処理に使う)。無効になったのは「現在の17行の中身」に関する当方の解釈だけである。(出典: 用途は新實さん 2026-07-22ヒアリング / 訂正はダンプ内容・テストコード・実データの突合による)
集計に使ったSQL
-- §2 表の件数列(29マスタ全件、抜粋)
SELECT count(*) FROM tkmp; SELECT count(*) FROM tk1p; SELECT count(*) FROM simp;
SELECT count(*) FROM bhmp; SELECT count(*) FROM jhmp; SELECT count(*) FROM jkmp;
SELECT count(*) FROM ksmp; SELECT count(*) FROM snmp; SELECT count(*) FROM komp;
SELECT count(*) FROM nmmp; SELECT count(*) FROM cvmp; SELECT count(*) FROM tymp;
SELECT count(*) FROM mdmp; SELECT count(*) FROM tbmp; SELECT count(*) FROM zsmp;
SELECT count(*) FROM szmp; SELECT count(*) FROM hzmp; SELECT count(*) FROM kbmp;
SELECT count(*) FROM prmp; SELECT count(*) FROM sgmp; SELECT count(*) FROM smmp;
SELECT count(*) FROM clmp; SELECT count(*) FROM dcmp; SELECT count(*) FROM nkmp;
SELECT count(*) FROM rnmp; SELECT count(*) FROM yxmp; SELECT count(*) FROM bkmp;
SELECT count(*) FROM sqdp; SELECT count(*) FROM squp;

-- §5.1 得意先 上位15件
SELECT tkcdtk, tknmkn, tknmkj FROM tkmp ORDER BY tkcdtk ASC LIMIT 15;
-- アイシン範囲の裏取り
SELECT tkcdtk FROM tkmp WHERE tkcdtk BETWEEN 3 AND 17 ORDER BY tkcdtk;
-- デンソー・機工系の名称検索
SELECT tkcdtk, tknmkn, tknmkj FROM tkmp WHERE tknmkj LIKE '%デンソー%' OR tknmkn LIKE '%デンソー%';
SELECT tkcdtk, tknmkn, tknmkj FROM tkmp WHERE tknmkj LIKE '%機工%';
-- トヨタ紡織系の名称検索
SELECT tkcdtk, tknmkn, tknmkj FROM tkmp WHERE tknmkj LIKE '%トヨタ紡織%' OR tknmkn LIKE '%ホウショク%';

-- §5.2 工程コード全件
SELECT kocdko, konmko, kormko, kokeko FROM komp ORDER BY kocdko;
SELECT DISTINCT kokeko FROM komp;

-- §5.3 nmmp 区分一覧・区分13/06/18/30の中身
SELECT nmkbnm, count(*) FROM nmmp GROUP BY nmkbnm ORDER BY nmkbnm;
SELECT nmkbnm, nmcdnx, nmcdnd, nm06nm, nm42nm FROM nmmp WHERE nmkbnm = '13' ORDER BY nmcdnx, nmcdnd;
SELECT nmkbnm, nmcdnx, nmcdnd, nm42nm FROM nmmp WHERE nmkbnm IN ('06','18','30') ORDER BY nmkbnm, nmcdnx, nmcdnd;

-- §5.4 カレンダーカバー期間
SELECT MIN(clymd), MAX(clymd), count(*) FROM clmp;
SELECT MIN(dcymd), MAX(dcymd), count(*) FROM dcmp;

-- §5.5 yxmpの中身
SELECT * FROM yxmp ORDER BY yxyyyy LIMIT 5;
SELECT MIN(yxyyyy), MAX(yxyyyy), count(*), count(DISTINCT yxcdsk) FROM yxmp;

-- §5.6 正体判明13テーブル(行数・鮮度)
SELECT count(*) FROM sjlp; SELECT count(*) FROM zkdp; SELECT count(*) FROM kmdp;
SELECT count(*) FROM gddp; SELECT count(*) FROM sddp; SELECT count(*) FROM gkdp;
SELECT count(*) FROM njdp; SELECT count(*) FROM juxp1; SELECT count(*) FROM ktmp;
SELECT count(*) FROM judps8; SELECT count(*) FROM judpr8; SELECT count(*) FROM judpr9;
SELECT count(*) FROM bjdpq3;
-- bjdpq3の17行は当方のテスト出力(端末TESTJ・同一時刻)。実機の状況は示さない:
SELECT q3nmdp, q3date, q3time, count(*) FROM bjdpq3 GROUP BY 1,2,3;
SELECT count(*) FROM judpr1; SELECT count(*) FROM judpr5; SELECT count(*) FROM judpr7;
SELECT count(*) FROM judps2; SELECT count(*) FROM judps9; -- 0件(実機の稼働状況は示さない、鉄則参照)

6. 特殊ケース

特殊ケース: NMMP汎用コード表と未解明のフィールド
内容区分・表面処理区分・材料区分・板取区分・依頼区分・受注区分・内外コード・号口区分・担当班コード等、 板倉システムに大量に存在する「◯◯区分」コードは、専用テーブルを持たずすべてnmmpという 1つの名称マスタにまとめて格納されている(キーは名称区分+コード1+コード2の複合キー)。これはAS/400 開発でよく見られる「コードブックパターン」だが、副作用として「区分の値が何を意味するか」を知るには NMMPの中身を見に行くしかないという属人化リスクを生んでいる。実際、WSKUDE(伝票区分) フィールドについては「コード体系(特に3桁目)が未確定のため一覧はありません。値の意味は担当者に確認 してください。」という注記が入力ガイドに残っているほど、一部のコードの意味は現時点でも解明されていないpilot/app/public/data/screen-help.json
例外: 材料区分(NMMP区分10、BHKUZI)だけは古い作業手順書アーカイブで値の意味が解明できました —— 詳細は engineering.html §11 参照。
特殊ケース: 西暦変換マスタ(yxmp)が持つ「設計№用」の隠れた役割
yxmp西暦変換マスタは名前の通り和暦↔西暦の変換テーブルだが、yxcdsk(「設計№用」と ラベル付けされた列)を持つことから、単なる暦変換だけでなく設計№の採番カウンタとしても使われている と推測される推測(列名とsnmp設計№マスタとの関連から)。 1つのマスタが表向きの用途(暦変換)と裏の用途(採番)を両方持っている例。 masters_map.md
特殊ケース: カレンダーマスタが2つ存在する理由(clmpとdcmp)
clmp(カレンダーマスタ)とdcmp(DNPTカレンダーマスタ)はほぼ同じ列構成 (年月日・曜日・番号)を持つが、dcmpだけが追加で「オリジナル日程」「進捗度」という列を持つ。 カレンダー名に含まれる「DNPT」は、デンソー関連の号口処理サブシステムMENUD1(=「DNPT 号口処理」サブシステム、到達不能メニュー)と綴りが一致することから、デンソー案件専用の生産進捗管理 カレンダーである可能性が高い推測dcmpという別テーブル が独立して存在する理由は、通常のカレンダーclmpに「進捗度」のような案件固有の状態を混ぜたく なかったためと推測される)。 masters_map.md
特殊ケース: 権限管理が「ユーザー」と「端末」の両方に存在する
一般的なWebシステムのようなログインID+パスワードだけでなく、sqdp(CL実行許可設定DSP=端末 単位)とsqup(CL実行許可設定USER=ユーザー単位)という2種類の許可マスタが両方存在し、 全プログラムの入口ITSQ01Rが両方をチェックする。「このPCからは実行できません」という メッセージは、使っている端末(PC/オフコン端末)そのものが許可されていない場合に出る(ユーザーが正しくても 弾かれる)。この二重チェックの仕組みは、特定の重要な処理(マスタ保守や経理系)を特定の物理端末からしか 実行できないようにするという運用上の安全策と考えられる推測itks01r.md「Auth gate」
板倉製作所 業務フロー資料 — 出典: AS/400 ソース・翻訳仕様・Excel/VBA 資産(itakura-sys リポジトリ) ← 0. 全体像 / 2. 見積・製品単価 →