Administración especializada > Configuración del entorno Windchill > Reglas empresariales > Reglas empresariales disponibles > Regla de atributo
  
Regla de atributo
La regla de atributo comprueba si los atributos especificados cumplen determinadas condiciones. El tipo de objeto es la única entrada necesaria para la configuración de una regla de atributo. El tipo de objeto debe ser wt.fc.Persistable. Por ejemplo, com.ptc.Waiver es un subtipo de wt.change2.WTVariance.
<configs>
<config name="objectType" value="com.ptc.Waiver"></config>
</configs>
Se puede especificar el nombre del tipo o el valor de la cadena del tipo utilizando solo el nombre externo del tipo (com.ptc.Waiver o WCTYPE|wt.change2.WTVariance|com.ptc.Waiver)
Es posible excluir subtipos del tipo de objeto especificado en la regla de atributo. Por ejemplo, la siguiente configuración de la regla de atributo para el tipo de objeto WTVariance excluiría las variaciones com.ptc.Waiver y com.ptc.Deviation del tipo en una evaluación.
<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>
Para configurar una condición que se valide en un atributo del tipo de objeto especificado, el nombre de configuración es Nombre de atributo y el valor es Condición. La siguiente configuración de atributo comprueba si un com.ptc.Waiver tiene una cantidad aprobada entre 10 y 100.
<configs>
<config name="objectType" value="com.ptc.Waiver"></config>
<config name="approvedQuantity" value="[10..100]"></config>
</configs>
El siguiente es un ejemplo en el que el peso es el nombre interno de un atributo global en un subtipo del artículo.
<configs>
<config name="objectType" value="com.ptc.SubTypePart"></config>
<config name="weight" value="<=100"></config>
</configs>
La siguiente tabla muestra las operaciones y los tipos de objeto compatibles en la configuración de la regla de atributo.
Operador
Tipos de valor
Descripción
Condiciones de carga de muestra
>, >=, <, <=
Long, String, Date, Timestamp, FloatingPoint, FloatingPointWithUnits
Comprueba si el valor del atributo del objeto es mayor, mayor o igual, menor o menor o igual que el valor especificado.
Los caracteres de operador son caracteres reservados en la carga de importación; el operador equivalente a menor que (<) se debe especificar como “&lt;” y el equivalente a mayor que (>) como “&gt;”.
&gt;2012-01-12 00:00:00=&lt;=20.002&gt;=10
[0..10]
Long, String, Date, Timestamp, FloatingPoint, FloatingPointWithUnits
Comprueba que el valor del atributo del objeto está dentro del rango especificado. Si no se especifica ningún valor mínimo en el rango, la condición es equivalente a menor que o igual a. Si no se especifica ningún valor máximo en el rango, la condición es equivalente a mayor que o igual a.
[-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
Comprueba que el valor del atributo del objeto coincida o no con el valor especificado.
El carácter de operador ! es un carácter reservado en la carga de importación; se debe especificar como “#33;”
=true#33;=2012-02-12 00:00:00=10.09
[A,B]
Boolean, Long, String, Date, Timestamp, FloatingPoint, FloatingPointWithUnits
Comprueba que el valor del atributo del objeto está dentro del conjunto discreto.
[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
Comprueba que el valor del atributo del objeto no es nulo. Solo la palabra clave SET es necesaria para especificar la operación.
SET
NOT_SET
Boolean, Long, String, Date, Timestamp, FloatingPoint, FloatingPointWithUnits
Comprueba que el valor del atributo del objeto es nulo. Solo la palabra clave NOT_SET es necesaria para especificar la operación.
NOT_SET
EQUALS
Cadena
Comprueba que el valor del atributo del objeto coincide con la cadena especificada.
EQUALS(MAJOR)
NOT_EQUALS
Cadena
Permite validar que el valor del atributo del objeto no coincide con la cadena especificada.
NOT_EQUALS(MAJOR)
BEGINSWITH
Cadena
Comprueba que el valor del atributo del objeto comienza por la cadena especificada.
BEGINSWITH(PN)
NOT_BEGINSWITH
Cadena
Permite validar que el valor del atributo del objeto no comienza por la cadena especificada.
NOT_BEGINSWITH(PN)
ENDSWITH
Cadena
Comprueba que el valor del atributo del objeto acaba con la cadena especificada.
ENDSWITH(0)
NOT_ENDSWITH
Cadena
Permite validar que el valor del atributo del objeto no finaliza con la cadena especificada.
NOT_ENDSWITH(0)
CONTAINS
Cadena
Comprueba que el valor del atributo del objeto contiene la cadena especificada.
CONTAINS(PN0)
NOT_CONTAINS
Cadena
Permite validar que el valor del atributo del objeto no contiene la cadena especificada.
NOT_CONTAINS(PN0)
LENGTH
Cadena
Comprueba que la longitud de la cadena de atributo del objeto está dentro del rango especificado.
LENGTH(0..40)LENGTH(0..)LENGTH(..40)
* 
La configuración regional del sistema se utiliza para el formato de fechas y las marcas de tiempo en la condición del atributo.
Ejemplo
Suponga que hay un subtipo específico de un artículo que tiene un atributo denominado peso para representar el peso del artículo. Antes de liberar los artículos que tienen un peso, debe asegurarse de que se haya definido un peso en una cifra razonable. Para ello, construya una regla empresarial para verificar que el atributo de peso se encuentra dentro del rango de 1 a 100.
Conjunto de reglas empresariales:
<?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>
Regla empresarial:
<?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>
Vínculo de la regla empresarial:
<?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>