Bonjour,
J'ai une question à propos de l'exécution des libnames à chaque fois je ferme et j'ouvre mon projet.
Est ce qu'il n y a pas de moyen pour éviter ça?
Merci
Version imprimable
Bonjour,
J'ai une question à propos de l'exécution des libnames à chaque fois je ferme et j'ouvre mon projet.
Est ce qu'il n y a pas de moyen pour éviter ça?
Merci
Bonjour,
Il te faut modifier le fichier autoexec.sas
et comment le modifier ?
excuse moi, mais j'ai toujours pas compris.
J'ajoute les lignes de code qui m'intéressent (libname, requêtes, commentaires...) où ?
En fait je ne sais pas comment modifier le fichier autoexec.sas ?
Un exemple SVP
Tu recherches le fichier autoexec.sas , tu l'ouvres avec un éditeur de texte et tu rajoute tes instructions, par exemple :
Ce fichier sera exécuté par SAS à chaque ouverture.Code:
1
2
3
4
5 /* lignes à insérer dans le fichier autoexec.sas */ libname lib_rm sref=lib server=serv1; /*déclaration d'une libraire distante en local */ libname lib "r:\chemin\repertoire"; /*déclaration d'une librairie */ %include "r:\chemin\pgmlot1.sas"; /*exécution du programme : "pgmlot1" */
Hello,
le programme qui permet d'exécuter des instructions SAS à l'ouverture d'une session ( SAS ou SEG ) est AUTOEXEC.SAS.
si t'as les droits d'écriture sur le dossier d'install SAS et si ton fichier autoexec.sas existe dans ce dossier, tu peux faire ceci :
ce bout de code permet d'insérer le libname dans le fichier AUTOEXEC.SASCode:
1
2
3
4
5
6 data _null_; file "%str(%sysfunc(getoption(autoexec)))" mod; put /// %nrstr("libname rep 'c:\test';"); run;
Je rajoute un exemple de mise à jour ou de création du fichier Autoexec.sas s'il n'existe pas avec rajout d'un libname.
( pas tester)Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 %macro ajout_lignes_autoexec; %if %qsysfunc( filexist(%str(%sysfunc(getoption(autoexec)))))=1 %then %do; data _null_; file "%str(%sysfunc(getoption(autoexec)))" mod; put /// %nrstr("libname rep 'c:\test';"); run; %end; %else %do ; data _null_; file "&racine.\autoexe.sas" ; put / // 'libname rep "c:\test";'; run; %end; %mend; %ajout_lignes_autoexec;
Mais avant d'ajouter ces lignes de code, il faut trouver le fichier AUTOEXEC.SAS ?
J'ai fais une recherche dans la barre recherche sur mon ordinateur, mais je ne trouve rien.
avez vous une idée sur où je dois aller ?
Merci
Le code que je t'ai proposé se charge de trouver le programme AUTOEXEC.SAS s'il ne le trouve pas, il le crée au bon endroit et insert les lignes que tu souhaites exécuter au démarrage de SAS.
Exécute ce code si ton autoexec.sas existe, il sera affiché dans la log:
sinon, il est au même endroit que SAS.EXE.Code:
1
2 %put %sysfunc(getoption(autoexec));
1. Ouvrir SAS EG
2. Sélectionner Outils
3. Sélectionner Options
4. Sélectionner Programme SAS
Cocher la case «Soumettre le code SAS lorsque le serveur est connecté»
Cliquer sur «Modifier...»
Une fenêtre s'ouvre
Y coller le code SAS que vous voulez exécuter automatiquement au démarrage de SAS
OK partout, fermer votre session.
Le tout devrait se faire automatiquement lors de la prochaine ouverture de votre SAS.
Autre méthode un peu moins souple:
Créer un "Flux de processus" nommé "Autoexec"
A chaque ouverture du projet , le logiciel demandera si il faut executer ce flux. on peut egalement configurer dans les options pour que le message n'apparaisse pas et que le flux soit exécuté automatiquement
Parfois un dessin vaut mieux que mille explications...
Pièce jointe 162488
remplace &racine par !sasroot
En fait !sasroot correspond au répertoire d'installation SAS. Sinon même question, t'es sur SAS Stand-alone? SAS EG avec SAS (moteur) installé en local? client serveur ? SAS EG avec SAS(moteur) installé sur un serveur ?SAS BI ( avec métadata )?
ça ne marche pas. Ci-joint ce que SAS m'affiche comme erreur.
Pour ce qui concerne le type de sas que j'ai, je ne sais vraiment pas. C'est sur un PC qu'on m'a laissé. Je pense que c'est une version cracké mais je ne sais pas si c'est ça le problème. Sinon j'ai une version gratuite sur un autre PC mais c'est le PC de l'école.
Haache, sans vouloir polémiquer, ce serait assez agréable que tu lises les posts et que tu répondes aux questions de ceux qui prennent de leur temps pour t'aider...
Hello HAACH,
(t’avais raison il y avait une coquille dans le premier code que j'ai proposé ).peux-tu essyer le code ci-dessous et me dire si ça marche ?
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 %macro ajout_lignes_autoexec; %if %sysfunc(getoption(autoexec))ne %then %do; data _null_; file "%str(%sysfunc(getoption(autoexec)))" mod; put /// %nrstr("libname lib1 'c:\test';"); put /// %nrstr("libname lib2 'c:\test1';"); run; %end; %else %do ; data _null_; file "!sasroot\autoexe.sas" ; put /// %nrstr("libname lib1 'c:\test';"); put /// %nrstr("libname lib2 'c:\test1';"); run; %end; %mend; %ajout_lignes_autoexec;
Le code fonctionne correctement en EG avec SAS local (9.3) mais plantait en mode connecté sur serveur Linux (9.4 M1)