要件は「追跡できること」ではなく「何分で追えるか」
系譜(ジェネアロジー)管理の要件定義書に、次のように書かれていることがあります。
製品から使用した原材料ロットを追跡できること。原材料ロットから出荷先を追跡できること。
この書き方には2つの問題があります。第一に、検収時に「追跡できました」と言われたら合格にせざるを得ない。第二に、実際のリコールで効く条件——時間——がどこにも書かれていません。
要件を時間で書くと、こうなります。
任意の原材料ロット番号を起点として、影響を受ける製品ロットの一覧と出荷先一覧を、システム操作のみで30分以内に出力できること。対象期間は直近24か月。ただし出力結果の妥当性確認と社内承認は含まない。
この書き方にすると、検収は模擬リコール演習で実施でき、合否がその場で決まります。そして設計側は、30分という数字から逆算してデータモデルとインデックスを決めることになります。
追跡時間の内訳は4つに分かれる
模擬リコールを実際にやってみると、時間は次の4つに分かれます。多くの工場で最も長いのは3番目です。
| 段階 | 内容 | 典型的な所要時間 | 短縮の手段 |
|---|---|---|---|
| ① 起点の特定 | クレーム品や不良品から製造ロット・製造日時を確定 | 数分〜数時間 | 製品側の識別(ラベル・刻印)の可読性に依存 |
| ② 系譜の展開 | 前方・後方に親子リンクをたどる | 数秒〜数十分 | データモデルとクエリ設計で決まる |
| ③ 系譜外データの突合 | MESに載っていない副資材・包材・治具・作業者を手作業で照合 | 数時間〜数日 | 対象範囲の設計。ここが最大のボトルネック |
| ④ 出荷先への接続 | 製品ロットから出荷実績・納品先を引く | 数分〜数時間 | ERP/WMSとのキー整合 |
②を高速化する提案は多いのですが、実務で効くのは③です。MESに載っていない品目が1つでもあると、そこで手作業が発生し、追跡時間は分単位から日単位に跳ね上がります。副資材(接着剤、洗浄液、離型剤)、包装材、そして工程で使った金型・治具を系譜の対象に含めるかどうかは、性能ではなく範囲の設計判断です。
前方追跡と後方追跡、そしてfan-out
系譜の探索には2方向あります。製品から原材料へさかのぼる後方追跡(トレースバック)と、原材料から製品・出荷先へ広げる前方追跡(トレースフォワード)です。
後方追跡は「この製品に何が入っていたか」なので、たどるほど対象は収束します。難しいのは前方追跡です。混合工程を1つ通るたびに影響範囲は掛け算で広がり、原材料1ロットの回収が製品数百ロット・出荷先数百件に及ぶことは珍しくありません。
そしてfan-outを正しく計算するには、次の3つをモデル化する必要があります。
- 混合:複数の親ロットから1つの子ロットができる(多対一)
- 分割:1つの親ロットから複数の子ロットができる(一対多)
- 再投入:手直し品・端材を工程の前段へ戻す(循環が発生しうる)
3番目を軽視した設計が最も多く見られます。再投入を「新しいロットとして受け入れ」として処理すると、親子リンクが切れ、追跡が途中で止まります。それでもシステムはエラーを出さないため、模擬リコールをやるまで気づきません。
連続プロセスには親子リンクが存在しない
液体・粉体・シート・押出成形など、投入と払出が連続する工程では、そもそも「このロットからこのロットができた」という離散的な関係が成立しません。この場合の系譜は、親子リンクではなく時刻窓の重なりとして表現します。
実装は次の形になります。設備ごとに「いつからいつまで、どの原料ロットを投入していたか」を記録し、同時に「いつからいつまで、どの製品ロットを払い出していたか」を記録する。両者を時刻で突き合わせ、さらに設備内の滞留時間(配管容量÷流量、炉内滞留時間など)を遅延として加味して関連づけます。
ここで設計判断になるのが滞留時間の扱いです。固定値を使うか、流量から動的に計算するか。固定値のほうが実装は簡単ですが、生産速度が変動する工程では前後のロットへ数分〜数十分のずれが出ます。安全側に倒して前後のロットを両方影響範囲に含める運用が現実的ですが、その分だけ回収範囲は広がります。「精度を上げるコスト」と「回収範囲が広がるコスト」の比較が、この判断の本質です。
保持期間とクエリ性能をどう設計するか
系譜データは、製品の使用期間+法定保存期間で保持期間を決めます。自動車部品なら15年、医療機器なら製品寿命に応じてそれ以上になることもあります。ここで問題になるのが、10年前のデータを含めた探索を30分以内に終えられるかです。
現実的な設計は3通りです。
- オンラインのグラフ探索:親子リンクをそのままたどる。データ量が中規模までなら最も柔軟。段数が深いと再帰クエリの深さが性能を支配する
- 事前展開テーブル:ロット確定時に、そのロットの全祖先/全子孫を平坦化したテーブルへ書き込む。検索は一瞬になるが、書き込み量が増え、再投入があると更新が複雑になる
- 階層アーカイブ:直近2年をオンライン、それ以前を分離した検索用DBへ。運用は増えるが、本番系の性能を守れる
選ぶ基準は、探索の深さと再投入の頻度です。工程が10段を超え、手直し品の再投入が日常的にあるなら、事前展開は更新コストが見合いません。逆に工程が浅く、リコール要求時間が厳しい業種では事前展開が効きます。ここは製品を選ぶ前に、自社の工程段数と月間ロット数で見積もっておくべき項目です。
データモデルそのものの設計は製品の追跡と系譜管理、ジェネアロジーの設計、識別単位をロットにするかシリアルにするかはロット管理とシリアル管理はどちらを選ぶかで扱います。欧州向け製品では、系譜データがそのままデジタルプロダクトパスポートの入力になるため、デジタルプロダクトパスポート(DPP)は「MESの新しい出力仕様」であるも合わせて確認します。
よくある質問
系譜の対象に、副資材や包材まで含めるべきですか?
「その品目が原因でリコールが起きうるか」で判断します。接着剤、洗浄液、離型剤、印刷インキ、包装フィルムは、いずれも過去に回収事例がある品目です。含めるコストは、受入時のロット記録と、工程での消費実績の記録という2点に集約されます。設備に投入する副資材であれば、投入時刻の記録だけでも時刻窓による関連づけが可能です。逆に、汎用消耗品(ウエス、手袋など)まで広げると入力負荷に見合いません。判断の線引きは、品質保証部門と製造部門で合意し、その範囲を文書化しておきます。範囲を決めていないことが、模擬リコールで手作業が発生する最大の原因です。
ERPの出荷実績とMESのロット情報が突き合わせられません。どう設計すべきですか?
突き合わせに使うキーを1つに固定するのが原則です。多いのは、MESが製造ロット番号を管理し、ERPは出荷伝票と品目コードしか持たないため、どのロットがどの伝票で出たかが分からないというケースです。この場合、出荷時点でロット番号をERP側へ渡すか、MES側に出荷実績(伝票番号・納品先)を戻すかのどちらかが必要になります。後付けで解決しようとすると、倉庫の払出ルール(先入先出の実運用)から推定する作業になり、精度が保証できません。連携の粒度とキーは、稼働前に決めるべき項目です。
追跡時間の目標は、何分に設定するのが妥当ですか?
業種と顧客要求から逆算します。自動車業界では完成車メーカーからの照会に対する回答時間が取引条件に含まれることがあり、食品では行政への報告期限が起点になります。社内で目標を作る場合の実務的な出発点は「4時間以内に影響範囲を確定し、24時間以内に出荷先への連絡を開始できる」という水準です。ここから逆算すると、システム操作の部分は30分〜1時間に収める必要があります。重要なのは数字そのものより、目標時間を決めて演習で測り、超過した原因を潰す運用を回すことです。
