Exemple : Vérification personnalisée de MPD

Vous saisissez le script de la vérification personnalisée dans l'onglet Script de vérification en utilisant VBScript. Dans cet exemple, nous allons rédiger un script afin de vérifier que les index SAP® Sybase® IQ de type HG, HNG, CMP ou LF ne sont pas liés à des colonnes ayant un type de données VARCHAR d'une longueur supérieure à 255.

Ce script est initialisé avec la ligne suivante, que vous ne devez pas modifier :
Function %Check%(obj)
Au moment de l'exécution, la variable %Check% est remplacée par la concaténation des noms du fichier de ressource, de la métaclasse courante, du stéréotype ou critère ainsi que celui de la vérification elle-même défini dans l'onglet Général, les éventuels espaces sont remplacés par un trait de soulignement. Le paramètre obj contient l'objet vérifié.
Nous commençons par définir un certain nombre de variables après la définition de fonction par défaut :
Dim c 'colonne index temporaire
Dim col 'colonne temporaire
Dim position
Dim DT_col
Nous saisissons ensuite le corps de la fonction, qui commence par définir %Check% à true (ce qui signifie que l'objet passe le test) puis procède à l'itération sur chacune des colonnes associées à l'index et teste leur type de données. Si une colonne a un type varchar dont la longueur dépasse 255, le script produit un message et définit la vérification à false (l'objet n'a pas satisfait au test) :
%Check%= True

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
     output "Table " & col.parent.name & ", colonne " & col.name & " : Le type de données n'est pas compatible avec l'index " & obj.name & " type " & obj.type
     %Check% = False
  end if

Pour plus d'informations sur l'utilisation de VBScript dans PowerAMC, voir Pilotage de PowerAMC à l'aide de scripts.