Errores y avisos al editar una regla de acción
Los tipos de errores y avisos que Diseñador de reglas notifica al editar una regla de acción, donde se notifica el error o aviso, y los pasos correctivos que puede realizar se describen en las secciones siguientes.
Errores léxicos
Los errores léxicos se producen cuando no se reconoce una palabra de la regla y se notifican cuando se escribe una regla en el editor Intellirule.
Modifique el texto de la regla siguiendo la sintaxis especificada en la gramática del lenguaje y el vocabulario definido en la aplicación. Los mensajes de error pueden ayudar, pero no todas las veces. La terminación de código y el uso de vocabulario se pueden utilizar para aprender la sintaxis exacta de la frase del vocabulario.
Errores sintácticos
Se informa de errores sintácticos cuando una sentencia de regla no está bien formada, en el momento en que se escribe una regla en el editor Intellirule.
Modifique el texto de la regla siguiendo la sintaxis especificada en la gramática del lenguaje y el vocabulario definido en la aplicación. Los mensajes de error pueden ayudar, pero no todas las veces. La terminación de código y el uso de vocabulario se pueden utilizar para aprender la sintaxis exacta de la frase del vocabulario.
Errores semánticos
Se informa de errores semánticos cuando el texto de la regla es sintácticamente correcto, pero su interpretación es errónea, en el momento en que se escribe una regla en el editor Intellirule.
Para los errores semánticos, debe considerar la posibilidad de revisar el texto de las reglas para cumplir con la semántica del idioma y con las reglas semánticas que podrían haberse configurado (por ejemplo, dominios BOM).
Errores de coherencia
El comprobador de coherencia informa de errores de coherencia al compilar. Por ejemplo, se genera un error de coherencia si una regla contiene pruebas incompatibles, o una prueba que siempre es falsa.
Puede inhabilitar el comprobador de coherencia en las preferencias de compilación de Rule Designer .
Ambigüedades
Se pueden producir ambigüedades en los casos siguientes:
Una parte de la regla tiene al menos dos interpretaciones que son semánticamente correctas. Puede utilizar paréntesis, variables intermedias o puntuación si está disponible en la sentencia, para desambiguar la regla.
Hay dos términos o frases idénticos en el vocabulario. Cambiar uno de los términos o frases del vocabulario puede eliminar la ambigüedad.
En las tablas siguientes se enumeran los mensajes de error que pueden aparecer al editar una regla de acción.
Mensaje | Descripción |
---|---|
A ruleset parameter <parameter name> is already declared. | Parámetro de conjunto de reglas ya declarado Una variable declarada tiene el mismo nombre que un parámetro de conjunto de reglas declarado en un tipo. |
A ruleset variable <variable name> is already declared. | Variable de conjunto de reglas ya declarada Una variable declarada tiene el mismo nombre que una variable de conjunto de reglas declarada en un tipo. |
Ambiguous sentence. | Oración ambigua Parte de la regla tiene al menos dos interpretaciones que son semánticamente correctas. Utilice paréntesis, variables intermedias o puntuación si está disponible en la sentencia. Hay dos términos o frases idénticos en el vocabulario. Cambie uno de los términos o frases del vocabulario. |
An automatic variable <variable name> is already declared. | Variable automática ya declarada Una variable declarada tiene el mismo nombre que la variable automática declarada en un tipo. |
Can't specify else clause without if clause. | Else sin If Se ha especificado una parte else, pero no hay una parte if en la regla. |
Invalid cardinality <cardinality>, it is incompatible with <cardinality> | Cardinalidad no válida La cardinalidad indicada (simple o múltiple) no es compatible con la que se ha solicitado. |
Invalid type <type name>, it is not assignable from type <type name> | No asignable desde Un tipo determinado is no se puede asignar a partir de un tipo solicitado. Por ejemplo:
|
Invalid value (<type name>) <value text> | Valor no válido Se ha informado de un error en el valor por parte de un descriptor de valor asociado al tipo de valor (comprobación del valor). |
Invalid variable <variable name> for expected type <a type>. | Variable no válida El tipo de una variable no es compatible con el tipo solicitado. |
Number must be integer. | Valor no entero Se debe especificar un valor entero. |
Value is not in domain. | Valor no en el dominio Se ha especificado un dominio BOM y l valor utilizado en la regla viola este dominio. |
Value is out of the range | Se ha especificado un dominio BOM con un rango y el valor utilizado en la regla se encuentra fuera de este rango. |
Only values are expected. | Expresión no válida Las expresiones tales como oraciones, variables o construcciones gramaticales no son válidas. Sólo se aceptan expresiones de valor. |
Incompatible sentence, due to incompatible precedence | Algunos operadores no son compatibles con los tipos utilizados en la oración. Por ejemplo, en la frase |
Origin type: <type name> is not a super type of target type: <type name>. | No es supertipo de Un tipo no es subtipo del tipo solicitado. Por ejemplo:
El tipo solicitado esString( |
The variable <variable name> cannot be used, a variable of that type is already declared. | Variable automática enlazada No se puede utilizar la variable automática de un tipo si ya hay una variable global de ese tipo declarada. |
The variable <variable name> is not assignable. | Variable no asignable No se puede asignar la variable. |
The word <word> is expected in place of <word>. | Mutación de token Una palabra de la regla es incorrecta y el mecanismo de recuperación de errores sugiere otra. |
The word <word> is missing. | Falta un token Falta una palabra en la regla. |
The word <word> is not required. | Token insertado Se ha insertado una palabra en un lugar incorrecto de la regla. |
Unknown word: <word>. | Token desconocido Una palabra no se reconoce. Esto ocurre habitualmente con un valor mal formado. |
The phrase <phrase> is not required. | No implementado Una frase completa está en una ubicación incorrecta y se debe eliminar para corregir la regla. |
The phrase <phrase> is missing. | No implementado Falta una frase completa en el texto. Complete la frase para corregir la regla. |
No term <term> found. | El término no existe Hay una referencia a un término que no está en el vocabulario. |
No navigation phrase <phrase> (of subject <subject>) found on term <term>. | La oración de navegación sobre un término indicado no existe en el vocabulario. |
No action phrase <phrase> (of subject <subject>) found on term <term>. | La oración de acción sobre un término indicado no existe en el vocabulario. |
No automatic variable <variable> found. | La variable automática no se ha declarado como automática en un término, o bien el término no existe en el vocabulario. |
Too many errors. Cannot recover from errors. | La regla contiene demasiados errores para corregir. |
Invalid variable name: <variable>, the characters: <character> are not allowed. | Nombre/Carácter no válido El nombre de variable no es válido y contiene uno de los siguientes caracteres no válidos. ' " \n \r \t / ( ) , ; |
Unknown phrase, did you mean: <phrase>? | Frase desconocida Una oración del texto es incorrecta pero parecida a una oración correcta existente. El mensaje sugiere la oración correcta. |
Value (<value type>) <value text> is incorrect. <a message> | Error de valor Se ha informado de un error en el valor por parte de una información de valor asociada a un rol en la frase (comprobación del valor). Si se utiliza el valor en un lugar donde se ha definido un dominio BOM, se genera el error si el valor viola el dominio BOM. |
Variable <variable name> already declared. | Variable ya declarada Ya hay una variable declarada con este nombre. |
Variable <variable name> is not declared. | Variable no declarada Una referencia a una variable que no está declarada. |
La tabla siguiente lista los avisos más actuales que puede ver al editar una regla de acción.
Mensaje | Descripción |
---|---|
<an element> is deprecated | Elemento en desuso En la regla se ha utilizado un elemento en desuso (tipo, constante o frase).Deprecatedes una propiedad definida en un elemento de negocio. |
Can not bind value types. | No se puede utilizar un tipo de valor como, por ejemplo, número (number), cadena (string), etc., en un enlace. |
Category(ies) (<categories>) defined on phrase <a phrase> does not match the rule category filter. | Categoría de frase no válida La frase no es para utilizar en la regla, porque las categorías de la frase no coinciden con el filtro de categorías de regla. |
Category(ies) (<categories>) defined on term <a term> does not match the rule category filter. | Categoría de término no válida El término no es para utilizar en la regla, porque las categorías del término no coinciden con el filtro de categorías de regla. |
Category(ies) (<categories>) defined on type of variable <variable name> does not match the rule category filter. | Categoría de variable no válida La variable no es para declarar en la regla, porque las categorías del tipo de variable no coinciden con el filtro de categorías de regla. |
Category(ies) (<categories>) defined on value <a constant> does not match the rule category filter. | Categoría de constante no válida La constante no es para utilizar en la regla, porque las categorías de la constante no coinciden con el filtro de categorías de regla. |
Predicate not applicable to value types. | Predicado no aplicable El predicado no es aplicable al tipo de valor, como por ejemplo, número (number), cadena (string), etc. |
The construct <construct> is deprecated. | Constructor en desuso Se ha utilizado un constructor gramatical en desuso (emitido a partir la definición de esquema XML del lenguaje) en la regla. |
The (part of the) rule execution may be unsafe: <message>. | Servidor de ejecución de reglas La regla intenta establecer un atributo en un valor fuera de su dominio. |
The (part of the) rule is never applicable because <message>. | La regla nunca se aplica porque sus condiciones nunca se pueden cumplir. Por lo general, esto se debe a simples errores lógicos en la regla. |
The rule is incomplete, fill all the placeholders. | Regla incompleta Una regla tiene al menos un marcador de posición vacío. |
Value (<value type>) <value text> is incorrect. <a message> | Aviso de valor Se ha informado de un aviso en el valor por parte de una información de valor asociada a un rol en la frase (comprobación del valor). |
Variable <variable name> is not used. | Variable no utilizada Hay una variable que está declarada pero no se utiliza. |