Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

WARNING: Apparent symbolic reference ... not resolved.

Status
Not open for further replies.

qchac

Programmer
Nov 25, 2005
11
RO
Hello.

My log file looks like this :

NOTE: Remote submit to R55 commencing.
15 /* Mise au format DB2 de la date finsel_j => finsel_j_db2 */
16 data _null_;
17 call symput ('FINSEL_J_DB2',"'"||put(&FINSEL_J,yymmdd10.)||"'");
-
-
-
22
22
22
WARNING: Apparent symbolic reference FINSEL_J not resolved.
ERROR 22-322: Syntax error, expecting one of the following: a name,
ERROR 22-322: Syntax error, expecting one of the following: a name,
ERROR 22-322: Syntax error, expecting one of the following: a name,
a quoted string, a numeric constant, a datetime constant,
a quoted string, a numeric constant, a datetime constant,
a quoted string, a numeric constant, a datetime constant,
a missing value, INPUT, PUT.
a missing value, INPUT, PUT.
a missing value, INPUT, PUT.

18 run;


and the specific part of the program, is here:

%global finsel_j;
%let finsel_j=%sysevalf(&fifinsel+2);
/* fin modif ***********************************************************/

/* Déclaration en global des macros variables servant à comptabiliser les enregistrements pour le pilotage */

%global NBLU; /* enregistrements lus */
%global NBREJ; /* enregistrements rejetés */
%global NBREC; /* enregistrements recyclés */
%global NBECR; /* enregistrements écrits */

/* Liaison avec r99d1 */

%syslput1(db,&db,remote=&r_unix);
%syslput1(db2fid,&db2fid,remote=&r_unix);
%syslput1(dbdebsel,&dbdebsel,remote=&r_unix);
%syslput1(dbfinsel,&dbfinsel,remote=&r_unix);
%syslput1(numprg,&numprg,remote=&r_unix);
%syslput1(listeprg,&listeprg,remote=&r_unix);
%syslput1(NUM_LANG,&NUM_LANG,remote=&r_unix);



/* Récupération des informations dans les vues FID106V1 et FID108V3 */

rsubmit &r_unix ;

/* Mise au format DB2 de la date finsel_j => finsel_j_db2 */
data _null_;
call symput ('FINSEL_J_DB2',"'"||put(&FINSEL_J,yymmdd10.)||"'");
run;
............................................................

Can u help me ?
thx.
 
Your remote session does not have the the "FINSEL_J" macro variable. You submit your code after you have it declared above. The macro var is set to global on your local session, but your remote session doesn't have that macro var set at all. I do not use the unix-rsubmit command anymore (we have crossed over to windows) but could you move the rsubmit statement up to the top of your example. This should allow the macro vars to resolve properly.

Hope that this helps you.
Klaz
 
There is a specific command to pass a macro variable to a remote SAS session, %SYSLPUT. I'm not sure what %SYSLPUT1 does. It hink all you need to do is change this:-
Code:
%let finsel_j=%sysevalf(&fifinsel+2);
to this:-
Code:
%syslput finsel_j=%sysevalf(&fifinsel+2);
If you need the value locally as well as remotely, then you can just have both declarations, but remember that they are independant of each other, changing one will not change the other.
 
Thx guys. I've try the second method with %syslput and it worked.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top