SAS9

Ne réécrivez plus jamais vos LIBNAME : Comment centraliser vos bibliothèques SAS

Admin 5 vistas

Si vous travaillez régulièrement avec SAS©, vous connaissez ce scénario frustrant : vous commencez un nouveau programme ou un nouveau module, et la première chose que vous devez faire est de copier-coller (ou pire, retaper) vos instructions LIBNAME pour accéder à vos données.

Non seulement c'est répétitif, mais cela pose un vrai problème de maintenance. Si le chemin d'accès au serveur change, vous devez modifier des dizaines, voire des centaines de scripts.

Heureusement, il existe des méthodes pour définir vos bibliothèques une seule fois et les partager automatiquement entre tous vos composants et sessions SAS©. Voici comment automatiser ce processus.


Le problème : La durée de vie d'un LIBNAME

Il est important de comprendre une contrainte fondamentale de SAS© : une définition LIBNAME n'existe que tant que la session SAS© est active. Dès que vous fermez SAS©, la connexion à la bibliothèque disparaît. C'est pourquoi vous devez généralement inclure le code dans chaque programme.

Cependant, nous pouvons contourner cela en automatisant l'exécution de ce code au démarrage.

Solution 1 : Le fichier autoexec.sas©

La méthode la plus classique pour automatiser vos bibliothèques est l'utilisation du fichier autoexec.sas©.

Ce fichier est un script SAS© spécial qui s'exécute automatiquement à chaque fois que vous lancez une session SAS©. En y plaçant vos instructions LIBNAME, vos bibliothèques seront prêtes à l'emploi dès l'ouverture du logiciel, sans que vous n'ayez à écrire une seule ligne de code dans vos programmes quotidiens.

Solution 2 : L'approche "Best Practice" (Centralisation sur serveur)

Si vous travaillez en équipe, configurer l'autoexec de chaque utilisateur individuellement peut devenir fastidieux. Une approche plus robuste, inspirée par des environnements d'entreprise, consiste à créer une chaîne de fichiers de configuration.

La stratégie en 3 étapes :

  1. L'Autoexec Local : Chaque utilisateur possède un fichier autoexec.sas© sur son poste (PC SAS©).

  2. Le Pointeur Réseau : Cet autoexec local ne contient qu'une seule instruction : un %include pointant vers un fichier partagé sur le serveur commun.

  3. Le Fichier Maître (LibraryDefinitions.sas©) : C'est ici que la magie opère. Ce fichier, situé sur le serveur et accessible à tous, contient toutes les définitions LIBNAME, les FILENAME et les options systèmes communes à l'équipe.

Pourquoi cette méthode est supérieure ?

  • Point de maintenance unique : Si un chemin serveur change, vous ne modifiez que le fichier LibraryDefinitions.sas©. Tous les utilisateurs sont mis à jour instantanément au prochain démarrage.

  • Portabilité : Vos programmes sont plus propres car ils ne contiennent pas de chemins "en dur".

  • Uniformité : Toute l'équipe travaille avec les mêmes alias de bibliothèques, évitant les confusions.

Solution 3 : Le Serveur de Métadonnées (SAS© Metadata Server)

Pour les environnements plus complexes utilisant SAS© Enterprise Guide (EG) ou la suite SAS© Intelligence Platform, la solution idéale est le SAS© Metadata Server.

Plutôt que d'utiliser des scripts, vous enregistrez vos bibliothèques directement dans les métadonnées du serveur. Lorsque votre session (Batch ou EG) se connecte au serveur, les bibliothèques sont automatiquement assignées (pré-assignées). C'est la méthode la plus sécurisée et la plus "propre" pour les grandes entreprises, bien qu'elle nécessite une administration plus poussée.

Conclusion

Que vous soyez un utilisateur isolé ou membre d'une grande équipe, il n'y a aucune raison de taper manuellement vos LIBNAME à chaque fois.

  • Pour un usage solo, modifiez votre autoexec.sas©.

  • Pour une équipe, utilisez la méthode du %include vers un fichier réseau partagé.

  • Pour une grande entreprise, levez-vous vers le Metadata Server.

En centralisant ces définitions, vous gagnez du temps, réduisez les erreurs et rendez vos projets SAS© beaucoup plus faciles à maintenir.