Définition du script d'une correction automatique

Si la vérification personnalisée que vous avez définie prend en charge la correction automatique, vous pouvez saisir le corps de cette fonction dans l'onglet Script de correction automatique de la feuille de propriétés de vérification personnalisée.

La correction automatique est visible dans la boîte de dialogue Paramètres de vérification de modèle, elle est sélectionnée par défaut si vous cochez la case Exécuter la correction automatique par défaut dans l'onglet Général de la feuille de propriétés de la vérification personnalisée.

Par défaut, l'onglet Script de correction automatique affiche les éléments de script suivants :

  • %Fix% est le nom de la fonction, il est passé sur le paramètre obj. Il est affiché sous forme de variable, cette variable étant une concaténation de nom du fichier de ressource, du nom de la métaclasse courante, du nom du stéréotype ou critère ainsi que du nom de la correction. Si l'un de ces noms comporte un espace, ce dernier est remplacé par un trait de soulignement

  • La variable outmsg est un paramètre de la fonction de correction. Vous devez spécifier le message de correction qui va s'afficher lors de l'exécution du script de correction

  • La ligne de valeur de résultat qui indique si la correction a fonctionné

Nous allons reprendre l'exemple de la section Définition du script d'une vérification personnalisée afin de définir un script de correction automatique qui supprime de l'index les colonnes ayant un type de données incorrect.

  1. Cliquez sur l'onglet Script de correction automatique dans la feuille de propriétés de vérification personnalisée.

    Par défaut, la fonction est déclarée au début du script. Vous ne devez pas modifier cette ligne.

  2. Saisissez un commentaire après la déclaration de la fonction afin de documenter la vérification personnalisée, puis déclarez les différentes variables utilisées dans le script.
    Dim c 'temporary  index column
    Dim col 'temporary column
    Dim position
    Dim DT_col
  3. Saisissez le corps de la fonction.
    %Fix% = False
     If obj.type = "LF" or obj.type = "HG" or obj.type = "CMP" or obj.type ="HNG" Then
      For Each c In obj.IndexColumns
       Set col = c.column
       position = InStr(col.datatype,"(") 
       If position <> 0 Then
        DT_col = Left(col.datatype, position -1) 
       Else 
        DT_col = col.datatype
       End If
       If (Ucase(DT_col) = "VARCHAR") And (col.length > 255) Then
        outmsg = "Automatic correction has removed column " & col.Name & " from index."
        c.Delete
        %Fix% = True
       End If
      Next
     End If


  4. Cliquez sur Appliquer pour enregistrer les modifications.