Le lancement en batch est possible.
Le language de développement X3 est extrèmement flexible et permet d'exécuter du code souvent sans préjuger du type de données utilisé, en générant a posteriori des sous-programmes qui ne seront contrôlés qu'à l'exécution. Autant cette flexibilité est utile pour accroître l'efficacité et la généricité du code, autant elle a pour contrepartie la possibilité d'écrire des programmes qui ne provoqueront des erreurs qu'au moment de l'exécution.
Le but de ce traitement est de pallier cette flexibilité en détectant un certain nombre d'erreurs de programmation. En agissant ainsi en amont de la mise en service, on améliore la qualité.
Ce traitement permet de lancer diverses séries de contrôle dans un dossier :
Les contrôles sont subdivisés en 2 parties :
Le traitement génère deux fichiers trace (un pour les erreurs, un pour les anomalies).
Le fichier des anomalies porte le même nom que celui des erreurs avec le suffixe W (pour Warning).
L'écran présente le dossier courant.
Présentation
Saisie des paramètres souhaités
Champs
Les champs suivants sont présents dans cet onglet :
Bloc numéro 1
| choix du dossier à traiter. |
Type de contrôle
|
| vérification des classes [F] et [M]. ce choix permet principalement de vérifier l'existence des tables, écrans et champs dans les sources. |
| autres vérifications. ce choix permet divers contrôles dans les sources. |
Critères
| sélection d'un traitement. sélection de tous par *, d'un seul par son nom ou de plusieurs par début*. |
| choix d'un module (via un écran liste) |
|   |
| choix d'une erreur particulière (via un écran liste). |
|   |
Tri
| Enchaînement par module |
Trace
| Fichier de trace. Il est possible de l'enregistrer directement sur le poste client (case à cocher). |
Certaines erreurs sont complexes à analyser, d'autres correspondent à des cas particuliers.
Pour cela, vous disposez de balises (dans les traitements) pour les masquer.
L'intérêt est de ne pas polluer les comptes rendus par de 'fausses' erreurs récurrentes.
Le but de ces balises n'est pas, par une utilisation généralisée, de masquer toutes les erreurs en quelques CHECK.
Il est de traiter les cas particuliers.
Première phase : Analysez les sources sans placer de balise.
Relancez la vérification autant de fois que nécessaire pour obtenir le nombre d'erreurs le plus petit possible.
Deuxième phase : Placez les balises souhaitées puis analysez les sources jusqu'à obtenir le résultat souhaité (aucune erreur !).
Troisième phase : Adaptez vos balises en fonction des erreurs survenues sur d'autres traitements.
Par exemple, un source marqué comme inutilisé ne devra plus l'être si un autre traitement fait appel à un de ses sous-programmes.
Le CHECK IGNORE_SOURCE est plutôt prévu pour ne pas contrôler un source en cours de développement (trop d'erreurs temporaires).
Le CHECK UNUSED_SOURCE est prévu pour vérifier qu'un source n'est plus utilisé. Il pourra alors être supprimé dans un second temps.
Les CHECK IGNORE_BEGIN et CHECK UNUSED_BEGIN sont faits pour cibler une partie de traitement (jusqu'au #CHECK ..._END).
Le CHECK IGNORE_WRSEQ sert à ne pas analyser les instructions Wrseq (cas des sources générateurs).
Il faut privilégier un CHECK UNUSED_SOURCE plutôt qu'un UNUSED_BEGIN (dès le début) sur un traitement :
Si un autre traitement lui fait appel (Call From), l'erreur précisera alors que le traitement appelé est marqué comme non utilisé.
#CHECK FILE_DECLARE <file> [<abrev>]
Pour déclarer une table ayant été ouverte dans un autre traitement avec une abréviation non standard
Ne déclarer qu'une seule table par ligne
A placer en début de ligne (avant celles utilisant cette abréviation).
#CHECK MASK_DECLARE <masque> [<abrev>]
Pour déclarer un masque écran ayant été ouvert dans un autre traitement avec une abréviation non standard
Ne déclarer qu'une seul masque par ligne
A placer en début de ligne (avant celles utilisant cette abréviation).
#CHECK IGNORE_SOURCE
Pour ne pas analyser un source.
A placer en début de traitement
#CHECK IGNORE_BEGIN
A partir de cette ligne, les instructions suivantes du traitement ne sont pas analysées.
A placer en début de ligne (avant celles à ne pas analyser).
#CHECK IGNORE_END
Pour arrêter le CHECK IGNORE BEGIN.
A placer en début de ligne
#CHECK IGNORE_LINE
Pour ignorer une seule instruction.
A placer en fin de ligne comme un commentaire
#CHECK IGNORE_WRSEQ
A partir de cette ligne, les lignes contenant un Wrseq sont ignorées.
A placer en début de ligne
#CHECK WRSEQ_END
Pour arrêter le CHECK IGNORE_WRSEQ.
A placer en début de ligne
#CHECK UNUSED_SOURCE
Pour ne pas analyser un traitement obsolète.
A placer en début de traitement
#CHECK UNUSED_BEGIN
A partir de cette ligne, les instructions suivantes du traitement ne sont jamais analysées.
A placer en début de ligne (avant celles à ne pas analyser).
#CHECK UNUSED_END
Pour arrêter le CHECK UNUSED BEGIN.
A placer en début de ligne
#CHECK MIGRATE_SOURCE
Reconnaissance d'un traitement de migration. A partir de cette ligne, certains contrôles seront ignorés.
A placer en début de ligne (avant celles à ne pas analyser).
Erreurs masquées par ce CHECK : n° 109
Cette fonction peut être lancée en batch. La tâche standard AVERIFSRC est prévue à cet effet.