Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > Macro
Macro Forum d'entraide sur le langage Macro de SAS
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/06/2008, 17h49   #1
Invité de passage
 
Inscription : juin 2008
Messages : 6
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 6
Points : 0
Points : 0
Par défaut Accès simultané à des macros


Bonjour, un répertoire sur un serveur SAS contient un bon nombre de macros.
Quelques unes d'elles sont utilisées régulièrement par plusieurs personnes.
Le problème est que lorsque l'un de nous a sa session ouverte, cela bloque l'accès aux macros pour les autres.
I a-t-il un moyen d'accéder aux mêmes macros au même moment sans les copier en dur sur le programme.
Peut-être une option spéciale dans le %include ou autre chose?
Merci pour vos réponses
jéjédu13400 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 09h15   #2
Membre Expert
 
Inscription : mars 2005
Messages : 1 028
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 028
Points : 1 278
Points : 1 278
Envoyer un message via Yahoo à bahraoui
Bonjour,

Est ce que c'est possible d'expliquer la notion de bloquer?
Vous êtes sur quel type de serveur?
C'est un catalogue de macro ou des fichiers plats?

Cordialement.
bahraoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 10h36   #3
Invité de passage
 
Inscription : juin 2008
Messages : 6
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 6
Points : 0
Points : 0
Par défaut re

bonjour bahraoui
je ne sais pas exactement si c'est unix (je pense que c'est ça que tu voulais savoir)
en tout cas l'ensemble des macros individuelles se situe dans un répertoire sur ce serveur et par exemple, si ma session est ouverte et que l'un(e) de mes collègues ouvre sa session et lance un programme faisant appel à une de ces macros il lui délivre un message d'erreur du style :"macro toto vérouillé par another process"
Du coup la seule solution temporaire qu'on a trouvé c'est de copier en dur les macros dans nos programmes. Mais ça va vite devenir ingérable.
Merci par avance.
jéjédu13400 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 10h40   #4
Membre Expert
 
Inscription : mars 2005
Messages : 1 028
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 028
Points : 1 278
Points : 1 278
Envoyer un message via Yahoo à bahraoui
C'est bizzare!!!
C'est un catalogue de macros ou des fichiers plats?
Vous accédez comment à ces macros? vous faites un %include "chemin vers programme/prg.sas";??
Vous utilisez tous le même compte?
bahraoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 11h22   #5
Invité de passage
 
Inscription : juin 2008
Messages : 6
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 6
Points : 0
Points : 0
Par défaut re

oui %include pour accès aux macros
on a chacun un poste unique mais on a un groupe d'accès au répertoire
quant à "catalogue de macros ou fichiers plats" je ne saisis pas trop la différence
jéjédu13400 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 11h30   #6
Membre Expert
 
Inscription : mars 2005
Messages : 1 028
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 028
Points : 1 278
Points : 1 278
Envoyer un message via Yahoo à bahraoui
Vous faites un %include "repertoire/prg.sas".
Je crois que le problème est dans cette phrase "un groupe d'accès au répertoire". Ce qui se passe c'est qu'il y a un verrou qui verouille le fichier tant qu'il est utilisé par un utilisateur.
Je crois qu'il fadrait voir ce problème avec l'administrateur.
bahraoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 11h50   #7
Invité de passage
 
Inscription : juin 2008
Messages : 6
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 6
Points : 0
Points : 0
Par défaut re

ok merci je vais voir ça avec l'admin
je vous tiens au courant
jéjédu13400 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 12h04   #8
Membre confirmé
 
Inscription : avril 2008
Messages : 233
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : avril 2008
Messages : 233
Points : 216
Points : 216
Peut-être je dirai une connerie, mais pourquoi faire le répertoire du système de fichier avec des fichiers .SAS pour les inclure ensuite dans les programmes (si j'ai bien compris, c'est ce que vous faites), au lieu de mettre les macros (compilées) dans un catalogue de SAS et les exécuter directement par le nom ? Tu vois la différence ?
green_fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 12h16   #9
Invité de passage
 
