屬性規則
屬性規則可驗證指定的屬性是否符合某些條件。物件類型是屬性規則組態的唯一必要輸入。物件類型應是 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>
下表顯示支援的運算以及屬性規則組態中支援的物件類型。
運算子
值類型
描述
範例載入條件
>, >=, <, <=
長整數、字串、日期、時間戳記、FloatingPoint、FloatingPointWithUnits
驗證物件屬性值是大於、大於等於、小於還是小於等於指定的值。
運算子字元是匯入載入中的保留字元;小於運算子 (<) 需要指定為 '&lt;',大於運算子 (>) 則需要指定為 '&gt;'。
&gt;2012-01-12 00:00:00=&lt;=20.002&gt;=10
[0..10]
長整數、字串、日期、時間戳記、FloatingPoint、FloatingPointWithUnits
驗證物件屬性值是否在指定範圍內。如果未指定範圍內的最小值,則條件相當於小於等於。如果未指定範圍內的最大值,則會將條件視為大於等於。
[-10.09..10.09][2012-01-12 00:00:00..2012-02-12 00:00:00][..100][0..]
=, !=
布林值、長整數、字串、日期、時間戳記、FloatingPoint、FloatingPointWithUnits
驗證物件屬性值是否為指定的值。
運算子字元 ! 是匯入載入中的保留字元;該字元必須指定為 '#33;'
=true#33;=2012-02-12 00:00:00=10.09
[A,B]
布林值、長整數、字串、日期、時間戳記、FloatingPoint、FloatingPointWithUnits
驗證物件屬性值是否在分散集內。
[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
布林值、長整數、字串、日期、時間戳記、FloatingPoint、FloatingPointWithUnits
驗證物件屬性值是否並非空值。欲指定運算,只需要有關鍵字 SET。
SET
NOT_SET
布林值、長整數、字串、日期、時間戳記、FloatingPoint、FloatingPointWithUnits
驗證物件屬性值是否為空值。欲指定運算,只需要有關鍵字 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>
這是否有幫助?