Here's the call code I used: DATA _NULL_; CALL EXECUTE("&PX"); RUN; Here's the log: options mprint mlogic symbolgen; 42 43 %MACRO GetList(InDS=WEBTABLE.FORMLIST, VAR=FORM, OutStr=FrmLst); 2 The SAS System 12:08 Thursday, February 25, 2021 44 %IF %SYMEXIST(&OutStr)=0 %THEN %DO; 45 %GLOBAL &OutStr; 46 %END; 47 Proc SQL PRINT; 48 SELECT &VAR INTO WORK.FRMLST:&OutStr SEPARATED BY ' ' 49 FROM &InDS; 50 QUIT; 51 %MEND GetList; 52 53 %MACRO PX; 54 %LET FORMS = &FrmLst; 55 56 %LOCAL NEXT_VALUE; 57 %DO %WHILE (%SCAN(%FORMS(I=1 %TO &NOOBS))); 58 %LET NEXT_VALUE = %SCAN(&FORMS(I=1 %TO &NOOBS)); 59 60 DATA WORK.DATA&NEXT_VALUE; 61 SET SASDEV.BETH_&NEXT_VALUE_PREP; 62 RUN; 63 %LET TRANSFER = CALL SYMPUT(&PX, &FORMS||LEFT(_N_)); 64 DATA WORK.DATA&TRANSFER; 65 SET SASDEV.BETH_&TRANSER_PREP; 66 RUN; 67 %END; 68 %MEND PX; 69 70 DATA _NULL_; 71 CALL EXECUTE("&PX"); WARNING: Apparent symbolic reference PX not resolved. 72 RUN; WARNING: Apparent symbolic reference PX not resolved. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: CALL EXECUTE generated line. NOTE: Line generated by the CALL EXECUTE routine. 1 + &PX _ 180 WARNING: Apparent symbolic reference PX not resolved. ERROR 180-322: Statement is not valid or it is used out of proper order. 73 74 75 76 77 78 GOPTIONS NOACCESSIBLE; 79 %LET _CLIENTTASKLABEL=; 80 %LET _CLIENTPROCESSFLOWNAME=; 81 %LET _CLIENTPROJECTPATH=; 82 %LET _CLIENTPROJECTNAME=; 83 %LET _SASPROGRAMFILE=; 84 3 The SAS System 12:08 Thursday, February 25, 2021 85 ;*';*";*/;quit;run; 86 ODS _ALL_ CLOSE; 87 88 89 QUIT; RUN;
... View more