为产品组件创建一个表达式约束
应用于: Microsoft Dynamics AX 2012 R3, Microsoft Dynamics AX 2012 R2, Microsoft Dynamics AX 2012 Feature Pack
本主题描述如何在“Microsoft Dynamics AX”的产品配置模型中为组件创建表达式约束。约束控制的对象是您在为销售报价单、采购订单或生产订单配置产品时可以为组件选择的属性值。您可以使用以下类型的约束:
表达式约束
表约束
约束表和表达式约束的约束生成方式不同。但是,所使用约束的类型不影响实际的产品配置。有关约束类型之间差异的详细信息,请参阅表达式约束和表约束。
有关如何创建表约束的详细信息,请参阅创建一个表约束。
创建一个表达式约束
表达式约束的特性是使用算术和布尔运算符和函数的表达式。表达式约束是为产品配置模型中的特定组件而写的。其他组件不能重用或共享它。但是,组件的表达式约束可以引用组件的子组件的特性。您可以使用约束来控制配置销售订单、销售报价单、采购订单或生产订单的产品时可以选择的属性值。
您可以使用表达式编辑器创建表达式约束,或者可以通过使用属性的优化建模语言语法写入它们。使用“Microsoft” Solver Foundation 约束求解器来处理这些约束。编写约束时,必须使用优化建模语言 (OML) 语法。有关详细信息,请参阅 Microsoft Solver Foundation。
请使用表达式编辑器并执行以下步骤来创建表达式约束:
单击 产品信息管理 >常用 >产品配置模型。
在组件树中,选择要为其编写表达式约束的组件。
选择产品配置模型,然后单击“编辑”。
在“基于约束的产品配置模型详细信息”窗体中,在“约束”快速选项卡上,请单击“添加”添加新约束。
在 约束类型 字段中,选择 表达式约束,然后单击 创建。
在“表达式”字段中,请单击下拉箭头或者按下Alt与向下箭头。
在“表达式约束编辑器”窗体中的“所有符号”选项卡上,双击符号或按下“回车”以在“表达式”字段中输入该符号。
使用同一种方法将属性、运算符和值添加到表达式中。有关使用属性、运算符和值的详细信息,请参阅“表达式约束和表约束”。
单击“验证”验证约束,然后单击“确定”来关闭“表达式约束编辑器”窗体。
在不使用表达式编辑器的情况下可以执行以下步骤来创建表达式约束:
单击 产品信息管理 >常用 >产品配置模型。
在组件树中,选择要为其编写表达式约束的组件。
选择产品配置模型,然后单击“编辑”。
在“基于约束的产品配置模型详细信息”窗体中,在“约束”快速选项卡上,请单击“添加”添加新约束。
在 约束类型 字段中,选择 表达式约束,然后单击 创建。
在字段“表达式”中,写入表达式。请确保您编写的属性符合属性类型定义的优化建模语言语法。请参考下一部分中表格里的示例,它显示的是如何通过使用优化建模语言语法编写属性。
单击“验证”以验证约束。
表达式约束的示例
此示例显示的是如何限制特定尺寸的电视机的季节性报价配置。
投影电视的屏幕尺寸必须大于或等于 50 英寸,具有两个或四个 USB 端口以及黑色框架。在产品配置模型中创建以下属性类型。求解器名称是通过使用优化建模语言语法编写的属性类型名称。
姓名 |
求解器名称 |
类型 |
---|---|---|
屏幕类型 |
屏幕类型 |
与范围的整数 |
USB 端口 |
usb端口 |
具有固定列表的文本 |
框架颜色 |
边框颜色 |
具有固定列表的文本 |
表达式如下:
screenType == “Projection” -: (screenSize >= 50
(& usbPorts == “two” | usbPorts == “four”)
& frameColor == “black”)
此表达式约束使用了隐含运算符“-:”,包含以下两部分:
隐含运算符左边访问功能评估屏幕类型属性,如果屏幕类型接受“Projection”值,则评估为“True”。
隐含运算符右侧部分结合了布尔表达式来确保:
屏幕尺寸属性为大于或等于 50 英寸。
USB 端口的数量为两个或四个。
颜色为黑色。
如果满足所有内部表达式,则评估结果为“True”。如果我们考虑整个表达式,则满足隐含(如“A -: B”):
A 评估为“True”,则 B 必须为“True”。
A 评估为“False”,则 B 可能为“True”或“False”。
因为这是约束而非规则,所以难点在于对右侧表达式进行评估前不会等待对其进行的更改。相反,求解器引擎会始终确保其符合表达式。在此示例中,如果电视属性不满足布尔表示式,此电视机就不是投影电视。
相关任务
系统管理员技术信息
如果您无权访问用于完成此任务的页面,请联系系统管理员,并提供下表中显示的信息。
类别 |
先决条件 |
---|---|
Configuration Key |
此任务无需配置键。 |
安全角色 |
若要使用表达式编辑器,您必须是产品设计者 (BOMProductDesigner) 安全角色的成员。 |