属性规则
属性规则可验证指定属性是否满足特定条件。配置属性规则只需输入对象类型。对象类型应为 wt.fc.Persistable。例如,com.ptc.Waiver 是 wt.change2.WTVariance 的子类型。
<configs>
<config name="objectType" value="com.ptc.Waiver"></config>
</configs>
可以仅使用类型外部名称来指定类型名称或类型字符串值 (com.ptc.Waiver 或 WCTYPE|wt.change2.WTVariance|com.ptc.Waiver)
可以从属性规则中排除指定对象类型的子类型。例如,以下 WTVariance 对象类型属性规则配置将排除对 com.ptc.Waiver 和 com.ptc.Deviation 类型超差的评估。
<configs>
<config name="objectType" value="wt.change2.WTVariance "></config>
<config name="excludedType" value="com.ptc.Waiver"></config>
<config name="excludedType" value="com.ptc.Deviation"></config>
</configs>
要配置用于验证指定对象类型属性的条件,配置名称为“属性名称”,值为“条件”。以下属性配置可检查 com.ptc.Waiver 是否具有 10 到 100 之间的批准数量。
<configs>
<config name="objectType" value="com.ptc.Waiver"></config>
<config name="approvedQuantity" value="[10..100]"></config>
</configs>
以下示例中,重量是某一部件子类型全局属性的内部名称。
<configs>
<config name="objectType" value="com.ptc.SubTypePart"></config>
<config name="weight" value="<=100"></config>
</configs>
下表显示属性规则配置所支持的运算以及对象类型。
运算符
值类型
说明
示例加载条件
>、>=、<、<=
长整数、字符串、日期、时间戳、浮点、带单位的浮点
验证对象属性值是否大于、大于或等于、小于、小于或等于指定的值。
运算符字符是导入加载中的保留字符;小于运算符 (<) 需指定为“&lt;”,大于运算符 (>) 需指定为“&gt;”。
&gt;2012-01-12 00:00:00=&lt;=20.002&gt;=10
[0..10]
长整数、字符串、日期、时间戳、浮点、带单位的浮点
验证对象属性值是否在指定范围内。如果未指定范围的最小值,则条件相当于小于或等于。如果未指定范围的最大值,则条件将视为大于或等于。
[-10.09..10.09][2012-01-12 00:00:00..2012-02-12 00:00:00][..100][0..]
=、!=
布尔型、长整数、字符串、日期、时间戳、浮点、带单位的浮点
验证对象属性值是否为指定值。
运算符字符 ! 是导入加载中的保留字符;必须将其指定为“#33;”。
=true#33;=2012-02-12 00:00:00=10.09
[A,B]
布尔型、长整数、字符串、日期、时间戳、浮点、带单位的浮点
验证对象属性值是否在离散集内。
[true][2012-02-01 00:00:00,2012-02-15 00:00:00,2012-02-30 00:00:00][MAJOR,CRITICAL][10.01,10.02][10,100,1000]
SET
布尔型、长整数、字符串、日期、时间戳、浮点、带单位的浮点
验证对象属性值是否非空。指定运算仅需关键字 SET。
SET
NOT_SET
布尔型、长整数、字符串、日期、时间戳、浮点、带单位的浮点
验证对象属性值是否为空。指定运算仅需关键字 NOT_SET。
NOT_SET
EQUALS
字符串
验证对象属性值是否为指定字符串。
EQUALS(MAJOR)
NOT_EQUALS
字符串
验证对象属性值不为指定字符串
NOT_EQUALS(MAJOR)
BEGINSWITH
字符串
验证对象属性值是否以指定字符串开头。
BEGINSWITH(PN)
NOT_BEGINSWITH
字符串
验证对象属性值是否未以指定字符串开头。
NOT_BEGINSWITH(PN)
ENDSWITH
字符串
验证对象属性值是否以指定字符串结束。
ENDSWITH(0)
NOT_ENDSWITH
字符串
验证对象属性值是否未以指定字符串结束。
NOT_ENDSWITH(0)
CONTAINS
字符串
验证对象属性值是否包含指定字符串。
CONTAINS(PN0)
NOT_CONTAINS
字符串
验证对象属性值是否不包含指定字符串。
NOT_CONTAINS(PN0)
LENGTH
字符串
验证对象属性字符串长度是否在指定范围内。
LENGTH(0..40)LENGTH(0..)LENGTH(..40)
* 
系统区域设置用于属性条件中的日期和时间戳格式。
示例
假设您具有一个属性名为重量的特定子类型部件来表示部件的重量。释放带有重量的部件前,要确保将部件的重量设置为合理的值。为此,请构建业务规则以验证重量属性在 1-100 范围内。
业务规则设置:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BusinessRuleSet SYSTEM "standardX20.dtd">
<BusinessRuleSet>
<ObjectID><localId>wt.businessRules.BusinessRuleSet:45347</localId>
</ObjectID>

<objectContainerPath>/wt.inf.container.OrgContainer=
BusinessRulesTestOrganization/wt.pdmlink.PDMLinkProduct=
BusinessRulesTestProduct</objectContainerPath>
<key>CHANGEABLE_PRE_RELEASE</key>
<name>Test_Changeable_ReleaseRuleSet</name>
<description>To test basic Attribute RuleSet Validation</description>
<enabled>true</enabled>
<overridable>true</overridable>
<updateIfExists>true</updateIfExists>
</BusinessRuleSet>
业务规则:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BusinessRule SYSTEM "standardX20.dtd">
<BusinessRule>
<ObjectID><localId>wt.businessRules.BusinessRule:168926</localId></ObjectID>
<objectContainerPath>/wt.inf.container.OrgContainer=
BusinessRulesTestOrganization/wt.pdmlink.PDMLinkProduct=
BusinessRulesTestProduct</objectContainerPath>
<key>PART_ATTRIBUTE_RULE</key>
<selector>ATTRIBUTE_RULE</selector>
<name>Test Attribute Rule</name>
<description>Test Attribute Rule</description>
<enabled>true</enabled>
<updateIfExists>true</updateIfExists>
<configs>
<config name="objectType" value="wt.part.AttributeRulePart"></config>
<config name="weight" value="[0..100]"></config>
</configs>
</BusinessRule>
业务规则链接:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE BusinessRuleLink SYSTEM "standardX20.dtd">
<BusinessRuleLink>
<ObjectID><localId>wt.businessRules.BusinessRuleLink:168919</localId>
</ObjectID>

<ruleSet><ObjectReference><localID>wt.businessRules.BusinessRuleSet:45347
</localId></ObjectReference></ruleSet>

<rule><ObjectReference><localID>wt.businessRules.BusinessRule:168926
</localId></ObjectReference></rule>
<blockNumber>1</blockNumber>
<updateIfExists>true</updateIfExists>
</BuisnessRuleLink>
这对您有帮助吗?