共用方式為


常見問題集:產品配置模型的計算

本文介紹產品配置模型的計算,並說明如何將計算與限制式結合使用。

計算可用於算術或邏輯運算。 它們補充了產品配置模型中的運算限制式。 您可以限制式型產品配置模型詳細資料頁面定義計算,然後在運算式編輯器中構建計算的運算式。 如需詳細資訊,請參閱「建立計算」。

什麼是計算?

計算是您可以在產品配置模型中使用的元素。 計算讓您在設定產品時使用小數來計算值來補充限制式。 此外,計算具有比限制式更多的可用運算子集合。

與限制式一樣,計算與產品配置模型中的特定組件相關聯,並且不能被另一個組件重複使用或共享。 計算和限制式之間的一個重要區別是計算是命令式的 (單向),而限制式是宣告式的 (雙向)。 更多關於限制式的資訊,請參閱產品配置模型中的運算限制式和限制式

計算由目標屬性和計算運算式組成。

什麼是目標屬性?

目標屬性為接收計算運算式結果的屬性。

在以下運算式中,目標屬性是桌布測量值:

表達式: 如果[十進位屬性 1 <= 十進位屬性 2,真,假]

十進位屬性 1 是表格長度, 十進位屬性 2 是桌布長度。 如果 decimalAttribute2 大於或等於 decimalAttribute1,運算式回傳值 True 到目標屬性。 否則,運算式回傳 False。 因此,如果桌布長度等於或超過桌子的長度,則桌布測量值是可以接受的。

可以將哪些屬性類型設定為目標屬性?

產品設定器支援的所有屬性類型都可以設定為目標屬性,除了沒有固定清單的文字。

目標屬性的值能否限制計算中輸入屬性的值?

不行,目標屬性的值不能限制計算中輸入屬性的值,因為計算是單一方向的。 因此,目標屬性的值是依改變輸入屬性值來設定的,但目標屬性值的變化不會影響輸入屬性的值。 此行為不同於限制式的行為。 限制式在兩個方向出現。

範例

在下面的運算式中,計算的目標是電源線的長度,輸入值為顏色:

表達式: [如果顏色 ==“綠色”,1.5,1.0]

在設定品項時,如果指定顏色屬性值為綠色,電源線長度設定為1.5。 如果指定任何其他顏色,則長度設定為 1.0。 但是,由於計算是單向的,因此如果您指定長度 1.5,計算不會將顏色屬性的值設定為綠色

如果計算具有整數類型的目標屬性但計算生成小數,會發生什麼情況?

如果目標屬性是整數類型,但計算生成的是小數,則只回傳計算結果的整數部分。 小數部分被移除,結果不四捨五入。 例如,12.70 的結果顯示為 12。

什麼時候進行計算?

當為所有輸入屬性提供了值,就會進行計算。

我可以覆寫計算給目標屬性的值嗎?

您可以覆寫計算給目標屬性的值,除非目標屬性設定為隱藏或唯讀。

如何將目標屬性設定為隱藏或唯獨?

要將屬性設定為隱藏或唯獨,請執行以下步驟。

  1. 按一下產品資訊管理>產品>產品配置模型
  2. 選取產品配置模型,然後在動作窗格中按一下編輯
  3. 限制式型產品配置模型頁面,選取屬性來作為目標屬性使用。
  4. 屬性FastTab,選取隱藏唯讀

計算可以覆寫我設定的值嗎?

不行。 在設定產品時,您設定的值就是使用的值。 更改計算中的輸入值因而發生的計算,不能覆寫您為特定屬性提供的值。

如果我在計算中移除輸入值會怎樣?

如果在計算中移除輸入值,則目標屬性的值也會被移除。

為什麼我會收到一條錯誤消息,指出我的模型存在矛盾?

當計算包含錯誤或在限制式中存在一個或多個矛盾時,會顯示此訊息。 更多關於限制式的矛盾資訊,請參閱產品配置模型中的運算限制式和限制式。 以下是計算中可能出現錯誤的一些情況:

  • 一個值除以 0 (零)。
  • 以下兩個元素之間存在矛盾:
    • 可用於屬性並受限制式限制的值
    • 由計算生成的值
  • 計算回傳的值在屬性域之外。 一個例子是一個 [1..10] 的整數被計算為 0。

為什麼即使我成功驗證了我的產品型號,我仍會收到錯誤訊息?

計算不包括在驗證中。 您必須測試產品配置模型以發現計算錯誤。 要測試產品配置模型,請執行以下步驟。

  1. 按一下產品資訊管理>產品>產品配置模型
  2. 選取產品配置模型,然後在動作窗格,到執行群組,按一下測試