現在のたいていのAPSは、組立加工のジョブショップ(ディスクリート)型生産向けにできている。製品や部品の数量は、1個・2個・・と個数で数えられ、必要に応じてシリアル番号を打つことができる。部品表(BOM)は最終製品から下向きに広がっているツリーの形をしており、これをアルファベットの「A」の文字になぞらえて、A型BOMと呼ぶ。

ところで、世の中にはディスクリート型に当てはまらない生産形態の工場がある。化学工業はその典型だ。化学工場の製品はたいてい、液体かガスであり、シリアル番号化はおろか1個・2個と数えることさえ、できない。材料や製品はタンクに保管され、輸送はふつうパイプをつかって行なわれる。こうしたタイプの業態をプロセス生産と呼ぶ。

プロセス生産は、さらに連続プロセスとバッチ・プロセスに分類できる。連続プロセスの典型は石油精製やエチレン・プラントで、24時間365日、同じ製品群をずっと作りつづける(原料や製品の性状が少し変わることはあるが、同じ品目と見なされる範囲である)。反応器や蒸留塔などの装置には常時、原料の供給と製品の流出を行なっている。

他方、バッチ・プロセスは、その中核工程にバッチ方式の反応・処理がある。バッチ処理とは、原料を装置に仕込んで、一定時間かけて、ある変化を起こさせるものである。電気釜でご飯を炊くようなものだと思えばよい。バッチ処理の特徴は、原料の供給と製品の払出しが連続的ではなく間歇的であること、処理時間の長さが処理量に比例しないこと(1合のご飯を炊く時間は2合の半分では済まない)、同じ処理装置を使ってさまざまな製品を作れること(白いご飯でも炊き込みご飯でも)、などである。

原則として、完全な連続プロセスの工場には、スケジューリングの問題は存在しない。なぜなら、つくるものが常時同じだからだ。あるのは原料性状の変化などに対応するための、最適制御の問題だけである。ところが、バッチ・プロセスの工場は、多品種を切り替えて生産するケースがほとんどであり、明瞭にスケジューリングが必要である。にもかかわらず、現在のたいていのAPSでは、このバッチ・プロセスのスケジューリング問題を解くために致命的な、ある機能が欠けていることに、多くの人は気づいていないようだ。それは、「タンク」というリソースの取り扱いである。

プロセス生産の工場では、原材料や製品・中間品を保管するためにタンクをもっている。しかし、APSの観点から見ると、このタンクという装置はずいぶんと奇妙なリソースである。まず、このタンクという装置は、何もしない。入ってくる品目と出ていく品目が同一なのだ。そんなの、一時保管が目的なのだから、当たり前じゃないか、と思われるだろうか? しかし、だったらこのリソースは工順マスタの中で、どこにどのように位置づけるべきだろうか。APSでは、BOMにおける各階層の親子の間には、一つ以上の工順(工程)と、そのためのリソースが定義されていなければならない。いいかえると、リソースの入りと出が同じなどということは、考えられていないのだ。

もうひとつタンクに特徴的なことは、それが配管で他の装置とつながれていることである。つまり、他のリソースとの関係が固定的なのだ。ジョブショップ型の工場では、リソースの選択は原則として自由であり、前の処理がどの機械で行なわれたかには依存しない。ところが、プロセス型の工場ではそうはいかないのだ。

さらに、タンクには処理時間が規定できない(当たり前だが)。好きなときに入れて、好きなときに出すことができる。ただし払出しに要する時間は、ポンプの処理能力が一定のため、ふつうはその内容量に比例する。払出しながら、同時に注ぎ足したりすることもできる。

タンクは、どの品目でも保管することができる(温度圧力の制限に合致する限り)。ただし、一時に一つの品種しか保管できない。複数の品目を入れたら、中で混ざってしまう。これが、ディスクリート型工場で用いられる保管装置と異なる点だ。

そして、もっとも困る点は、容量に上限があることだ。バッチ・プロセスのスケジューリング問題で、いつも最大の悩みの種は、限られたタンクの使い回し、「タンク繰り」の問題なのである。タンクは高価で場所ふさぎなため、どこの工場でも有り余るほどタンクを持てないからだ。

ディスクリート型APSでは、製品・中間品の一時保管量を計算できるものは多い。が、そこに上限をつけられるものは少ないし、ましてや複数の品目の間で切替の制限を付けられるものは、非常に少ない。したがって、タンクは保管場所としてはモデル化しにくい。でも、加工処理のリソースとしては、もっとモデル化しづらい。バッチ・プロセス型の工場が抱えるスケジューリング問題は、案外やっかいなのである。