Opera en una lista de valores booleanos para determinar si cualquiera de los valores de listas es true.
El cálculo se detiene en el primer valor true que se encuentra en la lista. Si la lista está vacía, esta expresión devuelve false.
La lista de valores booleanos la proporciona normalmente proporcionado por una fixedlist o dynamiclist.
Por ejemplo, si una lista fija de tres atributos booleanos tienen estos valores:
el cálculo del valor de cualquiera any de estos valores devolverá true, porque como mínimo uno de los elementos es verdadero (true) (concretamente el tercero de la lista), independientemente de que el segundo elemento devuelva un error.
Por el contrario, si otra lista fija de tres atributos booleanos tiene estos valores:
el cálculo del valor de any para estos valores devolverá el error indicado por el segundo elemento de la lista, porque este error impide determinar si cualquier elemento tiene el valor true.
<?xml version="1.0" encoding="UTF-8"?> <RuleSet name="Example_any" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "http://www.curamsoftware.com/CreoleRulesSchema.xsd"> <Class name="Person"> <Attribute name="qualifiesForFreeTravelPass"> <type> <javaclass name="Boolean"/> </type> <derivation> <!-- Ejemplo de <any> operando en una <fixedlist> --> <!-- Para tener derecho a un billete gratuito, la persona debe ser de la tercera edad, estar ciega o discapacitada --> <any> <fixedlist> <listof> <javaclass name="Boolean"/> </listof> <members> <!-- Sabemos que la mayoría de la gente de nuestra base de datos son ciudadanos de la tercera edad, de modo que probamos primero esta condición. Si lo que sucede es que el valor isBlind no se ha especificado para una persona, si esa persona es discapacitada, <any> devolverá false; de lo contrario devolverá un error indicando que el valor de isBlind no se ha especificado. --> <compare comparison=">="> <reference attribute="age"/> <Number value="65"/> </compare> <reference attribute="isBlind"/> <reference attribute="isDisabled"/> </members> </fixedlist> </any> </derivation> </Attribute> <Attribute name="qualifiesForChildBenefit"> <type> <javaclass name="Boolean"/> </type> <derivation> <!-- Ejemplo de <any> operando en una <dynamiclist>. Si lo que sucede es que la edad de un hijo no se puede calcular y hay al menos un hijo de menos de 16, <any> devolverá true; de lo contrario, devolverá el error que muestra por qué no se ha podido calcular la edad del hijo. --> <!-- Para tener derecho a la prestación por hijos, esta persona debe tener uno o más hijos de menos de 16 años de edad. --> <any> <dynamiclist> <list> <reference attribute="children"/> </list> <listitemexpression> <compare comparison="<"> <reference attribute="age"> <current/> </reference> <Number value="16"/> </compare> </listitemexpression> </dynamiclist> </any> </derivation> </Attribute> <!-- Los hijos de esta persona: cada hijo también es una persona. --> <Attribute name="children"> <type> <javaclass name="List"> <ruleclass name="Person"/> </javaclass> </type> <derivation> <specified/> </derivation> </Attribute> <Attribute name="isBlind"> <type> <javaclass name="Boolean"/> </type> <derivation> <specified/> </derivation> </Attribute> <Attribute name="isDisabled"> <type> <javaclass name="Boolean"/> </type> <derivation> <specified/> </derivation> </Attribute> <Attribute name="age"> <type> <javaclass name="Number"/> </type> <derivation> <specified/> </derivation> </Attribute> </Class> </RuleSet>