From 37076eae898e29088de8606e3af61500b9d2821c Mon Sep 17 00:00:00 2001 From: munja Date: Wed, 20 Jul 2022 19:17:06 +0100 Subject: [PATCH] feat: new mmx_createmetafolder macro --- all.sas | 55 ++++++++++++++++++++++++++++++++-- metax/mmx_createmetafolder.sas | 50 +++++++++++++++++++++++++++++++ metax/mmx_deletemetafolder.sas | 4 +-- 3 files changed, 105 insertions(+), 4 deletions(-) create mode 100644 metax/mmx_createmetafolder.sas diff --git a/all.sas b/all.sas index 96d2b04..d21d5e1 100644 --- a/all.sas +++ b/all.sas @@ -19116,6 +19116,56 @@ run; %end; %mend mm_webout; +/** + @file + @brief Creates a metadata folder + @details Creates a metadata folder using the batch tools + + Usage: + + %mmx_createmetafolder(loc=/some/meta/folder,user=sasdemo,pass=mars345) + +

SAS Macros

+ @li mf_loc.sas + @li mp_abort.sas + + @param loc= the metadata folder to delete + @param user= username + @param pass= password + + @version 9.4 + @author Allan Bowe + +**/ + +%macro mmx_createmetafolder(loc=,user=,pass=); + +%local host port path connx_string msg; +%let host=%sysfunc(getoption(metaserver)); +%let port=%sysfunc(getoption(metaport)); +%let path=%mf_loc(POF)/tools; + +%let connx_string= -host &host -port &port -user '&user' -password '&pass'; +/* remove directory */ +data _null_; + infile " &path/sas-make-folder &connx_string ""&loc"" -makeFullPath 2>&1" + pipe lrecl=10000; + input; + putlog _infile_; +run; + +data _null_; /* check tree exists */ + length type uri $256; + rc=metadata_pathobj("","&loc","Folder",type,uri); + call symputx('foldertype',type,'l'); +run; +%let msg=Location (&loc) was not created!!; +%mp_abort(iftrue= (&foldertype ne Tree) + ,mac=&_program..sas + ,msg=%superq(msg) +) + +%mend mmx_createmetafolder; /** @file @brief Deletes a metadata folder @@ -19125,7 +19175,7 @@ run; Usage: - %mmx_deletemetafolder(loc=/some/meta/folder,user=sasdemo,pass=mars345) + %mmx_deletemetafolder(loc=/some/meta/folder,user=sasdemo,pass=mars345)

SAS Macros

@li mf_loc.sas @@ -19155,7 +19205,8 @@ data _null_; putlog _infile_; run; -%mend mmx_deletemetafolder;/** +%mend mmx_deletemetafolder; +/** @file mmx_spkexport.sas @brief Exports everything in a particular metadata folder @details Will export everything in a metadata folder to a specified location. diff --git a/metax/mmx_createmetafolder.sas b/metax/mmx_createmetafolder.sas new file mode 100644 index 0000000..f76d7d5 --- /dev/null +++ b/metax/mmx_createmetafolder.sas @@ -0,0 +1,50 @@ +/** + @file + @brief Creates a metadata folder + @details Creates a metadata folder using the batch tools + + Usage: + + %mmx_createmetafolder(loc=/some/meta/folder,user=sasdemo,pass=mars345) + +

SAS Macros

+ @li mf_loc.sas + @li mp_abort.sas + + @param loc= the metadata folder to delete + @param user= username + @param pass= password + + @version 9.4 + @author Allan Bowe + +**/ + +%macro mmx_createmetafolder(loc=,user=,pass=); + +%local host port path connx_string msg; +%let host=%sysfunc(getoption(metaserver)); +%let port=%sysfunc(getoption(metaport)); +%let path=%mf_loc(POF)/tools; + +%let connx_string= -host &host -port &port -user '&user' -password '&pass'; +/* remove directory */ +data _null_; + infile " &path/sas-make-folder &connx_string ""&loc"" -makeFullPath 2>&1" + pipe lrecl=10000; + input; + putlog _infile_; +run; + +data _null_; /* check tree exists */ + length type uri $256; + rc=metadata_pathobj("","&loc","Folder",type,uri); + call symputx('foldertype',type,'l'); +run; +%let msg=Location (&loc) was not created!!; +%mp_abort(iftrue= (&foldertype ne Tree) + ,mac=&_program..sas + ,msg=%superq(msg) +) + +%mend mmx_createmetafolder; diff --git a/metax/mmx_deletemetafolder.sas b/metax/mmx_deletemetafolder.sas index 1c0c377..dda955d 100644 --- a/metax/mmx_deletemetafolder.sas +++ b/metax/mmx_deletemetafolder.sas @@ -7,7 +7,7 @@ Usage: - %mmx_deletemetafolder(loc=/some/meta/folder,user=sasdemo,pass=mars345) + %mmx_deletemetafolder(loc=/some/meta/folder,user=sasdemo,pass=mars345)

SAS Macros

@li mf_loc.sas @@ -37,4 +37,4 @@ data _null_; putlog _infile_; run; -%mend mmx_deletemetafolder; \ No newline at end of file +%mend mmx_deletemetafolder;