Bonjour,

Merci d'avance de votre aide :

J'ai une macro me servant à exécuter deux programme en parallèle le problème c'est que même avec la macro fonction
%syslput, et même si un put me permet de voir que la macrovariable est bien sur le serveur ça ne fonctionne pas

Mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
 
 
%macro parallel_process(lib_work=);
 
goptions reset = all;
 
options autosignon=yes compress=yes macrogen symbolgen mlogic mprint mfile threads tbufsize=max DBIDIRECTEXEC;
 
 
rsubmit process=old wait=no sascmd="sas" sysrputsync=yes;
 
%nrstr(%let SRV=xx.xxx.xxx.xxx xxxxx);  
	options comamid=tcp remote=SRV ;
	filename rlink "\blabla\bla\bla.txt"
	signon userid=moi pwd=monmotdepasse;
 
%syslput lib_work=&lib_work. / REMOTE=old ;
 
	options autosignon=yes compress=yes macrogen symbolgen mlogic mprint mfile threads tbufsize=max DBIDIRECTEXEC;
 
		rsubmit;
		libname &lib_work. "mon_chemin" ;
		endrsubmit;
		LIBNAME &lib_work. slibref=&lib_work. server=srv;
 
 
		rsubmit;
		proc sql /*inobs=1000*/;
			create table &lib_work..matable_old
				select  * 
 
 
				from &lib_work..matable_src_old
		quit;
		endrsubmit;
endrsubmit old;
 
/************tâche 2 new*************/
 
 
rsubmit process=new wait=no sascmd="sas" sysrputsync=yes;
 
 
	%nrstr(%let SRV=SRV=xx.xxx.xxx.xxx xxxxx);  
	options comamid=tcp remote=SRV ;
	filename rlink "\blabla\bla\bla.txt"
	signon userid=moi pwd=monmotdepasse;
 
	options autosignon=yes compress=yes macrogen symbolgen mlogic mprint mfile threads tbufsize=max DBIDIRECTEXEC;
 
%syslput lib_work=&lib_work. / REMOTE=new ;
 
		rsubmit;
		libname &lib_work. "mon_chemin" ;
		endrsubmit;
		LIBNAME &lib_work. slibref=&lib_work. server=srv;
 
		rsubmit;
		proc sql /*inobs=1000*/;
			create table &lib_work..matable_new
				select  * 
 
 
				from &lib_work..matable_src_newuit;
		quit;
		endrsubmit;
endrsubmit new;
 
waitfor _all_ old new ;
rget old;
rget new;
signoff old ;
signoff new ;
 
%mend parallel_process; 
 
%parallel_process(lib_work=mylib);

et voici mon LOG de la partie libname :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
 libname &lib_work. "blabla/blabla" ;
WARNING: Apparent symbolic reference LIB_WORK not resolved.
WARNING: Apparent symbolic reference LIB_WORK not resolved.
ERROR: & is not a valid SAS name.
ERROR: Error in the LIBNAME statement.
NOTE: Remote submit to SRV complete.
7     LIBNAME &lib_work. slibref=&lib_work. server=srv;
AVERTISSEMENT: Référence symbolique apparente LIB_WORK non traitée.
AVERTISSEMENT: Référence symbolique apparente LIB_WORK non traitée.
ERREUR: & n'est pas un nom valide.
ERREUR: Erreur dans l'instruction LIBNAME.
AVERTISSEMENT: Référence symbolique apparente LIB_WORK non traitée.

et voici mon LOG de la partie proc sql:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
 proc sql ;
4     create table &lib_work..matable as select distinct * ,                   -
                   22
                   76
4  WARNING: Apparent symbolic reference LIB_WORK not resolved.
 
ERROR 22-322: Syntax error, expecting one of the following: un nom, une chaîne entre guillemets.
 
ERROR 76-322: Syntax error, statement will be ignored.

Merci d'avance