3. 受注

得意先(トヨタ紡織・アイシン・デンソー機工など)からの注文書・かんばん・内示・EDIデータが、生産管理システム全体の「入口」である中核テーブル judp(受注データ)へどう収束していくかを追います。MENUJ1 受注管理サブシステム(JSBS01〜JSBS26、約203プログラム)が対象です。

このページの要点
  • 受注データjudpが生産管理システム全体の「入口」で、通常受注・新規/設変・デンソーEDIの3経路で流入する。
  • 得意先コード20は「デンソー機工」ではなく実データ上「デンソープレステック」の登録名。
  • 上位2社(デンソープレステック・トヨタ紡織)で受注行数の66.3%を占め、少数の大口先に集中。
紙の注文書・かんばんカード・遠くの事務所からのデータ光が3本の流れとなり、工場の門で光る受注台帳へ合流する様子
通常受注・新規/設変・デンソーEDIの3経路が、1つの受注データjudpへ集約される。

1. 受注の位置づけ — システム全体の入口

受注管理サブシステム(MENUJ1)は、得意先からの発注情報を judp(受注データ) という単一の中核テーブルへ記録し、そこから社内の生産・購買・出荷の各業務へデータを流していく、生産管理システム全体の「入口」です。得意先からの発注は大きく3つの経路で judp に入ってきます。

電話・FAX・紙の注文書都度の注文
人手入力JSBS01 / JSBS03AS/400
かんばん・内示量産品の反復発注
号口入力JSBS04 / JSBS48 / JSBS49AS/400
デンソーEDIメール添付の固定長データ
EDI取込パイプラインDSBS/MENUD1系AS/400
judp受注データ(中核テーブル)
構成展開・在庫引当出荷ドメイン
出荷指示・組付指示JSBS08〜10
売上・請求経理ドメイン

いずれの入口を通っても最終的には同じ judp テーブルへ収束します(第4章参照)。judp に書かれた1行1行が、その後の 構成展開(BOM展開)→組付部品在庫引当→出荷指示書・組付指示書発行(JSBS08、出荷ドメイン)や、外製発注(外製管理サブシステムMENUG1、別ドメイン)の起点になります。受注データが誤っていれば、そのまま生産・購買・出荷のすべてに波及するため、MENUJ1は「入力ミスを構造的に防ぐ・修正履歴を残す」仕組み(3段階検証、JUDPR1監査ログ、二重ゲートなど)が特に厚く作り込まれています。実データでは、judpには2018〜2026年の間に45,545件の受注行が記録されており、この単一テーブルが日々どれだけの入口を受け止めているかがうかがえます(実データスナップショット参照)。

(出典: docs/MIGRATION-MAP.md:15,39-45, pilot/schema/menug1.sql:279-350)

受注データの実体は judpbjdp は部品状況ファイル
  • 実際の受注データ本体(受注1行=1レコード)は judp テーブル(コメント「受注データ」、主キー junoju=受注№)です。bjdp(部品状況ファイル)は受注№(bjnojt)ごとの部品単位の引当状況を持つ別テーブルで、組立部品の在庫引当(出荷ドメインの範囲)に使われます。 (出典: pilot/schema/menug1.sql:279-350, pilot/schema/menuj1.sql:7-31)
  • nkmp(ナンバー管理マスター)は受注№の採番マスターではありません。受注№を採番するのは jkmp(受注管理マスター、キー999999・jkrnbn)です。nkmp設計№・品番コードの採番専用マスターで、新規品番登録(ITKS16R、JSBS03)や品番差し替え(ITJM41R、JSBS19、キー888888)で使われます(第6章)。 (出典: pilot/spec/itks16r.md:32-41,90,122-137, pilot/spec/itjm41r.md:201,237-239)
  • 伝票№の幅は「8桁/16桁」という区分ではなく、実際に確認できたのは judp.junotd(数値8桁)、n1dp/n2dp(英数字8桁)、n3dp(英数字15桁)の3種です。16桁の実装は確認できていません(第6章、未解明事項2)。

2. 受注の種類(MECE分類)

MENUJ1における「受注の入り方」は、トリガー・入力者・データの性質で以下のように分けられます。同じ judp テーブルに書き込まれますが、入口ごとに固定値・検証内容が大きく異なります。

種類JSBS主プログラムトリガー得意先固定受注№採番
通常受注01ITJM71R都度の注文なしjkmp連続ブロック確保
新規・設変03ITKS16R/17R+ITJM72R新品番登録/仕様変更なしjkmp連続ブロック確保
号口04ITJM52RITJM53Rかんばん・内示得意先=20固定(デンソー機工)jkmp・最終書込行方式
試作(01/03経由) 推測ITJM71R/72R + jud605タグ試作依頼なし同上
分納05JINT08生産完了後の分割納品なしjkmp、子受注として新規採番
部品引当引継ぎ06ITJM76R試作組付品の在庫引継ぎなしjkmp、新規採番
詳細: 通常受注入力(JSBS01 → ITJM71R)

既に品番登録済みの製品について、都度の注文が入ったときに使う最も基本的な入口です。得意先コード・担当者名・受注者・受注日をヘッダーに、1画面5行のサブフィールで受注品番・受注数・納期・依頼区分・受注区分・試作№・伝票№・支給日・材支日・表面処理区分をそれぞれ入力します。jkmpから受注№を採番して judp に書き込む前に、後述の3段階検証(第3章)を通過する必要があります。

(出典: pilot/spec/itjm71r.md:61-68,148-195,259-408,446-465)

詳細: 新規・設変(JSBS03 → ITKS16R/17R+ITJM72R)

まだ品番登録されていない新製品の受注、または既存品番の仕様変更(設変)が発生したときに使います。JSBS03は単一プログラムではなく、メニューループから3つの子処理へ分岐する複合エントリです。

  • F5=品番情報入力(JSBS03C1→ITKS16R): 受注品番マスター(jhmp)・構成マスター(ksmp)・単品品番マスター(bhmp)・設計№マスター(snmp)を新規登録する。旧品番がある場合は jhkbwk='E'(設変前処理済)でマークするだけで残す。
  • F6=構成データ修正(JSBS03C2→ITKS17R): 既存の構成(BOM)を修正する。
  • F7=受注入力(JSBS03C3→ITJM72R): 実際の受注データ(judp)を書き込む。

重要な業務理解として、「新規」と「設変」はITJM72Rプログラム内部ではモード分岐せず、同一コードで扱われます。両者の違いは「事前にJSBS03C1/C2で品番・構成を登録・修正したかどうか」だけで、ITJM72R自体から見れば通常受注(ITJM71R)とほぼ同じ処理(JHMP/KSMP/NMMP参照、受注№採番、JUDP書込)を行います。品番登録は技術情報部門の事前登録ではなく、JSBS03の中で受注担当自身が行います(第11章)。

受注票印刷は、JSBS03C3が CLRPFM JUDPP2(受注票印刷ステージング全消去)→ CALL ITJM72R → 書込件数&KENSU>0なら CALL BAT0103(受注票印刷)という流れで行われます(第3章)。

(出典: pilot/spec/itks16r.md:1-90, pilot/spec/itjm72r.md:14-91,142-209,400-469, pilot/spec/menuj1-w1-dispatch.md:89-125)

詳細: 号口(JSBS04 → ITJM52R→ITJM53R)— 新人が最も戸惑いやすい概念

「号口」とは、量産段階に入った製品について、得意先が発行する「かんばん」票や「内示」(数か月先までの見込み数量の通知)に基づき、同じ品番を複数の納期に分割して一括登録する反復発注方式です。1品番×1受注日のヘッダーに対し、最大52行のサブフィール(納期+受注数の組)を持ち、行ごとに1件のjudpレコードが作られます。

JSBS04(ITJM52R)は得意先コード=20(デンソー機工)に完全固定されています。依頼区分' A'、受注区分1、指示書発行区分1、担当者名「宮田」もすべて画面入力ではなくハードコードされた定数です。つまりJSBS04=実質「デンソー機工向け号口専用入力画面」です。日付検証も通常のPBNKCKRではなく101≤受注日≤991231という単純な範囲チェックのみで、得意先マスター・受注者マスター・構成マスターの参照は行いません。

注意 — 受注№採番の癖
通常受注(ITJM71R)は「入力行数ぶん確実に連番を進める」方式ですが、号口(ITJM52R)は「実際に書き込んだ最終行の番号に合わせる」方式のため、サブフィールを飛び飛びで入力すると受注№にギャップが生じ得ます(軽微な実装差だが移植時の注意点として記録されている)。

ITJM53R(号口受注入力チェックリスト)は画面を持たないバッチ印刷専用プログラムで、得意先=20の全未処理受注を毎回QPRINT出力します。「今回入力した分だけ」の絞り込みは存在しない点に注意してください(新人が「今回登録した分の確認用リスト」と誤解しやすい)。

号口のもう一段深い仕組み(かんばん内示/確定、JSBS48/49): JSBS04とは別に、JSBS48(ITJM56R、号口かんばん品内示入力)・JSBS49(ITJM57R、号口かんばん品確定入力)という専用の維持系オプションがあります。njdp(かんばん品内示データ)テーブルへ内示数量を記録し、ITJM57Rが最も複雑なW2プログラムとして「確定(受注区分=2に更新)+未確定分を稼働日ごとに再展開」する処理を担います。これらはJSBS04の入力そのものではなく、号口の内示→確定という上流工程を支える別画面です。

実資料で判明・画面の具体的な項目: 現場手順書に残る旧メニュー番号(受注管理→47/48/49)から、この3画面の入力項目が具体的に確認できました。①受注管理→47(かんばん品マスター情報入力): 品番/入り数/納品間隔(稼働日単位、隔日=2・週1=5・指定なし=1)/次回納入日を登録するマスター設定画面。②受注管理→48(号口かんばん品内示入力=JSBS48): 得意先/対象月/内示数のほか、見込という項目が上下2段で分かれており、上段は%、下段は個数で入力し、両者は加算的に効きます(例: 内示数に対し見込%で膨らませつつ、さらに個数を上乗せできる)。③受注管理→49(号口かんばん品確定入力=JSBS49): 得意先/納入日/確定数量を入力すると、残りの内示数量 ÷ 残りの稼働日数という具体的な計算式で未確定分を再展開する——本文中の「未確定分を稼働日ごとに再展開」の内部ロジックはこの除算であることが確認できました。 (出典: source/work-procedures/作業手順書/(A) 受注処理関係/(A1-47) かんばん品マスター情報入力.doc・(A1-48) 号口かんばん品内示入力.doc・(A1-49) 号口かんばん品確定入力.doc参照)

(出典: pilot/spec/itjm52r.md:34-121,207-401, pilot/spec/itjm53r.md:1-135, pilot/spec/menuj1-w2-dispatch.md:68-77, pilot/spec/menuj1-open-questions.md:637-644, pilot/schema/menuj1.sql:965-)

詳細: 分納(JSBS05 → JINT08)

すでに生産完了(jukued=8)した受注を、得意先の都合等で複数回に分けて納品するときに使います。既存の親受注から、今回納品分だけを切り出した子受注を新規に作る処理です。対象受注が存在し、jukued=8(生産完了)、jud605≠31(組付まとめ品ではない)であることが適用条件です。

jkmpから新しい受注№を採番して子judp行をWRITEします。新規行のjunojo(親受注№)は元の親レコードのjunojoをそのまま継承する一方、jud604(分納受注№)にキー入力した受注№(直近の分納元)を格納します — この2つのフィールドの使い分けが、分納の連鎖を追跡する仕組みです。同時に元の親レコードはjukued=9(打切済)に更新されます。

