BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Cello23
Quartz | Level 8

hi,

why i recive this error ?

 

ERROR: The macro GRAFICO is still executing and cannot be redefined.

ERROR: A dummy macro will be compiled.

 

for this macro:

%macro Grafico (REGION=,LDS=,FUNZIONE=, N_ATM_SOGLIA=);

DATA ATM_EXPO.TOTALE_EXPORT_AC ;
SET  ATM_EXPO.TOTALE_EXPORT_AC_T_&TERM_YM ;
 where REGION = &REGION;
 if &LDS>0.94 then colorvar=1;
RUN;

%mend Grafico;

%Grafico (REGION='REGION CENTRO', LDS=media_lds_prel,FUNZIONE='PRELIEVO',N_ATM_SOGLIA=N_TERM_Sotto_soglia_PREL);     
%Grafico (REGION='REGION CENTRO', LDS=media_lds_ver_co,FUNZIONE='VERSAMENTO CONTANTI',N_ATM_SOGLIA=_TERM_Sotto_soglia_VER_CO);   

%Grafico (REGION='REGION CENTRO NORD',LDS=media_lds_prel,FUNZIONE='PRELIEVO', N_ATM_SOGLIA=N_TERM_Sotto_soglia_PREL;    
%Grafico (REGION='REGION CENTRO NORD',LDS=media_lds_ver_co,FUNZIONE='VERSAMENTO CONTANTI', N_ATM_SOGLIA=N_TERM_Sotto_soglia_VER_CO);  

%Grafico (REGION='REGION LOMBARDIA', LDS=media_lds_prel,FUNZIONE='PRELIEVO', N_ATM_SOGLIA=N_TERM_Sotto_soglia_PREL);  /*  KO */
%Grafico (REGION='REGION LOMBARDIA', LDS=media_lds_ver_co,FUNZIONE='VERSAMENTO CONTANTI',N_ATM_SOGLIA= N_TERM_Sotto_soglia_VER_CO);    /*  KO */

%Grafico (REGION='REGION NORD OVEST',LDS=media_lds_prel,FUNZIONE='PRELIEVO', N_ATM_SOGLIA=N_TERM_Sotto_soglia_PREL);    
%Grafico (REGION='REGION NORD OVEST',LDS=media_lds_ver_co,FUNZIONE='VERSAMENTO CONTANTI', N_ATM_SOGLIA=N_TERM_Sotto_soglia_VER_CO); 

%Grafico (REGION='REGION SICILIA', LDS=media_lds_prel,FUNZIONE='PRELIEVO', N_ATM_SOGLIA=N_TERM_Sotto_soglia_PREL);    
%Grafico (REGION='REGION SICILIA', LDS=media_lds_ver_co,FUNZIONE='VERSAMENTO CONTANTI', N_ATM_SOGLIA=N_TERM_Sotto_soglia_VER_CO); 

%Grafico (REGION='REGION SUD', LDS=media_lds_prel,FUNZIONE='PRELIEVO', N_ATM_SOGLIA=N_TERM_Sotto_soglia_PREL);    
%Grafico (REGION='REGION SUD', LDS=media_lds_ver_co,FUNZIONE='VERSAMENTO CONTANTI', N_ATM_SOGLIA=N_TERM_Sotto_soglia_VER_CO); 

%Grafico (REGION='REGION NORD EST', LDS=media_lds_prel,FUNZIONE='PRELIEVO', N_ATM_SOGLIA=N_TERM_Sotto_soglia_PREL);    
%Grafico (REGION='REGION NORD EST',LDS=media_lds_ver_co,FUNZIONE='VERSAMENTO CONTANTI', N_ATM_SOGLIA=N_TERM_Sotto_soglia_VER_CO); 

thank's!!!

 

1 ACCEPTED SOLUTION

Accepted Solutions
Amir
PROC Star

Hi,

 

The Log shows no close bracket ')' at the end of line 78:

 

78 %Grafico (REGION='REGION CENTRO NORD',LDS=media_lds_prel,FUNZIONE='PRELIEVO',
78 ! N_ATM_SOGLIA=N_TERM_Sotto_soglia_PREL;

 

Could this be your problem?

 

 

Regards,

Amir.

View solution in original post

7 REPLIES 7
andreas_lds
Jade | Level 19

Each call of %Grafico overwrites TM_EXPO.TOTALE_EXPORT_AC, is this what you want?

 

Without seeing the log with options mprint and symbolgen active, it is hardly possible to tell what went wrong. The variable "term_ym" is not a parameter of the macro. Is it defined elsewhere? 

Kurt_Bremser
Super User

First of all, remove unnecessary code:

%macro Grafico (REGION=,LDS=);

DATA ATM_EXPO.TOTALE_EXPORT_AC ;
SET  ATM_EXPO.TOTALE_EXPORT_AC_T_&TERM_YM ;
 where REGION = &REGION;
 if &LDS>0.94 then colorvar=1;
RUN;

%mend Grafico;

as the third and fourth parameters are never used in the macro. Keep your code simple.

And, as @andreas_lds already mentioned, only your last macro call will be of effect, as the resulting dataset will be overwritten.

Cello23
Quartz | Level 8

this code:

 

/* v6:modificato nome colonne tabelle terminali per poter incollare direttamente in excel anche le colonne */
data ATM_EXPO.MOTABCATPRES;
    	set  UNI.MOTABCATPRES;
		length  CO_CAT_PRESSO_ $ 4; 
		CO_CAT_PRESSO_ =  substr(CO_CAT_PRESSO,3,2);
		format CO_CAT_PRESSO_ $4.; 
    	run;


LIBNAME ARCATM  "C:\Users\ui43925\Desktop\Analisi realizzate\SCARICO SAS";
LIBNAME WORKUSI  "C:\Users\ui43925\Desktop\Analisi realizzate\SCARICO SAS";
LIBNAME OPEATM  "C:\Users\ui43925\Desktop\Analisi realizzate\SCARICO SAS"; 
LIBNAME LDS "C:\Users\ui43925\Desktop\Analisi realizzate\SCARICO SAS\LDS";
LIBNAME CCV  "C:\Users\ui43925\Desktop\Analisi realizzate\SCARICO SAS\CCV";
LIBNAME ATM_EXPO "C:\Users\ui43925\Desktop\Analisi realizzate\SCARICO SAS\EXPORT_DATI_ATM";

/*OPERATIVITA'*/
%LET DT_START='30APR2018'D; /*PUNTO DI INIZIO (A RITROSO) */ 
%LET PERIDO=12; /* NUMERO DI MESI (ANDANDO A RITROSO) - 12 UN ANNO */
%LET TERM_YM =201804;  /* NOME FILE */
%LET YM = 042018;/* ANAGRAFE TERMINALI*/
%let STRANA = TGSTRANA;  /*TGSTRANA201707;*/
%let TGERCOM = tggercom;  /*TGSTRANA201707;*/

/*LDS*/
%LET DT_START_LDS='30APR2018'D; /*PUNTO DI INIZIO (A RITROSO) */ 
%LET PERIDO_LDS=12; /* NUMERO DI MESI (ANDANDO A RITROSO) - 12 UN ANNO */
%LET PERIDO_LDS_PRE = 3;  /* CONFRONTO MESI ANNO CONTRO ANNO PRECEDENTE */



/**********I TERMINALI************************************/
 
/* %syslput TERM_YM=&TERM_YM; */
data _null_;
 call symput('YEAR', YEAR(&DT_START) );  
 call symput('MONTH', month(&DT_START));
 run;

data _null_;
 call symput('YEARMONTH',cats( put(&YEAR.,z4.),put(&MONTH.,z2.)));
 call symput('MONTHYEAR',cats( put(&MONTH.,z2.), put(&YEAR.,z4.)));
 call symput('NAME_FILE', cats('ORARIA_', PUT(intnx('month',&DT_START,-11), date9.) ,'_',put(&DT_START.,date9.)) );
 call symput('MONTH', put(&MONTH.,z2.));
run;


/**********LDS************************************/
 
/* %syslput TERM_YM=&TERM_YM; */
data _null_;
 call symput('YEAR_LDS', YEAR(&DT_START_LDS) );  
 call symput('MONTH_LDS', month(&DT_START_LDS));
 run;

data _null_;
 call symput('YEARMONTH_LDS',cats( put(&YEAR_LDS.,z4.),put(&MONTH_LDS.,z2.)));
 call symput('MONTHYEAR_LDS',cats( put(&MONTH_LDS.,z2.), put(&YEAR_LDS.,z4.)));
 call symput('MONTH_LDS', put(&MONTH_LDS.,z2.));
run;



%macro Grafico(REGION=,LDS=,FUNZIONE=, N_ATM_SOGLIA=);
DATA ATM_EXPO.TOTALE_EXPORT_AC ;
SET  ATM_EXPO.TOTALE_EXPORT_AC_T_&TERM_YM ;
 where REGION = &REGION;
 if &LDS>0.94 then colorvar=1;
 	%put NOTE: &FUNZIONE  &REGION; 
RUN;
%mend;

%Grafico (REGION='REGION CENTRO', LDS=media_lds_prel,FUNZIONE='PRELIEVO',N_ATM_SOGLIA=N_TERM_Sotto_soglia_PREL);     
%Grafico (REGION='REGION CENTRO', LDS=media_lds_ver_co,FUNZIONE='VERSAMENTO CONTANTI',N_ATM_SOGLIA=_TERM_Sotto_soglia_VER_CO);   

%Grafico (REGION='REGION CENTRO NORD',LDS=media_lds_prel,FUNZIONE='PRELIEVO', N_ATM_SOGLIA=N_TERM_Sotto_soglia_PREL;    
%Grafico (REGION='REGION CENTRO NORD',LDS=media_lds_ver_co,FUNZIONE='VERSAMENTO CONTANTI', N_ATM_SOGLIA=N_TERM_Sotto_soglia_VER_CO);  

%Grafico (REGION='REGION LOMBARDIA', LDS=media_lds_prel,FUNZIONE='PRELIEVO', N_ATM_SOGLIA=N_TERM_Sotto_soglia_PREL);  /*  KO */
%Grafico (REGION='REGION LOMBARDIA', LDS=media_lds_ver_co,FUNZIONE='VERSAMENTO CONTANTI',N_ATM_SOGLIA= N_TERM_Sotto_soglia_VER_CO);    /*  KO */

%Grafico (REGION='REGION NORD OVEST',LDS=media_lds_prel,FUNZIONE='PRELIEVO', N_ATM_SOGLIA=N_TERM_Sotto_soglia_PREL);    
%Grafico (REGION='REGION NORD OVEST',LDS=media_lds_ver_co,FUNZIONE='VERSAMENTO CONTANTI', N_ATM_SOGLIA=N_TERM_Sotto_soglia_VER_CO); 

%Grafico (REGION='REGION SICILIA', LDS=media_lds_prel,FUNZIONE='PRELIEVO', N_ATM_SOGLIA=N_TERM_Sotto_soglia_PREL);    
%Grafico (REGION='REGION SICILIA', LDS=media_lds_ver_co,FUNZIONE='VERSAMENTO CONTANTI', N_ATM_SOGLIA=N_TERM_Sotto_soglia_VER_CO); 

%Grafico (REGION='REGION SUD', LDS=media_lds_prel,FUNZIONE='PRELIEVO', N_ATM_SOGLIA=N_TERM_Sotto_soglia_PREL);    
%Grafico (REGION='REGION SUD', LDS=media_lds_ver_co,FUNZIONE='VERSAMENTO CONTANTI', N_ATM_SOGLIA=N_TERM_Sotto_soglia_VER_CO); 

%Grafico (REGION='REGION NORD EST', LDS=media_lds_prel,FUNZIONE='PRELIEVO', N_ATM_SOGLIA=N_TERM_Sotto_soglia_PREL);    
%Grafico (REGION='REGION NORD EST',LDS=media_lds_ver_co,FUNZIONE='VERSAMENTO CONTANTI', N_ATM_SOGLIA=N_TERM_Sotto_soglia_VER_CO); 

 

 

this is log:



77
78   %Grafico (REGION='REGION CENTRO NORD',LDS=media_lds_prel,FUNZIONE='PRELIEVO',
78 ! N_ATM_SOGLIA=N_TERM_Sotto_soglia_PREL;
79   %Grafico (REGION='REGION CENTRO NORD',LDS=media_lds_ver_co,FUNZIONE='VERSAMENTO CONTANTI',
79 ! N_ATM_SOGLIA=N_TERM_Sotto_soglia_VER_CO);
NOTE: 'VERSAMENTO CONTANTI'  'REGION CENTRO NORD'
80
81   %Grafico (REGION='REGION LOMBARDIA', LDS=media_lds_prel,FUNZIONE='PRELIEVO',
81 ! N_ATM_SOGLIA=N_TERM_Sotto_soglia_PREL);  /*  KO */
NOTE: 'PRELIEVO'  'REGION LOMBARDIA'
82   %Grafico (REGION='REGION LOMBARDIA', LDS=media_lds_ver_co,FUNZIONE='VERSAMENTO
82 ! CONTANTI',N_ATM_SOGLIA= N_TERM_Sotto_soglia_VER_CO);    /*  KO */
NOTE: 'VERSAMENTO CONTANTI'  'REGION LOMBARDIA'
83
84   %Grafico (REGION='REGION NORD OVEST',LDS=media_lds_prel,FUNZIONE='PRELIEVO',
84 ! N_ATM_SOGLIA=N_TERM_Sotto_soglia_PREL);
NOTE: 'PRELIEVO'  'REGION NORD OVEST'
85   %Grafico (REGION='REGION NORD OVEST',LDS=media_lds_ver_co,FUNZIONE='VERSAMENTO CONTANTI',
85 ! N_ATM_SOGLIA=N_TERM_Sotto_soglia_VER_CO);
NOTE: 'VERSAMENTO CONTANTI'  'REGION NORD OVEST'
86
87   %Grafico (REGION='REGION SICILIA', LDS=media_lds_prel,FUNZIONE='PRELIEVO',
87 ! N_ATM_SOGLIA=N_TERM_Sotto_soglia_PREL);
NOTE: 'PRELIEVO'  'REGION SICILIA'
88   %Grafico (REGION='REGION SICILIA', LDS=media_lds_ver_co,FUNZIONE='VERSAMENTO CONTANTI',
88 ! N_ATM_SOGLIA=N_TERM_Sotto_soglia_VER_CO);
NOTE: 'VERSAMENTO CONTANTI'  'REGION SICILIA'
89
90   %Grafico (REGION='REGION SUD', LDS=media_lds_prel,FUNZIONE='PRELIEVO',
90 ! N_ATM_SOGLIA=N_TERM_Sotto_soglia_PREL);
NOTE: 'PRELIEVO'  'REGION SUD'
91   %Grafico (REGION='REGION SUD', LDS=media_lds_ver_co,FUNZIONE='VERSAMENTO CONTANTI',
91 ! N_ATM_SOGLIA=N_TERM_Sotto_soglia_VER_CO);
NOTE: 'VERSAMENTO CONTANTI'  'REGION SUD'
92
93   %Grafico (REGION='REGION NORD EST', LDS=media_lds_prel,FUNZIONE='PRELIEVO',
93 ! N_ATM_SOGLIA=N_TERM_Sotto_soglia_PREL);
NOTE: 'PRELIEVO'  'REGION NORD EST'
94   %Grafico (REGION='REGION NORD EST',LDS=media_lds_ver_co,FUNZIONE='VERSAMENTO CONTANTI',
94 ! N_ATM_SOGLIA=N_TERM_Sotto_soglia_VER_CO);
NOTE: 'VERSAMENTO CONTANTI'  'REGION NORD EST'

 

work only the first macro (line 76), create the table,  the others %macro dont have effect (es. line 78 of log).

if run again  i have the error: The macro GRAFICO is still executing and cannot be redefined.

 

 

thank's

Amir
PROC Star

Hi,

 

The Log shows no close bracket ')' at the end of line 78:

 

78 %Grafico (REGION='REGION CENTRO NORD',LDS=media_lds_prel,FUNZIONE='PRELIEVO',
78 ! N_ATM_SOGLIA=N_TERM_Sotto_soglia_PREL;

 

Could this be your problem?

 

 

Regards,

Amir.

Reeza
Super User

You haven’t defined YEAR_TM and are not using the last parameter in the macro call. 

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 7 replies
  • 12590 views
  • 11 likes
  • 5 in conversation