Inscription : juin 2008
Messages : 6
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 6
Points : 0
Points : 0
Un répertoire sur le serveur contient toutes les macros
Dans mon code pour chaque projet je compile toutes les macros en les appelant par des %include.
De cette manière lorsque j'utilise l'une d'elles, elles sont automatiquement chargées.
Je n'ai pas trop bien saisi l'histoire de catalogue mais je pense que c'est que je fais en quelque sorte
jéjédu13400 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 13h27   #10
Membre Expert
 
Inscription : mars 2005
Messages : 1 028
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 028
Points : 1 278
Points : 1 278
Envoyer un message via Yahoo à bahraoui
J'ai déjà travaillé de cette manière, est je n'ai jamais eu ce type de problème.
Il faut voir avec l'administrateur du serveur.
il y a un problème d'accès concurent.
Les fichiers sont verouillés en mode lecture (pas normal).
bahraoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 14h23   #11
Membre confirmé
 
Inscription : avril 2008
Messages : 233
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : avril 2008
Messages : 233
Points : 216
Points : 216
Citation:
Envoyé par jéjédu13400 Voir le message
Un répertoire sur le serveur contient toutes les macros
Dans mon code pour chaque projet je compile toutes les macros en les appelant par des %include.
De cette manière lorsque j'utilise l'une d'elles, elles sont automatiquement chargées.
Je n'ai pas trop bien saisi l'histoire de catalogue mais je pense que c'est que je fais en quelque sorte
C'est-à-dire que SAS propose un autre mode de fonctionnement.
En gros, qu'est-ce que c'est qu'une macro ? Tu "exécute" le code entre %macro et %mend, SAS le prépare (compile) et garde dans un catalogue (presque la même chose qu'une bibliothèque). Ensuite tu exécute la ligne %nom_de_ton_macro; - SAS exécute le code associé à ce nom.

Par défaut, le catalogue de stockage des macro est temporaire. Comme WORK - tout le contenu est visible uniquement dans cette session et disparait après sa fermeture. Mais tu peux préciser le catalogue où mettre les macros compilés, et - exactement comme pour les bibliothèques - le macro sera visible pour tous les utilisateurs, et en plus elle deviendra persistant, i.e. sera accessible à la réouverture d'une session.

Voilà, en gros, le fonctionnement des catalogues des macros.

Et quand tu fais %include, c'est comme si tu fais tes macros dans le catalogue personnel/temporaire. Même sans "si" - c'est dans ton catalogue temporaire. C'est juste le fichier (qui est en dehors du périmètre de SAS) de source de a macro qui est partagé.
green_fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 15h42   #12
Invité de passage
 
Inscription : juin 2008
Messages : 6
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 6
Points : 0
Points : 0
merci green_fr
mais comment lui spécifier la biblio (catalogue) dans laquelle tu stockes les compilations.
jéjédu13400 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 11h11   #13
Membre confirmé
 
Inscription : avril 2008
Messages : 233
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : avril 2008
Messages : 233
Points : 216
Points : 216
Il y a des options pour ça.

Code :
options mstored sasmstore=libref;
Cette option dit à SAS qu'il faut stocker les macros qu'on veut stocker dans la bibliothèque libref.

Code :
%macro nomMacro /store source;
Option /store dit que la macro est à stocker.

Attention, si tu ne met pas l'option source, SAS ne garde que le code compilé. C'est-à-dire, si tu perd la code source, c'est foutu pour les modifications : la macro marche, mais tu n'as aucune possibilité de la modifier.

Après il y a aussi proc catalog pour voir la liste des macros dans telle ou telle bibliothèque et (s'ils ont été créées avec une option source) voir la source.
green_fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h29.


 
 
 
 
Partenaires

Hébergement Web