解決 — 実際には超過しない構造 【ヒアリングで判明】
分割数量の上限チェックは「親の全受注数」を基準にしており「既に一部納品済みの残数」を基準にしていないように見える実装ですが、新實さんの確認により実務上は残数超過が起きない構造であることが判明しました: 「分納処理は、受注数―納品数が次の受注数になるので超えることはないと認識しています。また受注を超える納品は入力できないので、そこも超えないようになっています。」——すなわち①分納後の「次の受注数」が受注数−納品数の差分で再計算される、②受注数を超える納品入力自体が別途ブロックされる、という二重の安全策により、実データで見えた175件(0.38%)の分納行についても超過は発生していないと考えられます。(出典: hearing.html B7)

(出典: pilot/spec/jint08.md:27-45,195-260,302-380,406-428,476-483)

詳細: 部品引当引継ぎ(JSBS06 → ITJM76R)

ある既存受注(引継ぎ元)の在庫引当状況を流用して、新しい受注データを作る処理です。分納と似ていますが、分納が「同じ品番の残数を分ける」のに対し、引継ぎは在庫引当済みの状態そのものを新しい受注に引き継ぐ点が異なります。

引継ぎ元の適格条件は、未納(jukust=空白かつjukued=0)、指示形態21〜29(試作組付品)、在庫引落済(jud103≠0)であることです。新規judp行をWRITEし、jud602=引継ぎ元受注№としてリンクを張ります。ただしjunojo(親受注№)は自分自身にセットされ引継ぎ元にはなりません(開発時点のオープン課題として明示的にフラグされている、未解明事項6)。

実際の部品在庫の移し替えは、JSBS06自体ではなく後続のJSBS08出荷バッチがjud602をキーに行います(出荷ドメインの範囲、本ページのスコープ外)。

(出典: pilot/spec/itjm76r.md:44-61,610-613,698-767,814-819)

試作の受注経路については、専用の入口がなくタグで区別する特殊な仕組みのため、第7章で単独に扱います。

3. 標準フロー — 受注入力(JSBS01)ステップバイステップ

新人が最初に習う「一番シンプルな受注入力」の流れです。

  1. GM0(タイトル画面) AS/400
  2. GM1(ヘッダー入力) AS/400
    得意先コード、担当者名、受注者コード、受注日を入力する。TKMP(得意先マスター)で得意先名を自動デコード表示。
    担当: 受注担当オペレーター
  3. GM2(明細入力) AS/400
    1画面5行のサブフィールで、行ごとに受注品番・受注数・納期・依頼区分・受注区分・試作№・伝票№・支給日・材支日・表面処理区分を入力する。 JHMP(受注品番マスター)で品名・担当班・指示形態を取得し、KSMP(構成マスター)で構成登録の有無を確認。
    担当: 受注担当オペレーター
  4. 3段階の検証 AS/400
    ハードエラー(ブロック)・警告(advisory)・表示デコードのみ、の3段階で入力をチェックする(下記詳細参照)。
  5. 確認パス AS/400
    全項目を入力保護した状態で警告メッセージを表示する。
  6. 受注№採番・書込 AS/400
    jkmp(受注管理マスター)から受注№を採番し、judpへ1〜5件WRITE。QPRINTへ確認用プルーフリストが出力される。 GM1へループして次の受注ヘッダーを続けて入力できる。

3段階の検証ロジック

新人にとって「なぜこのメッセージで止まるのか/止まらないのか」を理解する最重要ポイントです。

段階内容挙動
1. ハードエラー受注品番未登録、受注数=0、納期・支給日・材支日が有効範囲外(PBNKCKRチェック)、依頼区分・受注区分未登録、構成マスター未登録、削除済み品番(jhkbwk='E'反転表示され、書込ができない
2. 警告(advisory)日付範囲警告、表面処理確認品番(jhkuhs=999)、得意先相違(品番マスターの得意先と入力得意先が違う)ブロックしない。2回目のEnterを押すとそのまま書込続行できる
3. 表示デコードのみ依頼区分名・受注区分名など入力を妨げない単なる名称表示

(出典: pilot/spec/itjm71r.md:172-195,61-68,345-350,259-408)

受注№の採番(jkmpの仕組み)

受注№(junoju)は、jkmp(受注管理マスター)のキー999999にある単一の制御レコードのフィールドjkrnbn(最終使用№)から採番されます。ITJM71Rは、入力予定の最大件数ぶん(last+1last+5)を一括で候補予約し、実際に書き込んだ行数だけjkrnbnを前進させます(=連続したブロックを確保する方式)。排他制御は、レガシーではCLレベルのALCOBJ JKMP *EXCLRDで行われていましたが、移植後はSELECT … FOR UPDATEをトランザクション内で使う、より堅牢な方式に置き換えられています。

(出典: pilot/spec/itjm71r.md:446-465, pilot/spec/menuj1-open-questions.md:654-667)

受注票(judpp2)への流れとBAT0103印刷

JSBS03C3(新規・設変の受注入力leg)・JSBS14(受注票再発行、第8章)の2つの入口だけが、印刷用ステージングテーブルjudpp2(43列)を触ります。両方とも実行前にCLRPFM JUDPP2で全消去してから、共通ビルダーITJM75Rが43列のレコードを書き込む「truncate-then-fill」方式です。書込件数&KENSU>0なら、両呼び出し元CLがCALL BAT0103(Excel/VBAの受注票印刷マクロExcel/VBA、本リポジトリには実体が存在しないため処理境界として記録するに留める)。

新人向けの重要な落とし穴 — 受注票の単価は「見積値」
受注票に印字される単価・型費(P2TNK*/P2KTH*)は、jhmp.jhmtan見積単価)・jhmp.jhmkat見積型費)から取得しており、確定単価(jhmp.jhktan)でもjudpにスタンプされた単価(judp.jutank/judp.jukath)でもありません。つまり受注票に印字される価格は最終確定額ではなく見積値であり、これをそのまま得意先向け確定価格として扱ってはいけません。単価の詳細は 2. 見積・製品単価 を参照。

(出典: pilot/spec/itjm72r.md:400-421, pilot/spec/itjm74r.md:1-67,242-282, pilot/spec/itjm75r.md:1-49,155-164,332-378)

具体例 — 典型的な1件の流れ
  1. 得意先アイシンから「品番413535-10020-Aを100個、納期6/30希望」と電話連絡が入る。
  2. オペレーターがJSBS01を開き、GM1で得意先コード・受注日を入力、GM2で品番・数量100・納期260630を入力してEnter。
  3. システムがJHMPを参照し「413535-10020-A」の品名・担当班・指示形態をデコード表示。KSMPに構成が登録されているかも自動確認。
  4. 納期が稼働カレンダー上有効かをPBNKCKRでチェック(当日〜10年以内)。範囲内なら警告なし、範囲ぎりぎりなら警告表示のうえ2回目Enterで続行可能。
  5. すべて問題なければjkmpから次の受注№(例: 439517)を採番し、judpへ1行WRITE。QPRINTへ確認用プルーフリストが出力される。
  6. この時点では受注票(judpp2)は作られない — 受注票印刷はJSBS03C3(新規・設変)経由かJSBS14(再発行)経由でのみ発生する(JSBS01の通常入力では受注票を都度は印刷しない)。
この例で品番がまだ登録されていない新製品だった場合は、手順2の前にJSBS03のF5(品番情報入力)でjhmp/ksmp等を先に登録してから、同じJSBS03のF7(受注入力)で上記と同様の処理を行うことになります。 (出典: pilot/spec/itjm71r.md:360-408)

4. デンソー機工とのEDIデータ受信フロー

デンソー機工とは、受注入力(第2章の号口手入力)とは別に、完全に並行するEDI電子データ取込パイプラインが存在します。MENUJ1のメニューツリーから直接は到達できない「MENUD1(DNPT号口処理サブシステム)」という別サブシステム配下(DSBS群のCLラッパー)で動きます。

オリジナル系統 vs 変更系統

デンソーからのEDIフィードは2種類あり、データ自体にフラグはなくメールで届くファイル名によってどちらの系統かを判別します。それぞれが独立した「取込→変換→適用→印刷」のパイプラインを持ちます。

系統取込変換/適用印刷
変更(増減・キャンセルなどの差分)DSBS04 → ITJM60R, ITJM63RDSBS05 → ITJM64RDSBS06 → ITPL06R
オリジナル(全件スナップショット)DSBS17 → ITJM03R, ITJM61RDSBS18 → ITJM62RDSBS19 → ITPL05R

変更系統は、既存受注の数量増減・キャンセル・追加などの差分データを扱います(P3BFSU変更前数量/P3CHSU変更量/P3KUCH変更区分/P3JUSU変更後数量、というフィールド構成)。オリジナル系統は、その時点の全件再スナップショットで、まずITJM03R(デンソー機工号口内示取消処理)が対象受注をいったん取消してから、ITJM61R/62Rが新しいフィードから作り直します。既存の取消済み行との突き合わせで、可能な限り「復活」させて不要なキャンセル・再発行を減らす工夫がされています。

崩してはいけない運用ルール
「オリジナル」は「変更」がその日分すべて完了した後にのみ実行できるよう、dcmp.dcd201(進捗度、0→6)という日次ステートマシンで強制されています。この順序違反を防ぐガードは意図的な業務ルールです。

(出典: pilot/spec/dsbs-denso-orchestrator.md:22-35,136-208,236-263, pilot/spec/itjm03r.md:16-19, pilot/spec/itjm62r.md:23-39, pilot/spec/itjm63r.md:132-148,143-148)

パイプライン全体像

  1. 外部メールボックス処理 Excel/VBA
    メール添付の固定長テキストを復号する(本リポジトリのスコープ外)。
  2. 系統判定 BAT0013
    ファイル名を見て「オリジナル」か「変更」かを判定する。
  3. PC→AS/400転送 Excel/VBA
    対応するExcel/VBAマクロ(BATDS04.XLSM/BATDS17.XLSMCALL BATCH00経由)がデータ転送を行い、judpdkへ書き込む。
  4. 件数チェック CTJUDPDK
    0件なら「オリジナル/変更を取り違えていないか」を警告して中断する。
  5. 整形 ITJM60R/61R(オリジナル)/ ITJM60R/63R(変更)
    judpdkjudpp3(西暦8桁変換・CVMPによる品番変換込み)に変換する。
  6. 適用 ITJM62R(オリジナル)/ ITJM64R(変更)
    judpp3を突き合わせ、judp行を作成・復活・更新する。

(出典: pilot/spec/dsbs-denso-orchestrator.md:236-263, pilot/spec/itjm60r-61r.md:107-113,§2.3,§5.1, pilot/spec/itjm63r.md:132-148)

受信の実態 — メール受信から手動アップロードまで 【実VBAで解明】

「外部メールボックス処理」「PC→AS/400転送」という上記フローの中身を、DNKデータ処理フォルダのVBA調査で 具体的に確認できました。デンソープレステック側のサーバーが日次で自動メール送信します(送信元 dnpt-hashin@denso-presstech.co.jp、件名「[デンソープレステック発信情報]定期部品発注指示書」/ 「変更部品発注指示書」、本文に「このメールは、サーバより自動発信しております。本メールアドレスには返信しないで ください。」と明記)。宛先は共有メールボックスではなく特定個人1名の名前付きメールアドレスです。

