Publié le :

Configuration de l'environnement et chargement des dépendances

Ce code est également disponible en : Deutsch English Español
Attention : Ce code nécessite des droits administrateur.
Le script définit une macro `%setPathToCurrent` qui tente de récupérer le chemin du fichier en cours d'exécution via une variable d'environnement et d'ajuster le répertoire de travail système (cd). Il définit ensuite une librairie 'survey' pointant vers un dossier relatif, configure les options de recherche de formats et inclut une série de fichiers SAS© (macros) situés dans des répertoires parents ou partagés. Note : L'utilisation de backslashes dans le parsing de chemin suggère une origine Windows, ce qui peut nécessiter une adaptation pour un environnement Linux/Viya.
Analyse des données

Type : MIXTE


Utilise des commandes système pour le chemin, définit une librairie locale externe 'survey' ('../data') et charge du code via %include.

1 Bloc de code
MACRO
Explication :
Définition de la macro `setPathToCurrent`. Elle récupère le chemin complet du fichier exécuté, extrait le dossier parent (logique Windows avec '\') et utilise `call system` dans un `data _null_` pour changer le répertoire de travail du système d'exploitation.
Copié !
1%let currentDir=;
2 
3%macro setPathToCurrent;
4 %local cdir cFileName cFileBaseName n_cFileName n_pathName cPathName;
5
6 %let cFileName = %sysget(sas_execfilepath);
7 %let cFileBaseName = %qscan(&cFileName, -1, '\');
8 %let n_cFileBaseName = %length(%quote(&cFileBaseName));
9 %let n_cFileName = %length(%quote(&cFileName));
10 %let n_pathName = %eval(&n_cFileName - &n_cFileBaseName - 1);
11 %let cPathName = %qsubstr(&cFileName, 1, &n_pathName);
12
13 data _null_;
14 call system("cd &cPathName");
15 RUN;
16 
17 %let currentDir = &cPathName;
18 
19%mend setPathToCurrent;
2 Bloc de code
GLOBAL STATEMENTS
Explication :
Exécution de la macro de configuration, définition de la librairie 'survey', configuration des options de formats et inclusion des fichiers de code externes (macros partagées).
Copié !
1%setPathToCurrent;
2 
3LIBNAME survey "../data";
4 
5options fmtsearch = (work fdz) mstored sasmstore = sasuser;
6 
7%include "./macrro_gregg.sas"; /*MACRO GREGAR*/
8%include "../CLAN/clan97_313.sas";
9%include "../shared/utility_macros1.sas";
10%include "../shared/buildAuxData.sas";
11%include "../shared/parseModel.sas";
12%include "../shared/vec_emu.sas";
13%include "../shared/interaction.sas";
14 
15/*%include "./shared/stack.sas";*/
16%include "../shared/buildTotalsTable.sas";
17%include "../shared/combineTables.sas";
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Banner
Le Conseil de l'Expert
Expert
Michael
Responsable de l'infrastructure Viya.
« Ce script constitue le moteur d'initialisation d'un projet SAS. Sa fonction principale est de rendre l'exécution indépendante de l'emplacement physique des fichiers, un pilier de la programmation robuste.

Point de vigilance technique : La méthode de parsing utilise le caractère \ (backslash), typique des environnements Windows. Si votre infrastructure migre vers SAS Viya ou un serveur Linux, il sera impératif d'adapter ce code pour utiliser le séparateur / ou, idéalement, d'utiliser des fonctions plus universelles comme %sysfunc(getoption(sas_execfilepath)) pour maintenir la compatibilité multi-plateforme. »