Sintaxis para los argumentos de algoritmos
Dentro de las etiquetas AttrValue, AttrConstraint, Value y VarDef, existen tres etiquetas que puede utilizar para especificar argumentos para los algoritmos de reglas de inicialización de objetos predefinidos. Aunque cada algoritmo tiene un conjunto único de argumentos necesarios, los argumentos se ajustan a las siguientes categorías:
Utilice la etiqueta Arg para los argumentos de cadena.
Utilice la etiqueta Attr para los argumentos que desee que se evalúen como un atributo.
Utilice la etiqueta Value para todos los argumentos que no sean cadenas ni atributos. Por ejemplo, utilice la etiqueta Value para especificar algoritmos adicionales.
Además, dentro de las etiquetasAttrValue, AttrConstraint y Value, se puede especificar un argumento que sea el valor de una variable de reglas que utilice la etiqueta VarRef.
Las siguientes secciones describen la sintaxis para cada argumento y proporcionan ejemplos que utilizan los argumentos.
Sintaxis de la etiqueta Arg
La sintaxis de las etiquetas Arg es la siguiente:
<Arg>string</Arg>
* 
Los espacios utilizados en una etiqueta Arg se desestimarán. Para indicar un espacio, utilice un guion (-) u otro carácter en su lugar. Si se necesita incluir caracteres XML reservados en la cadena, esta debe definirse en una sección de CDATA. Los caracteres reservados incluyen el signo & y los corchetes angulares izquierdo y derecho (< >). Por ejemplo, si la etiqueta Arg va a incluir el carácter del signo &, utilice la sintaxis siguiente para garantizar que funcione según lo previsto: <Arg><![CDATA[Text &amp; Text]]></Arg>.
Sintaxis de la etiqueta Attr
La sintaxis de las etiquetas Attr es la siguiente:
<Attr id="nombre_atributo"/>
donde nombre_atributo es el nombre de un atributo existente que se desea usar al ejecutar el algoritmo. Para el nombre de atributo, utilice el valor que ha especificado en el campo Nombre interno al crear el atributo.
* 
Si un atributo no tiene un nombre interno correspondiente, los usuarios que puedan modificar el atributo podrán añadir uno mediante la utilidad Administración de tipos y atributos.
Sintaxis de la etiqueta Value
La sintaxis de la etiqueta Value depende del valor que se especifique. Dentro de la etiqueta Value, se podrán especificar argumentos adicionales utilizando cualquiera de las etiquetas soportadas.
Sintaxis para la etiqueta VarRef
La sintaxis de las etiquetas VarRef es la siguiente:
<VarRef id="nombre_variable"/>
donde nombre_variable es el nombre de una variable existente que se desea usar al ejecutar el algoritmo. La variable se debe definir utilizando una etiqueta VarDef en una regla del mismo tipo de objeto que se ha especificado en la etiqueta AttributeValues padre.
Si la definición de variable de una variable de referencia no existe, se generará un error cuando se evalúe la etiqueta VarRef.
Ejemplos que utilizan las etiquetas Arg, Attr, Value y VarRef
El siguiente ejemplo de XML, que define la variable GeneratedNumber, utiliza la etiqueta Arg para especificar la secuencia que se ha utilizado al generar el número:
<VarDef id="GeneratedNumber"
algorithm=”com.ptc.windchill.enterprise.revisionControlled.server.impl.NumberGenerator">
<Arg>{GEN:wt.enterprise.SequenceGenerator:WTPARTID_seq:10:0}</Arg>
</VarDef>
En este ejemplo, el generador de secuencias devuelve un valor de cadena que se utilizará posteriormente como el valor de la variable GeneratedNumber.
En el siguiente ejemplo de XML, la etiqueta VarRef proporciona el valor por defecto del atributo de número:
<AttrValue id=”number”>
<VarRef id=”GeneratedNumber”/>
</AttrValue>
En el ejemplo, se supone que la definición variable de GeneratedNumber está disponible a través de otra regla (como se muestra en el ejemplo anterior).
En el siguiente ejemplo XML, son necesarios dos argumentos para el algoritmo EqualsTest. El primer argumento utiliza la etiqueta Attr para evaluar el atributo de nombre y el segundo argumento utiliza la etiqueta Value para especificar el algoritmo GetNullValue que devuelve un valor nulo:
<Value algorithm="wt.rule.algorithm.EqualsTest">
<Attr id="name"/>
<Value algorithm="wt.rule.algorithm.GetNullValue"/>
</Value>
¿Fue esto útil?