運用上の単一障害点 — 7年以上、特定個人1名の手作業に依存
受信した人間が添付ファイル(変更系統cx-dheA025-*.txt、定期系統cx-dorA025-*.txt)を開き、 全選択コピーしてマクロのA1セルに貼り付けて実行する——DNPT_オリジナル変換(手動取込).xlsm/ DNPT_変更変換(手動取込).xlsmのマクロ内コメントに「送信されたオリジナルのファイルを開き、 すべて選択後、コピーして、A1のセルに貼り付けて実行する」と明記されています。ファイルパス読み込み・ Dir()ループ・日付自動判定は一切なく、完全手動トリガーです。1735ファイル(2019-04-22〜 2026-06-11、日本の稼働日にほぼ完全一致)を7年以上にわたり、この受信・手動貼付という統合ポイントを 特定個人1名が毎日担い続けていることが確認できました。担当者が不在・退職した場合の代替手順は 本調査では確認できていません(未解明事項に追加)。 (出典: DNKデータ処理/DNPT_オリジナル変換(手動取込).xlsm, DNPT_変更変換(手動取込).xlsm、 デンソープレステック発信メール.msgファイル3通)

整形結果はJUDPDK.txtとして保存され、AS/400へのアップロード自体を行うスクリプトは本リポジトリには 存在しません——手動でClient Access「データ転送(PCからAS/400へ)」をJUDPDK.FDFを使って実行している と推測されます(推測)。アップロード後はData_Check.xlsmJUDPBF_DATA_Trans.dtf/JUDP_DATA_Trans.dtfという2つのClient Access転送定義を実行し、 アップロード前後のJUDPテーブルをダウンロードして9列を行比較、変化した行だけを人間が目視確認します。 JUDPDKのデータがAS/400のJUDPテーブルへ実際に書き込まれるwrite pathであることは確定していますが、承認/差し戻しの ゲートはなく、書き込み後の事後検証のみという運用です。 (出典: DNK処理済データ/Data_Check/Data_Check.xlsm)

詳細: JUDPDK — 128バイト固定長ステージング

judpdkDDS定義を持たない、単一フィールドdkdata(128バイト)のプログラム記述ファイルです。1レコードは前半64バイト(DATA1)・後半64バイト(DATA2)の2つの論理単位に分割され、それぞれ同じレイアウトオーバーレイで再解釈されます。先頭1〜2バイトの制御コードで「ヘッダー(H、暦参照日付)」「D1(品番・仕様)」「D3(5組ぶんの納期+数量)」を判別します(オリジナル系統向け、ITJM61R)。変更系統(ITJM63R)はより単純で、H/Dのみを持ちます。

このメール取込・PCデータ転送の具体的な手順は、上記「受信の実態」節でVBA調査により確認済みです。移植方針としては、 この人手を介した手動プロセスを「認証付きアップロードAPI」としてモデル化し、処理境界として明示的にログ記録するに 留めます(defer-loud、外部連携の境界)。

詳細: 「かんばん品内示データ」「デンソーPT指示データ」という語について 【実VBAで解明、部分的】

調査範囲のRPGスペック(dsbs-denso-orchestrator.md, itjm60r-61r.md, itjm62r.md, itjm63r.md, itjm64r.md, itjm03r.md)の中には、「かんばん品内示データ」「デンソーPT指示データ」という語そのものはRPGプログラムの処理説明文としては見つかりませんでした。近い概念として、ITJM03Rのプログラム名自体が「デンソー機工号口内示取消処理」であり、内示(=先々の見込み数量通知)というキーワードはここに現れます。

解明: VBA資産のクロス調査で「かんばん品内示データ」の実体を特定できました。 AS/400テーブル台帳 analysis/out/masters_registry.jsonnjdpテーブル定義コメントに、まさに 「かんばん品内示データ」という語が登録されています(njdp=「号口かんばん内示・確定管理」、 JSBS47/48/49、第2章参照)。同じ台帳でjudpdk(本章のDNKデータ処理が書き込むテーブル)は 「デンソーEDI受信ステージング、128バイト固定長、外部データ取込用」と説明されており、上記「受信の実態」節の VBA構造解析(H/D/Tレコード、128バイト固定長)と完全に一致します。つまり「かんばん品内示データ」はRPGプログラムの 処理説明文としては存在しませんが、データディクショナリ(テーブル定義コメント)としては実在する用語であり、 実体はnjdpテーブル(DNKのJUDPDKとは別テーブル)です。

一方、Excel側資産(source/order/)には「かんばん品内示と確定の比較.xlsx」「かんばん品内示と確定の比較メール送付.xlsm」というファイルが実在し、内示と確定の比較・メール送付という業務がPCマクロ側で行われていることも確認できました。これはAS/400のRPGプログラム内には実装がなく、完全にExcel/VBA側で完結する処理と考えられます。「デンソーPT指示データ」については、itjm63r.mdに「デンソープレステック」(Denso Presstech、デンソーの関連会社)への言及はありますが、10桁品番切替の改修履歴の文脈であり、指示データそのものの説明ではありません。「デンソーPT指示データ」という用語そのものは、今回の追加調査でも依然として未発見です。

【2026-07-22ヒアリングで完全解明】「デンソーPT」の実体が新實さんにより確定しました: 「デンソーPTは、デンソープレステックのことです。他にDNPTもおなじです。また、旧社名はデンソー機工でDNKと表示しているものもあります。」——つまり「デンソー機工」「デンソーPT」「DNPT」「DNK」はすべて同一得意先(現・デンソープレステック、コード20)を指す新旧呼称の混在であり、「デンソーPT指示データ」という用語そのものも同じ文脈の呼称ゆれと考えられます。またこの節で残っていた「かんばん品内示データ」の運用実態も判明しました: デンソープレステック以外の号口品はJSBS48(号口かんばん品内示入力)で内示を入力し、かんばん品の情報に沿って月内で均等にばらして注文を自動割り振り、毎日の確定情報(かんばんの枚数)で再度自動割り振りします——デンソープレステックが「いつ何個」という確定情報で来るのに対し、その他の得意先は「1か月で何個」という内示情報しかないため、この均等割り振り処理(njdpテーブル)が必要になるという設計意図が確定しました。(出典: 新實さん、2026-07-22ヒアリングシート回答、hearing.html B6docs/feedback/hearing/2026-07-22-niimi-hearing-sheet-B.md参照)

(出典: 上記6ファイルへのgrep結果, source/order/のls結果, pilot/spec/itjm63r.md:164,188, analysis/out/masters_registry.json njdp/judpdk定義)

手入力とEDIの関係

デンソー機工向けの号口受注は、第2章の手入力(JSBS04)とEDI取込(本章)の2経路が完全に並行して存在し、互いを呼び出すことはありません。両者は以下の点で収束します。

(出典: pilot/spec/itjm62r.md:143-153,§1.5b, pilot/spec/itjm64r.md:353-360)

実資料で判明 — EDI以前の手動FAX運用と、品番不一致の注意点

現場手順書(旧版、2001〜2002年頃の運用を記録)によると、デンソー機工の号口受注は本章のEDI取込が整備される以前、月次FAXベースの「オリジナル」取込という手作業運用だった時期がありました。月末に翌月分の内示がFAXで届くと、まずF10→CALL WSBS00で当月分の内示をいったん取消し、受注管理→F8→27.受注残一覧表→1.通常(得意先範囲20-20、ITJM01R印刷)で前月分の未確定残を確認したうえで、受注管理→4.受注入力(号口)で新しい内示を手入力していました。日々の変更は毎朝のFAX「部品発注指示書」を受注管理→15.号口受注変更処理で反映します。この手順書には「品番について、部品発注指示書と社内品番が異なることがあるので、注意して下さい」という明示的な警告が残っており、得意先側の品番表記と板倉側の内部品番が一致しない場合があることが分かります——本章のEDI取込(judpp3変換時のCVMP品番変換)が対応する課題と同種の問題が、手動運用時代から存在していたことになります。当時の控え運用として「号口組付責任者」という役職者(手順書記載時点で三島係長)が全てのオリジナル・変更・印刷リスト(ITPL03R/ITPL42R)の写しを受け取る仕組みも記録されています——現在のEDI自動化における「特定個人1名への依存」(上記「受信の実態」参照)の代替体制を検討する際の参考になり得ます。 (出典: source/work-procedures/作業手順書/(A) 受注処理関係/(B-01) デンソー機工オリジナルの処理.doc・(B-02) デンソー機工指示変更の処理.doc参照。手順書自体は現行のEDIパイプライン整備前の運用記録であり、現行運用と完全に一致するかは要確認)

5. 受注の変更・訂正・取消(5つの入口)

「一度入力した受注を直す」ための入口は目的別に5種類あり、制御の厳しさが目的に応じて明確に段階分けされています。新人にはこの段差を理解してもらうことが重要です。

入口対象検証・ゲート監査ログ用途
JSBS02任意(JUDL00全項目)なし(DFU直接編集)なし緊急時の最終手段
JSBS15号口のみ、6項目限定通常ゲートのみなし号口専用の軽微訂正
JSBS16通常受注、単票二重ゲートjudpr1(前後ペア)日常の数量・納期・中止訂正
JSBS19品番差し替え、5表横断二重ゲートjudp(Dマーク)+新規行出荷前の品番変更
JSBS20まとめ指示品(jud605=31)二重ゲートjudpr1JSBS16のまとめ版(F5/F15のみ生存)
詳細: JSBS02(受注入力 変更・削除)— 生のDFU編集 要注意

驚くべき事実として、JSBS02はRPGプログラムではありません。実体はCHGDTA DFUPGM(J0DATU) FILE(JUDL00)という、JUDPのビュー(JUDL00)を直接編集するAS/400標準のDFU(Data File Utility)行編集機能です。バリデーションロジックは一切なく、どのフィールドでも自由に上書きできます。監査ログも残りません。業務上の正規フローではなく、緊急時の最終手段的なエスケープハッチと位置づけるべきです。

(出典: pilot/spec/menuj1-w1-dispatch.md:70-87, pilot/spec/menuj1-open-questions.md:723-726)

詳細: JSBS15(号口受注変更処理 → ITJM54R)— 号口専用の限定編集

号口(量産)受注に特化した6項目のみの一括更新です: 受注納期(jujnok)・受注数(jujusu)・中止区分(jukust)・指示書発行区分(jukugs)・受注日(jujuhi)・打切区分(jukued)。サブフィール一括更新で、監査ログは残りません。

(出典: pilot/spec/menuj1-open-questions.md:633-635, docs/MIGRATION-MAP.md:300)

詳細: JSBS16(受注データ変更処理 → JSBS16C→ITJM38R)— 通常受注の一般編集(一番よく使う入口)

一番よく使う「通常の受注訂正」入口です。二重ゲート(作業者コード存在チェックITSQ11R+通常の端末・ユーザーチェックITSQ01R)を通過する必要があります。

JSBS16Cはステートフルなメニューハブで、操作者はファンクションキーで複数の機能を選びます: F5=受注データ修正(ITJM38R、受注№指定)、F6/F7/F13/F15=試作部品製作依頼書(ITJM36R、CDTK=12/10/14/5000で新豊/試作/新川/トヨタ紡織を選択)、F8/F9/F14=アイシン正式伝票(ITJM37R)、F11=アイシン正式伝票B(ITJM39R、バーコード用)。各処理後はメニューへループします。

ITJM38R(F5、実質的な「受注データ修正」本体)judpの最大20項目(受注数・中止区分・納期・依頼区分・受注区分など)を編集できますが、実際に値が変わったフィールドだけを書き込みます(差分書込)。すべての編集について、変更前(B)・変更後(A)のペアをjudpr1(受注データ変更履歴)に監査ログとして残します。

業務上の使いどころ: 得意先から「数量を変更したい」「納期を変えたい」「キャンセルしたい」という連絡が来たときの、日常的な受注訂正がこれに当たります。

