속성 규칙
속성 규칙은 지정된 속성이 특정 조건에 맞는지 검증합니다. 속성 규칙 구성을 위해서는 객체 유형만 입력하면 됩니다. 객체 유형은 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>
다음 표에는 지원되는 연산 및 속성 규칙 구성에서 지원되는 객체 유형이 나와 있습니다.
연산자
값 유형
설명
예제 로드 조건
>, >=, <, <=
Long, String, Date, Timestamp, FloatingPoint, FloatingPointWithUnits
객체 속성 값이 지정된 값보다 큰지, 크거나 같은지, 작은지 또는 작거나 같은지 검증합니다.
연산자 문자는 가져오기 로드에서 예약된 문자입니다. 보다 작은 연산자(<)는 ‘&lt;’, 보다 큰 연산자(>)는 ‘&gt;’로 지정되어야 합니다.
&gt;2012-01-12 00:00:00=&lt;=20.002&gt;=10
[0..10]
Long, String, Date, Timestamp, FloatingPoint, FloatingPointWithUnits
객체 속성 값이 지정된 범위 내에 있는지 검증합니다. 범위의 최소 값을 지정하지 않는 경우 조건은 작거나 같음과 동일합니다. 범위의 최대 값을 지정하지 않는 경우 조건은 크거나 같음으로 처리됩니다.
[-10.09..10.09][2012-01-12 00:00:00..2012-02-12 00:00:00][..100][0..]
=, !=
Boolean, Long, String, Date, Timestamp, FloatingPoint, FloatingPointWithUnits
객체 속성 값이 지정된 값인지 아닌지를 검증합니다.
연산자 문자 !는 가져오기 로드에서 예약된 문자이며 ‘#33;’으로 지정해야 합니다.
=true#33;=2012-02-12 00:00:00=10.09
[A,B]
Boolean, Long, String, Date, Timestamp, 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
Boolean, Long, String, Date, Timestamp, FloatingPoint, FloatingPointWithUnits
객체 속성 값이 Null이 아닌지 검증합니다. 키워드 SET만으로 연산을 지정할 수 있습니다.
SET
NOT_SET
Boolean, Long, String, Date, Timestamp, FloatingPoint, FloatingPointWithUnits
객체 속성 값이 Null인지 검증합니다. 키워드 NOT_SET만으로 연산을 지정할 수 있습니다.
NOT_SET
EQUALS
String
객체 속성 값이 지정된 문자열인지 검증합니다.
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>
도움이 되셨나요?