Syntax für Algorithmusargumente
Sie können aus den AttrValue-, AttrConstraint-, Value- und VarDef-Tags drei Tags auswählen, um Argumente für vordefinierte Algorithmen für Objektinitialisierungsregeln festzulegen. Jeder Algorithmus verfügt zwar über einen spezifischen Satz erforderlicher Argumente, aber die Argumente fallen in die folgenden Kategorien:
Für Zeichenfolgeargumente verwenden Sie den Arg-Tag.
Für Argumente, die als Attribut ausgewertet werden sollen, verwenden Sie den Attr-Tag.
Für alle Argumente, die keine Zeichenfolgen oder Attribute sind, verwenden Sie den Value-Tag. Verwenden Sie den Value-Tag beispielsweise, um zusätzliche Algorithmen festzulegen.
Zusätzlich können Sie in den AttrValue-, AttrConstraint- und Value-Tags unter Verwendung des VarRef-Tags ein Argument festlegen, das den Wert einer Regelvariable hat.
In den folgenden Abschnitten wird die Syntax für jedes Argument beschrieben, und es werden Beispiele für die Verwendung der Argumente angegeben.
Syntax des Arg-Tags
Der Arg-Tag hat folgende Syntax:
<Arg>string</Arg>
* 
In einem Arg-Tag verwendete Leerzeichen werden ignoriert. Um ein Leerzeichen anzugeben, verwenden Sie einen Bindestrich (-) oder ein anderes Zeichen. Wenn XML-reservierte Zeichen in der Zeichenfolge enthalten sein müssen, muss die Zeichenfolge als CDATA-Abschnitt definiert werden. Reservierte Zeichen umfassen das kaufmännische Und-Zeichen (&) sowie linke und rechte spitze Klammern (< >). Wenn beispielsweise der Arg-Tag das kaufmännische Und-Zeichen (&) beinhaltet, verwenden Sie die folgende Syntax, um sicherzustellen, dass er wie gewünscht funktioniert: <Arg><![CDATA[Text &amp; Text]]></Arg>.
Syntax des Attr-Tags
Der Attr-Tag hat folgende Syntax:
<Attr id="attribute_name"/>
Hierbei steht attribute_name für den Namen eines vorhandenen Attributs, das Sie bei der Ausführung des Algorithmus verwenden möchten. Verwenden Sie für den Attributnamen den Wert, der beim Erstellen des Attributs im Feld Interner Name angegeben wurde.
* 
Wenn ein Attribut keinen entsprechenden internen Namen hat, können Benutzer mit Änderungsberechtigung für das Attribut einen solchen mit dem Dienstprogramm Typ- und Attribut-Management hinzufügen.
Syntax des Value-Tags
Die Syntax des Value-Tags ist abhängig von dem Wert, den Sie angeben. Innerhalb des Value-Tags können Sie unter Verwendung der unterstützten Tags weitere Argumente angeben.
Syntax des VarRef-Tags
Der VarRef-Tag hat folgende Syntax:
<VarRef id="variable_name"/>
Hierbei steht variable_name für den Namen einer vorhandenen Variablen, die Sie bei der Ausführung des Algorithmus verwenden möchten. Die Variable muss unter Verwendung eines VarDef-Tags in einer Regel für denselben Objekttyp definiert werden, der im übergeordneten AttributeValues-Tag festgelegt ist.
Wenn die Variablendefinition für eine Variable, auf die Bezug genommen wird, nicht vorhanden ist, wird bei der Auswertung des VarRef-Tags ein Fehler generiert.
Beispiele für die Verwendung der Arg-, Attr-, Value- und VarRef-Tags
Im folgenden XML-Beispiel zur Definition der GeneratedNumber-Variablen wird der Arg-Tag verwendet, um die beim Erzeugen der Zahl verwendete Reihenfolge anzugeben:
<VarDef id="GeneratedNumber"
algorithm=”com.ptc.windchill.enterprise.revisionControlled.server.impl.NumberGenerator">
<Arg>{GEN:wt.enterprise.SequenceGenerator:WTPARTID_seq:10:0}</Arg>
</VarDef>
In diesem Beispiel gibt der Sequenzgenerator einen Zeichenfolgenwert zurück, der dann als Wert für die GeneratedNumber-Variable verwendet wird.
Im folgenden Beispiel-XML gibt der VarRef-Tag den Standardwert für das Nummernattribut an:
<AttrValue id=”number”>
<VarRef id=”GeneratedNumber”/>
</AttrValue>
Im Beispiel wird davon ausgegangen, dass die Variablendefinition für GeneratedNumber durch eine andere Regel bereitgestellt wird (wie im vorherigen Beispiel gezeigt).
Im folgenden XML-Beispiel erfordert der EqualsTest-Algorithmus zwei Argumente. Das erste Argument verwendet den Attr-Tag, um das Namensattribute auszuwerten, und das zweite Argument verwendet den Value-Tag, um den GetNullValue-Algorithmus festzulegen, der einen Nullwert zurückgibt:
<Value algorithm="wt.rule.algorithm.EqualsTest">
<Attr id="name"/>
<Value algorithm="wt.rule.algorithm.GetNullValue"/>
</Value>
War dies hilfreich?