From c8d3b43b128bba971e128e5bc1a784c758588a41 Mon Sep 17 00:00:00 2001 From: Allan Bowe Date: Wed, 23 Jun 2021 21:53:32 +0300 Subject: [PATCH] fix: adding lrecl to mv_createfile to support lines 1 million characters wide. Closes #47 --- all.sas | 95 +----------------------------------------- viya/mv_createfile.sas | 3 +- 2 files changed, 4 insertions(+), 94 deletions(-) diff --git a/all.sas b/all.sas index 6fe00e9..f2963be 100644 --- a/all.sas +++ b/all.sas @@ -12703,98 +12703,6 @@ data _null_; run; %mend;/** - @file - @brief Get metadata permissions for a particular folder - @details Uses the metadata batch tools to fetch the permissions for a - particular folder. For security, the username / password are expected to have - been provided in a protected directory. - -Usage: - - %* import the macros (or make them available some other way); - filename mc url "https://raw.githubusercontent.com/sasjs/core/main/all.sas"; - %inc mc; - - %* create sample text file as input to the macro; - %* password must be in single quotes if it has special chars; - - filename creds temp; - data _null_; - file creds; - put " -user 'sasdemo' -password 'Mars321' "; - run; - - filename outref "%sysfunc(pathname(work))"; - %mmx_getmetaperms( - metaloc=/some/meta/folder - ,secureref=creds - ,outds=work.perms - ) - -

SAS Macros

- @li mf_loc.sas - @li mf_getuniquefileref.sas - @li mp_abort.sas - - @param metaloc= the metadata folder for which to export permissions - @param secureref= fileref containing the username / password (should point to - a file in a secure location) - @param outds= (work.mmx_getmetaperms) The output table containing the perms - @param effective= (YES) Displays effective access. If set to NO, only direct - access controls are displayed. Effective access is the net effect of all - applicable permission settings (both direct access controls and inherited - permissions). - @param onlyGroup= (0) Display access for only the specified user group. - @param onlyUser= (0) Display access for only the specified user. - - @version 9.4 - @author Allan Bowe - -**/ - -%macro mmx_getmetaperms(metaloc= - ,secureref= - ,outds=work.mmx_getmetaperms - ,effective=YES - ,onlygroup=0 - ,onlyuser=0 -); - -%local host port path mmxuser mmxpass eff filt; -%let host=%sysfunc(getoption(metaserver)); -%let port=%sysfunc(getoption(metaport)); -%let path=%mf_loc(POF)/tools/sas-show-metadata-access; - -%if &effective=YES %then %let eff=-effective; -%if "&onlygroup" ne "0" %then %let filt=-onlyGroup ""&onlygroup""; -%else %if "&onlyuser" ne "0" %then %let filt=-onlyUser ""&onlyuser""; - -%local fref1; -%let fref1=%mf_getuniquefileref(); -data _null_; - file &fref1 lrecl=32767; - infile &secureref; - input; - put 'data _null_;'; - put "infile '&path -disableX11 -host &host -port &port " _infile_ @; - put " ""&metaloc"" &eff &filt 2>&1' pipe lrecl=10000;"; - put 'input;putlog _infile_;run;'; -run; - -data _null_; - infile &fref1; - input;list;run; - -%inc &fref1/nosource; - - -%mp_abort(iftrue= (&syscc ne 0) - ,mac=&sysmacroname - ,msg=%str(syscc=&syscc on exit) -) - - -%mend mmx_getmetaperms;/** @file mmx_spkexport.sas @brief Exports everything in a particular metadata folder @details Will export everything in a metadata folder to a specified location. @@ -13081,7 +12989,8 @@ run; filename &fref filesrvc folderPath="&path" filename="&name" - cdisp="&contentdisp"; + cdisp="&contentdisp" + lrecl=1048544; %mp_binarycopy(inref=&inref, outref=&fref) diff --git a/viya/mv_createfile.sas b/viya/mv_createfile.sas index c90e95c..ea00974 100644 --- a/viya/mv_createfile.sas +++ b/viya/mv_createfile.sas @@ -96,7 +96,8 @@ filename &fref filesrvc folderPath="&path" filename="&name" - cdisp="&contentdisp"; + cdisp="&contentdisp" + lrecl=1048544; %mp_binarycopy(inref=&inref, outref=&fref)