終了時の後処理(振り戻し・再引当): 編集内容が試作組付品(jud605が21〜29)に触れていた場合、確認画面(PNL02R/PNL03R)で組付部品在庫の振り戻し(在庫への戻し)・再引当(改めて引き当て直す)をオペレーターが選択できます(ITTS42R/ITTS43R)。最後に&KENSU>0ならITJM35R(中止品番の受注残確認、第8章)を実行し、変更連絡書(BAT0116/BAT0116A)を印刷します。

なぜ監査ログ(JUDPR1)が必要か
「誰が」「どの受注のどの項目を」「いつ変更したか」を追跡できないと、在庫の振り戻し・再引当が正しく行われたかを事後検証できません。二重ゲート(作業者コード)と組み合わせることで、責任の所在を明確にする設計になっています。

(出典: pilot/spec/jsbs16c-orchestrator.md:42-67,129-238, pilot/spec/menuj1-w3-dispatch.md:131-187, docs/MIGRATION-MAP.md:313,346-352)

解明 — 「納入日」欄が編集できるのは完納後だけ、締日をまたぐ修正は不可 【1次資料で判明】

ITJM38Rの変更依頼書(2022-08-12付、締日をまたぐ納入日修正の防止)により、judp納入日欄の入力制御ロジックが判明しました。まず変更前から一貫している制約として、この「納入日」は受注時に設定する希望納期(jujnok)ではなく完納後に確定する実際の納入実績日を指す欄で、対象受注が完納(jukued=9)でなければ入力そのものが不可、逆に完納済みなら入力必須です(メッセージ「完納以外のデータは、納入日を入力できません」「完納のデータは納入日を入力してください」)。2022-08-12の改修では、この上にさらに3つのガードが追加されました: ①請求処理が既に完了している受注(変更前の請求年月≦締め月)は納入日変更不可、②請求の繰越設定(請求年月<>納入日)がある受注も変更不可、③請求期間がまだ開いていても、納入日をその締日以前の日付には変更できない。つまりこの改修は、「完納後の納入日修正が、既に確定した請求・締め処理を後から狂わせてしまう」という会計整合性のバグを塞ぐための機能追加です。

同じ資料と、指示形態切り替え時のRPGソース(JIQT16受注状況問合せ、品番検索サブファイル)から、打切区分(jukued)の意味も判明しました: 0=未納、8=「指打」(指示打切=作業指示自体の打ち切り。JIQT16の画面表示ラベルより)、9=「完納」または「打切」を1つのコード値で表現——同じJIQT16のロジックでは、jukued=9のとき納品数が受注数未満なら状態表示ラベルを「打切」、受注数以上なら「完納」に振り分けています。号口生産・組付ページ(production.html)の打切区分(組付指示完成入力ASBS11で0/8)とは別画面・別文脈での同フィールドの再利用であることにも注意してください。

(出典: source/dev-archive/20220812_受注データ修正での納入日の変更について/20220812_受注データ修正での納入日の変更について_ITJM38R.xlsx、source/dev-archive/20201003_指示形態方式への切り替え/指示形態方式への切り替え資料.xlsxのJIQT15/JIQT16シート参照。hearing.html C2で保留中の「打切区分=9の意味」の疑問に対応)
実資料で判明 — JSBS16の具体的な操作手順と、JSBS16の陰にある関連画面

現場手順書(「中止・数量変更・納期変更連絡書」が届いた際の標準手順、オフコン変更処理=E-00)により、JSBS16(受注管理→16.受注データ修正)の実際のキー操作手順が確認できました: 受注№を入力→実行キー→対象フィールド(中止区分=/受注数/納期)を編集→実行キー→確認表示→もう一度実行キー→F3で終了、という一連の手順です。中止・数量変更・納期変更のいずれもこの同じJSBS16画面で完結し、対象フィールドだけが変わります。

また同じ現場手順書群から、JSBS16と隣接する未文書化の画面が複数見つかりました: ①受注管理→34.組付部品完成状況の入力(受注№を入力し、各部品の入庫数を編集する画面。未完成組付品の数量変更時に使用)、②マスター保守管理→12.受注データ(完成号口品の数量変更時、出荷処理区分=のスタンプが残っていれば実行キーを3回押して削除する画面)、③マスター保守管理→1.部品品番マスター(同じく完成号口品の数量変更時、現在庫数を手計算した絶対値で直接上書きする画面——例: 元の指示数7を10に増やす場合、既存在庫20に対し手計算で27を入力。バリデーション・権限者リストの記載はなし)。③は試作品在庫の修正画面ITTS34Rproto-tooling.html、4名限定のハードコード権限リスト+残数チェックあり)と対をなす号口側の画面ですが、③には同様の統制が見当たりません。

c1(在庫引当漏れ)に関連する運用ギャップ
中止・数量変更で部品在庫を戻す際、再引当が必要かどうかは受注管理→14(試作管理→14の試作作業指示問合せ)で該当品番の未完了指示一覧を開き、操作者がPageDownで手動スクロールして目視確認するという運用です(自動アラート・自動マッチングは無し)。見落とせば、実際には再利用できたはずの部品が戻されずに終わる——hearing.html C1「引当漏れ経験の有無」に対する具体的な原因候補の1つとして記録します。
(出典: source/work-procedures/作業手順書/(E) 受注状況の変更/(E-00) オフコン変更処理.doc・(E-03) 組付品の中止処理.doc・(E-07) 未完成組付品の数量変更処理.doc・(E-08) 完成号口品の数量変更処理.doc参照)
詳細: JSBS19(受注品番差し替え → ITJM41R)— 品番そのものの入れ替え

数量・納期の訂正(JSBS16)とは根本的に異なる、得意先が発注済みの製品の品番自体を別の品番に差し替える特殊操作です。

画面上の説明文は「このプログラムは、構成データおよび受注データを変更せずに、受注品番のみを変更する処理です。」ですが、実際の内部処理はインプレース編集ではありません。旧品番のjudp行はすべてjukust=' D'(中止)でソフトキャンセルされ、新しい受注№をjkmpから新規採番して、まったく新しいjudp行がINSERTされます(値は品番以外すべて複写)。同時にjhmp(新品番の行を追加、旧品番はjhkbwk='E'で残す)、ksmp(構成を新品番へコピー)、snmp(新品番コードの発行)、bjdp(部品状況を新受注№へ付け替え)と、5つのテーブルにまたがる複合操作になります。

画面文言の「変更せず」は「値の内容は変更しない(そのままコピーする)」という意味であり、「同じレコードのまま」という意味ではないと解釈できます。旧受注№・旧品番のレコードを消さずに残す(jukust='D'でマークするのみ)ことで、過去の受注履歴・出荷実績を破壊せずに監査証跡として保持したまま、品番だけを新しい番号体系へ移行させる設計だと考えられます。

適用条件は「旧品番には既に構成(BOM)が登録済み」「新品番にはまだ構成が登録されていない」「旧品番に出荷実績がない」で、出荷前の品番差し替えに限定されています。二重ゲート(ITSQ11R作業者コード+ITSQ01R)で保護され、書込件数&KENSU>0ならBAT0119(受注品番差替リスト)を印刷します。

