Attributregel
Die Attributregel überprüft, ob die angegebenen Attribute bestimmte Bedingungen erfüllen. Für eine Attributregelkonfiguration ist lediglich die Eingabe des Objekttyps erforderlich. Als Objekttyp sollte wt.fc.Persistable verwendet werden. Beispielsweise ist com.ptc.Waiver ein Untertyp von wt.change2.WTVariance.
<configs>
<config name="objectType" value="com.ptc.Waiver"></config>
</configs>
Zur Angabe des Typnamens oder Typzeichenfolgenwerts können Sie den externen Namen des Typs verwenden (com.ptc.Waiver oder WCTYPE|wt.change2.WTVariance|com.ptc.Waiver).
Sie können Untertypen des angegebenen Objekttyps aus der Attributregel ausschließen. Beispielsweise schließt die folgende Attributregelkonfiguration für den Objekttyp WTVariance die Typvarianzen com.ptc.Waiver und com.ptc.Deviation von der Auswertung aus.
<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>
Um eine Bedingung so zu konfigurieren, dass die Validierung anhand eines Attributs des angegebenen Objekttyps erfolgt, wird als Konfigurationsname der Attributname und als Wert die Bedingung verwendet. Die folgende Attributkonfiguration prüft, ob ein Objekt vom Typ com.ptc.Waiver eine genehmigte Menge zwischen 10 und 100 aufweist.
<configs>
<config name="objectType" value="com.ptc.Waiver"></config>
<config name="approvedQuantity" value="[10..100]"></config>
</configs>
Im folgenden Beispiel ist "weight" der interne Name eines globalen Attributs eines Teil-Untertyps.
<configs>
<config name="objectType" value="com.ptc.SubTypePart"></config>
<config name="weight" value="<=100"></config>
</configs>
In der folgenden Tabelle werden die bei der Konfiguration von Attributregeln unterstützten Operationen und Objekttypen aufgeführt.
Operator
Werttypen
Beschreibung
Beispiel-Lastbedingungen
>, >=, <, <=
Long, String, Date, Timestamp, FloatingPoint, FloatingPointWithUnits
Überprüft, ob der Objektattributwert größer als, größer als oder gleich, kleiner als oder kleiner als oder gleich dem angegebenen Wert ist.
Die Operatorzeichen sind reservierte Zeichen in der Importlast; der Kleiner-als-Operator (<) muss als "&lt;" angegeben werden und der Größer-als-Operator (>) als "&gt;".
&gt;2012-01-12 00:00:00=&lt;=20.002&gt;=10
[0..10]
Long, String, Date, Timestamp, FloatingPoint, FloatingPointWithUnits
Überprüft, ob der Objektattributwert innerhalb des angegebenen Bereichs liegt. Wenn kein Mindestwert im Bereich angegeben ist, entspricht die Bedingung dem Operator "kleiner als oder gleich". Wenn kein Maximalwert im Bereich angegeben ist, wird die Bedingung als Operator "größer als oder gleich" behandelt.
[-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
Überprüft, ob der Objektattributwert dem angegebenen Wert entspricht.
Das Operatorzeichen ! ist ein reserviertes Zeichen in der Importlast; es muss als "#33;" angegeben werden.
=true#33;=2012-02-12 00:00:00=10.09
[A,B]
Boolean, Long, String, Date, Timestamp, FloatingPoint, FloatingPointWithUnits
Überprüft, ob der Objektattributwert innerhalb des einzelnen Satzes liegt.
[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
Überprüft, ob der Objektattributwert nicht NULL ist. Zur Angabe der Operation ist lediglich das Schlüsselwort SET notwendig.
SET
NOT_SET
Boolean, Long, String, Date, Timestamp, FloatingPoint, FloatingPointWithUnits
Überprüft, ob der Objektattributwert NULL ist. Zur Angabe der Operation ist lediglich das Schlüsselwort NOT_SET notwendig.
NOT_SET
EQUALS
Zeichenfolge
Überprüft, ob der Objektattributwert der angegebenen Zeichenfolge entspricht.
EQUALS(MAJOR)
NOT_EQUALS
Zeichenfolge
Überprüft, ob der Objektattributwert nicht der angegebenen Zeichenfolge entspricht.
NOT_EQUALS(MAJOR)
BEGINSWITH
Zeichenfolge
Überprüft, ob der Objektattributwert mit der angegebenen Zeichenfolge beginnt.
BEGINSWITH(PN)
NOT_BEGINSWITH
Zeichenfolge
Überprüft, ob der Objektattributwert nicht mit der angegebenen Zeichenfolge beginnt.
NOT_BEGINSWITH(PN)
ENDSWITH
Zeichenfolge
Überprüft, ob der Objektattributwert mit der angegebenen Zeichenfolge endet.
ENDSWITH(0)
NOT_ENDSWITH
Zeichenfolge
Überprüft, ob der Objektattributwert nicht mit der angegebenen Zeichenfolge endet.
NOT_ENDSWITH(0)
CONTAINS
Zeichenfolge
Überprüft, ob der Objektattributwert die angegebene Zeichenfolge enthält.
CONTAINS(PN0)
NOT_CONTAINS
Zeichenfolge
Überprüft, ob der Objektattributwert die angegebene Zeichenfolge nicht enthält.
NOT_CONTAINS(PN0)
LENGTH
Zeichenfolge
Überprüft, ob die Länge der Objektattribut-Zeichenfolge innerhalb des angegebenen Bereichs liegt.
LENGTH(0..40)LENGTH(0..)LENGTH(..40)
* 
Für das Format der Datumsangaben und Zeitstempel in der Attributbedingung wird das Gebietsschema des Systems verwendet.
Beispiel
Angenommen, Sie haben einen bestimmten Untertyp eines Teils, der das Attribut mit der Bezeichnung "Gewicht" aufweist, mit dem das Gewicht des Teils angegeben wird. Sie möchten sicherstellen, dass für Teile mit einem Gewicht eine plausible Zahl angegeben wird, bevor die Teile freigegeben werden. Erstellen Sie hierzu eine Geschäftsregel, mit der überprüft wird, ob das Gewichtsattribut im Bereich zwischen 1 und 100 liegt.
Geschäftsregelsatz:
<?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>
Geschäftsregel
<?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>
Geschäftsregel-Link:
<?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>
War dies hilfreich?