How can I extract the file “OnlineUsers<date>.txt” in to a sas dataset into the location mentioned below:
For the extraction I have to append all the related file in the input folder.
A copy of the latest file will be moved into an Archive folder. Also in the archive folder any “OnlineUsers<date>.txt” files with age more than 30 days are to be deleted.
Input folder : /sas/sasdata/Lev1/External_Files/
Output : /sas/sasteam/Lev1//Sales_MI
Archive folder: /sas/sasdata/Lev1/External_Files/archive
For now extract the file as this:
Username
Character
Forename
Character
Surname
Character
EmailAddress
Character
LastLoginDate
Character
first few lines of one file in a text editor is,
Username|Forename|Surname|EmailAddress|LastLoginDate|
NULL|Alan|Brown|223440@cofundsmigration.co.uk|NULL
paul@prosperity-ifa.co.uk|Paul|Bonomini|paul@prosperity-ifa.co.uk|Mar 30 2020 9:47AM
colin@prosperity-ifa.co.uk|Colin|Fawcett|colin@prosperity-ifa.co.uk|Apr 3 2020 8:36AM
I have use the below code but nothing working.
</filename users14 "/sas/sasdata/Lev1/External_Files/Cofunds_Files/mi/OnlineUsers20200414.txt";
filename users10 "/sas/sasdata/Lev1/External_Files/Cofunds_Files/mi/OnlineUsers20200410.txt";
/*onlineuser20200414.txt and onlineuser20200410.txt was present in that location after I search for it*/
data user_data14; infile users14; input Username $ Forename $ Surname $
Lastlogindate $;
run;
data user_data10; infile users10; input Username $ Forename $ Surname $
Lastlogindate $;
run;
proc append base=user_data10 data=user_data14; run;
filename users pipe "/sas/sasdata/Lev1/External_Files/Cofunds_Files/mi/"; data files; infile users truncover; input filename $100.; date = input(scan(scan(scan(filename,-1,'/'),1,'.'),3,'_'), mmddyy8.); run;
proc sort data=files; by descending date; run;
data _null_; set files; call symput('infile',filename); stop; run;
data archive; format date mmddyy8.; if date=today() then do; fcopy("/sas/sasdata/Lev1/External_Files/Cofunds_Files/mi/", "/sas/sasdata/Lev1/External_Files/Cofunds_Files/mi/archive"); end; run; data delete; format period yyyymmdd.; x='20200414';
y=filename(f-name, "physical-name"); if period=intck('month', x, -30, 'sameday') then do;
fdelete(f-name) end; run;
/>
The above code is wrong and incomplete it more like a pseudo-code, can anybody help.
EDITED
... View more