From 767ddd7addedfba0dae756a18d93ce23dd240654 Mon Sep 17 00:00:00 2001 From: Allan Bowe Date: Fri, 17 Jun 2022 17:03:25 +0000 Subject: [PATCH 1/6] feat: filter mm_getusers on a particular user This can be useful for extracting the uri of a metadata user --- all.sas | 60 ++++++++++++++++++++++++++++++-------------- meta/mm_getusers.sas | 60 ++++++++++++++++++++++++++++++-------------- 2 files changed, 82 insertions(+), 38 deletions(-) diff --git a/all.sas b/all.sas index 4fb9750..536f8de 100644 --- a/all.sas +++ b/all.sas @@ -17783,17 +17783,18 @@ libname _XML_ clear; %mm_getusers() + Optionally, filter for a user (useful to get the uri): + + %mm_getusers(user=&_metaperson) + @param outds the dataset to create that contains the list of libraries @returns outds dataset containing all users, with the following columns: - uri - name - @warning The following filenames are created and then de-assigned: - - filename sxlemap clear; - filename response clear; - libname _XML_ clear; + @param user= (0) Set to a metadata user to filter on that user + @param outds= (work.mm_getusers) The output table to create @version 9.3 @author Allan Bowe @@ -17801,23 +17802,44 @@ libname _XML_ clear; **/ %macro mm_getusers( - outds=work.mm_getusers + outds=work.mm_getusers, + user=0 )/*/STORE SOURCE*/; filename response temp; -proc metadata in= ' - $METAREPOSITORY - Person - SAS - 0 - - - - - - ' - out=response; -run; + +%if %superq(&user)=0 %then %do; + proc metadata in= ' + $METAREPOSITORY + Person + SAS + 0 + + + + + + ' + out=response; + run; +%end; +%else %do; + proc metadata in= " + $METAREPOSITORY + Person + SAS + + 128 + + + + + + + " + out=response; + run; +%end; filename sxlemap temp; data _null_; diff --git a/meta/mm_getusers.sas b/meta/mm_getusers.sas index ce6fd4b..d5470e2 100644 --- a/meta/mm_getusers.sas +++ b/meta/mm_getusers.sas @@ -8,17 +8,18 @@ %mm_getusers() + Optionally, filter for a user (useful to get the uri): + + %mm_getusers(user=&_metaperson) + @param outds the dataset to create that contains the list of libraries @returns outds dataset containing all users, with the following columns: - uri - name - @warning The following filenames are created and then de-assigned: - - filename sxlemap clear; - filename response clear; - libname _XML_ clear; + @param user= (0) Set to a metadata user to filter on that user + @param outds= (work.mm_getusers) The output table to create @version 9.3 @author Allan Bowe @@ -26,23 +27,44 @@ **/ %macro mm_getusers( - outds=work.mm_getusers + outds=work.mm_getusers, + user=0 )/*/STORE SOURCE*/; filename response temp; -proc metadata in= ' - $METAREPOSITORY - Person - SAS - 0 - - - - - - ' - out=response; -run; + +%if %superq(&user)=0 %then %do; + proc metadata in= ' + $METAREPOSITORY + Person + SAS + 0 + + + + + + ' + out=response; + run; +%end; +%else %do; + proc metadata in= " + $METAREPOSITORY + Person + SAS + + 128 + + + + + + + " + out=response; + run; +%end; filename sxlemap temp; data _null_; From 4752bfbb05335473f01145226fedeede3a847d77 Mon Sep 17 00:00:00 2001 From: Allan Bowe Date: Fri, 17 Jun 2022 17:47:34 +0000 Subject: [PATCH 2/6] fix: refactor xml --- all.sas | 33 ++++++++++++++++++--------------- meta/mm_getusers.sas | 33 ++++++++++++++++++--------------- 2 files changed, 36 insertions(+), 30 deletions(-) diff --git a/all.sas b/all.sas index 536f8de..346b279 100644 --- a/all.sas +++ b/all.sas @@ -17807,7 +17807,6 @@ libname _XML_ clear; )/*/STORE SOURCE*/; filename response temp; - %if %superq(&user)=0 %then %do; proc metadata in= ' $METAREPOSITORY @@ -17824,20 +17823,24 @@ filename response temp; run; %end; %else %do; - proc metadata in= " - $METAREPOSITORY - Person - SAS - - 128 - - - - - - - " - out=response; + filename inref temp; + data _null_; + file inref; + put ""; + put "$METAREPOSITORY"; + put "Person"; + put "SAS"; + put ""; + put "128"; + put ""; + put ""; + put ""; + put ""; + put ''; + put ""; + put ""; + run; + proc metadata in=inref out=response; run; %end; diff --git a/meta/mm_getusers.sas b/meta/mm_getusers.sas index d5470e2..4ed8b1e 100644 --- a/meta/mm_getusers.sas +++ b/meta/mm_getusers.sas @@ -32,7 +32,6 @@ )/*/STORE SOURCE*/; filename response temp; - %if %superq(&user)=0 %then %do; proc metadata in= ' $METAREPOSITORY @@ -49,20 +48,24 @@ filename response temp; run; %end; %else %do; - proc metadata in= " - $METAREPOSITORY - Person - SAS - - 128 - - - - - - - " - out=response; + filename inref temp; + data _null_; + file inref; + put ""; + put "$METAREPOSITORY"; + put "Person"; + put "SAS"; + put ""; + put "128"; + put ""; + put ""; + put ""; + put ""; + put ''; + put ""; + put ""; + run; + proc metadata in=inref out=response; run; %end; From 02fddcf9a12fe1e7bcd8126e1e2aaee2d46fa011 Mon Sep 17 00:00:00 2001 From: Allan Bowe Date: Fri, 17 Jun 2022 17:51:36 +0000 Subject: [PATCH 3/6] fix: removing pipes --- meta/mm_getusers.sas | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/meta/mm_getusers.sas b/meta/mm_getusers.sas index 4ed8b1e..c3537ec 100644 --- a/meta/mm_getusers.sas +++ b/meta/mm_getusers.sas @@ -61,12 +61,19 @@ filename response temp; put ""; put ""; put ""; - put ''; + length string $10000; + string=cats(''); + put string; put ""; put ""; run; proc metadata in=inref out=response; run; + data _null_; + infile response; + input; + list; + run; %end; filename sxlemap temp; From c327e1fc0dda416f6e2411f09a962a21a2e87e19 Mon Sep 17 00:00:00 2001 From: Allan Bowe Date: Fri, 17 Jun 2022 17:55:01 +0000 Subject: [PATCH 4/6] fix: apostrophes --- meta/mm_getusers.sas | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/meta/mm_getusers.sas b/meta/mm_getusers.sas index c3537ec..09da628 100644 --- a/meta/mm_getusers.sas +++ b/meta/mm_getusers.sas @@ -59,7 +59,7 @@ filename response temp; put "128"; put ""; put ""; - put ""; + put ''; put ""; length string $10000; string=cats(''); @@ -69,11 +69,6 @@ filename response temp; run; proc metadata in=inref out=response; run; - data _null_; - infile response; - input; - list; - run; %end; filename sxlemap temp; From 08ea9f7c00895f9e81211e03366ab48837499c37 Mon Sep 17 00:00:00 2001 From: Allan Bowe Date: Fri, 17 Jun 2022 17:55:28 +0000 Subject: [PATCH 5/6] chore: all.sas --- all.sas | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/all.sas b/all.sas index 346b279..d77e010 100644 --- a/all.sas +++ b/all.sas @@ -17834,9 +17834,11 @@ filename response temp; put "128"; put ""; put ""; - put ""; + put ''; put ""; - put ''; + length string $10000; + string=cats(''); + put string; put ""; put ""; run; From d42ede15db02e97ac90c14c45089b19f81f38b09 Mon Sep 17 00:00:00 2001 From: Allan Bowe Date: Fri, 17 Jun 2022 17:58:39 +0000 Subject: [PATCH 6/6] fix: superq --- all.sas | 2 +- meta/mm_getusers.sas | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/all.sas b/all.sas index d77e010..dbc1cfe 100644 --- a/all.sas +++ b/all.sas @@ -17807,7 +17807,7 @@ libname _XML_ clear; )/*/STORE SOURCE*/; filename response temp; -%if %superq(&user)=0 %then %do; +%if %superq(user)=0 %then %do; proc metadata in= ' $METAREPOSITORY Person diff --git a/meta/mm_getusers.sas b/meta/mm_getusers.sas index 09da628..7687298 100644 --- a/meta/mm_getusers.sas +++ b/meta/mm_getusers.sas @@ -32,7 +32,7 @@ )/*/STORE SOURCE*/; filename response temp; -%if %superq(&user)=0 %then %do; +%if %superq(user)=0 %then %do; proc metadata in= ' $METAREPOSITORY Person