Пример алгоритма условной логики
Следующий образец XML-кода служит для того, чтобы указать алгоритмы условной логики для задания различных схем нумерации, в зависимости от типа объекта wt.part.WTPart:
<AttributeValues objType="wt.part.WTPart">
<AttrValue id="number"
algorithm="com.ptc.windchill.enterprise.revisionControlled.server.impl.NumberGenerator">
<Value algorithm="wt.rule.algorithm.BooleanBranch">
<Value algorithm=" wt.rule.algorithm.StringInListTest ">
<Attr id="Existing_Attribute"/>
<Arg>A</Arg>
<Arg>B</Arg>
<Arg>C</Arg>
<Arg>D</Arg>
<Arg>E</Arg>
<Arg>F</Arg>
</Value>
<Arg>{GEN:wt.enterprise.SequenceGenerator:WTPARTID_seq:10:0}</Arg>
<Arg>{GEN:wt.enterprise.SequenceGenerator:WTPARTID_seq:5:0}</Arg>
</Value>
</AttrValue>
</AttributeValues>
В данном примере алгоритм StringInListTest используется для тестирования значения атрибута детали для " Existing_Attribute " - равно ли оно A, B, C, D, E или F. Если значение атрибута детали присутствует в списке, алгоритм возвращает значение ИСТИНА; если нет - ЛОЖЬ.
Значение, возвращаемое алгоритмом StringInListTest, определяет, какой элемент Arg используется в алгоритме BooleanBranch.
• Если возвращается значение ИСТИНА, используется первый элемент Arg; в этом случае {GEN:wt.enterprise.SequenceGenerator:WTPARTID_seq:10:0}.
• Если возвращается значение ЛОЖЬ, используется второй элемент Arg; в этом случае {GEN:wt.enterprise.SequenceGenerator:WTPARTID_seq:5:0}.
Для получения дополнительных примеров можно загрузить стандартные правила с помощью действия Загрузить из контекстного меню действий таблицы Правила инициализации объектов.
Дополнительные пояснения к синтаксису, необходимые при использовании каждого из алгоритмов условной логики, см. в разделе
Алгоритмы условной логики.