1
0
mirror of https://github.com/sasjs/core.git synced 2026-06-08 20:10:20 +00:00

feat: new mfv_getcaslib macro

Fetches a caslib from a regular SAS libref
This commit is contained in:
4gl
2026-04-28 12:37:56 +01:00
parent 7acaafae99
commit 73fd85d254
2 changed files with 106 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
/**
@file mfv_getcaslib.sas
@brief Returns the CAS caslib name for a given SAS libref
@details Pure macro function. Reads sashelp.vlibnam and returns
the sysvalue where sysname='Caslib' for the given libref. This
is useful when the caslib name and libref name may differ.
Usage:
%put %mfv_getcaslib(lib=PUBLIC);
@param [in] lib SAS libref for which to return the CAS caslib name
@return Returns the CAS caslib name, or empty string if not found
**/
%macro mfv_getcaslib(lib);
%local dsid rc result;
%let dsid=%sysfunc(open(sashelp.vlibnam(
where=(libname="%upcase(&lib)" and sysname="Caslib")
)));
%if &dsid %then %do;
%let rc=%sysfunc(fetch(&dsid));
%if &rc=0 %then
%let result=%sysfunc(
getvarc(&dsid,%sysfunc(varnum(&dsid,SYSVALUE)))
);
%let rc=%sysfunc(close(&dsid));
%end;
&result
%mend mfv_getcaslib;