Hi All, I am trying to pass the macro variables created on local to Remote connection. The macro variables are dates (start dates and End dates) parameters to extract data from Teradata for the mentioned period. Month(12 months) wise data needs to be extracted from Teradata, i can create 2 date parameters for start and end date and extract the data for entire period of 12 months. but it is taking a lot lot of time for extraction and once the extraction is complete i need to perform various calculations and generate reports. Hence i tried to split the start date and end date month wise, and the extraction is faster for months. as the this extraction and calculation will performed in a loop for 12 months. Since I am not able to pass the Macro variables to Remote (using %SYSLPUT) , i am running the Macro within Rsubmit/ENDRSUBMIT. /*start of Macro*/ %MACRO SRTDT(BGNDTE=); %IF %LENGTH(&BGNDTE.) GE 1 %THEN %DO; %PUT "START DATE IS NOT MISSING CALCULATING DATES FROM THE GIVEN START DATE"; DATA _NULL_; INDTE = INPUT("&BGNDTE.",YYMMN6.); PUT INDTE YYMMN6.; CALL SYMPUT('INSTDT',(PUT(INTNX('MONTH',INDTE, -12,'B') ,YYMMDD10.))); CALL SYMPUT('INEDDT',(PUT(INTNX('MONTH',INDTE, 0,'E') ,YYMMDD10.))); RUN; %PUT "STARRT DATE ==>> &INSTDT."; /* BGNDTE=202109 "STARRT DATE ==>> 2020-10-01"*/ %PUT "END DATE ==>> &INEDDT."; /*BGNDTE=202109 "END DATE ==>> 2021-09-30"*/ %LET DIFF = %SYSFUNC(INTCK(MONTH,%SYSFUNC(INPUTN(&INSTDT., YYMMDD10.)),%SYSFUNC(INPUTN(&INEDDT., YYMMDD10.)))); %PUT "TOTAL# MONTHS ===>> &DIFF."; %END; %ELSE %DO; %PUT "START DATE IS MISSING CALCULATING DATES FROM THE SYSTEM DATE."; DATA _NULL_; CALL SYMPUT('INSTDT',(PUT(INTNX('MONTH',TODAY(), -13,'B') ,YYMMDD10.))); CALL SYMPUT('INEDDT',(PUT(INTNX('MONTH',TODAY(), 0,'E') ,YYMMDD10.))); RUN; %PUT "STARRT DATE ==>> &INSTDT."; %PUT "END DATE ==>> &INEDDT."; %LET DIFF = %SYSFUNC(INTCK(MONTH,%SYSFUNC(INPUTN(&INSTDT., YYMMDD10.)),%SYSFUNC(INPUTN(&INEDDT., YYMMDD10.)))); %PUT "TOTAL# MONTHS ===>> &DIFF."; %DO i = 1 %TO &DIFF.; DATA _NULL_; CALL SYMPUT("SRTDT&i.",(PUT(INTNX('MONTH',%SYSFUNC(INPUTN(&INSTDT., YYMMDD10.)), -&i.,'B') ,YYMMDD10.))); CALL SYMPUT("ENDDT&i.",(PUT(INTNX('MONTH',%SYSFUNC(INPUTN(&INSTDT., YYMMDD10.)), -&i.,'E') ,YYMMDD10.))); RUN; %LET MNTH&i.= %SYSFUNC(INPUTN(&&SRTDT&i., YYMMDD10.),YYMMN6.); %PUT MONTH ===>>> &&MNTH&i.; %PUT SRTDT&i. ==>> &&SRTDT&i. ENDDT&i. ==>> &&ENDDT&i.; %PUT SRTDT&i. ==>> &&SRTDT&i. ENDDT&i. ==>> &&ENDDT&i.; %let Startdtact&i. = %BQUOTE('&&SRTDT&i.'); %PUT &&Startdtact&i.; %let Enddtact&i.=%BQUOTE('&&ENDDT&i.'); %let Enddt&i.= %BQUOTE('&&ENDDT&i.'); %put &&Startdtact&i. &&Enddtact&i. &&Enddt&i.; %END; %END; %MEND; %SRTDT(BGNDTE= ); Kindly let me know if we have any other means to pass the macro variables to Remote connection.
... View more