5. 号口生産・組付
受注が確定した後、実際にモノを作り、在庫に反映するまで — 号口(量産)部品を作る MENUW1 と、部品を製品に組み立てる MENUA1/アイシン支給品管理の流れを解説する。
1. 業務の位置づけ
2. 号口とは
3. 号口部品の標準フロー(WSBS01〜04)
4. かんばんの2つの世界(かんばん品 vs 社内かんばん)
5. 組付品フロー(MENUA1)
6. 在庫管理
7. アイシン支給品管理
8. 計画系
9. 特殊ケース
10. 実データスナップショット
11. 関連マスタ・データ/帳票一覧
12. 用語集
13. 他業務との接続点
未解明事項(現場担当者への質問リスト)
- 号口(量産)はWSBS01〜04の標準フローで作業指示→かんばん発行→完成入力→在庫反映まで進む。
- かんばんには得意先かんばんと社内かんばんの2つの世界があり、混同すると発行数がずれる。
- 号口指示SJDPの97.9%は終了(SJKUFX=9)まで到達するが、その内訳は完成73.1%・中止24.8%。担当班80が最大勢力(60.9%)。
1. 業務の位置づけ
板倉製作所の生産は、大まかに次の流れで動く。「受注が確定した後、実際にモノを作り、在庫に反映するまで」が本ページの範囲であり、試作・工機(別ページ「6. 試作・工機・材料・金型」)と、出荷指示そのものの発行(別ページ「7. 出荷」)は対象外である。
エビデンス: analysis/out/menu_tree.md L193-246(MENUW1/MENUA1のメニュー構成)、docs/decisions.md D11 (L192-238)・D12 (L240-280)。
2. 号口とは
「号口(ごうくち)」は板倉製作所での量産・繰り返し生産を指す社内用語である。同じ部品を継続的に注文を受けて作り続ける通常のリピート生産品を指し、これに対して「試作」は開発段階の一回限り・少量生産を意味する。
システム上は、受注データ JUDP の JUD605(指示形態)、または受注品番マスター JHMP の JHD062(指示形態)/JHKUGO(号口区分)というコード値で号口/試作/単品出荷/組付まとめが区別される。
| コード帯 | 意味 |
|---|---|
| 11〜19 | 単品出荷品(組立を経ず単体で出荷) |
| 21〜29 | 試作組付品(試作段階の組立指示) |
| 31 | 組付まとめ指示(複数受注をまとめて処理) |
| 51〜69 | 号口品(量産・繰り返し生産) — 本ページの中心 |
pilot/spec/menuj1-open-questions.md L464, pilot/spec/itjm77r.md L21-23, pilot/spec/menuw-open-questions.md L78, pilot/spec/itjm03r.md L159)
JHKUGO=9 が JHMP 上で「号口区分=量産品」であることを示す実例が確認できる。
「号口品」は主に部品単体(単品)を指し、それを組み立てた製品(アセンブリ)を扱うのが「組付品」である。号口品の生産計算・作業指示・完成入力は MENUW1(本ページ §3)、組付品の指示完了・部品準備状況は MENUA1(本ページ §5)が担当する。
docs/feedback/analysis/2026-07-20-niimi-shijikeitai.md参照)
3. 号口部品の標準フロー
MENUW1(号口管理サブシステム)の中核プログラム群。全体像は84プログラム・19,564行に及ぶ。(出典: analysis/out/pilot_MENUW1.md、analysis/out/menu_tree.md L193-219)
- WSBS01 号口部品作業指示数計算 ITGO50R ITGO40/41/42R AS/400
号口部品の生産数を毎晩(またはオンデマンドで)自動計算する。エンジンは2種類ある(詳細は下の<details>を参照)。担当: 生産管理(バッチ実行) - WSBS02 号口部品作業指示納期設定 ITGO52R AS/400
WSBS01で作られた指示(納期が未確定/仮のもの)に対し、担当者が画面上で個別に納期を確認・修正するインタラクティブ画面。サブファイルの表示上限は19件(SFLSIZ=19)だが、Web版では無制限リスト化する方針。 (出典:pilot/spec/menuw-open-questions.mdL163-172)担当: 生産管理 - 作業指示書の印刷 WSBS03/05/07 AS/400 Excel/VBA
現場に「これを作れ」と渡す紙を発行する。かんばん品と社内かんばんという2つの異なる仕組みがある — 詳細は §4 かんばんの2つの世界 を参照。Excel側の実体は作業指示書発行.xlsm(SJXP.xlsを読み、金型保管情報はMDMP、備考は作業指示付加情報マスタ.xlsxから補完し、印刷プリンタを1台に固定、Wordオブジェクトで号口用チェックシートも同時出力)。詳細は§8.4参照。 (出典:source/production/作業指示書発行2/作業指示書発行.xlsmモジュールmodMain先頭コメント・Const DATA_FILE = "SJXP.xls")担当: 現場・生産管理 - WSBS11 作業指示完成入力(部品) ITTS15R AS/400
現場作業者が処理者コードと受注№を入力すると、指示品番・指示数・出荷納期が表示され、完成日・出来高(実際にできた数)・半加工数・進行度・保管場所・使用材料番号を入力する。確定すると次の更新が走る。担当: 現場作業者 - WSBS12 作業指示出来高訂正(部品) ITTS16R AS/400
すでに完成入力済み(SJKUFX=9)の号口指示に対し、出来高数量を後から訂正する。訂正前後の差分(符号付き)をBHMP/JHMPの在庫数に加減算する。担当: 生産管理・現場 - WSBS04 号口出来高報告書発行 ITGO61R AS/400 Excel/VBA
単一の号口品受注について「出来高報告書」(生産実績報告書)を発行する。構成部品ごとにロット番号を採番し、Excelマクロ BAT0804 が起動して帳票を印刷する。Excel側の実体は号口出来高報告書発行.xlsm(Dekidaka/フォルダ)— 詳細は§9.4参照。担当: 生産管理
詳細: WSBS01の2つの計算エンジン(標準在庫方式 vs 生産計画610B方式)
| エンジン | プログラム | 対象 | ロジック概要 |
|---|---|---|---|
| 標準在庫方式(主エンジン) | ITGO50R(2,309行) | 号口の単品部品(組付品の構成部品を含む)全般 | ① 部品ごとの標準在庫・ロットサイズ・現在庫・出荷実績のワークマスタ BHMPP1 を作る
→ ② 未消化の号口指示を SJDPP7 にスナップショット
→ ③ 受注残(JUDP)と標準在庫を現在庫・既存指示に引き当て、不足分の新規指示を作る
→ ④ 稼働日カレンダー(CLMP/CLML1)で納期を計算
→ ⑤ かんばん品や特定部品ファミリの特例ルールを適用
→ ⑥ 余剰指示のキャンセル・近接納期の指示の合算
→ ⑦ 最終的に SJDP(製造指示データ)へ書き戻す。 |
| 生産計画610B方式(特殊経路) | ITGO40R/ITGO41R/ITGO42R(合計約2,600行) | 610B(顧客プログラム/最終組立ライン)向けのみ 610B | S/A(サブアセンブリ)生産計画データ GSJP/GAJP を先に作り(ITGO41R/42R)、それを個別部品の作業指示に展開する(ITGO40R)。メニュー上は MENUW2 のオプション27/28(WSBS27/28)から起動し、WSBS01(ITGO50R)とは別の計算経路になる。 |
「標準在庫を切らさないように自動補充する」通常ロジック(ITGO50R)と、「610Bという特定の顧客ライン向けに生産計画から逆算する」特殊ロジック(ITGO40/41/42R)の二本立てである。
どちらの計算結果も、最終的に製造指示データ SJDP に1行の「作業指示」として書き込まれる。受注№は既存の受注に紐付くこともあれば、システムが自動採番した 99xxxxxx(マスタ管理番号マスタ JKMP のカウンタ 222222 から採番)の号口専用受注番号になることもある。
pilot/spec/itgo50r.md「## Purpose」、pilot/spec/itgo40r.md「## Purpose」、docs/decisions.md D11 L227-231)
この計算の2つの中間ワークファイルは、Excel側でも別経路のメール監視ジョブとして参照されている。BHMPP1(①の標準在庫ワークマスタ)は号口指示計算時の設定情報メール送付.xlsm(試作担当向け_S版・試作担当以外向け_G版あり)が読み取り、完成品/組付部品それぞれの標準在庫設定一覧をメールで担当者に配信する。SJDPP7(②の未消化指示スナップショット)は号口指示納期修正リスト送付.xlsm(同じく_G/_S分岐あり)が読み取り、材料管理マスタ・NMMPと突き合わせて「納期が変わった指示に使う材料は何か」を材料担当者へメールする——WSBS01の自動計算結果を現場が検算・追跡するための可視化レイヤーである。(出典: source/production/作業指示書発行2/号口指示計算時の設定情報メール送付.xlsm・号口指示納期修正リスト送付.xlsm 各Const DATA_FILE)
実業務手順書で解明 — 2001年作成の社内手順書「データフロー(号口品)」にも同種の帳票「号口部品作業指示納期修正リスト」が描かれており、「*変更内容は、納期の早出しのみ」という注記が付いている——このリストが捉えるのは納期が前倒しになったケースのみで、後ろ倒し(延期)は対象外という業務ルールが、少なくとも2001年当時から一貫して存在していたと見られる。同帳票はshipping.html §7のVBA調査では出荷指示書発行/・出荷準備/の2フォルダの精査では痕跡が見つからなかったとされているが、実際には本ページで確認した通り作業指示書発行2/フォルダに現役で存在する。(出典: source/work-procedures/作業手順書/データフロー(号口品).doc参照)
詳細: もう一つの完成入力経路(WSBS41〜48 出来高報告書系)
MENUW2 側にはさらに「出来高報告書」専用の入力・確認・訂正・履歴プログラム群がある(WSBS41出来高入力/WSBS42出来高確認/WSBS45出来高訂正/WSBS46出来高履歴、および S/A品版のWSBS43/47/48)。ITGO22R〜ITGO26R(作業指示完成入力/出来高訂正/出来高履歴、出来高報告書版)がその実体で、WSBS11/12(ITTS15R/16R)と並行する「もう一つの完成入力経路」として存在する。両者の使い分けは号口出来高報告書(ラベル紙運用)が絡む受注かどうかで分岐すると見られる 推測。
(出典:analysis/out/pilot_MENUW1.md L20-24)
JHMP.JHD033=100(品番紙要不要フラグ)が立っている品番はラベル印刷用ステージング SJDPP3 に1行書かれ、件数カウンタ KENSU が増える。KENSU>0ならExcelマクロ BAT0811 が起動し「品番紙」(部品識別ラベル)を印刷する。
(出典: pilot/spec/itts15r.md「## Purpose」「### UPDAT」)
4. かんばんの2つの世界
ここが最も混同しやすい部分。板倉製作所の実装には2つの異なる「かんばん」概念が存在し、名前は似ているが動きが正反対である。
| (A) かんばん品 | (B) 社内かんばん | |
|---|---|---|
| 担当 | WSBS03/05 ITSJ82R/ITSJ84R | WSBS07 ITGO54R |
| 何をするか | WSBS01が事前に計算・登録済みの号口指示(SJDPの行)を、現場のかんばんカードから「印刷して現場に払い出す」処理 | 事前計算された指示を印刷するのではなく、かんばんカードそのものが新規の指示を即時に生成するトリガーになる |
| 動き | 作業者がかんばんカードの部品品番をスキャン/入力すると、その部品の未発行の指示のうち最も納期が古いものを1件選び、SJKBWK='E'(発行済み)と発行日・手動発行フラグを立て、発行ログSJLPに記録し、Excel転記用ステージングSJXPに1行書き出す | 作業者が部品品番を入力すると、その部品を構成部品として使う受注品番をKSML1(構成マスターの逆引き)経由で特定し、部品名・標準ロットサイズ(BHMP.BHRTSZ)ベースの指示数・稼働日カレンダーから算出した納期を画面で確認させ、確定するとSJDPに新しい行を1件書き込む(SJKUSJ=3号口品)。既存レコードの更新は一切せず、必ず新規作成のみ |
| 性質 | あらかじめ計算済みの号口計画(WSBS01)を「発行タイミングをかんばんでコントロールする」仕組み | 計画計算を経ず、現場のかんばんカードの回転そのものが「作れ」の合図になる仕組み(トヨタ生産方式の"かんばん"本来の即時補充の考え方に近い) |
ITSJ84R は 610B(特定顧客ライン)向けの派生で、KBMP.KBD101=1 の部品は納期・数量を印字しない、かつ「現場に1枚しか出せない」制限を外し複数枚同時発行を許す。(出典: pilot/spec/itsj84r.md)
pilot/spec/menuw-open-questions.md L118-120)
社内かんばんの実運用を支えるマスタはかんばん品番マスター kbmp(キー kbhnbb=部品品番)で、入り数(kbd601)、許容端数(kbd602)などを保持する。「この得意先では、かんばん品は1件もありません」というエラーメッセージが実装に存在し、得意先ごとにかんばん品番の有無をチェックするロジックがあることが確認できる。(出典: pilot/app/public/data/screen-help.json L31)
詳細: 指示書の強制発行・再発行(WSBS35/36)
WSBS35(ITSJ85R)は既発行の指示SJKBWKを'E'→'S'(再発行待ち)に1フィールドだけ変更する処理で、印刷や計算は一切行わない。ダウンストリームの印刷処理がSJKBWK='S'を見つけて再印刷する。
WSBS36(号口作業指示書強制発行、ソース欠落 ソース欠落)はWSBS35の兄弟プログラムとして復元予定 — 未発行状態を無視して強制的に発行対象に含める処理と推定される 推測。
【1次資料で判明】 ITSJ85R自身は2020-11-18付の変更依頼書で新設が確認できる。「データの内容にかかわらず、すでに発行されている作業指示書について無条件で再発行するプログラムを作成するため、SJKBWKに新たな区分('S'=再発行指定中)を設けた」という追加理由が明記されており、上記のロジック理解と完全に一致する。(出典: source/dev-archive/20201118_号口用作業指示書再発行/20201118_号口用作業指示書再発行.xlsx参照)
pilot/spec/itsj85r.md「## Purpose」、pilot/spec/wsbs36-rebuild.md)
5. 組付品フロー
MENUA1(組付管理サブシステム)と、その下位メニュー MENUA2(支給品管理)を扱う。組付品=単品部品を組み合わせて作る製品(アセンブリ)。号口品との違いは、号口が「単品部品を作る」のに対し、組付は「複数の部品を集めて一つの製品に組み立てる」工程を指す点。(出典: pilot/spec/menua1-reuse-map.md、pilot/spec/menua1-open-questions.md)
- 部品引当(準備状況)確認 ASBS14 ASBS15 AS/400
組立を始める前に「必要な部品が揃っているか」を確認する照会画面。ASBS14→ITKM02R(通常受注向け、JUDP/JUDL09キー)、ASBS15→ITKM03R(組付まとめ指示向け、KMDP/KMDL01キー、ロジックはほぼ同一)。担当: 現場・生産管理 - 組付指示書発行(JSBS08C バッチ、受注管理側の管轄)AS/400 Excel/VBA
組付指示書そのものの発行は JSBS08C(出荷・組付指示書発行オーケストレータ)が担当し、これは本ページの領域外(受注ページの管轄)である。ただし内部で ITKM11〜17R(まとめ指示関連の組付エンジン)を順番に呼び出しており、MENUA1が読むKMDP(組付品まとめ指示データ)はこのバッチが作る/更新するデータなので、下の詳細を参照。担当: 受注管理側バッチ - ASBS11 組付指示完成入力 ITJM77R AS/400
JSBS08Cが発行した組付指示に対し、現場が「これで組み終わった」と申告する入口。操作者が受注№を入力すると、その品番に紐付く未完了(JUKUED=0、JUKUST=空白)な組付指示行(JUDL09、指示形態21〜29の試作組付範囲のみ対象)がサブファイルに一覧表示される。各行に「打切区分」を0(そのまま)または8(完成)で入力し、確定すると該当行のJUDP.JUKUED=8・JUKNHI=当日(完成日)を書き込む。8を入力した行だけが更新され、0のままの行はスキップされる。後続バッチも起動しない(この完成入力単体では印刷・在庫連携をしない)。担当: 現場作業者
JUDL09を品番でスキャン)では指示形態の再フィルタをしておらず、21〜29の範囲外の行が紛れ込む可能性がある。(出典: pilot/spec/itjm77r.md「## Open questions §1」)
詳細: JSBS08Cの処理順序(まとめ指示エンジン群 ITKM11〜17R)
KMDPP1 を空にする | |
| ↓ | ITKM11R(まとめ指示作成)→ 件数>0ならBAT0108C印刷 |
| ↓ | (件数>0の場合のみ)RZBJDPQ2(作業キュー掃除)→ ITKM12R(組付部品振戻)→ ITKM13R(再引当)→ 件数>0ならBAT1001印刷 → MKBJDPQ2(作業キュー処理回数+1) |
| ↓ | ITSS05R(単品調整) |
| ↓ | ITSJ07R(出荷指示)→ 件数>0ならBAT0109印刷 |
| ↓ | ITSS01R(構成展開)→ ITKM14R(まとめ指示BOM組立) |
| ↓ | ITSS06R(繰越引当)→ BAT0108A印刷 |
| ↓ | ITSS03R(分納引当)→ BAT0108B印刷 |
| ↓ | ITSS08R(組付在庫引当)→ ITKM15R(まとめ指示在庫反映) |
| ↓ | ITTS44R(支給数反映)→ ITKM16R(まとめ指示支給反映) |
| ↓ | ITSS02R(組付指示作成、件数=ken04)→ ITKM17R(まとめ指示分を累算)→ 件数>0ならBAT0108(組付指示書)印刷 |
| ↓ | ITKS06R(受注累算) |
pilot/spec/jsbs08c-matome-wiring.md §2)
上表のBATコールはいずれも「Excel macro, not in repo」と仕様書側に注記されていた印刷ステージの実体だが、source/production/組付指示書発行/・組付まとめ指示/のマクロブックを開くと、ステージングデータ受信ファイル名(Const DATA_FILE)がAS/400側仕様書の記述と1対1で一致することが確認できる。
| BAT | Excelブック実体 | 受信データファイル | AS/400側の対応工程 |
|---|---|---|---|
| BAT0108 | 組付指示書発行.xlsm | BJDPP2.xls | ITSS02R(組付指示作成) |
| BAT0108A | 組付部品引当在庫の引継ぎ指示書印刷.xlsm | BJDPQ3.xls | ITSS06R(繰越引当) |
| BAT0108B | 組付部品引当在庫の分納引継ぎ指示書印刷.xlsm | BJDPQ4.xls | ITSS03R(分納引当) |
| BAT0108C | 試作組付まとめ指示データ修正リスト印刷.xlsm | KMDPP1.xls | ITKM11R(まとめ指示作成) |
| BAT1001 | 部品在庫引当の自動変更結果印刷.xlsm | BJDPQ2.xls | ITKM12R/ITKM13R(組付部品振戻・再引当) |
いずれも共通のExcelマクロ基盤(§8.4参照)に乗っており、印刷後はBJDPQ2_Log.xls/BJDPQ3_Log.xls/BJDPQ4_Log.xlsという処理済ログに当該行を記録し、次回転送時に同じデータを二重処理しないようにする(AS/400側は「一定期間、処理済データも一緒に再送する」設計のため、Excel側の重複排除ログが正となる)。組付部品入庫指示書発行(BJDPP1.xls、TSBS11のBAT1011)・品番構成変更データ印刷(BJDPP9.xls、KSBS41/ITKS13R)も同じ基盤上の姉妹プログラムだが、こちらはJSBS08Cの外(それぞれTSBS11、MENUK1のKSBS41)から呼ばれる別系統。組付部品過剰引当チェックリストメール送付.xlsm(BJDPQ5.xls)だけは、このデータを書き出すAS/400側プログラムが仕様書調査の範囲で特定できなかった推測。
pilot/spec/itss02r.md L24「CALL PGM(BAT0108)」、pilot/spec/itss06r.md L25「CALL PGM(BAT0108A)」、pilot/spec/itss03r.md L7「CALL PGM(BAT0108B)」、pilot/spec/itkm11r.md L64「print-staging rows for BAT0108C」、pilot/spec/itkm12r.md L27「IF &KEN02 > 0 → CALL BAT1001 ← BJDPQ2」、pilot/spec/itts11r.md L30「generates one 入庫指示書 P1DR record in BJDPP1 for BAT1011」、pilot/spec/menuk1-predig.md L29「BJDPP9 print」、各マクロのConst DATA_FILE/Const SAVE_FILE定義)
試作組付まとめ指示データ修正リスト印刷.xlsmが印刷のたびに保存する出力アーカイブ(組付まとめ指示/試作組付まとめ指示データ修正リスト/、タイムスタンプ付きファイル名59件)は、2021-09-17〜2022-08-09の範囲で止まっており、同じ基盤を使う兄弟フォルダ(作業指示書発行2/受注内容変更連絡書/等、2026年6月まで書き込みが続く)と対照的。マクロブック自体は現役のまま残っている。njdp/gkdp/ktmpと同種の「コードは生きているがデータが止まっている」パターンに見えたが、これはコードの不具合ではなく業務としての廃止だった: 「まとめ指示」は営業部からの依頼で作成されたが、品質課が営業部にやめてほしいと依頼し、使用されなくなった。品質課が中止を求めた具体的な理由自体は品質課への確認事項として残るが参考情報にとどまり、指示形態31を新システムで再現するかどうかの移行スコープ判断には影響しない——「業務として廃止済み」で判断材料としては十分。hearing.html C6参照。(出典: 新實さん、2026-07-29ヒアリングシート回答、docs/feedback/hearing/2026-07-29-niimi-hearing-sheet.md参照)
【1次資料で判明・開始側のみ】 2021-10-15付の社内説明会資料(PDF)とテストデータにより、この機能の本番投入時期が裏付けられます: テスト記録はKMDPP1・JUDPP1等への実書込みを2021-10-22〜2021-11-26の範囲で記録しており、指示形態コード31(まとめ組付品)自体も2021/8/27に追加作業が始まったばかりの新設コードでした(order.html §7参照)。開始(2021年末)は裏付けられましたが、なぜ2022年8月に止まったかはこの資料からは分かりません——引き続き未確認のままです。停止理由は上のコールアウトの通り判明済み(品質課の要請による業務廃止)。
まとめ指示とは
「まとめ指示」(指示形態=31)は、複数の個別受注を1つの組付作業単位にまとめて処理する仕組み。組付品まとめ指示データKMDPにレコードが作られ、通常の個別受注ベースの組付指示(JUDP/JUDL09)とは別経路で管理される。ASBS17(品番別まとめ指示問合せ、ITKM01R)は品番を指定するとKMDL01(KMDP論理ファイル)から該当するまとめ指示行を一覧表示する読み取り専用照会で、受注№・組付納期・出荷納期・指示数・完成日・完成数を確認できる。まとめ指示データそのものの作成・更新は前掲のJSBS08Cバッチ内のITKM11〜17Rが担当し、MENUA1側は照会のみ。(出典: pilot/spec/itkm01r.md「## Purpose」「### #DATA」)
2021-10-15付の社内説明会資料により、まとめ指示導入時の業務フロー・メニュー構成が判明しました。導入と同時に、受注管理サブシステムへオプション20「受注データ変更処理(まとめ)」(*変更後は必ずオプション8=出荷・組付指示書発行を実行する運用注記あり)・24「組付指示書再発行(まとめ指示)」、組付管理サブシステムへオプション15「組付部品準備状況問合せ まとめ」、試作管理サブシステムへオプション12「作業指示完成入力(まとめ指示)」、試作管理サブシステム2へオプション28「組付指示書出庫処理(まとめ)」・33「組付部品完成状況入力(まとめ)」という、既存の各処理と1対1で対になる専用メニュー一式が新設されています。
フローチャートによれば手順は: 受注処理 → 組付指示書発行時にまとめ指示に数量変更等があれば連絡書①(=上表BAT0108Cが出す「試作組付まとめ指示データ修正リスト」そのもの)を発行 → 同一品番・同一納期の注文数量を1枚の組付指示書へ束ねる(まとめ組付) → 出荷納期の稼動10日前に出庫処理 → 不足分のみ従来通り作業指示書を発行 → 生産・入庫 → 入庫指示書発行と現品票発行(組付指示書が出ているものだけが対象、使用済み入庫指示書は廃棄) → 出庫作業(この工程はPC処理なし=手作業) → 組付開始・製品完成(組付側では消込をしない) → 品質課が組付指示書を消込 → 注文単位で出荷指示書を発行 → 検査・出荷、という流れです。
受注管理サブシステムのメニューでは、まとめ指示関連オプション(17-20・24)のすぐ隣にオプション13「トヨタ紡織管理表用データ作成」が配置されており、メニュー構成そのものからもまとめ指示がトヨタ紡織向け専用機能として設計されたことが読み取れます(hearing.html C6が指摘する「得意先5000トヨタ紡織・担当班3のみ」という実データの絞り込みと整合)。
(出典: source/dev-archive/20211015_組付まとめ指示システム/説明会資料.pdf、同フォルダ/組付まとめ指示システム.xlsx「まとめ用OP」「テストデータ」シート参照。hearing.html C6の「まとめ指示とは何か・いつ始まったか」の疑問に対応。2022年8月の停止理由自体は上のコールアウトの通り判明済み(品質課の要請による業務廃止))補足(実資料): 完了指示書の処理関係フローチャート索引(B0-00)を確認したところ、同索引が挙げる帳票種別8種(単品出荷品用生産指示書/組付部品用生産指示書/号口出荷品用作業指示書/号口組付用作業指示書/号口用出荷指示書/号口出来高報告書/組付指示書、および「フロー図なし」の3種)の中にまとめ指示専用の帳票種別は存在せず、通常の「組付指示書」フロー図(B6-00)自体もまとめ/個別を区別する分岐を持ちません。これは「まとめ指示は独立した文書種別ではなく、指示形態=31という発行時の条件分岐に過ぎない」という上記の理解と整合する消極的な裏付けです。(出典: source/work-procedures/作業手順書/(B) 完了指示書の処理関係/(B0-00) 作業終了後の指示書の処理.xlsx・(B6-00) 組付指示書の処理フロー図.xls参照)
BJDP.BJKBWK='E')の受注は受注№を反転表示、不足している部品品番は個別に反転表示する。PBZBCKR、他受注との仮の重複引当調整)も加味される。
(出典: pilot/spec/itkm02r.md「## Purpose」「### #BJCK」) (出典: source/dev-archive/20110304_組付部品在庫引当方法の変更/20110304_組付部品在庫引当方法の変更.xls「組付部品変更」シート・「区分変化」シート9-14参照)
単品 vs 組付品の違い(まとめ)
| 観点 | 単品(号口部品) | 組付品 |
|---|---|---|
| 生産の単位 | 部品1点そのものを製造 | 複数部品を組み立てて1製品にする |
| 担当メニュー | MENUW1 | MENUA1(+JSBS08C側の組付指示発行) |
| 完成入力 | WSBS11 (ITTS15R) | ASBS11 (ITJM77R) |
| 指示元 | WSBS01計算エンジン or 社内かんばん | JSBS08Cバッチ(受注管理側) |
| 指示形態コード | 51〜69 | 21〜29(試作組付)/31(まとめ指示) |
組付指示発行の先には出荷指示発行プロセスがある。JSBS08Cは組付指示発行と出荷指示発行を1つのバッチにまとめているため(上の詳細の呼び出し列に出荷側プログラムITSJ07R等も混在)、出荷指示書の発行そのものについては「7. 出荷」ページを参照。
6. 在庫管理
号口・組付の在庫は大きく2種類に分かれる。
6.1 完成品在庫 — WSBS08 号口完成品在庫一覧表 ITGO11R AS/400
受注品番マスター(JHMP)上で在庫がプラスの号口品について、正味の出荷可能数量(現在庫数 − 引当済の未来受注)を計算し、単価(PBTANKR経由、得意先コード=0を使う慣行)を掛けて在庫金額を印字する132桁の帳票。当日出荷分は除外、試作指示品は号口コードを持っていても除外される。(出典: pilot/spec/itgo11r.md「## Purpose」)
pilot/spec/menuw-open-questions.md L32-36)
(出典: 新實さん、2026-07-23ヒアリングシート回答C、docs/feedback/hearing/2026-07-23-niimi-hearing-sheet-C.md参照、hearing.html C1)
6.2 組付部品在庫 — WSBS09 号口組付部品在庫一覧表 ITGO12R AS/400
号口品ごとに構成マスター(KSMP)から内製・外注の構成部品を展開し、必要数を部品の現在庫(BHMP.BHZASU)から差し引いて、部品ごとに残高がプラスのものだけを印字する帳票。複数の号口品が同じ部品を必要とする場合は数量を合算し、単価は「非ゼロで最も低い単価」を採用する。(出典: pilot/spec/itgo12r.md「## Purpose」)
6.3 標準在庫マスタ hzmp の役割
hzmp(標準在庫ワークファイル)は部品ごとの「切らしてはいけない在庫量」=標準在庫数(hzsukz)を保持し、WSBS01(ITGO50R)の主要な入力データになる。現在庫数(hzwk01)、引当済数(hzwk02)、当月/翌月/翌々月の内示数量(hzsun1〜3)も保持し、標準在庫基準の計算エンジンが「内示 vs 標準在庫 vs 現在庫」を突き合わせて不足分の指示を作る材料になる。
hzhnbb(単品品番)のみでユニーク——つまり同じ品番を複数の得意先が使う場合、先に登録された得意先のレコードしか残らないという理論上のリスクがある(未解明事項 §9)。【ヒアリングで判明】新實さんへの確認で、同一品番の複数得意先利用自体は「めったにありませんが、発生したことはあります。ただし、HZMPを使用する処理に関しては、発生したことはありません」との回答が得られた——つまり「先勝ち上書き」の理論上のリスクはhzmpの一意キー設計上は残ったままだが、実運用でHZMP絡みの処理においてこれが顕在化した実例は無いことが確認できた。(出典: analysis/out/masters_registry.json(table=hzmp)、pilot/spec/menuw-open-questions.md L133-135)
(出典: 新實さん、2026-07-23ヒアリングシート回答C、docs/feedback/hearing/2026-07-23-niimi-hearing-sheet-C.md参照、hearing.html C4)
標準在庫マスタの更新自体はITGO82R/ITGO84R(標準在庫マスター更新、単品標準在庫加算あり/なし)が担当し、MENUW2のサブメニュー(WSBS39内のF5〜F8サブ画面、WSBS39C7/C8)から呼ばれる。(出典: analysis/out/pilot_MENUW1.md L40-43、pilot/spec/menuw-open-questions.md L124-131)
6.4 棚番管理マスタ tbmp
保管場所(tbcdhk)と棚番(tbnotn)を組み合わせてキーにする棚卸・保管場所管理マスタ。棚種・高さ・使用区画数・積載可能箱数などの物理的な棚情報を保持する。MENUW1/MENUA1本体からの直接参照は今回の調査範囲では確認できなかったが、(出典: source/production/在庫データ/配下の棚卸データExcelジョブ群と連携すると推定される 推測。analysis/out/masters_registry.json(table=tbmp))
【ヒアリングで判明】tbmpは今も現役で使用中と確定した——「使っています。自動倉庫の棚番マスタですので、MENUW1、MENUA1とは無関係」。つまりMENUW1/MENUA1から直接参照する箇所が見つからなかったのは調査漏れではなく、tbmpがそもそも管轄の異なるサブシステム(自動倉庫)専用のマスタであるために仕様通り無関係だったことが確定した。(出典: 新實さん、2026-07-23ヒアリングシート回答C、docs/feedback/hearing/2026-07-23-niimi-hearing-sheet-C.md参照、hearing.html C4)
tbmp を直接読まない在庫データ/配下4ブックのVBAを実際に復号したところ、いずれもtbmpを直接オープンしておらず、上記の推定はExcel/VBAレベルでは裏付けられなかった。「棚番」表示は組付部品入庫指示書発行.xlsm(§8.4参照)が印刷する現品票にも出てくるが、これはAS/400側があらかじめ結合・整形したステージングデータ(BJDPP1.xls)の列をそのまま転記しているだけで、Excel側でtbmpを検索する処理は無い。tbmpが号口・組付業務のどこかで直接参照されているとすれば、AS/400側のRPGプログラム内(今回VBAの範囲外)に限られる可能性が高い。
6.5 試作品在庫ステージング ZKDP と在庫データExcelジョブ
source/production/在庫データ/配下の4ブックのうち3つは、共通のAS/400転送ファイルZKDP(zkdp=試作品在庫データ、キーzkhnbn品番+zkkuzk在庫区分)を読み、区分値でフィルタして別ブックに仕立てる。
| ブック | 抽出条件 | 出力 |
|---|---|---|
試作組付部品在庫一覧表.xlsm | zkkuzk="B"(組付部品) | 試作組付部品在庫一覧表(在庫ゼロ/空白行は除外、2018/02/07改修) |
試作単品出荷品在庫一覧表.xlsm | zkkuzk="J"(単品出荷品) | 試作単品出荷品在庫一覧表(同上) |
試作品在庫エラ-リストメール送付.xlsm | 現在庫数がマイナス(未満0)のもの | 試作品在庫エラーリストをメールでデータ作成のみ行う(送信は別プロセス、§8.4) |
【実資料で判明】 zkkuzkのB/J区分の意味は、Excel側の抽出条件からの推定だけでなく、2011年のAS/400開発者自身の設計メモ(在庫マスタ更新処理の部品化)でも「出荷できる製品は'J'」「組付部品は'B'」と明記されており、独立した原資料で裏付けが取れた。(出典: source/dev-archive/20110126_在庫マスタ更新処理の部品化/20110126_在庫マスタ更新処理の部品化.xls「ZKDP」シート参照)
残る棚卸データメール送付.xlsmは別系統で、TNDPP1.xlsを読み棚卸対象品番表.xlsxで対象品番を絞り込み、号口の組付部品在庫が「部品在庫-組付使用済み」でマイナスになっているセルを赤く塗りつぶす異常チェック付きで棚卸担当者へ配信する。
この2ブック(タイトルは「試作組付部品在庫一覧」「試作単品出荷品在庫一覧表」)は、pilot/spec/bat1040-1041.mdが扱うBAT1040/BAT1041(MENUT2 opt40/41、TSBS40/41→BATCH00→STRPCCMDでXLSM=BAT1040.XLSM/BAT1041.XLSMをクライアント側で起動する構成)と帳票タイトル・抽出条件(zkkuzk='B'/'J')が完全一致する。ファイル名自体は一致しない(source/production/配下のこの2冊はBAT番号ではなく日本語タイトルで保存されている)ため同一ファイルと断定はできないが推測、少なくとも同一のロジックパターンを持つ実装であることは確認できた。同specは「マクロがODBC/ACS経由でAS/400へライブ接続していると推定されるが内部SQLは不明」としていたが、実際に確認できたVBAはライブ接続ではなく、他の号口Excelジョブと同じ「夜間Client Accessミラー転送されたローカルファイル(ZKDP.xls)を開いて品番でフィルタするだけ」という枯れたバッチパターンだった——ポート方針(REST化してサーバ側でXLSX生成)の妥当性はそのまま支持される。(出典: 各ブックのmodMain先頭コメントとConst DATA_FILE = "ZKDP.xls"、analysis/out/schema.sql(table=zkdp、コメント「試作品在庫データ」)、pilot/spec/bat1040-1041.md「## Open questions §1-3」「## XLSM files」)
6.6 号口在庫の一致性 — 完成・出荷基準がもたらす構造的な差異
2008年のAS/400開発者によるフロー分析(号口品棚卸在庫合わせフロー)に、号口在庫(JHZASU/BHZASU/JHD091)の管理方式そのものについて次の明記がある:「現状、在庫はその時点での在庫数のデータしか保存されていない。在庫数のデータは、完成品在庫と部品完成品在庫の2段階しかない。在庫の増減は、在庫の入庫出庫では行われず、完成、出荷を基準に行われる。したがって不良等の通常以外の入出庫があった場合の連絡がないと確実に差異が発生してしまう。」つまり号口在庫は実際の入出庫トランザクションではなく完成・出荷イベントでのみ再計算される設計であり、不良品の廃棄・戻し等の「通常以外の入出庫」を誰かが個別に連絡しない限り、AS/400側の在庫数と現物在庫は原設計者自身の言葉で「確実に」ズレる。
この構造を前提に、当時から月次の実地棚卸と理論在庫の差異計算を行う専用パイプライン(ITGZ07R〜ITGZ11R/WZBS03〜WZBS09:実地棚卸データ入力→品番チェック→在庫差異計算→メール送付→差異訂正)が運用されており、「棚卸で数が合わない」は例外ではなく設計時から織り込まれた恒常的な補正プロセスだったことが確認できる。
JHD091のみを更新しBHZASU/JHZASUは更新しない仕様が2008年当時から一貫していたことも確認できた(S/A在庫は部品在庫と別枠で管理する設計が当初からの意図)。
(出典: source/dev-archive/20081030_号口品棚卸在庫合わせフロー/号口品棚卸在庫合わせフロー 20081030 .xls「在庫データの確認の流れ」シート・「プログラム表」シート・「現状のシステム」シート参照)
実業務手順書で解明 — 上記の構造的原因に対応する現場の標準運用も、社内手順書として恒常的に整備されていることが確認できた。「号口品の在庫に関する例外処理」(G)フォルダの4手順書は、まさにこの「完成・出荷イベント基準の在庫と現物のズレ」への対応マニュアルであり、G-01(不良などで在庫を出庫した場合/8.号口管理→5・6.製品・単品在庫数修正で個別に手動減算、通常の組立時オーバー使用は出来高報告書で自動処理済みなので対象外)、G-02/G-03(指示書がないのに製品が出来てきた場合/単品はマスター保守管理で現在庫数へ加算、R・L対で片側だけ指示書漏れのケースは遡って社内かんばん用作業指示書を発行)、G-04(オフコンのデータと実在庫が違うと感じたら/現物確認の上で現在庫数を上書き)の4種類の手動訂正手順がそれぞれ用意されている。G-04はさらに「時々データが正しいかどうかについても心配りをして下さい」と明記し、ズレの発生が例外的事象ではなく恒常的に注意すべき運用前提であることを現場向けにも明言している。また号口の「現在庫数」自体の定義(単品状態の在庫数+組付品の在庫数×構成数)と、「3→2.出荷データ在庫展開」(本ページ§6.1/shipping.html §5のSSBS02に相当)が実行済みかどうかで当日出荷分の含み方が変わるという注記も、この手順書に明記されている。(出典: source/work-procedures/作業手順書/(G) 号口品の在庫関係/(G ) 号口品の在庫に関する例外処理.doc、(G-01) 不良などで在庫を出庫した場合.doc、(G-02) 指示書がないのに製品が出来てきた場合1.doc、(G-03) 指示書がないのに製品が出来てきた場合2.doc、(G-04) オフコンのデータと実在庫が違うと感じたら.doc各参照)
7. アイシン支給品管理
MENUA1のオプション2「アイシン支給品管理メニュー」(ASBS02)は、下位サブシステムMENUA2(支給品管理サブシステム)への入口に過ぎず、ASBS02自体には権限ゲート(ITSQ01R呼び出し)がない。実際の支給品業務プログラムはすべてMENUA2配下のASBS31〜52にある。(出典: pilot/spec/menua1-reuse-map.md §A)
「支給品」は、板倉製作所がアイシン試作組付案件向けに得意先(アイシン)から支給される部品のこと。板倉製作所が自社発注・購入する部品とは別枠で管理し、支給品マスタsmmp(キー: 受注品番smhnju + 単品品番smhnbn、終了区分smkued)と支給品データSKDP(実際の受入数量・受入日の履歴)で追跡する。(出典: analysis/out/masters_registry.json(table=smmp)、pilot/spec/menua1-open-questions.md 項目3)
支給品業務は「試作№」という単位で束ねられる。ASBS52 ITSK31R は受注品番を指定して配下の受注一覧をサブファイル表示し、各行に試作№(JUNOSS)を入力・確定してJUDP.JUNOSSに書き込む——支給品業務の起点となる紐付け作業。(出典: pilot/spec/itsk31r.md「## Purpose」)
- 受入登録(入力) ASBS31 ASBS33 ASBS34 AS/400
3つの入力方式があり、いずれもSKDPに受入実績を追加する。- ASBS31→ITSK50R(QR入力): QRコードスキャンによる入力。49バイトのオーバーレイデータから品番・試作№・支給数を復元して登録する。同一グループ(試作№+受注品番)の既存受入数に加算していく方式(
SKSURY = 既存数量 + QRスキャン数量)。 - ASBS33→ITSK51R(一括入力): 1つの試作№配下の複数受注をまとめて入力。加算ではなく直接値で書き込む(
SKSURY = 入力値)。 - ASBS34→ITSK52R(単独入力): サブファイルを使わない単一行の確認入力。行番号
SKNOGY(既存最大値+1)でSKDPに1件追加する。品番の組み合わせに対応するsmmp行が無ければ自動でマスタ行を作る(smkued=0)。
requireClPass相当、ITSQ01R呼び出し)付きの本格入力画面。担当: 現場・受入担当 - ASBS31→ITSK50R(QR入力): QRコードスキャンによる入力。49バイトのオーバーレイデータから品番・試作№・支給数を復元して登録する。同一グループ(試作№+受注品番)の既存受入数に加算していく方式(
- 受入確認 ASBS46 ITSK53R AS/400
QRや一括で入力された支給品データについて、実際に現物を受け取ったことを確認するステップ。アイシン向け受注(JUCDTH=3)のうち未確認のものを一覧表示し、操作者が「1」(確認済)を入力した行のSKDP.SKKUEDを1に更新する。確認前(SKKUED=0=初期)の行にしか入力できない仕組みで、いったん確認済みになると入力側(ASBS31/33/34)の画面ではその試作№グループへの追加入力がブロックされる「確認ロック」として機能する。担当: 受入担当 - 支給品データ照会 ASBS36 ASBS37 ASBS39 AS/400
いずれも読み取り専用。ASBS36(ITSK55R): 受注品番+支給品番を指定して支給履歴を照会(「支給待ちのみ」フィルタ可)。ASBS37(ITSK56R): 試作№を指定すると配下の全受注品番を横断して支給状況を照会。ASBS39(ITSK57R): 支給品番を指定し、直近N日(既定30日)の受入履歴を新しい順に照会。担当: 生産管理
関連: ASBS43(ITSK58R)はアイシン試作組付案件について、支給品受入チェックリストを印刷するバッチ。何営業日先までを対象にするか(既定6日)を指定すると、対象受注を1件ずつ回って支給品ごとの受入状況を1行ずつ印字する。(出典: pilot/spec/itsk58r.md「## Purpose and menu path」)
smmp/SKDPのスキーマにも代金決済に関する列は確認できない——支給品はすべて(少なくともこのAS/400システム上は)数量管理のみで、代金精算は別システム(経理/売上関係のExcelジョブ、source/outsourcing/等)で行っている可能性が高い 推測。未確定事項につき、断定せず現場に確認すること(未解明事項 §3)。
8. 計画系
8.1 WSBS22 号口組付工程内計画表 ITPL42R1/ITPL42R2 AS/400
号口組付品の生産計画を21営業日分のバケツ(日次スロット)に展開して印刷する帳票バッチ。2段階構成:
| パス | 内容 |
|---|---|
| ITPL42R1(1次パス) | 受注データ全体(JUDL08、得意先・品番・納期順)を走査し、担当班4(組付班)が扱う開いた号口組付オーダー行を、置換品番を適用したうえで一時ファイルJUXP1(号口組付用一時データ)に抽出する。構成マスタ(KSMP)行が2件以上ある"本物の組立品"のみが対象(架空構成品JHD015=1は除外)。 |
| ITPL42R2(2次パス) | JUXP1の各品番について、21営業日バケツ+受注残+その他バケツに需要を分配し、直近の需要から現在庫を差し引く。印刷は3セクション:①888A組付工程内計画表(特定5品番のみ、在庫可用数=現在庫−標準在庫)、②号口組付工程内計画表(それ以外の全品番、在庫可用数=現在庫そのまま)、③号口S/A組付計画表(中間S/A品JHD014=1のみ、在庫可用数=S/A在庫数JHD091)。 |
pilot/spec/itpl42r1.md「## Purpose」、pilot/spec/itpl42r2.md「## Purpose」)
8.2 生産計画データ ASSY/SUB-ASSY(GAJP/GSJP) 610B
610B系統(§3の生産計画610B方式経路)で使う生産計画のワークテーブル。GAJP=生産計画データASSY、GSJP=生産計画データSUB-ASSY。ITGO41Rがサブアセンブリの生産計画(GSJP)を作り、ITGO42Rがそれを補完・調整し、ITGO40RがGSJPを個々の部品作業指示(SJDP)に展開する、という3段階のパイプライン。(出典: analysis/out/pilot_MENUW1.md L98-113、§3.1)
8.3 計画表作成 Excelジョブ Excel/VBA
VBAの内部ロジックはrepoに含まれておらず、内容はPC上のマクロを直接確認しないと分からない — 実VBAで解明。source/production/計画表作成/配下の4ブックをoletoolsで復号した結果、各ブックの受信データファイル名(Const DATA_FILE)がAS/400側仕様書の記述と一致することが確認できた。
| ブック | 方向 | 受信/送信ファイル | AS/400側対応 |
|---|---|---|---|
610B生産計画表作成.xlsm | AS/400→Excel | 受信 JUDPS9.xls → 出力 610B生産計画表.xlsx | ITPL43R等が準備するデータ(§8.2のGSJP/GAJPパイプラインの末端印刷) |
構成ツリーデータ書き出し.xlsm | AS/400→Excel | 受信 KTMPP1.xls → 出力 構成表.xlsx(人手編集用) | ITKS30R(Excel出力、BAT0409) |
構成ツリーデータ作成.xlsm | Excel→AS/400 | 受信 構成表.xlsx(編集済) → 送信 KTMPP1.xls | ITKS31R(KTMPP1取り込み・置換、BAT0410) |
試作計画表作成.xlsm | AS/400→Excel | 受信 KTMPP2.xls → 出力 試作計画表.xlsx | ITKS32R(試作担当版書き出し、BAT0411) |
つまり「構成ツリーデータ作成」と「構成ツリーデータ書き出し」は名前が似ているが逆方向のジョブで、同じKTMPP1を往復で使い回す——ITKS30Rが吐いたKTMPP1を「書き出し」がExcelの構成表.xlsxに変換して人が編集し、編集後の構成表.xlsxを「作成」が再びKTMPP1形式に戻してITKS31Rの取り込みに渡す、という一往復の輸送コンテナとして機能する(§10.7のktmp「担当班変更」ワークフローの実体)。試作計画表作成.xlsmは号口かんばん品の略図が未登録の場合にメール通知する分岐も持ち、略図作成開始.xlsm/Zumen_File_Rename.xlsm(作業指示書発行2/Zumen/配下の画像リサイズパイプライン)と連携する。
modMain先頭コメント「オフコンから転送されたデータにしたがって...」、Const DATA_FILE/Const SAVE_FILE定義、pilot/spec/menuk1-predig.md L17-19「KSBS09/ITKS30R+BAT0409、KSBS10/ITKS31R+BAT0410、KSBS11/ITKS32R+BAT0411」、pilot/spec/itpl43r.md)
8.4 Excel側ジョブの実装詳細(共通アーキテクチャ)
今回、作業指示書発行2(256ファイル)・組付指示書発行(64)・組付まとめ指示(63)・Dekidaka(2)・計画表作成(5)・在庫データ(7)の6フォルダを全数調査した。実体は「同じテンプレートの日付違い出力コピー」がほとんどで、マクロ(.xlsm)を持つ固有ブックは34本に絞り込める。この34本すべてがoletoolsで復号でき、共通のVBA基盤モジュール(modBase_6xx/modRecoed_6xx/modMain_6xx)を土台にしていることが確認できた。
| 要素 | 実装 |
|---|---|
| AS/400↔PC転送の受け皿 | 各PCのローカルC:\ITA_PGM\WorkSpace(ITA_Loacl_Path+CA_Loacl_Path環境変数由来)に、AS/400側が事前にステージングしたファイル(SJXP.xls・BJDPP2.xls・ZKDP.xls等)がClient Access経由で転送済みの状態で置かれている前提。マクロはEnviron("IS_Server01")〜"IS_Server08"/"IS_Kanri"というシステム環境変数からサーバー共有パスを解決する(Server_Path_Set)。 |
| 起動トリガー | ブックを開くとAuto_Openが発火し即座にMainを実行する設計。pilot/spec/bat1040-1041.mdが解析したBATCH00(AS/400側のCLプログラム)が、オペレータの端末番号(DSP番号)からUNC共有パスを解決しSTRPCCMDでPC側にXLSMを遠隔起動する——つまり多くのジョブは人がダブルクリックするのではなく、AS/400のメニュー選択に連動してPC側が呼び出される半自動処理と見られる。 |
| ステージングファイルの命名規則 | <AS/400物理ファイル名>.xls(例: JUDPP8.xls・BJDPQ2.xls・SJDPP7.xls)がそのままExcel側のConst DATA_FILEになる。接尾辞Pn/Qn/SnはAS/400側のPC出力用ワークファイル命名規則(本ページ・他ページで頻出するJUDPP1・BJDPP2等と同一系列)。 |
| メール送信の二段構成 | 2018年6月〜7月にかけて、対象マクロのほぼ全てが「データ作成とメール送信の分離」という同一文言の改修を受けている(変更履歴に多数出現)。現行版はデータを作ってSEND_FILEとして保存するところまでで終わり、実際のメール送信は別プログラムが定期実行するという二段構成——メモリに記録されている「二段階メール配信」アーキテクチャの実物(source/as400-admin/mail-auto-settei/が第2段と推定される、今回の調査範囲外)。 |
| 実行結果ログ | 共通関数Rec_Resultが全ジョブの成功/失敗・実行日時・Environ("UserName")・Environ("ComputerName")を自動実行結果記録.xlsx(1000行を超えたら古い行から削除)に追記する。失敗時はAS400設定\共用\エラー監視フォルダにデータファイルのタイムスタンプ付きコピーを退避する。 |
| 出力アーカイブ(今回の調査対象そのもの) | 多くのジョブは印刷・送信した帳票データを<元ファイル名>/YYYYMMDDHHMMSS_<元ファイル名>.xlsx(実行のたびに1件、例: 受注内容変更連絡書/110件)またはYYYYMMDD_<元ファイル名>.xlsx(1日1件、例: 号口指示納期修正リスト/29件)というサブフォルダに退避する。これが今回の調査対象フォルダの大半(256/64/63ファイルの内訳の主因)を占めていた「同一テンプレートの日付違い出力コピー」の正体。保持期間は一定でなく、フォルダによって直近3〜4ヶ月(受注内容変更連絡書)から5年弱(組付まとめ指示、後述)までばらつく。 |
source/production/計画表作成/構成ツリーデータ作成.xlsm等34ブックのmodBase_607.bas「Sub Server_Path_Set」「Function Path_Set」、modRecoed_603.bas「Sub Rec_Result」、各ブック変更履歴の「データ作成とメール送信の分離」文言(18/06〜18/07に集中)、pilot/spec/bat1040-1041.md「## Launcher: BATCH00」)
9. 特殊ケース
9.1 出来高訂正
§3のWSBS12(ITTS16R)の通り、完成入力後に数量を訂正する専用画面がある。在庫のマイナス化を防ぐガードが無い、部品品番がBHMPに存在しない場合は在庫更新だけ静かにスキップされる、といったレガシー仕様がそのまま残っている。(出典: pilot/spec/itts16r.md「## Open questions」)
9.2 指示書再発行・強制発行
WSBS35(ITSJ85R)はSJKBWKを'E'→'S'に変えるだけの1フィールド操作(§4参照)。WSBS36(号口作業指示書強制発行)はソースが失われており、WSBS35/ITSJ85Rを土台に「未発行状態フィルタを外した強制発行」として復元する方針が立てられている。
9.3 S/A品(サブアセンブリ品)
号口組付の中間工程品(Sub-Assembly、中間組立品)を指す。専用の完成入力・出来高訂正・履歴プログラム群がある:
- ITGO03R(S/A品完成入力)/ITGO04R(S/A品出来高訂正)/ITGO05R(S/A品出来高履歴)
- 在庫データはS/A品出来高データ
SDDPに記録され、JHMP.JHD091(S/A在庫数)に反映される。 - 号口品在庫データ修正(S/A品)はITGO06R(画面IDはITGO80Dのコピペ表示バグあり)。
JHD091を二重計上する)等、いくつかの既知の脆弱点がレガシーのまま残っている。(出典: pilot/spec/menuw-open-questions.md L40-46, L181-182)
9.4 Dekidaka Excelジョブの役割 Excel/VBA
AS/400からのDTF転送を受けるExcel VBA側の実体、VBAコードそのものはrepoに含まれない(推定) — 実VBAで解明。号口出来高報告書発行.xlsmを復号すると、モジュール先頭コメントに明記された処理概要は「AS400からの転送データに基づいて出来高報告書を作成する」で、受信データファイルはConst DATA_FILE = "JUDPP8.xls"(変更履歴 08/06/05「データ転送の受取ファイルをJUDPP8(専用)に変更した」)。出力フォームは号口出来高報告書.xlsx(シート「参照シート」に見出し転記、シート「様式」がB5横印刷)で、ロット№降順→昇順(プリンタの排出向き対策で変更)に並べ替えたのち、受注品番が変わるかページ上限(部品品番12行、特定品番047460系のみ8行=トルク記入欄付き様式)に達するたびにPrintOutする、という単純な「1受注1帳票、明細が多ければ複数ページ」方式。§3で述べた「Excelマクロ BAT0804」の実体はこのブックである。(出典: source/production/Dekidaka/号口出来高報告書発行.xlsm モジュールmodMain_606先頭コメントおよびSub Main/Sub Form_Print)
9.5 完了指示書処理フロー図に残る「作業指示書スキャナ取り込み」— 実資料で判明・未解明のまま新規発見
完了指示書の処理関係の現場フローチャート(B0-00/B1〜B5-00)を確認したところ、単品出荷品用・組付部品用・出来高報告書の各処理フローの最終ステップに一貫して「作業指示書スキャナ取り込み」という物理的な文書スキャン工程(担当: 業務係)が描かれています。これは「品番マスタの棚卸スキャン」のような比喩的な「スキャン」ではなく、紙の作業指示書そのものをスキャナで読み取る工程を指しますが、この処理を受け取る側のAS/400プログラムやExcel/VBAマクロは、本リポジトリのpilot/spec/*.md・docs/sites/*.htmlのどこにも見当たりません(「スキャン」という語自体は他ページにも出てきますが、いずれもITND01Rのバッチ走査やKSML1の逆引き参照などデータベースのスキャンを指すもので、物理文書のスキャナ取り込みではありません)。この工程が①単なる保管用の画像化(後工程に影響しない)か、②何らかのシステム(RidocSmartNavigator、engineering.html §8.1参照)へのアップロードを伴うか、③既に廃止された旧手順の名残か、は未確認のまま残ります。あわせて完了作業指示書用フロー図(B3-00/B4-00)の「完成品保管、出荷指示に応じて出荷準備」「保管→作業計画に応じて組付作業」という記述からは、完成と出荷/組付消費は明示的に分離された別イベントとして扱われていることも確認でき、未解明事項2(WSBS08/ITGO11Rが「納期=本日」の受注しか在庫を減算しない件)を検討する際の背景情報になり得ます(このフロー図自体は在庫減算の内部タイミングそのものを示すものではなく、直接の解決にはなりません)。
(出典: source/work-procedures/作業手順書/(B) 完了指示書の処理関係/(B0-00) 作業終了後の指示書の処理.xlsx・(B1-00)〜(B5-00)各フロー図参照)
10. 実データスナップショット
ここまでの記述は仕様書(RPGソース・DDS・spec)に基づく。ここでは実際にインポートされた7年分のAS/400実データ(PostgreSQL、587,000行)にSELECTクエリを実行し、上記の仕組みが実運用でどう現れているかを確認する。データの主要な時期は2018年〜2026年(2007〜2017年分は合計71件のみで、システム移行前後のテスト/サンプルデータと見られる)。
10.1 号口部品作業指示の年別件数(SJDP)
| 年 | 件数 |
|---|---|
| 2018 | 1,092 |
| 2019 | 2,271 |
| 2020 | 2,441 |
| 2021 | 1,905 |
| 2022 | 1,541 |
| 2023 | 1,567 |
| 2024 | 1,570 |
| 2025 | 1,637 |
| 2026(7月時点) | 1,046 |
SJDP全体は15,141行。うち97.9%(14,817行)がSJKUFX=9、2.1%(324行)がSJKUFX=0。ただしSJKUFX=9は「完成」ではなく「終了」を意味する——AS/400側のプログラムITGO31R自身が、SJKUFX=9の行を完成日SJDKHIの有無でさらに二分している(SJDKHI≠0→「完成」、SJDKHI=0→「中止」)。
実データで内訳を取ると、SJKUFX=9の14,817行のうち完成日を持つのは11,063行、中止(完成日ゼロ)が3,754行。SJDP全体に対する割合では完成73.1%・中止24.8%・未終了2.1%となる。「ほぼ全件が完成まで到達する」という当初の記述は、終了フラグを完成フラグとして読んだ当方の誤りである。約4件に1件は中止で終わっており、これは移行設計上も無視できない比率になる。
裏づけとして、中止行3,754件のうち出来高SJSUDKが入っているのはわずか2件(完成行は11,063件中11,062件が出来高あり)。実績がまったく計上されないまま終了している=実質的な取消であることが、完成日以外の指標からも確認できる。
この訂正の根拠(仕様と集計SQL)
pilot/spec/itgo31r.md §SJKUFX semantics より(SJDP.txt L88-110のコメントに基づく):
SJKUFX ≠ 9 → blank(進行中)
SJKUFX = 9, SJDKHI = 0 → '中止'
SJKUFX = 9, SJDKHI ≠ 0 → '完成'
SELECT CASE WHEN sjdkhi > 0 THEN '完成' ELSE '中止' END AS lbl,
count(*) AS n,
count(*) FILTER (WHERE sjsudk > 0) AS dekidaka_ari,
round(100.0 * count(*) / 15141, 1) AS pct
FROM sjdp WHERE sjkufx = 9 GROUP BY 1;
-- 完成 11063 / 出来高あり 11062 / 73.1%
-- 中止 3754 / 出来高あり 2 / 24.8%
なお§3で述べた「すでに完成入力済み(SJKUFX=9)の号口指示に対して出来高を訂正する」(WSBS12)という記述自体は、WSBS12が終了済みの指示を対象にするという意味では正しい。誤っていたのは、そこから「終了=完成」と読み替えた点である。
10.2 号口指示の担当班(工程コードの代わりに実際に追跡されている単位)
komp(工程コードkocdko、38件登録)を外部キーとして直接参照する取引データ(SJDP/BJDP等)が見つからなかった。komp自体は独立した参照マスタとしてのみ存在し、「どの工程コードが最も使われているか」をトランザクションデータから直接集計することはできない。代わりにSJDPが実際に持っているのは担当班コード(SJCDTH)で、これが工程に一番近い実運用の分類軸になっている。
| 担当班コード(SJCDTH) | 件数 | 割合 |
|---|---|---|
| 80 | 9,223 | 60.9% |
| 4(§8.1「担当班4=組付班」に対応) | 4,234 | 28.0% |
| 9 | 1,278 | 8.4% |
| 99 | 241 | 1.6% |
| その他 | 165 | 1.1% |
§8.1で述べた「担当班4(組付班)が扱う開いた号口組付オーダー行」は、実データでもSJDP全体の28.0%を占める2番目に大きなグループとして確認できる。最大勢力の担当班80が何を指すかは仕様書上の対応表が見つからず未解明。
工程マスタ(KOMP)の内容(38件)
| 工程コード | 工程名 |
|---|---|
| 10 | 板取り |
| 20 | ブランク |
| 30 | 絞り |
| 40 | 成形 |
| 50 | 曲げ |
| 90 | バーリング |
| 100 | 孔打ち抜き |
| 140 | 切削 |
| 150 | ネジ切り |
| 220 | 溶接 |
他28件省略(表面処理・仕上げ系工程が中心)。工程コード152は「(空欄)」と「AESTH6524-BC」という2件の異なる工程名で重複登録されており、マスタデータのゆらぎが実データにも残っている。
10.3 社内かんばんマスタ(KBMP)の実サンプル
KBMPは126件全件が部品品番・入り数(KBD601)を持つ。サンプル:
| 部品品番 | 入り数 |
|---|---|
| 017661-3001 | 100 |
| 017661-3050 | 300 |
| 057713-5620-1 | 100 |
| 102114-3770-2 | 100 |
| 105114-0010 | 50 |
サンプル中、許容端数(KBD602)はいずれも0——少なくともこの部品群では端数許容の運用が使われていない。
10.4 標準在庫マスタ(HZMP)の実態
352件のうち、現在庫数(HZWK01)がプラスなのは225件、ゼロが103件、マイナスが24件ある。標準在庫上位(HZSUKZ降順)は次の通り:
| 単品品番 | 標準在庫 | 現在庫 | 得意先コード |
|---|---|---|---|
| 427125-10150-A-90 | 1,960 | 6 | 600 |
| 105114-0040-5 | 1,500 | -4,910 | 20 |
| 12372-28210-0110 | 640 | 674 | 600 |
| 413535-10020-A | 600 | 730 | 14 |
| 105114-0110-5 | 600 | -1,309 | 20 |
HZCDTK(得意先コード)の内訳は20(株式会社デンソープレステック、185件)が最多、次いで30(浅賀井製作所、67件)、50(ヒサダ、23件)、61(トヨトミ額田工場、18件)と続く——標準在庫マスタはアイシン系だけでなく板金加工の協力会社群も幅広くカバーしている。
10.5 アイシン支給品(SMMP/SKDP)の実データ
SMMPは24,092行、うち受注品番(SMHNJU)の異なる値は4,442件——1受注品番あたり平均5.4件の支給部品行を持つ計算になる。
アイシン担当班(JUCDTH=3、ASBS46の絞り込み条件)とSMMPのひも付けも試みたが、SMMP.SMHNJU(受注品番)とJUDP.JUHNBJを突き合わせて一致したのはわずか30/4,442件(0.7%)——大半のSMMP行は現行JUDPに対応する受注が見つからない(過去に削除・アーカイブされた受注品番の可能性が高い)。一致した30件もJUCDTH=3(4件)とJUCDTH=4(26件)に分かれており、「アイシン支給品=JUCDTH=3」という単純な対応関係は実データでは確認できなかった。JUCDTH自体は得意先コードではなく担当班コード(列コメントで確認)であり、担当班3・4はそれぞれSJDP全体の0.5%・28.0%を占める通常規模のグループで、アイシン専用というわけでもない。
10.6 610B経路(GAJP/GSJP/GDDP)は実際に動いている
610B系の号口組付品出来高データGDDPは2,571行、日付範囲は2018年8月〜2026年6月——特殊経路として文書化されている610Bラインは、飾りではなく実データ上も年平均約320件のペースで継続稼働していることが確認できる。
gdnortで管理)の完成実績を記録する台帳で、確認・読取専用のITGO24R(opt42)、訂正・在庫再計算のITGO25R(opt45)と合わせた三点セットで運用される。610Bはこのうち特定顧客ラインの生産計画(GAJP/GSJP)を経由するケースを指すに過ぎない。§10.6の「610B経路が動いている」という結論自体はGAJP/GSJPの実データで別途裏付けられるため誤りではないが、GDDPをその証拠として使った点は不正確だった。(出典: pilot/spec/itgo22r.md L20-27、データ考古学ブリーフ§2.3)
10.7 出来高ログ・かんばん内示・BOM往復テーブルの正体 — データ考古学ブリーフより
以下は、これまで用途不明のまま存在していた中規模テーブル群を今回のデータ考古学調査(schema列コメント→edges.csv読み書きプログラム→specs→実データ)で特定した結果。
| テーブル | 正体 | 行数 | 実データの姿 |
|---|---|---|---|
sddp S/A品出来高データ | S/A(サブアセンブリ=中間組立品)版のGDDP。構造・列コメントはGDDPとほぼ完全に同一(sdkbwk/sdhnbj/sddkhi/sddksu+DUMMY列群)。ITGO03R〜05R(S/A品版の完成入力/確認/訂正三点セット)が読み書きする、GDDPと対をなす別系統の完成実績ログ。号口品(最終製品寄り)とS/A品(中間組立品)は別テーブルに完成記録される設計。 | 426 | 完成日は2015-08-04〜2026-06-17で連続稼働。pilot/app/src/menuw/saOutput.tsに実装済み。 |
gkdp 号口組付品使用部品データ データ停止 | 号口ロットの完成(GDDP)に対して「実際に何の部品ロットをいくつ使ったか」を記録するトレーサビリティ明細。ITGO23R「号口組付品作業指示完成入力」(MENUW1 opt13, WSBS13)がGDDPの出来高レコードを前提に、操作者が実使用数量を入力→確定するとBHMP/JHMPの在庫を減算し、GKDPへ部品ごとに1行書く。 | 19 | GDDPのgdnortとJOINすると、GKDPが参照する号口ロットの完成日は2020-03-19〜2021-04-21の範囲に完全に収まる——GKDP自体への書き込みは2021年4月を最後に5年以上発生していない。親のGDDPは2026年まで現役で増え続けている。 |
njdp かんばん品内示データ データ停止 | 得意先からのかんばん品(トヨタ系JIT部品)月次内示(フォーキャスト)データ。ITJM56R「号口かんばん品内示入力」(MENUJ1側、JSBS48)が得意先×対象月ごとに内示数を保存すると同時に未確定受注データ(JUDP)を稼働日×入り数の整数倍で均等配分し直す。ITJM57R「号口かんばん品確定入力」がNJDPを見ながら実際の納入日を確定させる。号口メニュー本体(MENUW1)ではなくMENUJ1配下の機能だが、号口かんばん運用に直結するためここに記載する。 | 1,191 | 年月(njymd)の範囲は201508〜202003で2020年3月を最後に一件も増えていない。得意先は30(651件)・50(540件)の2社のみ(5000=トヨタ紡織は0件、別ルートjudps8を使用)。njmkps/njmkko(見込%・見込個数)は仕様上存在するが全1,191行で0——実運用では一度も使われていない。 |
juxp1 号口組付用一時データ | §8.1のWSBS22「号口組付工程内計画表」(ITPL42R1)が書き出す真の一時ファイル。呼び出し元がCLRPFM JUXP1で全消去してから使う設計で、行数=最後に実行した回の残骸であり蓄積履歴ではない。 | 191 | 得意先20が189件・30が2件。納期(jxjnok)は2026-06-30〜2026-09-29——「今日」を挟む向こう2〜3ヶ月の計画ホライズンで、直近にバッチが実行された新鮮なデータ。pilot/app/src/menuw/processPlanReport.tsに実装済み。 |
ktmp 構成ツリーマスタ データ停止 | 品番の親子構成(BOM)を木構造で保持する、「担当班変更」というExcel往復ワークフロー専用のマスタ。MENUK1構成メニュー opt9/10/11(KSBS09/10/11)→ITKS30R(Excel出力=BAT0409)→人手編集→ITKS31R(KTMPP1取り込み・置換)→ITKS32R(試作担当版書き出し)という、担当班(製造ライン担当グループ)再編時の「輸送コンテナ」的テーブル。 | 942 | Excel転記日(ktymd)は2009-05-11〜2014-10-17で止まっている。レベル分布はLv1=370〜Lv6=20の6段階BOM深さ。コードはmigration 016で正式にポート済み(structure-tree-export.html、pilot/app/src/menuk1/structureTreeExport.ts)。構成/BOM管理全般はmasters.htmlも参照。 |
gkdp(2021年4月で停止)、njdp(2020年3月で停止)、ktmp(2014年10月で停止)はいずれも、書き込み元プログラムのコードはpilot/app/src配下に現役で移植・維持されているのに、実データの追加が特定の時期でぴたりと止まっている。業務が変わった?(現場確認) — 詳しくは未解明事項を参照。
集計に使ったSQL
-- 10.1 年別件数・完成状況 SELECT (sjjymd/10000)::int AS year, count(*) FROM sjdp WHERE sjjymd > 0 GROUP BY 1 ORDER BY 1; SELECT sjkufx, count(*) FROM sjdp GROUP BY sjkufx ORDER BY count(*) DESC; -- 10.2 担当班・工程マスタ SELECT sjcdth, count(*) FROM sjdp GROUP BY sjcdth ORDER BY count(*) DESC; SELECT kocdko, konmko, kokeko FROM komp ORDER BY kocdko; -- 10.3 かんばん SELECT kbhnbb, kbd601, kbd602 FROM kbmp ORDER BY kbhnbb; -- 10.4 標準在庫 SELECT hzhnbb, hzsukz, hzwk01, hzcdtk FROM hzmp ORDER BY hzsukz DESC NULLS LAST LIMIT 10; SELECT count(*) FILTER (WHERE hzwk01<0), count(*) FILTER (WHERE hzwk01=0), count(*) FILTER (WHERE hzwk01>0) FROM hzmp; SELECT hzcdtk, count(*) FROM hzmp GROUP BY hzcdtk ORDER BY 2 DESC; -- 10.5 支給品 SELECT count(*), count(distinct smhnju) FROM smmp; SELECT count(*) FILTER (WHERE skhiuk<>0), count(*) FILTER (WHERE sksury<>0) FROM skdp; SELECT count(distinct trim(s.smhnju)) FROM smmp s JOIN judp j ON trim(j.juhnbj)=trim(s.smhnju); SELECT j.jucdth, count(distinct trim(s.smhnju)) FROM smmp s JOIN judp j ON trim(j.juhnbj)=trim(s.smhnju) GROUP BY j.jucdth; -- 10.6 610B SELECT count(*), min(gddkhi), max(gddkhi) FROM gddp; -- 10.7 データ考古学ブリーフ(sddp/gkdp/njdp/juxp1/ktmp) SELECT count(*), min(sddkhi), max(sddkhi) FROM sddp; SELECT count(*) FROM gkdp; SELECT min(g.gddkhi), max(g.gddkhi) FROM gkdp k JOIN gddp g ON g.gdnort=k.gknort; SELECT count(*), min(njymd), max(njymd) FROM njdp; SELECT njcdtk, count(*) FROM njdp GROUP BY 1; SELECT count(*) FILTER (WHERE njmkps<>0), count(*) FILTER (WHERE njmkko<>0) FROM njdp; SELECT count(*), jxcdtk FROM juxp1 GROUP BY jxcdtk; SELECT min(jxjnok), max(jxjnok) FROM juxp1; SELECT count(*), min(ktymd) FILTER (WHERE ktymd>0), max(ktymd) FROM ktmp; SELECT ktlbel, count(*) FROM ktmp GROUP BY 1 ORDER BY 1;
11. 関連マスタ・データ/帳票一覧
主要マスタ
| マスタ | テーブル | キー | 役割 |
|---|---|---|---|
| 社内かんばんマスタ | kbmp(かんばん品番マスター) | kbhnbb(部品品番) | かんばん運用対象部品の入り数・許容端数等 |
| 標準在庫マスタ | hzmp(標準在庫ワークファイル) | hzhnbb(単品品番、ユニーク) | WSBS01計算の基礎データ(標準在庫数・現在庫・内示) |
| 作業者マスタ | sgmp(作業者マスター) | sgcdsg(作業者コード) | 完成入力等で「処理者」として使う担当者コード・氏名 |
| 工程マスタ | komp(工程マスター) | kocdko(工程コード) | 工程名・工程係数 |
| 支給品マスタ(アイシン) | smmp | smhnju+smhnbn | アイシン支給品の受注品番×単品品番の組合せ管理 |
| 棚番管理マスタ | tbmp(棚番管理マスター) | tbcdhk+tbnotn | 保管場所・棚番の物理情報 |
analysis/out/masters_registry.json)
主要トランザクションデータ
| データ | テーブル | 用途 |
|---|---|---|
| 製造指示データ | SJDP | 号口部品の作業指示(本ページの中心データ) |
| 号口組付品出来高データ | GDDP | 号口ロットの完成実績ログ(WSBS41/ITGO22R、610B専用ではない。§10.7参照) |
| 号口組付品使用部品データ | GKDP データ停止 | 号口ロットの部品消費トレース(2021-04でデータ停止、コードは現役。§10.7参照) |
| 生産計画データASSY | GAJP | 610B生産計画(アセンブリ) |
| 生産計画データSUB-ASSY | GSJP | 610B生産計画(サブアセンブリ) |
| S/A品出来高データ | SDDP | S/A品の完成実績(GDDPと対をなす別系統、ITGO03R〜05R) |
| 組付品まとめ指示データ | KMDP | まとめ指示(指示形態31)の管理(詳細はproto-tooling.html参照) |
| かんばん品内示データ | NJDP データ停止 | 号口かんばん品の月次内示(フォーキャスト)。2020-03でデータ停止、コードは現役。§10.7参照 |
| 号口組付用一時データ | JUXP1 | WSBS22工程内計画表バッチの使い捨てスクラッチ(§8.1、§10.7参照) |
| 構成ツリーマスタ | KTMP データ停止 | 担当班変更Excel往復専用のBOM木構造。2014-10でデータ停止、コードは現役。§10.7参照 |
| 品番紙データPC転送用 | SJDPP3 | 品番紙ラベル印刷用ステージング(WSBS11経由) |
analysis/out/pilot_MENUW1.md「## Tables (PF)」、データ考古学ブリーフ)
帳票一覧(本ページ範囲)
| プログラム | 帳票名 |
|---|---|
| WSBS03/05 (ITSJ82R/84R) | かんばん品作業指示書 |
| WSBS07 (ITGO54R) | 社内かんばん用作業指示書 |
| WSBS04 (ITGO61R) | 号口出来高報告書 |
| WSBS08 (ITGO11R) | 号口完成品在庫一覧表 |
| WSBS09 (ITGO12R) | 号口組付部品在庫一覧表 |
| WSBS22 (ITPL42R1/2) | 号口組付工程内計画表(3セクション) |
| ASBS43 (ITSK58R) | アイシン試作 支給品受入チェックリスト |
| JSBS08C内 BAT0108/0108A/0108B/0108C/1001/0109 | 組付・まとめ指示・出荷各種印刷(受注側管轄) |
12. 用語集
- 号口(ごうくち)
- 繰り返し量産される通常の受注生産品を指す社内用語。試作の対義語。
- 試作
- 開発段階の少量・一回限りの生産(本ページ対象外、別ページ「6. 試作・工機・材料・金型」)。
- 組付品
- 複数の単品部品を組み立てて作る製品(アセンブリ)。
- 単品
- 組立を経ずそれ単体で完結する部品・製品。
- まとめ指示
- 複数の個別受注を1つの組付作業単位に束ねて処理する仕組み(指示形態=31)。
- 指示形態
JUDP.JUD605/JHMP.JHD062が持つコード。11-19単品出荷、21-29試作組付、31まとめ指示、51-69号口品。- 出来高
- 実際に完成した生産数量(完成入力で記録される)。
- 出来高訂正
- 完成入力後に出来高数量を後から修正する処理。
- かんばん品
- 事前計算済みの号口指示を、かんばんカードの回転タイミングで発行する運用。
- 社内かんばん
- かんばんカードの提示そのものが在庫補充の即時トリガーになる運用(事前計算なし)。
- 品番紙
- 完成品に貼るラベル(識別票)。
JHMP.JHD033=100の品番のみ完成入力時に自動発行。 - 標準在庫
- 切らしてはいけない安全在庫水準。WSBS01計算の基準値。
- 610B
- ある顧客プログラム/最終組立ラインを指す社内コード名。専用の計算経路・帳票が別に存在する。
- S/A品(S/A)
- サブアセンブリ品。号口組付の中間工程で作られる半完成の組立品。
- 支給品
- 得意先(アイシン)から無償/有償で支給される部品。板倉自社購入部品と別枠で在庫管理される。
- 試作№
- アイシン支給品業務で複数の受注を束ねる管理番号。ASBS52で受注品番に付与する。
- 打切区分
- 組付指示完成入力(ASBS11)で0=未完了、8=完成を意味するコード。
- 発行済み(かんばん)
SJDP.SJKBWK='E'。すでに指示書が印刷され現場に渡っている状態。- 再発行待ち
SJDP.SJKBWK='S'。指示書の再印刷が必要な状態(WSBS35で設定)。- 架空引当
- 他の受注との重複を避けるための仮の在庫引当調整(
PBZBCKR)。 - 確認済(支給品)
SKDP.SKKUED=1。支給品の現物受領が確認された状態(ASBS46で設定)。- ロット№(ロットナンバー)
- 出来高報告書発行時に採番される、生産ロットを識別する番号(JKMP経由で採番)。
- 品番紙要不要
JHMP.JHD033。100の場合、完成入力のたびに品番紙(ラベル)を自動発行する。
13. 他業務との接続点
- 受注(3. 受注、MENUJ1) AS/400 — 号口・組付の指示の源泉。受注データ
JUDP・受注品番マスタJHMPはMENUJ1側が主管し、本ページのプログラム群はこれらを読み取り・一部更新する形で連携する。号口かんばんの内示・確定入力(ITJM52R〜59R)自体はMENUJ1のW2波に属し本ページ範囲外。まとめ指示の作成・更新(ITKM11〜17R)もJSBS08Cバッチ内でMENUJ1側の管轄として動く(§5参照)。(出典:docs/decisions.mdD12 L258-273) - 外製(別ページ「8. 外製・仕入」) — 社内で製造しない工程(外部委託)。KSMP構成マスターの区分で内製/外注が分かれており、WSBS09(ITGO12R)は「内製と外注のみ」を対象に部品を展開する(外製そのものの管理プロセスは別ページ)。
- 出荷(7. 出荷、JSBS08〜10) — 完成入力・在庫更新(本ページ終端)の先にある、出荷指示書発行プロセス。JSBS08Cは組付指示発行と出荷指示発行を1つのバッチにまとめているため、§5の呼び出し列には出荷側プログラム(ITSJ07R等)も混在しているが、出荷指示書の発行そのものは出荷ページの管轄。
- 試作/工機(6. 試作・工機・材料・金型) — 試作は開発段階の少量生産、工機は金型・治具の管理。号口部品作業指示数計算(ITGO50R)のロジックは「号口品」に限定しており試作品を除外する(§3、ITGO11Rの除外規定と同様のパターンが随所にある)。
- 「号口」の語源 — 業界共通語か板倉製作所固有の呼称か、一次資料での定義は見つからなかった。【ヒアリングで判明・部分的】由来自体は依然不明だが、新實さん本人の認識が得られた——「由来はわからない。トヨタ関連の企業では一般的な用語だと思っている(この会社で知った)」。板倉製作所固有の造語ではなくトヨタ系業界共通語である可能性が高いという認識のみ確定し、語源そのものはこれ以上の裏取りが困難な可能性が高い。(出典: 新實さん、2026-07-23ヒアリングシート回答C、
docs/feedback/hearing/2026-07-23-niimi-hearing-sheet-C.md参照、hearing.html C8) WSBS08 (ITGO11R) の在庫引当ロジック — 「納期=本日」の受注しか減算対象にしていないのは意図的か、本来「今日以降すべて」を意図したバグかが未確認。【ヒアリングで判明】(解決済み)バグではないと新實さん本人が確定した——「当日出荷完了時点の在庫数のリストです。実際は在庫を合わせるための品番一覧表です」。つまり当日出荷完了時点の在庫スナップショットとして「在庫確認用の品番一覧表」を作るための設計であり、「今日以降すべて」を意図したバグではない。詳細は§6.1参照。(出典: 新實さん、2026-07-23ヒアリングシート回答C、docs/feedback/hearing/2026-07-23-niimi-hearing-sheet-C.md参照、hearing.html C1)(pilot/spec/menuw-open-questions.mdL32-36)アイシン支給品の有償/無償区分 — スキーマ上に該当フィールドが見当たらず、代金精算が別システムで行われているのか、そもそも支給品はすべて無償という運用なのか未確認。【ヒアリングで判明】(解決済み)「試作品にかかわる支給品は基本的に無償。号口品にかかわる支給品は有償。有償支給のものの管理は特にはしていません。客先からの相殺明細が届いた際に営業担当者に確認してもらうことをしているだけです。金額合計は、入金管理表.xlsxにて記録」——判断基準は「試作=無償/号口=有償」という業務ルール側の区分であり、AS/400側に有償無償フラグが無いのは仕様通り。代金精算も客先からの相殺明細を営業担当者が都度確認し、金額合計だけを入金管理表.xlsxに記録する簡易運用と確定した。(出典: 新實さん、2026-07-23ヒアリングシート回答C、docs/feedback/hearing/2026-07-23-niimi-hearing-sheet-C.md参照、hearing.html C5)標準在庫マスタ【ヒアリングで判明】(解決済み、詳細は§6.3参照)同一品番の複数得意先利用はまれに実例あるが、HZMPが絡む処理では未発生と確定。(hzmpの複数得意先対応 — キーが品番のみでユニークなため、同一品番を複数得意先が使う場合の扱いが不明。pilot/spec/menuw-open-questions.mdL133-135)- かんばん実物カードの現場運用(枚数、回収サイクル等) — システム上のマスタ/処理は確認できたが、現場でのカード運用ルール(何枚発行するか、いつ戻すか等)はソース資料からは分からない。【ヒアリングで判明・部分的】方向と対象得意先は確定した——「客先からのかんばんを納品書として扱っている。通常の納入と同じ。客先から板倉へ一方通行」「かんばんがあるのは、浅賀井製作所、ヒサダ、アイシンぐらい。デンソープレステックは納品書」。ただし発行枚数・回収サイクルの具体的な数字は今回も未回答——新實さんからは客先向けかんばんの実物運用は営業課、社内生産用かんばんの実態は製造課への追加確認がそれぞれ明示的に指示された。(出典: 新實さん、2026-07-23ヒアリングシート回答C、
docs/feedback/hearing/2026-07-23-niimi-hearing-sheet-C.md参照、hearing.html C3) ITKM02R/03Rの点滅表示条件の矛盾 — DDSコード上の条件(未発行+部品不足で点滅)と07年史コメント(「部品が揃うものは点滅表示する」)が逆であり、どちらが正しい仕様意図かが未確認。【実資料で判明】 2011年の開発者設計メモで確定:点滅=「部品が揃った時」(07年史コメント側が正しい)。詳細は§5参照。(出典: source/dev-archive/20110304_組付部品在庫引当方法の変更/20110304_組付部品在庫引当方法の変更.xls)棚番管理マスタ【ヒアリングで判明】(解決済み、詳細は§6.4参照)tbmpの号口・組付業務からの直接利用箇所 — 今回の調査範囲内ではMENUW1/MENUA1本体からの直接参照を確認できなかった。tbmpは自動倉庫専用マスタとして現役使用中で、MENUW1/MENUA1とは管轄が別(無関係)と確定。(出典: 新實さん、2026-07-23ヒアリングシート回答C、docs/feedback/hearing/2026-07-23-niimi-hearing-sheet-C.md参照、hearing.html C4)計画表作成/Dekidaka Excelマクロの内部ロジック — VBAソースがrepoに含まれておらず、AS/400側が用意するステージングデータをどう加工しているかは未検証。実VBAで解明(oletoolsで34ブック全数を復号)。計画表作成は§8.3・Dekidakaは§9.4・共通アーキテクチャは§8.4を参照。ついでに作業指示書発行2/組付指示書発行/組付まとめ指示/在庫データの残り30ブックも全数解析し、§3・§5・§6.5にも反映した。 【ヒアリングで判明・部分的】Dekidaka(号口出来高報告書)の業務的な位置づけが新實さん本人により確定した——「号口品の組付について個別の作業指示書は発行しない。作業担当者が受注の一覧表を基に生産順・生産ロットを判断して生産し、その結果を報告する用紙が号口出来高報告書。ロット№をユニークにするため、AS400側で品番とロット№(連番)をセットしたデータを枚数分作成し、Excel経由で号口出来高報告書として印刷する。WSBS04が処理オプション」。一方「計画表」については、どの計画表を指すか新實さん自身も特定できなかった——質問側の指示対象が曖昧だったことが判明し、対象を絞って再質問が必要(未解決のまま)。(出典: 新實さん、2026-07-23ヒアリングシート回答C、docs/feedback/hearing/2026-07-23-niimi-hearing-sheet-C.md参照、hearing.html C8)njdp(かんばん品内示データ)の停止理由 データ停止 — 実データは2015-08〜2020-03年月で完全に止まっており、対象得意先は30・50の2社のみ(5000=トヨタ紡織は0件)。得意先30・50とのかんばん取引は2020年3月以降、①終了した ②別の仕組み(EDI直結等、njdp経由でなくなった)に移行した ③単にこのDBスナップショットに反映されていないだけ、のどれか?
【ヒアリングで判明、ただし推測】 新實さんから「推測ですが、かんばん取引をする対象品番がなくなったと 思われます。」との回答があった——新實さん自身も明言しているとおりこれは推測であり、確定した事実確認では ない。あわせてnjdp自体の設計意図(デンソープレステック以外の号口品の内示を月内で均等に自動 割り振りする仕組み)も判明した(hearing.html B6・B7)。 (出典: データ考古学ブリーフ§3-1)- gkdp(号口組付品使用部品データ)の停止理由 データ停止 — 19行のみで、対応するgddpロットの完成日は2020-03-19〜2021-04-21に限られる。親のgddp自体は2026年まで現役。ITGO23R(部品使用明細も入力する完成入力版)は①2021年4月頃に廃止/ITGO22R(明細なし版)へ運用が一本化された ②当時扱っていた号口組立ラインが終息した ③その他の理由、のどれか?(出典: データ考古学ブリーフ§3-2)
【ヒアリングで判明・部分的】業務内容自体は確定した——「号口品の組付にあたり、いつのロットの部品を使って生産したかのデータ」(=トレーサビリティ目的)。停止理由は新實さんから新しい仮説(前回の①②とは異なる)が示された——「データが停止しているとすれば、ロット№の運用が現場で変わったのではないかと推測します。どちらにしてもトレースする必要があるので、そこは抑える必要があると思います」。ただしこれはあくまで推測であり、確定には製作部への追加確認が必要と明示された(未解決のまま)。(出典: 新實さん、2026-07-23ヒアリングシート回答C、
docs/feedback/hearing/2026-07-23-niimi-hearing-sheet-C.md参照、hearing.html C6) - ktmp(構成ツリーマスタ/担当班変更Excel往復)の停止理由 データ停止 — 実データは2009-05-11〜2014-10-17で止まっており、10年以上「担当班変更」イベントが発生していないように見える。コードはmigration 016で正式にポート済み。担当班(製造ライン担当グループ)の再編作業は①2014年を最後に発生していない(組織構造が固定化した) ②ここ数年でも発生しているが今回のDBスナップショットには含まれていない、のどちらか?(出典: データ考古学ブリーフ§3-4)
【ヒアリングで判明・部分的】業務内容(ツール自体の目的)は確定した——「初回受注時に担当班を間違えて設定した場合に、関係するマスタ・データを一度で変更する。KSBS27→ITKS61R」。停止理由についても新實さんから推測が示された——「使われていないとすれば、間違えていないか、それを使わなければいけない段階までいかないうちに訂正できているのではないか」。これも推測にとどまり、確定には営業部への追加確認が必要と明示された(未解決のまま)。(出典: 新實さん、2026-07-23ヒアリングシート回答C、
docs/feedback/hearing/2026-07-23-niimi-hearing-sheet-C.md参照、hearing.html C6)