DATA Step, Macro, Functions and more

Using today's date to target a .xls file from webpage

Accepted Solution Solved
Reply
New Contributor
Posts: 2
Accepted Solution

Using today's date to target a .xls file from webpage

I'm trying to import a .xls file that is posted daily as part of an automated procedure.  A sample path is shown below:

https://www.xyzqrs.com/Reports/20120730_ex.xls

The following code works:

filename website http "https://www.xyzqrs.com/Reports/20120730_ex.xls" debug;

data file;
  n=-1;
  infile website nbyte=n length=len;
  input;
  file "20120730_ex.xls";
  put _infile_ $varying32767. len;
  run;

PROC IMPORT OUT=WORK.excelfile DATAFILE="20120730_ex.xls" DBMS=EXCEL REPLACE;
GETNAMES=NO;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
RUN;

I want to somehow use a macro variable or some other method to edit red text above, so everyday when this runs, it grabs the most recent file. I've tried to use macro variables to pass in the date, but it doesn't read it correctly in the program. I've tried researching the answer online, but no luck up to this point. Any help is appreciated...Thanks!


Accepted Solutions
Solution
‎07-31-2012 12:49 AM
PROC Star
Posts: 7,471

Re: Using today's date to target a .xls file from webpage

I can't test this at the moment, but think it is either correct or close enough that you should be able to get it to work:

%let fname=%sysfunc(putn(%sysfunc(today()),yymmddN8.));
filename website http "https://www.xyzqrs.com/Reports/&fname._ex.xls" debug;

data file;
  n=-1;
  infile website nbyte=n length=len;
  input;
  file "&fname._ex.xls";
  put _infile_ $varying32767. len;
  run;

PROC IMPORT OUT=WORK.excelfile DATAFILE="&fname._ex.xls" DBMS=EXCEL REPLACE;
GETNAMES=NO;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
RUN;

View solution in original post


All Replies
Solution
‎07-31-2012 12:49 AM
PROC Star
Posts: 7,471

Re: Using today's date to target a .xls file from webpage

I can't test this at the moment, but think it is either correct or close enough that you should be able to get it to work:

%let fname=%sysfunc(putn(%sysfunc(today()),yymmddN8.));
filename website http "https://www.xyzqrs.com/Reports/&fname._ex.xls" debug;

data file;
  n=-1;
  infile website nbyte=n length=len;
  input;
  file "&fname._ex.xls";
  put _infile_ $varying32767. len;
  run;

PROC IMPORT OUT=WORK.excelfile DATAFILE="&fname._ex.xls" DBMS=EXCEL REPLACE;
GETNAMES=NO;
MIXED=YES;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
RUN;

New Contributor
Posts: 2

Re: Using today's date to target a .xls file from webpage

Worked like a charm. Thanks for the quick reply and fix

🔒 This topic is solved and locked.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 186 views
  • 0 likes
  • 2 in conversation