Специализированное администрирование > Конфигурирование среды Windchill > Бизнес-правила > Доступные бизнес-правила > Правило атрибута
  
Правило атрибута
С помощью правила атрибута проверяется соответствие указанных атрибутов определенным условиям. Единственным требуемым входным параметром для конфигурации правила атрибута является тип объекта. Тип объекта должен быть типом объекта 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>
В следующем примере weight является внутренним именем глобального атрибута в некотором подтипе детали.
<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
Логическое значение, длинное целое, строка, дата, метка времени, действительное число с плавающей точкой, действительное число с плавающей точкой и с единицей измерения
Проверяет, что значение атрибута объекта не равно null. Для задания этой операции необходимо только ключевое слово SET.
SET
NOT_SET
Логическое значение, длинное целое, строка, дата, метка времени, действительное число с плавающей точкой, действительное число с плавающей точкой и с единицей измерения
Проверяет, что значение атрибута объекта равно null. Для задания этой операции необходимо только ключевое слово 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>