特定管理 > 訂做企業物件 > 物件初始化規則管理 > 使用物件初始化規則 > 指定規則 > 演算法引數的語法
  
演算法引數的語法
AttrValueAttrConstraintValueVarDef 標籤中,有三個標籤可讓您用來為現成物件初始化規則演算法指定引數。雖然每個演算法都有一組具唯一性必要引數,但引數還是能夠區分為以下類別:
針對字串引數,請使用 Arg 標籤。
針對您要評估為屬性的引數,請使用 Attr 標籤。
針對不是字串或屬性的所有引數,請使用 Value 標籤。例如,使用 Value 標籤可指定其他演算法。
此外,您也可以從 AttrValueAttrConstraintValue 標籤中指定一個引數,該引數是使用 VarRef 標籤的規則變數的值。
以下幾節說明每個引數的語法,並提供使用引數的範例。
Arg 標籤語法
Arg 標籤語法如下:
<Arg>string</Arg>
* 
將會略過在 Arg 標籤中使用的空格。欲指示空格,請改用連字號 (-) 或其他字元。如果您需要在字串中包括 XML 保留字元,則必須將字串定義為 CDATA 區段。保留字串包括 "&" 符號與左右角括號 (< >)。例如,如果您的 Arg 標籤將包括 "&" 符號字元,請使用下列語法來確保它如預期運作:<Arg><![CDATA[Text &amp; Text]]></Arg>
Attr 標籤語法
Attr 標籤語法如下:
<Attr id="attribute_name"/>
其中 attribute_name 是您想在執行演算法時使用的現有屬性的名稱。針對屬性名稱,請使用建立屬性時在「內部名稱」欄位內指定的值。
* 
如果屬性沒有對應的內部名稱,能夠修改屬性的使用者可以使用類型及屬性管理公用程式新增一個。
Value 標籤語法
Value 標籤的語法取決於您指定的值。您可以在 Value 標籤內使用任何支援的標籤指定其他引數。
VarRef 標籤語法
VarRef 標籤語法如下:
<VarRef id="variable_name"/>
其中 variable_name 是您想在執行演算法時使用的現有變數的名稱。必須在於父 AttributeValues 標籤中指定的相同物件類型的規則中使用 VarDef 標籤來定義變數。
如果對於參考的變數來說不存在變數定義,評估 VarRef 標籤時會生成錯誤。
使用 Arg、Attr、Value 與 VarRef 標籤的範例
定義 GeneratedNumber 變數的下列範例 XML 使用 Arg 標籤來指定生成編號時使用的順序:
<VarDef id="GeneratedNumber"
algorithm=”com.ptc.windchill.enterprise.revisionControlled.server.impl.NumberGenerator">
<Arg>{GEN:wt.enterprise.SequenceGenerator:WTPARTID_seq:10:0}</Arg>
</VarDef>
在此範例中,順序生成器會傳回稍後作為 GeneratedNumber 變數的值使用的字串值。
在下列的範例 XML 中,VarRef 標籤會提供數字屬性的預設值:
<AttrValue id=”number”>
<VarRef id=”GeneratedNumber”/>
</AttrValue>
範例會假設 GeneratedNumber 的變數定義可用於其他的規則 (如先前範例所示)。
在下列範例 XML 中,EqualsTest 演算法需要兩個引數。第一個引數使用 Attr 標籤來評估名稱屬性,第二個引數使用 Value 標籤來指定傳回空值的 GetNullValue 演算法:
<Value algorithm="wt.rule.algorithm.EqualsTest">
<Attr id="name"/>
<Value algorithm="wt.rule.algorithm.GetNullValue"/>
</Value>