Étapes pour définir des exceptions MessageBox

Objectif

Lorsque Visual Expert analyse votre code, certaines références à des DataObjects peuvent être manquantes. Cet article explique comment déclarer des exceptions MessageBox afin d’aider Visual Expert à identifier ces références lorsqu’elles sont créées de manière indirecte.

Pourquoi certaines références sont manquantes

Les références manquantes apparaissent généralement dans des cas d’utilisation indirecte, par exemple :

  • Lorsque des DataObjects sont passés en tant que paramètres
  • Lorsque des variables stockent des noms de DataObjects sous forme de chaînes de caractères
  • Lorsque des objets sont créés dynamiquement en fonction de valeurs de paramètres

Dans ces situations, Visual Expert ne peut pas déterminer automatiquement :

  • Qu’un paramètre représente un DataObject, ou
  • Qu’une valeur de type chaîne correspond au nom d’un DataObject

Par conséquent, les références associées ne sont pas détectées lors de l’analyse.

Qu’est-ce qu’une exception MessageBox ?

Une exception MessageBox vous permet de déclarer explicitement la manière dont Visual Expert doit interpréter certains paramètres ou certaines valeurs. En définissant une exception, vous indiquez à Visual Expert de traiter des paramètres spécifiques comme des références significatives, afin que les liens manquants puissent être identifiés lors de l’analyse du code.

Prérequis

  • Utiliser testapp.pbl comme référence de code source
  • Créer un nouveau projet Visual Expert à partir de ce PBL
  • Analyser le projet une première fois afin d’activer la sélection des composants et des contrôles

Procédure

Étape 1 : Ouvrir les paramètres des exceptions

  • Ouvrez More Settings depuis l’onglet Settings
    Open ExceptionBox Settings
  • Accédez à Project → Exceptions
    Open VE Project Exceptions Settings

Étape 2 : Créer une nouvelle exception MessageBox

  • Cliquez sur [Add], puis sélectionnez Messagebox Exception
    Add MessageBox Exceptions
  • Sélectionnez Custom Function dans la liste déroulante afin de détecter la fonction définie par l’utilisateur et ses paramètres
    Select Custom Function Exception

Étape 3 : Sélectionner la cible de l’exception

  • Cliquez sur [Select] pour l’élément à l’origine de l’exception
    • Parcourez les composants et les contrôles pour localiser la cible de l’exception
    Exception Target Selection
  • Sélectionnez le paramètre pour lequel les valeurs transmises doivent être détectées comme des informations utiles
    Select MessageBox Exception Parameter

Exemple : des objets créés dynamiquement à partir de noms passés sous forme de chaînes de caractères à un paramètre de fonction. Dans ce cas, la fonction createperson possède un paramètre nommé s_className, dans lequel l’utilisateur fournit le nom de l’objet ou du type à créer dynamiquement.

Étape 4 : Actualiser l’analyse

  • Lorsque vous êtes invité à actualiser l’analyse du code, cliquez sur [Yes]
    Refresh Code Analysis
  • Confirmez la durée de l’analyse et cliquez sur [Yes] pour continuer
    Analysis duration confirmation

L’analyse démarre.

Code Analysis Begins

Résultat : références détectées après l’analyse

Examiner les éléments détectés

Une fois l’analyse terminée, Visual Expert affiche les éléments trouvés à partir des valeurs du paramètre s_className transmises à la fonction createperson.

Review detected items

Effectuer une analyse d’impact

Sélectionnez un élément individuel et cliquez sur Impact Analysis afin d’identifier ses références.

Impact analysis for references

Scénario d’exemple

Example Scenario for MessageBox Exceptions

L’exemple ci-dessus montre la fonction createperson utilisant un classname comme paramètre, créant une instance de s_className et retournant le même type ou un type ancêtre.

Syntaxe prise en charge pour les exceptions MessageBox

  • Création d’un objet directement en passant une chaîne de caractères
  • Identification des noms de types dynamiques sous le nœud Messages dans l’arborescence
  • Exécution d’une analyse d’impact sur chaque nœud détecté

Cette approche permet d’identifier les noms de types dynamiques et de s’assurer que leurs références sont incluses lors de l’analyse.

EXEMPLE :

u_person o_student;
if id = 1 then
    o_student = createperson ("u_student"); 
else
    o_student = createperson ("u_teacher");
end if

 

Autres articles sur la création de projets dans Visual Expert