コンフィグレータの仕組み

このページでは、コンフィグレータが複雑な見積もりをどのようにサポートするか、ご説明します。ここでは、弊社で扱っている Order CPQで、様々な条件や制約をどのように表現するのかについてご紹介します。

組合せ制約

「CPQについて」のページで、仕様と仕様の組合せが設計・製造上保証できているものと保証できないものがあり、見積もり時に膨大な組合せから保証されている組合せかどうかを判断するのが難しいという話をしました。

例えば、ある製品で、以下のような 3 つの仕様項目があるとします。

・ 項目 A:仕様 a1、a2
・ 項目 B:仕様 b1、b2、b3、b4
・ 項目 C:仕様 c1、c2、c3

この中で組合せ可能な仕様の制約として、以下があるとします。

  1. 仕様 a1 に対しては、仕様 b1・b2 が、仕様 a2 は項目 B のどれでも組合せ可能
  2. 仕様 b2・b4 に対して仕様 c1・c3 が、仕様 b1・b3 は仕様 c2 のみ組合せ可能
  3. ただし、a2、b2、c1 は組合せできない

全ての仕様の組合せとしては 2×4×3=24 通りあります。従って、正しい組合せかどうかを判断するためには、この 24 通り全てに組合せ可能かどうかの○×表を作らなければなりません。24 通りでも正しく○×表を作るのには多少時間がかかります。これが 5 項目それぞれ 5 仕様あったら、3000 を超える組合せになってしまい、とてもメンテナンスできる気がしません。

しかし、Order CPQのコンフィグレーショエンジンでは、各仕様に選択可能な条件をルールとして記述すればよいので、下記のように制約をそのまま定義します。

|項目|仕様|ルール
――――――――――――――――――――――――――――
|項目|b3|c
|項目|b4|a2
|項目|c1|(b2またはb4)かつ、(a2かつb2)でない
|項目|c2|b1またはb3
|項目|c3|b2またはb4

これで項目 A から順に選んでいくと、項目 B、C の中で選択可能な仕様だけが絞り込まれます。これによって製造可能な仕様の組合せだけが選ばれることが保証されるというわけです。

なおルール記述には計算式や不等号等を使用することもできます。こうした、組合せではなく仕様間にある制約を定義するコンフィグレータは「ルール記述型」と呼ばれます。

必須選択、任意選択

仕様を選択していく中で、必ず選択しなければならない項目と、選んでも選ばなくてもよい項目があります。選択が必須となる項目は製品を作る上で決めなければならない仕様であり、選択が任意の項目はオプションのような追加仕様になることが多いと思います。


Order CPQ では、仕様項目に選択数の最小・最大値を設定できます。最小値を 1 にすると、少なくとも 1 つの仕様を選択しなければならない項目、つまり必須項目となります。一方、最小値を 0 にすると、0 個以上の仕様を選択しなければならない項目、つまり選択しなくてもよい任意選択の項目となります。また最大値を 1 にすると、その項目は最大 1 つの仕様しか選択できない、つまり選択できるのは項目内で排他的に 1 つだけという定義になります。
こうした最小・最大値をうまく組合せて、様々なパターンを表現できます。

推奨、標準仕様

自動車の見積のとき、エアロパーツを選んだお客さんにはそれに合ったホイールを推奨したり、標準仕様として一通りの仕様が決まっていて、その仕様であれば本体価格に含まるが仕様を変えると価格が増減される、といった製品もあるでしょう。またあるグレードを選んだら排気量は 3000 ㏄で、燃料はハイオク、シートはレザーでといったように、他の仕様が決まったりする場合もあると思います。

こうした、ある仕様を選んだら自動的に他の仕様が選ばれる、といった動きをさせたいことがあります。Order CPQでは、ある仕様を選んだら他の仕様が自動選択される、条件が満たされたら自動的にある仕様が選択される、といった設定ができます。
他にも、複雑な仕様を表現するための様々な機能があります。詳しくは、個別のデモなどでご紹介いたします。