61%macro irm_get_swc_property(swc_name =
64 , pattern_match_flg = N
65 , outvar = swc_property_value
69 %
if(not %symexist(&outvar.)) %then
74 %
if(%sysevalf(%superq(pattern_match_flg) =,
boolean)) %then
75 %let pattern_match_flg = N;
77 %let pattern_match_flg = %upcase(&pattern_match_flg.);
80 %
if(%sysevalf(%superq(out_ds) ne,
boolean)) %then
100 swc_name =
"&swc_name.";
102 rc_swc = metadata_getnobj(
"omsobj:SoftwareComponent?@Name='&swc_name.'", 1, uri_swc);
103 %
if(%upcase(&debug.) eq TRUE) %then
104 put rc_swc= uri_swc=;
107 if rc_swc = 1 then
do;
109 rc_PropertySets = metadata_getnasn(uri_swc,
"PropertySets", 1, uri_PropertySets);
110 %
if(%upcase(&debug.) eq TRUE) %then
111 put rc_PropertySets= uri_PropertySets=;
114 if(rc_PropertySets > 0) then
do;
118 do while(rc_property > 0);
120 call missing(uri_Property, property_name, property_value);
122 rc_property = metadata_getnasn(uri_PropertySets,
"SetProperties", n, uri_Property);
124 rc_property_name = metadata_getattr(uri_Property,
"Name", property_name);
126 rc_property_value = metadata_getattr(uri_Property,
"DefaultValue", property_value);
128 %
if(%upcase(&debug.) eq TRUE) %then %
do;
130 put
"--> " uri_Property=;
131 put
"----> " property_name=;
132 put
"----> " property_value=;
134 %
if(&pattern_match_flg. = Y) %then %
do;
136 %let
property = %sysfunc(prxchange(s/(?<!\\)[.]/\./i, -1, %superq(property)));
138 %let
property = %sysfunc(prxchange(s/(?<!\\)[*]/(.*)/i, -1, %superq(property)));
139 if(prxmatch(
"/^&property.$/i", strip(property_name))) then
do;
140 outvar = catx(
";", outvar, catx(
"=", property_name, property_value));
145 if(upcase(strip(property_name)) =
"%upcase(&property.)") then
do;
146 call symput(
"&outvar.", property_value);
154 %
if(&pattern_match_flg. = Y) %then %
do;
155 call symput(
"&outvar.", strip(outvar));