Специализированное администрирование > Настройка бизнес-объектов > Администрирование правил инициализации объектов > Работа с правила инициализации объектов > Определение правил > Синтаксис для аргументов алгоритма
  
Синтаксис для аргументов алгоритма
Среди тегов AttrValue, AttrConstraint, Value и VarDef есть три тега, которые можно использовать для задания аргументов предопределенных алгоритмов правил инициализации объектов. Хотя каждый алгоритм имеет уникальный набор требуемых аргументов, аргументы делятся на следующие категории.
Для строковых аргументов используется тег Arg.
Для аргументов, которые вы хотите считать атрибутами, используется тег Attr.
Для всех аргументов, не являющихся строками или атрибутами, используется тег Value. Например, для задания дополнительных алгоритмов используется тег Value.
Кроме того, с помощью тегов AttrValue, AttrConstraint и Value, используя тег 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 - имя существующей переменной, которую вы хотите использовать при выполнении алгоритма. Переменная должна быть определена с помощью тега VarDef в правиле для того же типа объектов, который задан в родительском теге AttributeValues.
Если для ссылаемой переменной не существует определения, при вычислении тега VarRef генерируется ошибка.
Примеры использования тегов Arg, Attr, Value и VarRef
В приведенном ниже примере XML, определяющий переменную GeneratedNumber, использует тег 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>