Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > Administration
Administration Forum d'entraide sur les fonctionnalités d'administration de SAS : installation, portal, serveurs
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/2011, 17h24   #21
Membre habitué
 
Homme Julien
Ingénieur d'études / Biostatisticien
Inscription : décembre 2009
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme Julien
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études / Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2009
Messages : 304
Points : 101
Points : 101
Avec les options que vous m'avez conseillé Stéphane et Brice il semblerait que mon souci soit avant la fermeture du process task en cours:

Code :
1
2
3
4
5
6
7
 
SYMBOLGEN:  Macro variable LOOP resolves TO 1
MPRINT(MA_PREMIERE_PARALLISATION_SAS):   endrsubmit task1;
74         1
           _
           180
ERROR 180-322: Statement IS NOT valid OR it IS used out of proper ORDER.
Merci Olivier pour le conseil, en effet ça pourrait bien être ça.
joyeux_lapin13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 09h30   #22
Membre habitué
 
Homme Julien
Ingénieur d'études / Biostatisticien
Inscription : décembre 2009
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme Julien
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études / Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2009
Messages : 304
Points : 101
Points : 101
Bon finalement j'ai résolu l'erreur ci-dessus, j'avais juste mis le mauvais nom de macro-variable pour la fermeture du task.

Par contre le syslput il faut bien l'utiliser comme ça? enfin c'est les exemples que j'ai trouvé sur internet pour mon code ci-dessous:

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
 
%MACRO Ma_premiere_parallisation_SAS(nb_it = );
 
	goptions reset = ALL device  = ACTXIMG;
 
	/* Déclaration des options*/
	OPTION autosignon=yes ;
	OPTIONS SASCMD="/opt/SAS_1.4/SASFoundation/9.2/sasexe/sas -CONFIG /opt/SAS_1.4/SASFoundation/9.2/sasv9.cfg";
 
	/*Déclaration du libname*/
	libname ut '/home/public';
 
	%DO loop = 1 %TO &nb_it.;
		/*Exécution de la première tache*/
		%syslput iteration=&loop.;
		rsubmit process=task&loop. wait=no;
		libname ut '/home/public';
		DATA ut.test&iteration. (DROP=i);
		length indnr omrnr redar redvarde 4.;
		%do I=1 %TO 1000;
			indnr=int(uniform(0)*100);
			omrnr=int(uniform(0)*100);
			redar=int(uniform(0)*100);
			redvarde=int(uniform(0)*100);
			output;
		%end;
		run;
		proc sort DATA=ut.test&iteration.;
		BY indnr ;
		run ;
		endrsubmit task&iteration.;
	%END;
 
	/*attente de l'exécution complète des deux taches*/
	%LET task = _all_;
	%DO loop = 1 %TO &nb_it.;
		%LET task = &task. task&loop.;
	%END;
	waitfor &task.;
 
	/*merge des deux tables*/
	DATA ut.BIGtest ;
	SET ut.test1;
	BY indnr;
	run ;
	%DO loop = 2 %TO &nb_it.;
		DATA ut.BIGtest ;
		merge ut.BIGtest ut.test&loop.;
		BY indnr;
		run ;
	%END;
 
	/* deconnexion des deux postes*/
	%DO loop = 1 %TO &nb_it.;
		signoff task&loop.;
	%END;
 
 
%MEND Ma_premiere_parallisation_SAS;
 
%Ma_premiere_parallisation_SAS(nb_it = 3)
Mon souci c'est que j'arrive pas à envoyer ma macro-variable loop avec le syslput dans les sessions filles...

EDIT: j'ai trouvé! fallait rajouter l'option REMOTE!!!! Par contre ça résout pas ce problème là:

Code :
1
2
3
4
5
6
7
8
 
NOTE: Background remote submit TO TASK1 IN progress.
WARNING: Apparent symbolic reference ITERATION NOT resolved.
NOTE: Line generated BY the invoked macro "MA_PREMIERE_PARALLISATION_SAS".
74            run;   proc sort DATA=ut.test&iteration.;   BY indnr ;   run ;   endrsubmit task&iteration.;
                                                                                              _
                                                                                              180
ERROR 180-322: Statement IS NOT valid OR it IS used out of proper ORDER.
joyeux_lapin13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 09h55   #23
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 701
Points : 1 701
Hello,
et si tu rajoutes :
Code :
1
2
 
%syslput nb_it=nb_it;
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 09h59   #24
Membre habitué
 
Homme Julien
Ingénieur d'études / Biostatisticien
Inscription : décembre 2009
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme Julien
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études / Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2009
Messages : 304
Points : 101
Points : 101
Euh... je n'ai pas bien compris s_a_m...

En fait c'est comme si je perdais la valeur de ma macro-variable &iteration aprés la proc sort... finalement en fin de programme j'ai bien la création de toutes mes tables et de la table finale, mais j'ai l'erreur décrite ci-dessus pour les nb_it tasks utilisés...

Et si plutot que de mettre:

Code :
1
2
 
endrsubmit task&iteration.;
je met:

Je risque d'aller vers confusion pour la gestion process?

Pendant que j'y suis, existe t'il une option sous SAS pour chronométrer le temps d'exécution complet d'un programme?
joyeux_lapin13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 10h24   #25
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 701
Points : 1 701
oui, quelque chose de ce genre:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
 
 
 
%let debut = %sysfunc(time());
 
 
	 *mon programme;
 
 
 
 
 
%let fin = %sysfunc(time());
 
%let duree = %sysevalf(&fin.-&debut.);
%put Durée du programme est : &duree. secondes;
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 10h45   #26
Membre habitué
 
Homme Julien
Ingénieur d'études / Biostatisticien
Inscription : décembre 2009
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme Julien
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études / Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2009
Messages : 304
Points : 101
Points : 101
Merci s_a_m!
joyeux_lapin13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 17h29   #27
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 823
Points : 2 823
C'est pas
Code :
endrsubmit task&iteration.;
mais !
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 17h44   #28
Membre habitué
 
Homme Julien
Ingénieur d'études / Biostatisticien
Inscription : décembre 2009
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme Julien
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études / Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2009
Messages : 304
Points : 101
Points : 101
Le problème Olivier c'est que si je met &loop à cet endroit j'ai de nouveau l'erreur:

Code :
1
2
3
4
5
6
7
8
9
 
SYMBOLGEN:  Macro variable LOOP resolves TO 1
MPRINT(MA_PREMIERE_PARALLISATION_SAS):   rsubmit=task1 wait=no;
SYMBOLGEN:  Macro variable LOOP resolves TO 1
MPRINT(MA_PREMIERE_PARALLISATION_SAS):   endrsubmit task1;
75         1
           _
           180
ERROR 180-322: Statement IS NOT valid OR it IS used out of proper ORDER.
Et il ne crée plus que la première table...
joyeux_lapin13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2011, 08h03   #29
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 823
Points : 2 823
Salut.
Chez moi ça fonctionne avec 2 petites modifications :
Code :
%syslput iteration=&loop. / REMOTE=task&loop ;
et rien après les ENDRSUBMIT (il n'y aura pas de confusion : le RSUBMIT correspondant sera celui qui précède immédiatement).

Par contre, la boucle dans ton étape DATA n'a pas du tout besoin d'être une boucle macro : reste au DO...END d'origine.
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 09h10   #30
Membre habitué
 
Homme Julien
Ingénieur d'études / Biostatisticien
Inscription : décembre 2009
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme Julien
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études / Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2009
Messages : 304
Points : 101
Points : 101
Merci tout le monde pour votre aide
joyeux_lapin13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h39.


 
 
 
 
Partenaires

Hébergement Web