Rechercher : dans
Par :

[SAS] lancer programme SAS par batch

Dernière réponse le 21 jui 2008 à 09:56:54 Aza, le 14 fév 2006 à 10:33:30 
 Signaler ce message aux modérateurs

Bonjour,

J'aimerais lancer un programme SAS à partir d'un script unix (.sh).
J'y arrive en utilisant la commande suivante :

$SASEXE -sysin $DIR/$PGMSAS -log $FILE_LOGSAS

avec :
SASEXE=/exploit/sas82/sas
DIR=/app/CASTING/prog/pgmsas/repa
PGMSAS=repa_lirehisto.sas
FILE_LOGSAS=/app/CASTING/log/histo.logSAS.$JOUR

Par contre, lorsque je souhaite passer un paramètre au programme sas, je n'y arrive pas.

Est-ce possible ? Si oui, comment doit-on faire (où mettre le paramètre, avec quelle syntaxe) ?

Merci bcp d'avance...

Meilleures réponses pour « [SAS] lancer programme SAS par batch » dans :
Lancer un programme au démarrage du PC VoirLe problème Les solutions 1- Sans toucher au registre 2- En modifiant le registre Désactiver son lancement Le problème Certains programmes tels que Mozilla Firefox, Internet explorer ou encore les programmes de messagerie électronique ne...
Lancer un programme automatiquement au login sous Ubuntu VoirLorsque vous ouvrez votre session, vous voulez que des programmes soient lancés automatiquement. C'est facile à faire. Par exemple, nous allons ouvrir un terminal automatiquement à la connexion: Allez dans le menu Système > Préférences >...
Désactiver l'exécution de certains programmes au démarrage VoirDésactiver l'exécution de certains programmes au démarrage - Windows 98/Me/2000/XP/Vista Avec msconfig Avec WinPatrol Avec Startuplite Avec CCleaner Remarques Lorsque vous installez des logiciels, certains s'exécutent à chaque...
Télécharger A Cool Interface For FZC VoirCertains fichiers de compression .zip sont protégés par mot de passe. Alors si vous le perdiez ou si vous ne l’avez pas entre les mains, alors le seul moyen est de passer par les récupérateurs de mot de passe. A Cool Interface For FZC est un...

1

hssissen, le 14 fév 2006 à 14:59:34

Salut,
Dis nous comment tu fais passer ton parametre a ton programme?

Répondre à hssissen

2

Aza, le 15 fév 2006 à 09:25:31

Bonjour et merci,

Voici les tests que j'ai faits :
(sachant que ma macro est déclarée comme ça :
%macro repa_lirehisto(env=); )

$SASEXE -sysin $DIR/$PGMSAS(env=R) -log $FILE_LOGSAS
> dans ce cas, la log me dit que la parenthèse ( est inattendue

$SASEXE -sysin $DIR/$PGMSAS R -log $FILE_LOGSAS
> dans ce cas, sas cherche à exécuter R.sas

j'ai même essayé ça, bien que ça semble tout à fait tordu :
PGMSAS=repa_lirehisto(env=R).sas
puis
$SASEXE -sysin $DIR/$PGMSAS -log $FILE_LOGSAS
> dans ce cas, c'est à la déclaration de PGMSAS que ça plante


J'ai beau chercher de la doc sur ce sujet, je ne trouve rien !

Sais-tu comment faire ?

Merci d'avance,
Aza

Répondre à Aza

3

hssissen, le 15 fév 2006 à 14:56:37

Salut,
Je ne suis pas sur de te comprendre, mais j'essaie qusnd même:

Tu as donc une macro dans un programme SAS et que tu veux passer un parametre a ta macro lors de l'execution de ton programme SAS.
Moi a ta place, je passerai le parametre de la macro lors de l'appel de ta macro dans le programme SAS et je l'execute en Batch avec:

SAS ton_programme.sas

C'esr ca que tu veux faire?

Répondre à hssissen

4

Aza, le 15 fév 2006 à 16:00:34

Re bonjour,


Oui c'est vrai que ce n'est pas très clair, désolée :-s et en tout cas merci de te pencher sur la question !

En fait, le programme SAS qui contient la macro est le même quelque soit l'environnement dans lequel je suis (quelque soit le serveur à partir duquel j'exécute le programme), et il doit rester le même. du coup, je ne peux pas appliquer ta solution...

Cependant, je voudrais avoir un comportement différent selon l'environnement.

Par contre, le script qui lance le programme SAS est, lui, différent selon l'environnement, je voudrais donc passer l'environnement en paramètre dans le batch, poru pouvoir le récupérer dans le programme, et donc la macro.

Mais je ne sais pas si c'est possible... (en effet, il y a une différence entre passer un param dans le programme ou dans la macro !!!)

J'espère avoir été plus claire !

merci
aza

Répondre à Aza

5

hssissen, le 15 fév 2006 à 16:45:10

Oui maintenant je crois que c'est plus claire. J'avoue que je n'ai jamais abordé ce type problème bien que je travaille sur SAS depuis des années et toujours sur un même système (Linux). Un conseil que je peux te donner est de consulter le support technique SAS pour te débloquer.

http://support.sas.com/index.html.

Désolé de ne pouvoir t'aider, toujours est-il que si une solution a ton problème me traverse l'esprit je te tiendrai au courant.
Bonne chance.

Répondre à hssissen

6

Aza, le 15 fév 2006 à 18:03:43

Salut,

Merci encore pour ta réponse. De fil en aiguille, j'ai fini par obtenir la réponse... La voici, si ça t'intéresse.

a+
Aza


______________________________

Il existe plusieurs façons de récupèrer une variable d'environnement avec SAS sous Unix.
La plus élégante est d'utiliser la fonction macro %SysGet(), qui fait exactement ce que tu veux faire.

Exemple :

Dans le script Shell on a quelque chose comme :

#-- Les variables pour lancer SAS
JOUR=????
SASEXE=/exploit/sas82/sas
DIR=/MONREP
PGMSAS=MonProg.sas
FILE_LOGSAS=${MONREP}/log/MonProg.logSAS.${JOUR}

#-- La variable que je veux récupérer dans SAS qui contient l'argument de ma macro
MaVariable=MonArgument

#-- ATTN : Cette variable doit être une variable d'environnement ...
export MaVariable

#-- On lance le programme SAS
${SASEXE} -sysin ${DIR}/${PGMSAS} -log ${FILE_LOGSAS}

Le programme SAS MonProg.sas ressemblera à ça :

Option NoNotes;
%MACRO Macro1(param);
%Put =====> Le parametre passé à la Macro est : ¶m ;
%MEND;
Option Notes;

%Macro1(%SysGet(MaVariable));

Et voila ...
En lançant le script, tu devrais voir apparaitre dans la Log la ligne suivante :
=====> Le parametre passé à la Macro est : MonArgument

Répondre à Aza

7

hssissen, le 15 fév 2006 à 19:46:19
  • +1

Merci, je garderai ça dans ma librairie!

Répondre à hssissen

8

sophie, le 28 oct 2007 à 18:04:10

Bonjour,

Sinon, y'a une formation bien faite sur SAS Base sur :
http://www.egilia-learning.com/fr/sas_base/

Répondre à sophie

9

 antipub, le 21 jui 2008 à 09:56:54

Arrête ta pub !
D'autant que les formations SAS base (qui ont exactement le même contenu quelle que soit la société qui les propose) n'abordent absolument pas cette problématique

Répondre à antipub