Explanation : Main DATA step that queries metadata to find 'StoredProcess' objects with 'File' type source code. It iterates over the results to extract name and path attributes, concatenating the directory and file name.
Copied!
data source;
keep stp_name source; /* Retain only the stored process name and it's source code full path. */
/* Initialize variables. */
length type id stp_uri stp_name file_uri file_name dir_uri path $ 50;
call missing (of _character_);
obj="omsobj:ClassifierMap?ClassifierMap[ @PublicType='StoredProcess'][SourceCode/File]"; /* Search critera for Stored Processes that have an external file source. */
stp_count=metadata_resolve(obj,type,id); /* Count all stored processes that meet our criteria. Only run loop if at least one exists. */
if stp_count > 0 then do i=1 to stp_count; /* Loop: For each stp found, get attributes and associations. */
rc=metadata_getnobj(obj,i,stp_uri);
rc=metadata_getattr(stp_uri,"Name",stp_name); /* Get stp name. */
rc=metadata_getnasn(stp_uri,"SourceCode",1,file_uri); /* Get file Metadata object id. */
rc=metadata_getattr(file_uri,"FileName",file_name); /* Get file name. */
rc=metadata_getnasn(file_uri,"Directories",1,dir_uri); /* Get directory Metadata object id. */
rc=metadata_getattr(dir_uri,"DirectoryName",path); /* Get path to directory. */
source=catx('/',path,file_name); /* combine directory path and file name to create full path to file.*/
output;
end; /* End loop. */
else put "WARN: No Stored Processes with external source code files found in Metadata."; /* If no jobs are found, write a message to the log. */
run;
1
DATASOURCE;
2
3
keep stp_name SOURCE; /* Retain only the stored process name and it's source code full path. */
4
5
/* Initialize variables. */
6
7
LENGTH type id stp_uri stp_name file_uri file_name dir_uri path $ 50;
8
call missing (of _character_);
9
10
obj="omsobj:ClassifierMap?ClassifierMap[ @PublicType='StoredProcess'][SourceCode/File]"; /* Search critera for Stored Processes that have an external file source. */
11
12
stp_count=metadata_resolve(obj,type,id); /* Count all stored processes that meet our criteria. Only run loop if at least one exists. */
13
14
IF stp_count > 0 THENDO i=1 to stp_count; /* Loop: For each stp found, get attributes and associations. */
15
rc=metadata_getnobj(obj,i,stp_uri);
16
rc=metadata_getattr(stp_uri,"Name",stp_name); /* Get stp name. */
17
rc=metadata_getnasn(stp_uri,"SourceCode",1,file_uri); /* Get file Metadata object id. */
18
rc=metadata_getattr(file_uri,"FileName",file_name); /* Get file name. */
19
rc=metadata_getnasn(file_uri,"Directories",1,dir_uri); /* Get directory Metadata object id. */
20
rc=metadata_getattr(dir_uri,"DirectoryName",path); /* Get path to directory. */
21
SOURCE=catx('/',path,file_name); /* combine directory path and file name to create full path to file.*/
22
OUTPUT;
23
END; /* End loop. */
24
ELSE put "WARN: No Stored Processes with external source code files found in Metadata."; /* If no jobs are found, write a message to the log. */
25
RUN;
This material is provided "as is" by We Are Cas. There are no warranties, expressed or implied, as to merchantability or fitness for a particular purpose regarding the materials or code contained herein. We Are Cas is not responsible for errors in this material as it now exists or will exist, nor does We Are Cas provide technical support for it.
SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration. WeAreCAS is an independent community site and is not affiliated with SAS Institute Inc.
This site uses technical and analytical cookies to improve your experience.
Read more.