产品配置模型的计算常见问题
本文描述产品配置模型的计算,并说明如何将计算与约束一起配合使用。
计算可以用于算术运算或逻辑运算。 它们补充产品配置模型的表达式约束。 您可以在基于约束的产品配置模型详细信息页上定义计算,然后在表达式编辑器中构建计算表达式。 有关详细信息,请参阅“创建计算”。
计算是什么?
计算是您在产品配置模型中可以使用的元素。 在您配置产品时,通过能够让您使用小数来计算值,计算可以补充约束。 此外,与约束相比,计算具有更大的可用运算符集。
与约束相似,计算与产品配置模型中的特定组件关联,且其不能被其他组件重用或共享。 计算和约束之间的重要差异在于计算是必需的(单向),而约束是说明性的(双向)。 有关约束的详细信息,请参阅产品配置模型中的表达式约束和表约束。
计算包含目标属性和计算表达式。
目标属性是什么?
目标属性是一种接收计算表达式结果的属性。
在下面的表达式中,目标属性是桌布度量:
表达式: If[decimalAttribute1 <= decimalAttribute2,True,False]
DecimalAttribute1 是桌子长度, decimalAttribute2 是桌布长度。 如果 decimalAttribute2 大于或等于 decimalAttribute1,则表达式返回 True 值到目标属性。 否则,该表达式返回 False 值。 因此,如果桌布长度等于或超过桌子长度,则可接受桌布度量。
对目标属性可以设置何种属性类型?
除了没有固定列表的文本,产品配置器支持的所有属性类型均可设置为目标属性。
目标属性的值可以限制计算中输入属性的值吗?
不能,目标属性的值不能限制输入属性的值,因为计算是单向的。 因此,目标属性的值基于输入属性值的更改设置,但是,该目标值的更改不影响输入属性的值。 此行为与约束的行为不同。 约束出现在两个方向。
示例
在下面的表达式中,计算的目标是电源线的长度,并且输入值为颜色:
表达式: [If Color ==“Green”,1.5,1.0]
果您指定绿色为颜色属性的值,则设置电源线的长度为 1.5。 如果您指定其他颜色,该长度设置为 1.0。 但是,由于计算为单向,如果您指定长度为 1.5,计算不能将颜色属性的值设置为绿色。
如果计算具有整数类型的目标属性,但是计算生成了一个小数,此时将发生什么情况?
如果目标属性是整数类型,不过,计算生成小数,则只返回计算结果的整数部分。 移除小数部分,且不舍入结果。 例如,结果为 12.70 将显示为 12。
何时出现计算?
在为所有输入属性提供一个值时出现计算。
我可以覆盖为目标属性计算的值吗?
您可以覆盖为目标属性计算的值,除非目标属性被设置为隐藏或只读状态。
当处于隐藏或只读状态时,如何设置目标属性?
若要设置处于隐藏或只读状态的属性,请执行以下步骤。
- 单击产品信息管理>产品>产品配置模型。
- 选择产品配置模型,然后在“操作窗格”上,单击 编辑。
- 在基于约束的产品配置模型详细信息页上,选择用作目标属性的属性。
- 在属性快速选项卡上,选择隐藏或只读。
计算可以覆盖我设置的值吗?
编号 在您配置产品时您设置的值即为所使用的值。 在计算中更改输入值时出现的计算不能覆盖您为特定属性提供的值。
如果我移除计算中的输入值会发生什么情况?
如果您移除计算中的输入值,目标属性的值也将被移除。
为什么我收到一条错误消息称我的模型处于冲突状态?
在计算包含错误或在一个或多个约束存在冲突时将显示此消息。 有关约束中冲突的详细信息,请参阅产品配置模型中的表达式约束和表约束。 这是一些计算中可能出现错误的情况:
- 值除以 0(零)。
- 冲突存在于以下两个元素之间:
- 可用于属性的值与由约束限制的值
- 由计算产生的值
- 由计算返回的值超出属性的域之外。 示例是计算为 0 的从 [1..10] 的一个整数。
为什么即使在我成功验证了我的产品模型后仍收到错误消息?
验证中并不包括计算。 您必须测试产品配置模型以查找计算中的错误。 若要测试产品配置模型,请按照下面的步骤执行。
- 单击产品信息管理>产品>产品配置模型。
- 选择产品配置模型,然后在“操作窗格”上,在运行组中单击测试。