Erreurs et avertissements lors de l'édition d'une règle d'action
Les types d'erreur et d'avertissement signalés par Rule Designer lorsque vous éditez une règle d'action, où l'erreur ou l'avertissement est signalé, et les étapes correctives que vous pouvez effectuer sont décrits dans les sections suivantes.
Erreurs lexicales
Une erreur lexicale se produit lorsqu'un mot dans la règle n'est pas reconnu. Ce type d'erreur peut vous être signalé lorsque vous entrez une règle dans l'éditeur Intellirule.
Modifiez le texte de la règle afin d'obéir à la syntaxe spécifiée par la grammaire du langage et par le vocabulaire défini dans l'application. Les messages d'erreur peuvent vous aider, mais pas tout le temps. L'achèvement de code et l'usage du vocabulaire peuvent vous aider à apprendre la syntaxe exacte à employer.
Erreurs de syntaxe
Une erreur de syntaxe est signalée dès que vous entrez une instruction de règle mal formée dans l'éditeur Intellirule.
Modifiez le texte de la règle afin d'obéir à la syntaxe spécifiée par la grammaire du langage et par le vocabulaire défini dans l'application. Les messages d'erreur peuvent vous aider, mais pas tout le temps. L'achèvement de code et l'usage du vocabulaire peuvent vous aider à apprendre la syntaxe exacte à employer.
Erreurs sémantiques
Une erreur sémantique est signalée dans l'éditeur Intellirule lorsque vous entrez une règle dont la syntaxe est correcte mais dont l'interprétation est fausse.
Pour remédier aux erreurs sémantiques, revoyez le texte de vos règles afin de le rendre conforme à la sémantique du langage ainsi qu'aux éventuelles règles sémantiques qui ont été mises en place (par exemple, via les domaines du BOM).
Erreurs de cohérence
Les erreurs de cohérence sont rapportées par le contrôleur de cohérence au moment de la compilation. Par exemple, une telle erreur est signalée si une règle contient des tests incompatibles entre eux ou un test dont l'évaluation est toujours fausse.
Vous pouvez désactiver le vérificateur de cohérence dans les préférences de génération Rule Designer .
Ambiguïtés
Les ambiguïtés peuvent s'observer dans les cas suivants :
Une partie de la règle a au moins deux interprétations sémantiquement correctes. Pour corriger toute ambiguïté dans la règle, vous pouvez employer des parenthèses, des variables intermédiaires ou des signes de ponctuation s'ils sont autorisés dans l'instruction.
Présence de deux termes ou phrases identiques dans le vocabulaire. Vous pouvez lever l'ambiguïté en changeant l'un des termes ou l'une des phrases dans le vocabulaire.
Le tableau suivant dresse la liste des messages d'erreur que vous pouvez voir lors de l'édition d'une règle d'action.
| Messages | Description |
|---|---|
| A ruleset parameter <parameter name> is already declared. | Paramètre d'ensemble de règles déjà déclaré Une variable déclarée a le même nom qu'un paramètre d'ensemble de règles déclaré sur un type. |
| A ruleset variable <variable name> is already declared. | Variable d'ensemble de règles déjà déclarée Une variable déclarée a le même nom qu'une variable d'ensemble de règles déclarée sur un type. |
| Ambiguous sentence. | Phrase ambiguë Une partie de la règle a au moins deux interprétations sémantiquement correctes. Utilisez des parenthèses, des variables intermédiaires ou des signes de ponctuation s'ils sont autorisés dans l'instruction. Présence de deux termes ou phrases identiques dans le vocabulaire. Changez l'un des termes ou l'une des phrases dans le vocabulaire. |
| An automatic variable <variable name> is already declared. | Variable automatique déjà déclarée Une variable déclarée a le même nom qu'une variable automatique déclarée sur un type. |
| Can't specify else clause without if clause. | Else sans if Une partie else a été spécifiée, mais il n'y a pas de partie if dans la règle. |
| Invalid cardinality <cardinality>, it is incompatible with <cardinality> | Cardinalité non valide La cardinalité indiquée (simple ou multiple) n'est pas compatible avec celle qui est demandée. |
| Invalid type <type name>, it is not assignable from type <type name> | Non affectable à partir de Un type donné est ne peut pas être affecté à partir d'un type demandé. Par exemple :
|
| Invalid value (<type name>) <value text> | Valeur non valide Une erreur sur la valeur a été signalée par un descripteur de valeur associé au type de valeur (vérification de la valeur). |
| Invalid variable <variable name> for expected type <a type>. | Variable non valide Le type d'une variable n'est pas compatible avec le type demandé. |
| Number must be integer. | Valeur non entière Une valeur entière doit être spécifiée. |
| Value is not in domain. | Valeur hors domaine Un domaine BOM a été spécifié et la valeur utilisée dans la règle enfreint ce domaine. |
| Value is out of the range | Une plage BOM a été spécifiée et la valeur utilisée dans la règle est en dehors de cette plage. |
| Only values are expected. | Expression non valide Les expressions telles que des phrases, des variables et des constructions grammaticales ne sont pas valides. Seules les expressions de valeur sont acceptées. |
| Incompatible sentence, due to incompatible precedence | Certains opérateurs sont incompatibles avec les types utilisés dans la phrase. Par exemple, dans la phrase |
| Origin type: <type name> is not a super type of target type: <type name>. | Pas un supertype de Un type n'est pas un sous-type du type demandé. Par exemple :
Le type demandé estString( |
| The variable <variable name> cannot be used, a variable of that type is already declared. | Variable automatique liée Impossible d'utiliser la variable automatique d'un type alors qu'une variable globale de ce type est déjà déclarée. |
| The variable <variable name> is not assignable. | Variable non affectable La variable ne peut pas être affectée. |
| The word <word> is expected in place of <word>. | Mutation d'un sème Un mot utilisé dans la règle est incorrect et le mécanisme de récupération d'erreur en suggère un autre à la place. |
| The word <word> is missing. | Sème manquant Un mot est manquant dans la règle. |
| The word <word> is not required. | Sème inséré Un mot a été inséré au mauvais endroit dans la règle. |
| Unknown word: <word>. | Sème inconnu Un mot n'est pas reconnu. Cela arrive généralement avec une valeur mal formée. |
| The phrase <phrase> is not required. | Non implémenté Une phrase complète est au mauvais endroit et doit être retirée pour corriger la règle. |
| The phrase <phrase> is missing. | Non implémenté Il manque une phrase complète dans le texte. Complétez la phrase pour corriger la règle. |
| No term <term> found. | Terme inexistant Il y a une référence à un terme qui n'est pas dans le vocabulaire. |
| No navigation phrase <phrase> (of subject <subject>) found on term <term>. | Le vocabulaire ne contient pas de phrase de navigation sur le terme indiqué. |
| No action phrase <phrase> (of subject <subject>) found on term <term>. | Le vocabulaire ne contient pas de phrase d'action sur le terme indiqué. |
| No automatic variable <variable> found. | La variable automatique n'est pas déclarée comme telle sur un terme, ou un terme n'existe pas dans le vocabulaire. |
| Too many errors. Cannot recover from errors. | La règle contient trop d'erreurs à corriger. |
| Invalid variable name: <variable>, the characters: <character> are not allowed. | Nom/Caractère non valide Le nom de variable n'est pas valide ; il contient un ou plusieurs des caractères non autorisés suivants : ' " \n \r \t / ( ) , ; |
| Unknown phrase, did you mean: <phrase>? | Phrase inconnue Une phrase dans le texte est incorrecte, mais elle est similaire à une phrase correcte existante. Le message suggère donc cette phrase correcte. |
| Value (<value type>) <value text> is incorrect. <a message> | Erreur de valeur Une erreur sur la valeur a été signalée par une information de valeur associée à un rôle dans la phrase (vérification de la valeur). Si la valeur est utilisée à un endroit où un domaine du BOM est défini, et si elle viole ce domaine, cette erreur est générée. |
| Variable <variable name> already declared. | Variable déjà déclarée Une variable de ce nom est déjà déclarée. |
| Variable <variable name> is not declared. | Variable non déclarée Il y a une référence à une variable qui n'est pas déclarée. |
Le tableau suivant dresse la liste des avertissements les plus courants que vous pouvez voir lors de l'édition d'une règle d'action.
| Messages | Description |
|---|---|
| <an element> is deprecated | Elément obsolète Un élément obsolète (type, constante ou phrase) a été utilisé dans la règle.Deprecatedest une propriété définie sur un élément métier. |
| Can not bind value types. | Un type de valeur tel que nombre, chaîne, etc. ne peut pas être utilisé dans une liaison. |
| Category(ies) (<categories>) defined on phrase <a phrase> does not match the rule category filter. | Catégorie de phrase non valide La phrase citée n'est pas destinée à servir dans la règle, car ses catégories ne correspondent pas au filtre de catégories de la règle. |
| Category(ies) (<categories>) defined on term <a term> does not match the rule category filter. | Catégorie de terme non valide Le terme cité n'est pas destiné à servir dans la règle, car ses catégories ne correspondent pas au filtre de catégories de la règle. |
| Category(ies) (<categories>) defined on type of variable <variable name> does not match the rule category filter. | Catégorie de variable non valide La variable citée n'est pas destinée à servir dans la règle, car les catégories de son type ne correspondent pas au filtre de catégories de la règle. |
| Category(ies) (<categories>) defined on value <a constant> does not match the rule category filter. | Catégorie de constante non valide La constante citée n'est pas destinée à servir dans la règle, car ses catégories ne correspondent pas au filtre de catégories de la règle. |
| Predicate not applicable to value types. | Prédicat non applicable Le prédicat n'est pas applicable au type de valeur tel que nombre, chaîne, etc. |
| The construct <construct> is deprecated. | Construction obsolète Une construction grammaticale obsolète (provenant de la définition de schéma XML du langage) a été utilisée dans la règle. |
| The (part of the) rule execution may be unsafe: <message>. | Serveur d'exécution des règles La règle tente d'affecter à un attribut une valeur en dehors de son domaine. |
| The (part of the) rule is never applicable because <message>. | La règle ne s'applique jamais car ses conditions ne peuvent jamais être remplies. Cela est généralement dû à de simples erreurs de logique dans la règle. |
| The rule is incomplete, fill all the placeholders. | Règle incomplète Une règle comporte au moins un emplacement réservé vide. |
| Value (<value type>) <value text> is incorrect. <a message> | Avertissement de valeur Un avertissement sur la valeur a été signalé par une information de valeur associée à un rôle dans la phrase (vérification de la valeur). |
| Variable <variable name> is not used. | Variable non utilisée Une variable est déclarée mais pas utilisée. |