?>Array ( [lang] => fr [id] => 177 ) Cas Limite : Gestion d'une erreur de syntaxe lors de l'ajout à un package existant - WeAreCAS
fcmpact addRoutines

Cas Limite : Gestion d'une erreur de syntaxe lors de l'ajout à un package existant

Scénario de test & Cas d'usage

Contexte Métier

Un développeur tente d'ajouter une nouvelle fonction à un package existant, mais commet une erreur de syntaxe dans le code FCMP. Le système doit rejeter la nouvelle fonction, fournir un message d'erreur clair et garantir que le package d'origine n'est pas corrompu et que les fonctions existantes restent utilisables.
Préparation des Données

Aucune donnée initiale n'est requise.

Copié !
1/* Pas de données nécessaires pour ce scénario */

Étapes de réalisation

1
Création d'un package de base `math_pkg` avec une fonction valide `CUBE`.
Copié !
1PROC CAS;
2 fcmpact.addRoutines /
3 routineCode = { 'function cube(x); return(x*x*x); endsub;' },
4 package = 'math_pkg',
5 funcTable = {name='math_functions', caslib='CASUSER', replace=true};
6QUIT;
2
Tentative d'ajout d'une fonction `SQUARE` avec une erreur de syntaxe (mot-clé `function` manquant).
Copié !
1PROC CAS;
2 fcmpact.addRoutines /
3 routineCode = { 'square(x); return(x*x); endsub;' }, /* ERREUR: 'function' manquant */
4 package = 'math_pkg',
5 funcTable = {name='math_functions', caslib='CASUSER'},
6 appendTable = true;
7QUIT;
3
Vérification que la fonction d'origine `CUBE` est toujours fonctionnelle après l'échec de l'ajout.
Copié !
1PROC CAS;
2 datastep.runCode /
3 code = 'data CASUSER.VERIF_CUBE;
4 y = cube(3);
5 output;
6 run;';
7QUIT;

Résultat Attendu


L'action de l'étape 2 doit échouer. Le journal SAS doit afficher une erreur explicite indiquant un problème de compilation ou de syntaxe dans le `routineCode` fourni. L'étape 3 doit s'exécuter avec succès, créant la table `VERIF_CUBE` avec la valeur `y=27`, ce qui prouve que la fonction `CUBE` initiale n'a pas été affectée par la tentative d'ajout échouée.