(出典: pilot/spec/itjm41r.md:176-191,#JUDP, pilot/spec/menuj1-w3-dispatch.md:228-251)

詳細: JSBS20(受注データ変更処理〔まとめ指示〕→ JSBS20C→ITJM38RA)— JSBS16の「まとめ」版

JSBS16の兄弟プログラムで、jud605=31(組付まとめ指示品)専用です。構造はJSBS16Cとほぼ同一(ITJM38RA=ITJM38Rのまとめ専用版)ですが、10個のメニュー分岐のうち実際に生きているのはF5とF15の2つだけ(F6/7/8/9/11/13/14は先頭に無条件GOTOがあるデッドコード使用停止)。振り戻し/再引当の確認画面(PNL02R/PNL03R)もJSBS20Cにはなく、編集終了後は直接@FIN(ITJM35R+BAT0116印刷)へ抜けます。

【1次資料で判明】 jud605=31は当初から存在したコードではなく、2021-10-15付の社内説明会資料で導入された新設コードです。導入と同時に受注管理サブシステムへ本メニュー(オプション20)と再発行メニュー(オプション24「組付指示書再発行〔まとめ指示〕」)が追加され、対になる「まとめ版」メニュー一式(組付部品準備状況問合せ・作業指示完成入力・組付指示書出庫処理・組付部品完成状況入力)が組付・試作管理サブシステム側にも新設されました。テスト記録ではKMDP等への実書込みが2021-10〜11月に確認でき、本番投入はproduction.html §5「まとめ指示とは」が指摘するkmdp実データの開始(2021-12)と時系列がつながります。この「まとめ指示」機能の業務フロー全体(連絡書①の発行条件、出荷10日前の束ね処理、品質課による消込など)はproduction.html §5で詳述します。

(出典: pilot/spec/menuj1-w3-dispatch.md:252-303, source/dev-archive/20211015_組付まとめ指示システム/説明会資料.pdf、同フォルダ/組付まとめ指示システム.xlsx参照)

6. 番号管理 — 受注№・伝票№・試作№

3種類の番号が、それぞれ別のマスター・別の仕組みで管理されている点が新人には分かりにくいので整理します。

番号フィールド幅・型管理テーブル採番/入力入口
受注№judp.junoju主キーjkmp(受注管理マスター、キー999999・jkrnbnJSBS01/03/04/05/06、EDI適用処理が共通カウンタから採番
伝票№(号口経由)n3dp.n3notd15桁・英数字n3dp(キーn3kuno='D'JSBS17(ITJM32R)。judp.junotdには入力値÷100(下2桁切り捨て)が反映される
伝票№(通常)n2dp.n2notd8桁・英数字n2dpJSBS18(ITJM33R/34R)。judp.junotdには反映されない
受注№側の伝票№judp.junotd8桁・数値judp本体入口によって信頼できるかどうかが変わる(下記参照)
試作№n1dp.n1noss8桁・英数字n1dpJSBS18(ITJM33R=受注№指定、ITJM34R=受注品番一括、ITJM34RA=受注残のみ、ITJM34RB=納入済のみ)
受注№側の試作№judp.junoss8桁・数値judp本体JSBS18経由では一切更新されない
設計№・品番コード(品番文字列)年月ベースのキー領域nkmp(ナンバー管理マスター)JSBS03(ITKS16R、新規品番登録)/JSBS19(ITJM41R、キー888888、品番差し替え)
なぜ伝票№・試作№に2つの保管場所があるのか
judp.junotdjudp.junoss数値専用(各8桁)のフィールドです。しかし実際の得意先伝票№・試作№にはアルファベットを含むものがあり、数値フィールドでは表現できません。そこで後から英数字を保持できる別テーブル(サイドテーブル)が増設された、というのが実態です。どのJSBS画面で入力したかによって、judp側の値が信頼できるかどうかが変わります: JSBS18経由の伝票№・試作№はjudp側には残らずサイドテーブルだけに存在し、JSBS17経由の伝票№はjudp側に下2桁が切り捨てられた近似値が残ります。下流の処理がどちらのテーブルを参照しているかは個別に確認が必要です。入力値の検証(フォーマットチェック等)は行われず、空欄にすると該当行が削除される仕様です。
「8桁/16桁」という前提について(未解明事項2)
調査の結果、16桁の伝票№フィールドは発見できませんでした。確認できた幅は、judp.junotd(数値8桁)、n1dp/n2dp(英数字8桁)、n3dp(英数字15桁)の3種です。この前提を出したソースの再確認を推奨します。
詳細: なぜn1dp/n2dp/n3dpが増設されたのか — 変更記録3件で裏取り 【実資料で解明】

n1dp(試作№、2017年新設): 2017-06-14の変更記録により、n1dpはトヨタ紡織向けに新設されたことが確定しました。営業課係長からの要請は「トヨタ紡織の試作№が7桁の文字を含む番号で、現状の8桁数字フィールドでは対応できないため変更する」というもので、まず組付指示書表示(ITSS02R)への反映が最優先で対応され、続く2017-06-26〜28の追加変更でESCキー検索(JIQT15〜23系列)にも文字値対応が広げられました。数値か文字値かを判定する専用サブルーチンPBC2D8R(Chara To Dec 8byte)もこの過程で新設されています。

n2dp(伝票№、2018年拡張): 2018-03-07の変更記録は「客先伝票№を文字値に対応させる」ための影響範囲調査で、伝票№を扱う全プログラムを「必ず修正」「条件次第で修正」「修正不要(代入のみ)」「対象外(アイシン精機専用)」に分類しています。この調査で出荷データ入力(ITND50R、SSBS01)は「不可」「未対応」と明記され、対応が見送られました——理由は「入力値を数値かどうかで処理を分岐させなければならないので今回は見送り」。つまりITND50Rの伝票№入力は、この2018年の調査時点では文字値に未対応のまま残されており、後年に別途対応されたかどうかは本調査では確認できていません。得意先が文字値の伝票№を持つ場合、ITND50R経由の出荷入力時にどう扱われるかは要確認です。

n3dp(伝票№・号口経由、2019年拡張): 2019-04-22の変更記録「DNPT(デンソープレステック)システム変更」は、DNPTの伝票№が8桁から10桁に拡張されたことに伴う影響調査です。「JUDPについてはそのまま使用 10桁中8桁(2ケタ目から9桁目まで)を入力」という記述があり、これは本ページ上部の「入力値÷100(下2桁切り捨て)」という説明(itjm32r.mdベース)とはtruncation位置が異なるように見えます(÷100=下2桁切り捨てで1〜8桁目が残る一方、この資料は2〜9桁目を指定)。どちらが現行実装と一致するかはitjm32r.mdの行番号ベースでの再検証が必要です(未解明事項として持ち出し)。号口かんばん品確定入力(ITJM57R)や単品出荷品再引当処理(ITJU03R)など「DNPTにかんばん品/試作品が発生すると変更が必要」という条件付き対応項目も複数あり、全面対応ではなく発生ベースの段階的対応だったことが分かります。

(出典: source/dev-archive/20170614_トヨタ紡織用試作№入力・出力変更について/20170614_トヨタ紡織用試作№入力・出力変更について.xlsx、 source/dev-archive/20180307_客先伝票№を文字値に対応させる/20180307_客先伝票№を文字値に対応させる.xlsx、 source/dev-archive/20190422_DNPT_システム変更/20190422_DNPT_システム変更.xlsx参照)

ナンバー管理マスター(nkmp)は受注№とは無関係に、設計№・品番コードの採番専用マスターです。受注№(jkmp)・伝票№/試作№(n1dp/n2dp/n3dp)とは完全に別系統の採番資源であることを、この章のまとめとして押さえておいてください。

(出典: pilot/spec/itjm62r.md:143-153, pilot/spec/itjm41r.md:162-165, pilot/spec/itjm64r.md:353-360, pilot/spec/itjm32r.md:33-37,97-104,222-257, pilot/spec/itjm33r.md:66-81,207-213, pilot/spec/itjm34r.md:13-23,272,302-364, pilot/schema/menuj1.sql:953-963, pilot/schema/menus1.sql:404-421, pilot/spec/itks16r.md:90,122-137, pilot/spec/itjm41r.md:201,237-239)

7. 試作の受注経路

板倉の受注区分の全体像 【ヒアリングで判明】
2026-07-20メールで新實さんから、板倉の受注は大きく1号口金型の製作/2得意先の試作品の製作/3量産品の製作の3種に大別されるという整理が示されました。現場への指示方式は「1&2」と「3」を別のものとして扱い、さらに2は単品のまま出荷するもの組み付けて出荷するものを別のものとして扱います。それらを分けるのが本章のテーマである「指示形態」(JUD605JHD062)です。3(量産品)は単品/組付を区別せず部品の指示のみで、処理はおおよそMENUWで終わります(詳細は4. 号口生産・組付参照)。本章はこの整理のうち2(試作品)の受注経路を扱います。(出典: 新實さん、2026-07-20メール、docs/feedback/analysis/2026-07-20-niimi-shijikeitai.md参照)

試作品専用の受注入力プログラムは見当たりません。試作品は通常受注(JSBS01/ITJM71R)または新規・設変(JSBS03/ITJM72R)と同じ入口から入力されjudp.jud605(指示形態)というコード値によって「これは試作品である」と分類される、というのが最も整合的な理解です。

指示形態(JUD605/JHD062)のコード体系 【ヒアリングで判明】

2026-07-20メール添付の参考図(コード改訂表)により、指示形態コードの全体像と現行/改訂後の対応が確認できました。JUD605は現行の単一値フィールド(レコード1件につき1つの値)で、JHD062はこれを範囲へ拡張する計画中の改訂フィールドです。改訂はまだ全面稼働しておらず、一部(52)は改訂内容自体が未定です。

系統項目JUD605(現行・単一値)JHD062 改訂後・指示形態(計画中)
試作指示システム(受注区分2)単品出荷品1111〜19
試作指示システム(受注区分2)構成展開品(試作組付品)2121〜29
試作指示システム(受注区分2)まとめ組付品3131(変更なし)
号口指示システム(受注区分3)通常指示5151〜59
号口指示システム(受注区分3)社内かんばん指示52(未設定=まだ決まっていない)
号口指示システム(受注区分3)610B(シロキ工業)61(空欄)
号口指示システム(受注区分3)指示対象外999(空欄)
追記 — この切り替えは2020-10-03に本番投入済み、31は2021年に追加 【1次資料で判明】

上表と全く同じコード対応(AS400_指示形態コード表_最新版.xlsxという無日付=最新版の1次資料そのもの)が、実は2020-10-03付の切り替え作業手順書(事前バックアップ→JHD012 = 1,2 を0へ変更JHD062へコード代入JUD605へJHD062を代入→例外品番のコード訂正、という具体的なカットオーバー手順込み)として現存しており、この切り替え自体は本番投入済みであることが確認できます。旧フィールドJHD012(指示体制)はこの切り替えで使用停止・データクリアされました。31(まとめ組付品)は当初この表に無く(「-」)、2021/8/27に追加作業が開始——同年10-11月に組付まとめ指示システムとしてテスト・本番投入されたコードです。610B(シロキ工業、61)は通常の号口部品指示エンジン(ITGO50R)の対象から明示的に除外され、専用の複製バッチ(WSBS27/28→ITGO41R/42R/40R→ITPL43R、生産計画データGAJP/GSJP経由)で処理されます(production.html §8.2参照)。

同じ1次資料の初期設計段階(切替直前の検討シート)には、上表には現れないドラフト段階のコードも残っていました: 19=「完成在庫がある構成展開品」(組付品の受注で完成在庫が引当を満たした場合にjud605を21から動的に19へ書き換え、単品出荷品として扱う実行時のサブ状態。移行時の整合チェックでは19を保護対象として明記)、22=「構成品あり、組付なし」(21の細分だったが最終的に統合・削除)、そして号口金型製作専用の独立コード「801という検討案です。801は最終的に採用されず、号口金型はhearing.html B5bでヒアリング確定済みの通りコード11(単品出荷「金型のみ含む」)に統合されました——つまり新實さんの回答は推測ではなく、設計担当者自身が801という専用コードを検討した上で11への統合を選んだという設計判断の記録と完全に一致します。

(出典: source/dev-archive/99999999_AS400_指示形態コード表_最新版/AS400_指示形態コード表_最新版.xlsx、source/dev-archive/20201003_指示形態方式への切り替え/指示形態方式への切り替え資料.xlsx(シート「指示形態」「610B」「作業手順」)、同フォルダ/始業時作業.docx参照)

(出典: 新實さん、2026-07-20メール添付コード表、docs/feedback/analysis/2026-07-20-niimi-shijikeitai.md参照)

裏付け
試作品のライフサイクル管理プログラム群(JSBS35〜37=ITJU01R/02R/03R)は、いずれも既存のjudp行をCHAINして更新するだけで、新規に受注№を採番してjudpWRITEする処理は一切持ちません。つまりこれらは「試作受注の入力窓口」ではなく「試作受注の後工程管理」です。このことから、試作受注自体の生成は通常のJSBS01/03経路で行われている可能性が高いと推測されます。実データでは指示形態11(試作単品出荷品)が7,851件、21(試作組付品)が17,758件記録されており、試作関連(11・21・31)だけで受注全体の約60.8%を占めます — 「試作」は例外ケースではなく、この会社の受注の主力であることが実データからも裏付けられます。
試作品(受注区分2)の確定フロー 【ヒアリングで判明】
新實さんの確認により、試作品はMENUT→MENUA(前段階)→MENUJ1のJSBS08、という順で処理されることが分かりました。JSBS08(7. 出荷 §2で解説)が「肝」で、そこで試作組付品の部品展開在庫引当ITSS08R)を行います。これにより、MENU00から到達不能なMENUT1/MENUT2(試作管理サブシステム)が試作フローの実際の前段階として使われていることが確認され、単なる死んだメニューではないことが裏付けられました。また指示形態21〜29についても、「号口組付品」ではなく「試作組付品」が正式な分類であることが確定しました(screen-help.jsonに残る「号口組付品」表記は呼称ゆれ・俗称です)。
解決 — jud605のセットタイミングと号口金型の位置づけ 【ヒアリングで判明】
2026-07-22の追加ヒアリングで、上記の残された2点がともに解明されました。judp.jud605を11/21/51にセットするのはJSBS03(新規・設変受注入力)で受注担当自身が直接入力する時点であり、MENUT/MENUAはその後段の在庫再引当・作業指示発行を担う画面群であることが確定しました。また1号口金型の製作も、指示形態体系の外側にあるわけではなく指示形態11(単品出荷品)を流用し、現場向けにはMENUB1が発行する別立ての「金型・治具作業指示書」(号口用/試作用の2種)で指示されるという2階建ての仕組みであることが判明しました。詳細はhearing.html B5B5bを参照。
実資料で判明・要確認 — 「金型・治具作業指示書」は当時、AS/400画面ではなく手作業のWord文書だった

号口金型・試作の作業指示書発行を扱う現場手順書2件(A1-11「金型・治具作業指示書発行」/A1-12「金型・治具設計指示書発行」)によれば、当時のこの指示書はAS/400の印刷ジョブではなく、特定のPC(「村松さんのパソコン」、PC300GL)上でWORD2000のテンプレートアイコンを手作業で開いて作成する文書でした。テンプレートは実際には5種類あり、作業指示側は「金型・治具作業指示書」/「金型・治具作業指示書2」(月ごとに交互使用)に加え、号口の本型製作専用の「号口金型作業指示書」という3つ目のアイコンが存在し、設計指示側は「設計用指示書」/「設計用指示書2」(同じく交互使用)の2種でした。図面部分は蔵楽(くらら)アーカイブから手動でコピー&ペーストして貼り込みます。この手順書にMENUB1・MENUT・MENUAへの言及は一切ありません。手順書自体の年代が古いため、後年MENUB1側の自動発行に切り替わった可能性はありますが、現時点では「号口用/試作用の2種」というhearing.html B5bの確定回答と、この手順書が記録する「(作業指示用3種+設計指示用2種の)5テンプレート・手作業運用」との関係は未整理のままです——中央のヒアリング折り込み作業で新實さんに再確認することを推奨します。 (出典: source/work-procedures/作業手順書/(A) 受注処理関係/(A1-11) 金型・治具作業指示書発行.doc・(A1-12) 金型・治具設計指示書発行.doc参照)

(出典: pilot/spec/itju01r.md:41-50,94,108,164-166, pilot/spec/itju02r.md:43-55,104-126,248-249, pilot/spec/itju03r.md:9-19,99, pilot/app/public/data/screen-help.json(L6,9,49-92,140-185), analysis/out/menu_tree.md:332-334, 新實さん2026-07-20メール)

8. 特殊ケース

8-1. 事前完成処理(JSBS07 → ITJM31R)

構成展開(BOM展開)前の受注データに対し、以降の生産処理を完全にスキップさせたいときの単発メンテナンスです。受注№を1件キー入力し、確認Enterのみ(入力項目はほぼなし)。適用条件は、受注№が存在し、jukbwj=空白(構成展開前)、jukued=0(未打切)であることです。効果はjukbwj='E'(構成展開以降の処理をしない印)とjukued=8(生産完了スタンプ)の2フィールドのみの更新で、完成日・完成数・完成度は書きません。

注意
画面には常に「在庫の数量を変化させない場合のみ処理できます。それ以外は、使わないこと。」という警告が表示されますが、プログラム側に在庫チェックのロジックはなく、純粋にオペレーターの判断に委ねられた人的統制です。

(出典: pilot/spec/itjm31r.md:24-58,78-124,163-262)

8-2. トヨタ紡織管理表(JSBS13 → ITJM40R)

画面を持たない純粋バッチです。得意先コード=5000(トヨタ紡織)に固定してjudpを走査し、jukued=0かつjukust=空白(未処理)の受注のみを対象にします。各行をjudps8(5列: 受注品番/受注納期/受注№/試作№/客先伝票№)へ書き込む際、試作№・伝票№はjudpの数値項目ではなくn1dp/n2dp(第6章の英数字サイドテーブル)を優先的に参照します(アルファベットを含む伝票№を正しく表示するため)。トヨタ紡織という特定の大口得意先向けに、社内標準の受注残一覧表とは別フォーマットの管理表を提供する、得意先固有の帳票要件と考えられます。JSBS13はjudps8CLRPFMで毎回全消去してからITJM40Rを呼び、その後Excel/VBAマクロ(BAT0113Excel/VBA、リポジトリ外)が実際の表を組み立てます。

(出典: pilot/spec/itjm40r.md:11-98)

8-3. 最終受注納期問合せ(JSBS23 → ITJM27R)

完全に読み取り専用(データの書込・更新は一切行わない)です。受注品番を1件入力すると、その品番自体のjudp受注納期(jujnok)の最大値と、その品番を構成する部品(構成マスターksmpを1階層だけ展開した各部品)の受注納期の最大値とを比較し、より遅い方を「最終的に約束できる納期」として提示します。「この注文/品番について、実際にいつまでに得意先へ約束できる納期か」を、部品供給の遅れも考慮して確認するための問合せ画面です。

新人向け注意点 — 年の2桁切り捨て表示
画面表示用フィールドWSNOKIが6桁しかないため、jujnok(8桁、西暦YYYYMMDD)の上位2桁(世紀を表す「20」部分)が無条件に切り捨てられ、常に2桁年(例: 25/06/30)で表示されます。同じ表示の癖はJSBS35(ITJU01R)・JSBS36(ITJU02R)にも共通して見られます。レガシー仕様として意図的に維持されている(バグとして修正しない方針)ものですが、万が一異なる世紀のデータが混在した場合に見分けがつかないという潜在的な注意点です。

(出典: pilot/spec/itjm27r.md:8-16,42-46,154-185, pilot/spec/itju01r.md:129-134,229-232, pilot/spec/itju02r.md:172,256-258)

8-4. 受注票再発行(JSBS14 → ITJM74R)

オペレーターが既存の受注№を入力すると、検証・確認画面を経て(自らはjudpp2へ書込まず)第3章のITJM75Rビルダーへ委譲し、受注票印刷ステージングを再構築します。既存であれば無条件で再発行可能(存在チェックのみ)— キャンセル済み・出荷済み・完了済みの受注であっても再発行できてしまう仕様であり、これも意図的なレガシー挙動として維持されます。

(出典: pilot/spec/itjm74r.md:1-67,242-282)

8-5. 品番差し替え・受注データ変更(JSBS19/16/20)

これらは本質的に「受注の訂正」であるため、詳細は第5章(受注の変更・訂正・取消)を参照してください。

詳細: 中止品番の受注残確認(ITJM35R、補助プログラム)

メニューには現れない補助処理です。JSBS16C/JSBS20Cの編集終了時(&KENSU>0のとき)に自動的に呼び出されます。編集でキャンセルされた品番について、同じ品番の別の受注行がまだ有効に残っているかを確認し、残っていれば変更履歴(judpr1)の中止区分を' D'(完全に死んだ品番)から' Z'(この行は中止だが品番自体はまだ他で有効)へ書き換えます。この区別は、後続の変更連絡書(BAT0116/0116A)や在庫振り戻し処理が「品番全体としてもう不要か、まだ他で使われているか」を正しく判断するために必要です。

(出典: pilot/spec/itjm35r.md:5-42,166-169)

8-6. シュラウド振分確認処理(デンソー機工向け、実資料で判明・新規)

現場手順書(B-07/B-08)に、これまでどのページにも記載のなかった号口部品の在庫振分(振分)という業務が記録されています。仕組みは「1つの共通した絞り(プレス)加工済み半製品の在庫を、複数の完成品番へ振り分けて割り当てる」というもので、共有元の在庫品番はワイルドカード的な先頭一致で管理されます。

確認の流れは、まず現物在庫を2階で数え、次に8.号口管理→14.号口部品作業指示状況問合せで共有元品番と各振分先品番の指示状況を照会し、不足していれば10.試作管理→6.試作作業指示変更で日程を前倒しするか、それでも足りなければ8.号口管理→7.社内かんばん用作業指示書発行で新規の作業指示を起票します。この「1つの半製品在庫を複数の完成品番で共有する」という運用は、他ページの在庫モデル(品番1件=在庫1件)には現れておらず、標準在庫マスタhzmpの設計(品番のみでユニーク)とどう整合するかは要確認です。

(出典: source/work-procedures/作業手順書/(A) 受注処理関係/(B-07) シュラウド振分確認処理(7440).doc・(B-08) シュラウド振分確認処理(1240).doc参照)

8-7. 社内かんばん(物理カード方式、実資料で判明・新規)

現場手順書(B-06)に、第6章・第2章で扱ったかんばん内示/確定入力(受注管理→47/48/49、データ上の仕組み)とは別に、物理カードが実際に現場を巡回するかんばん方式がデンソー機工の部品ファミリー「3762」専用に記録されています。カードは2階を巡回し、戻ってきたカード+入荷予定カードの枚数がカード裏面に印刷された閾値に達すると、担当者が8.号口管理→15で既存の未完了指示があるかを確認し、無ければ8.号口管理→7.社内かんばん用作業指示書発行で新規の作業指示を起票します。つまり社内かんばんは「内示→確定」の月次データ処理ではなく、物理カードの巡回枚数がトリガーとなる補充方式であり、両者は同じ「かんばん」という語を使いながら別の仕組みです。本章第2章で「かんばん」と呼んでいる仕組みを新人に説明する際は、この2系統(データ内示/確定 vs 物理カード補充)を混同しないよう注意してください。

(出典: source/work-procedures/作業手順書/(A) 受注処理関係/(B-06) 社内かんばんの処理.doc参照)

8-8. 試作作業指示書発行のパスワードゲート(実資料で判明・新規)

現場手順書(A1-03/B-03)によれば、10.試作管理→3.試作作業指示書発行(試作・号口いずれの作業指示発行にも共通で使われる画面)は、実行前にパスワード「NIINOMI」の入力と右Ctrlキーでの確定を要求します。作業指示発行という比較的頻度の高い操作に個人名を思わせるハードコードされたパスワードが埋め込まれている点は、他ページで確認済みの人名コメント(例: shipping.htmlのJSBS09に残る「2010年NIINOMI」というプログラムコメント)とあわせて、板倉製作所のAS/400システム全体で「NIINOMI」という識別子が非公式な管理者ゲート/署名として繰り返し使われていることを示す一例です。移行版でこのパスワードゲートを権限ロールとして正式にモデル化するか、単なる形骸化した儀式として廃止するかは要確認です。また、この画面発行の直前直後には「出荷入力(3→1)」と「出荷データ在庫展開(3→2)」の間で号口作業指示書発行を実行してはならないという明示的な運用上の禁止時間帯も手順書(B-03)に記録されています。

(出典: source/work-procedures/作業手順書/(A) 受注処理関係/(A1-03) 追加受注入力.doc・(B-03) 号口用作業指示書発行.doc参照)

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

ここまでの記述はRPGソース・仕様書からの再構成ですが、実際に7年分のAS/400データ(judp 45,545件を含む)が本リポジトリのPostgreSQLに取り込まれています。以下はjudpを実際に集計した結果です。日付データを確認したところ、大半のレコードは2018年〜2026年(本稿執筆時点の2026年分は年央までの暫定値)に集中しており、これが実データの主要な対象期間(2018〜2026年の実データインポート時点)です。ごく少数(126件、全体の0.28%)に「1899-12-30」「2000〜2017年」「2028年以降」といった外れ値があり、テスト入力または未確定日付のダミー値と推測されます(集計からは除外)。

基本統計
  • 総受注行数: 45,545件judp全件)
  • 得意先カバレッジ: 受注実績のある得意先は71社(得意先マスタtkmp全体は142社)
  • 品番数: 6,704品番(jhmp

年別受注件数の推移

受注件数
20184,255
20195,435
20205,734
20216,324(ピーク)
20225,383
20234,513
20245,241
20254,871
2026(年央まで)3,663

上記以外に2000〜2017年・2028年以降・1899-12-30(ダミー値)に計126件(0.28%)の外れ値あり。

得意先分布(上位10社、受注行数ベース)

得意先コード得意先名受注行数構成比
20株式会社デンソープレステック15,28833.6%
5000トヨタ紡織株式会社14,90632.7%
30株式会社浅賀井製作所4,92010.8%
6000アイシンシロキ株式会社3,6508.0%
16株式会社アイシン 試作工場1,6803.7%
12株式会社アイシン 新豊工場7511.6%
50株式会社ヒサダ6741.5%
1120株式会社エクセディ3890.9%
1010株式会社ウツノ3250.7%
1040株式会社鈴木鈑金工業所3130.7%

上位2社(デンソープレステック・トヨタ紡織)だけで受注行数の66.3%を占め、上位5社では88.8%に達します。取引先71社のうち少数の量産大口先に受注が強く集中している構造です。

実データとの食い違い — 得意先コード20は「デンソー機工」ではなく「デンソープレステック」
本ページは第2章・第4章で繰り返し「得意先コード=20(デンソー機工)」と記載していますが、実データの得意先マスター(tkmp)を確認したところ、コード20の登録名は「株式会社 デンソープレステック」(Denso Presstech、デンソーの関連会社)であり、「デンソー機工」という名称の得意先コードはtkmpに存在しません。tkmpを「デンソー」で検索してもヒットするのはこの1件のみです。実際にjud605=51(号口出荷)で得意先コード20の行を抽出すると、jukuir=' A'jukuju=1(依頼区分・受注区分の固定値)は本ページの記述どおり確認でき、コード20が号口専用に固定されているという業務ロジックの理解自体は正しいと考えられます。誤っているのは会社名の呼称のみである可能性が高く、実際にpilot/spec/itjm63r.mdにも「デンソープレステック(Denso Presstech、デンソーの関連会社)」という言及があります。本ページ本文は現場確認まで書き換えずそのまま残していますが、「デンソー機工」という呼称の出典・実在性について現場担当者への確認を推奨します。

指示形態(jud605)の分布

コード該当カテゴリ件数構成比
21試作組付品(21-29のうち実在するのは21のみ)17,75839.0%
51号口出荷(51-69のうち実在するのは51・61のみ)17,72538.9%
11試作単品出荷品(11-19のうち実在するのは11のみ)7,85117.2%
31組付まとめ指示1,3052.9%
61号口出荷9042.0%
999該当なし(外れ値)20.0%

本ページ第7章の指示形態表(11-19/21-29/31/51-69)はコード範囲としては実データと矛盾しませんが、実際にjudpに現れる値は各範囲の先頭付近(11・21・51・61)に偏っており、範囲内の他のコード(12〜19、22〜29、52〜60、62〜69等)は今回の7年分のデータには一件も出現しませんでした。範囲そのものの定義が誤っているわけではなく、実運用での使用コードが想定より少ないというだけの可能性が高い点に留意してください。

分納・状態フラグ

指標件数構成比
分納で作られた子受注行(jud604≠0)1750.38%
中止区分=NULL(有効)37,54182.4%
中止区分='D'(中止)8,00417.6%
打切区分=9(生産完了・打切済)36,53680.2%
1件の受注を読んでみる

実データから、特に目立った点のない典型的な号口受注を1件そのまま示します(受注№419295)。

フィールド意味
junoju419295受注№
jucdtk20(株式会社デンソープレステック)得意先コード
juhnbj105114-0030-5受注品番
jujusu / junosu50.00 / 50.00受注数 / 納入数(全量納品済み)
jujuhi2023-06-30受注日
jujnok2023-07-18受注納期
jud60551(号口出荷)指示形態
jukuir / jukuju' A' / 1依頼区分・受注区分(号口の固定値どおり)
jukust / jukuedNULL(有効)/ 9(打切済=完了)中止区分・打切区分
junotd524079客先伝票№(judp側の数値近似値)
jutank / jukath0.00 / 0.00単価・型費 — この受注自体には単価が入っておらず、PBTANKR経由でJHMP/PRMPを参照する対象
集計に使ったSQL
-- 総件数・日付範囲・外れ値
SELECT count(*), min(jujuhi), max(jujuhi) FROM judp;
SELECT count(*) FILTER (WHERE jujuhi = 18991230) AS sentinel_1899,
       count(*) FILTER (WHERE jujuhi/10000 BETWEEN 2019 AND 2026) AS in_range,
       count(*) FILTER (WHERE jujuhi/10000 > 2026) AS after_2026,
       count(*) FILTER (WHERE jujuhi/10000 < 2019 AND jujuhi <> 18991230) AS before_2019_other
FROM judp;

-- 年別件数
SELECT floor(jujuhi/10000)::int AS yr, count(*)
FROM judp WHERE jujuhi <> 18991230 GROUP BY 1 ORDER BY 1;

-- 得意先分布
SELECT j.jucdtk, t.tknmkj, count(*) AS n
FROM judp j LEFT JOIN tkmp t ON t.tkcdtk = j.jucdtk
GROUP BY j.jucdtk, t.tknmkj
ORDER BY n DESC LIMIT 10;
SELECT tkcdtk, tknmkj FROM tkmp WHERE tknmkj ILIKE '%デンソー%';
SELECT count(*) FROM tkmp;

-- 指示形態(jud605)分布
SELECT jud605, count(*) FROM judp GROUP BY jud605 ORDER BY jud605;

-- 分納・状態フラグ
SELECT count(*) FILTER (WHERE jud604 <> 0) AS bunno_child_rows,
       count(*) FILTER (WHERE jukued = 9) AS uchikiri_rows,
       count(*) AS total
FROM judp;
SELECT jukust, count(*) FROM judp GROUP BY jukust ORDER BY 2 DESC;

-- 1件の受注サンプル(号口・非中止・数量10-200・2023年6月受注)
SELECT j.junoju, j.jucdtk, t.tknmkj, j.juhnbj, j.jujusu, j.junosu, j.jujnok,
       j.jujuhi, j.jud605, j.jukust, j.jukued, j.junotd, j.junoss,
       j.jutank, j.jukath, j.jukuir, j.jukuju
FROM judp j LEFT JOIN tkmp t ON t.tkcdtk = j.jucdtk
WHERE j.jud605 = 51 AND j.jukust IS NULL
  AND j.jujusu BETWEEN 10 AND 200
  AND j.jujuhi BETWEEN 20230601 AND 20230630
ORDER BY j.junoju LIMIT 5;

9. 関連マスタ・帳票一覧

主要テーブル

テーブル和名役割
judp受注データ受注1行=1レコードの中核テーブル。主キーjunoju(受注№)
jhmp受注品番マスター品番ごとの単価・型費・指示形態・号口区分などのマスタ属性
jkmp受注管理マスター受注№採番カウンタ(キー999999、jkrnbn
bjdp部品状況ファイル受注№×部品ごとの在庫引当状況(出荷ドメイン寄り)
n1dp/n2dp試作№データ/伝票№データJSBS18経由の英数字8桁サイドテーブル
n3dp伝票№データJSBS17(号口)経由の英数字15桁サイドテーブル
nkmpナンバー管理マスター設計№・品番コードの採番(受注№とは別系統)
njdpかんばん品内示データ号口かんばん内示・確定管理(JSBS47/48/49)
judpp2受注票印刷ステージング43列、truncate-then-fill方式(BAT0103が消費)
judpr1受注データ変更履歴JSBS16/20編集の前後(B/A)監査ログ
judps8トヨタ紡織管理表ステージングJSBS13専用
judpdkデンソーEDI受信ステージング128バイト固定長、外部データ取込用
tkmp得意先マスター得意先コード→得意先名のデコード元。JSBS01/03のヘッダー入力で参照
sgmp作業者マスター受注者コード・二重ゲート(ITSQ11R)の作業者コード存在確認元
nmmp名称マスター依頼区分・受注区分・指示形態など各種コードの名称デコード元(区分コード表)
ksmp構成マスター品番の構成(BOM)。行数上限90件(ITKS17R)
bhmp単品品番マスター構成の末端にある単品部品の品番マスタ(材質・板厚・担当班等)
snmp設計№マスター品番コード(設計№)そのものの管理。nkmpから新規発行される

(出典: pilot/schema/menug1.sql:151-350, pilot/schema/menuj1.sql各所, pilot/schema/menus1.sql:404-421, pilot/spec/itks16r.md, pilot/spec/itks17r.md, pilot/spec/itjm71r.md:61-68)

詳細: 受注関連の帳票(Excel/VBAマクロ、いずれも本リポジトリには実体なし・defer-loud対象)
印刷プログラム内容起動元
BAT0103受注票JSBS03C3(新規・設変)/JSBS14(再発行)、&KENSU>0のとき
BAT0113トヨタ紡織管理表JSBS13、ITJM40R実行後
BAT0116/0116A受注データ変更連絡書JSBS16C/JSBS20C、ITJM35R実行直後
BAT0119受注品番差替リストJSBS19、&KENSU>0のとき
BATJZ14/BATJZ15受注残一覧表 FOR EXCEL(ITJM02R/ITJM04R、単価あり版含む)MENUJZ照会メニュー
BAT0153〜0158受注まとめ入力EXCELJSBS53〜58(PC側マクロ、RPGなし)

対応するExcel実体は source/order/ に確認できます: 受注票.xlsx/受注票発行.xlsm、トヨタ紡織受注データ.xlsx/…表示.xlsm、受注品番差替連絡書.xlsx/…発行.xlsm、受注残一覧表.xlsx(単価あり版含む)/…作成.xlsm、受注まとめ入力データ一覧表.xlsx/…作成.xlsm/…変換.xlsm、かんばん品内示と確定の比較.xlsx/…メール送付.xlsm。

(出典: pilot/spec/itjm35r.md:5-9,39, pilot/spec/itjm40r.md:17-19,89-98, pilot/spec/itjm41r.md:5,59,70, source/order/のls結果, docs/decisions.md:462-493)

新発見 — Excel→AS/400のアップロード経路が実在する 【実VBAで解明】
上記のうち受注まとめ入力データ変換.xlsmは、他の帳票マクロと逆方向(Excel→AS/400)のデータ整形を行う 唯一のマクロです。データ源は人間が手入力する側のワークブック(source/as400-workspace/受注まとめ入力.xlsx、 付随手順書受注まとめ入力の手順と注意点.xlsx)で、手順書ステップ57には逐語で「53で入力したデータを オフコンへ取り込める形に成形する。」と明記されています。日付形式変換(Excel入力のyyyy/m/d→オフコン形式)を行い、 出力はダウンロード側ツールと同じファイル名JUDPT2.xlsC:\ITA_PGM\WorkSpaceに保存されます ——下流ツールがAS/400由来かExcel手入力由来かを意識せず読めるよう、意図的に同一ファイル名で偽装する設計です。 ただしJUDPT2.xlsを実際にAS/400へPUTする転送ジョブ自体はこのフォルダには見つからず、 AS400転送設定/側にあると推測されます(推測)。付随手順書には 「パソコンにログインする都度、保存内容がクリアされる」という共有キオスク端末的な運用上の注意も記載されています。 (出典: 受注票/受注まとめ入力データ変換.xlsm, source/as400-workspace/受注まとめ入力.xlsx, 受注まとめ入力の手順と注意点.xlsx)

照会・一覧系プログラム(読み取り専用の受注残一覧)

プログラムゲート内容
ITJM01RJZBS01受注残一覧表(通常)
ITJM02RJZBS14受注残一覧表 FOR EXCEL
ITJM04RJZBS15受注残一覧表(単価あり)FOR EXCEL
ITJM11RJSBS40新規・設変受注一覧表
ITJM27RJSBS23最終受注納期問合せ(第8章)

移植先TSモジュール名とJSBS対応は docs/MIGRATION-MAP.md:287-376 に全85行の一覧があります。JSBS08〜10(出荷・組付指示)、JSBS24〜26(組付指示書再発行)は出荷担当ドメインへの引き渡し先として第11章で触れます。

(出典: docs/MIGRATION-MAP.md:357-360, pilot/spec/itjm02r.md:1-16, pilot/spec/itjm04r.md:1-16)

10. 用語集

受注№
受注1行ごとにjkmpから採番される一意な番号。judp.junoju
号口(ごうぐち)
量産段階の製品について、得意先の「かんばん」「内示」に基づき、同一品番を複数納期に分割して反復登録する発注方式。指示形態51〜69。
内示(ないじ)
得意先が発行する、数か月先までの見込み受注数量の通知。号口の元データの一つ。
かんばん
トヨタ生産方式由来の、実際の生産・納品指示票。号口のもう一つの元データ。「号口かんばん品内示」(JSBS48)「号口かんばん品確定」(JSBS49)という専用画面がある。
設変(せつへん)
設計変更。既存品番の仕様・構成を変更すること。新規登録と同じJSBS03画面で扱う。
分納(ぶんのう)
生産完了済みの受注を複数回に分けて納品すること。子受注として新規judp行を作る(JSBS05)。
引当/引継ぎ(ひきあて/ひきつぎ)
在庫や部品を特定の受注に紐づけること(引当)、既存受注の引当状態を新しい受注に流用すること(引継ぎ、JSBS06)。
指示形態(しじけいたい、jud605/jhd062
受注の性質を表す分類コード。11-19試作単品出荷品、21-29試作組付品、31組付まとめ指示、51-69号口出荷。
依頼区分/受注区分
受注ごとの処理方法を表すコード(NMMPでデコードされる)。号口はそれぞれ固定値(' A'/1)。
中止区分/打切区分
中止区分=キャンセル状態(空白/'D')。打切区分=受注のライフサイクル状態(0未打切/8生産完了/9打切済)。似て非なる2つの区分。実データでは「空白」は文字通りの半角スペースではなくSQL NULLとして格納されており(有効37,541件・中止'D'8,004件)、移植時のNULL/空文字の扱いには注意が必要。
構成(BOM)
ある品番を作るために必要な部品の一覧。ksmp(構成マスター)に登録。
見積単価/決定単価
jhmp.jhmtan(見積)は受注票に印字される暫定価格、jhmp.jhktan(決定)が最終確定価格。受注票の価格は見積値である点に注意(第3章、2. 見積・製品単価参照)。
JUDPR1(受注データ変更履歴)
JSBS16/20の編集内容を変更前(B)/変更後(A)ペアで記録する監査ログ。
作業者コード(sgcl)/ITSQ11R
JSBS16/18/19/20だけに課される追加ゲート。パスワードではなく、社内スタッフの作業者コードが作業者マスター(sgmp)に登録されているかの存在確認。
DFU
AS/400標準の対話型テーブル直接編集機能。JSBS02がこれを使う(バリデーションなし)。
号口区分(jhmp.jhkugo
品番マスター側で持つ号口/試作の分類フラグ(表示用デコードとして使われる)。
オリジナル系統/変更系統(デンソーEDI)
デンソー機工からの電子データ取込パイプラインの2系統。全件スナップショット(オリジナル)と差分(変更)。
JUDPDK
デンソーEDIの128バイト固定長受信ステージングファイル。
CDTK(12/10/14/5000)
試作関連プログラムで使う拠点コード。新豊/試作/新川/トヨタ紡織。
まとめ指示(指示形態31)
複数の受注をまとめて1回の組付指示として処理する特殊区分。JSBS20はこの専用の変更処理。
品番差し替え
既発注の受注の品番そのものを別の品番に入れ替える操作(JSBS19)。旧品番はソフトキャンセルし、新しい受注№で作り直す。
事前完成処理
構成展開前の受注を、生産処理をスキップして即完了扱いにする特殊操作(JSBS07)。
ナンバー管理マスター(nkmp
受注№ではなく、設計№・品番コードの採番専用マスター。
試作組付品/試作単品出荷品
試作品のうち組立を伴うもの(指示形態21-29)/伴わないもの(指示形態11-19)。

11. 他業務との接続点

未解明事項 — 現場担当者への質問リスト

現場担当者へのヒアリング候補(全13件、うち3は実VBA調査で部分解明済み)
  1. 試作受注の入口が完全には特定できていない(推測、第7章): ITJU01R/02R/03R(JSBS35〜37)はいずれも既存judp行の更新のみで新規採番を行わないため、試作受注はJSBS01/03経由で入力されると推測されるが、jud605が11〜29に実際にどこでセットされるかを直接確認できていない。またMENUT1/T2(試作管理サブシステム、MENU00から到達不能)という別サブシステムの存在も確認しており、試作管理の一部がMENUJ1の外側にある可能性がある。
    【ヒアリングで解明】 jud605=11/21/51はJSBS03で受注担当が直接入力して確定し、MENUT/MENUAはその後段の在庫再引当・作業指示発行を担うことが確定した(hearing.html B5、第7章参照)。
  2. 伝票№「8桁/16桁」という前提が確認できなかった(第6章): 実際に見つかった幅はjudp.junotd数値8桁、n1dp/n2dp英数字8桁、n3dp英数字15桁の3種。16桁の実装は発見できなかった。前提を出したソースの再確認を推奨する。
    【ヒアリングで解明】 新實さんにより「当社の伝票№月2桁連番4桁の計6桁。客先の伝票№の桁数はバラバラで数字8桁以内であればJUDPに入力、それ以外はn2dp,n3dpへ入力します。」と確認された——実測した3種の幅(8桁/8桁/15桁)は正しく、16桁は元々存在しないことが確定した(hearing.html B6)。
  3. 「かんばん品内示データ」「デンソーPT指示データ」という用語が、調査したRPGスペック内には見つからなかった(第4章)。近い概念(内示、デンソープレステック)はあるが、指定された用語そのものの裏付けは取れていない。
    【実VBAで解明、部分的】 RPGプログラムの処理説明文には出てこないが、AS/400テーブル台帳 analysis/out/masters_registry.jsonnjdpテーブル定義コメントに「かんばん品内示データ」 という語が実在することを確認(データディクショナリ用語として実在)。Excel側資産名(かんばん品内示と確定の比較)から、 この業務はPCマクロ側で完結している可能性が高い。「デンソーPT指示データ」は依然として未発見のまま(第4章「受信の実態」参照)。
    【ヒアリングでさらに解明】 「デンソーPT」「DNPT」「デンソー機工」「DNK」はいずれもデンソープレステック (得意先コード20)を指す新旧呼称の混在であることが確定した。「デンソーPT指示データ」という語そのものの 文字列的な裏付けは得られていないが、同じ呼称ゆれの一部と考えられる(hearing.html B6)。
  4. 指示形態21〜29の呼称が資料間で揺れている(第7章): screen-help.jsonの一部メッセージは指示形態21〜29を「号口組付品」と呼び、別のメッセージは同じ範囲を「試作組付品」と呼んでいる。両者が同一分類の別名なのか、21〜29の中でさらに細分化されているのかは今回の調査範囲では切り分けられなかった。
    【ヒアリングで解明】 2026-07-20メールにより「試作組付品」が正式な分類、「号口組付品」は呼称ゆれ・俗称と 確定済み(第7章参照)。
  5. JSBS53号口かんばん品内示入力(ITJM56R)の受注№採番の詳細(号口の「最終書込行方式」との整合性)は、通常受注(ITJM71R)との差異として記録されているが、両者が同一jkmpカウンタを共有すること自体に矛盾はないという整理に留まる(第2章、itjm52r.md Open Q2)。
    【ヒアリングで解明】 「B6のデンソープレステック以外の号口品の内示をばらして注文として入力するので、 実質的に通常の追加受注をする作業と同じ処理です。」——jkmpカウンタ共有は設計上の意図的な共有であり、 問題ではないことが確定した(hearing.html B8)。
  6. ITJM76R(部品引継ぎ)のjunojo自己参照とjud602引継ぎ元リンクの二重構造が意図的な設計か実装上の癖かは、当該スペック内のオープン課題として明示されているのみで確証は取れていない(第2章)。 【ヒアリングで一部確認】 新實さんに技術的な指摘内容自体が伝わらず設計意図の確認は得られなかったが、 「特に問題になったことは報告されていないと思います」との回答があり、少なくとも運用上の実害報告は無いことは 確認できた(hearing.html B8)。設計意図そのものは依然未解明。
  7. 分納(JSBS05)の過剰分割チェックの分母問題(第2章): 検証が「親の全受注数」を基準にしており「残数」を基準にしていないため、繰り返し分納すると残数を超過しうる。レガシー仕様として維持する方針だが、業務側での運用上の注意点として申し送りが必要。
    【ヒアリングで解明】 「分納処理は、受注数―納品数が次の受注数になるので超えることはないと認識しています。 また受注を超える納品は入力できないので、そこも超えないようになっています。」——差分計算+入力ブロックの 二重の安全策により実務上は超過しない(hearing.html B7)。
  8. JSBS23(最終受注納期問合せ)のKSML1アクセスパスがソース欠落により推測に留まる(第8章)。COMP/MOVELの使用パターンからキー構造を推測しているが、KSML1.txt自体はリポジトリに存在しない。 【ヒアリングで部分確認】 新實さんが添付したITJM27R.txt/JSBS23.txtは本リポジトリの既存アーカイブと 完全一致することを確認し、アーカイブの正確性・完全性は裏付けられた。ただしKSML1論理ファイル自身のDDS定義は 依然どこにも見つからず、キー順(kshnbb, kshnbj)はanalysis/out/lf_indexes.sqlの移行スキーマ側から 間接的に裏付けられるのみで、KSML1.txt自体の欠落という根本原因は未解消(hearing.html B8)。
    【2026-07-29ヒアリングで完全解決】 新實さんがKSML1.txtを添付。これが 本リポジトリに既に存在していたsource/as400-admin/transport-tooling/ITLIBS/KSML1.txt (およびsource/dev-archive/20101020_中止・数減処理に伴う在庫戻し/ITLIBS/KSML1.txt、両者は同一)と 末尾改行の有無を除いてバイト単位で一致することを確認した(添付534バイト/既存535バイト、差分は末尾の改行1文字のみ)。 全文はR KSMR PFILE(KSMP)、キーはK KSHNBBK KSHNBJの順—— キー順(子品番KSHNBB→親品番KSHNBJ)が直接確定し、analysis/out/lf_indexes.sqlから 間接推定していた順序と一致した。 「KSML1のDDS定義はどこにも見つからない」という記述は当方の探索漏れによる誤りだった——前ラウンド (2026-07-22)でITJM27R.txtの本文内にKSML1の定義が無いことを確認した際、ITLIBS/直下の 同名ファイル自体を確認していなかったことが原因。ソースは最初からリポジトリ内に存在していた。 同種の「ソース欠落」判定は他項目でも再点検の価値がある。 (出典: 新實さん、2026-07-29ヒアリングシート回答、docs/feedback/hearing/2026-07-29-niimi-hearing-sheet.md参照、hearing.html B8)
  9. 【新規】 DNKデータ処理の受信担当者(特定個人1名、第4章「受信の実態」参照)が不在・退職した場合の 代替手順は用意されているか。自動化(メール自動受信→自動変換)の要望はあるか。
  10. 【新規】 DNK処理済データには変更系統(cx-dheA025)のアーカイブのみで、定期系統 (cx-dorA025)のアーカイブが見当たらない。定期(dor)データのアーカイブはどこに保存されているか、 それとも保存されていないか。
  11. 【新規】 Data_Check.xlsmによるJUDP書込前後の差分確認は人間の目視のみで、承認/差し戻しの ゲートがない。この目視確認で誤りが見つかった場合、AS/400への書き込みをどう取り消す/修正する運用になっているか。
  12. 【新規】 受注まとめ入力データ変換.xlsmによるExcel→AS/400アップロードの実際のPUT操作 (Client Access側の手動転送手順)を実演・文書化してもらえるか。また共有キオスク型入力フォーム (受注まとめ入力.xlsx)の運用上の困りごとはあるか。
  13. 【新規】 構成データRL整列.xlsmにはJHMP_FILE/BHMP_FILE/ SNMP_FILEというファイル定数が宣言されているが、コードトレースで実際には一度も開かれていない (死んだ定数)ことを確認した。過去にAS/400マスタを参照する機能があって削除された経緯があるか、それとも 元々未使用のテンプレート流用か。
板倉製作所 業務フロー資料 — 出典: AS/400 ソース・翻訳仕様・Excel/VBA 資産(itakura-sys リポジトリ) ← 2. 見積・製品単価 / 4. 技術情報 →