Erreurs et avertissements lors de l'édition d'une règle d'action

Rule Designer recherche les problèmes lorsque vous éditez une règle d'action. Les erreurs et les avertissement sont visibles dans la vue Problèmes.

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.

Tableau 1. Erreurs d'édition des règles d'action - Référence rapide
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 :

  • the title of a CD is one of {1}
  • Type demandé à affecterString(the title of a CD) ne peut pas être affecté à partir deNumber(1).
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 print "Hello world!" +2 -3, les opérateurs sont incompatibles, car "Hello world!" +2 est évalué en tant queStringet l'opérateur-est incompatible avec le type String. Pour résoudre l'incident, utilisez des parenthèses explicites : print "Hello world!" + (2 - 3)".

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 :

the name of the customer is 3

Le type demandé estString(the name of the customer) et le type indiqué estNumber(3).Stringn'est pas un super type deNumber.

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.

Tableau 2. Avertissements d'édition des règles d'action - Référence rapide
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.