[SAS] Problème SYMGET dans macro

Problème SYMGET dans macro [SAS] - Langages fonctionnels - Programmation

Marsh Posté le 26-11-2009 à 14:30:06    

Bonjour,
Je souhaiterais ensuite réaffecter une valeur à la variable &MyVarOut (qui représente une variable de la table titi) en fonction de &type. J'utilise un SYMGET mais ça ne marche pas.
 

Code :
  1. data titi;
  2. set toto;
  3. %TestsFormat(code, 'NUM', '1','3', code_);
  4. run;


 

Code :
  1. %Macro TestsFormat(MyVarIn, MyType, MyvalueOk, MyValueNok, MyVarOut) / store;
  2. %verif_num_char_date(&MyVarIn);
  3. /* &type est attribuée et calculée dans la macro verif_num_char_date */
  4. %If &type ne &MyType %Then &MyVarOut=symget("MyValueNok" ); %Else &MyVarOut=symget("MyValueOk" );
  5. %Mend;


 

Code :
  1. %macro verif_num_char_date(MyVar);
  2. %global type;
  3. DATA _NULL_;
  4.  var=input("&MyVar" ,?? COMMA8.);
  5.  IF var ne . then call symput('type','NUM');
  6.  ELSE do;
  7.   var=input("&MyVar",ANYDTDTM.);
  8.   if var ne . then call symput('type','DAT');
  9.   else call symput('type','CHAR');
  10.  end;
  11.     run;
  12. /*%put &type;*/
  13. %mend;


 
La ligne %

Code :
  1. %If &type ne &MyType %Then &MyVarOut=symget("MyValueNok" ); %Else &MyVarOut=symget("MyValueOk" );

de la macro %TestsFormat génère l'erreur

Citation :

NOTE: Ligne générée par la variable macro "MYVAROUT".
1       code_
        -----
        180
 
ERREUR 180-322: Instruction incorrecte ou mal utilisée.


 
Si quelqu'un a une idée je suis preneur.
 
Merci.
;)

Reply

Marsh Posté le 26-11-2009 à 14:30:06   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed