27 %macro mm_getwebappsrvprops(
    28     outds= mm_getwebappsrvprops
    31 filename __in temp lrecl=10000;
    32 filename __out temp lrecl=10000;
    33 filename __shake temp lrecl=10000;
    36    put 
'<GetMetadataObjects>' ;
    37    put 
'<Reposid>$METAREPOSITORY</Reposid>' ;
    38    put 
'<Type>TextStore</Type>' ;
    40     put 
'<Flags>388</Flags>' ; 
    42     put 
'<XMLSelect search="TextStore[@Name='@@;
    43     put 
"'Public Configuration Properties']" @@;
    44      put 
'[Objects/SoftwareComponent[@ClassIdentifier=''webappsrv'']]' ; 
    47    put 
'<TextStore StoredText="">' ;
    51    put 
'</GetMetadataObjects>' ;
    53 proc metadata in=__in out=__out verbose;run;
    57   infile __out lrecl=10000;
    59   length cleartemplate $32000;
    60   cleartemplate=tranwrd(_infile_,
'StoredText=""',
'');
    61   start=index(cleartemplate,
'StoredText="');
    63     call symputx(
"start",start+11+length(
'StoredText=""')-1);
    64     putlog cleartemplate ;
    71  length filein 8 fileid 8;
    72  filein = fopen(
"__out",
"I",1,
"B");
    73  fileid = fopen(
"__shake",
"O",1,
"B");
    76  do while(fread(filein)=0);
    79     rc = fget(filein,rec,1);
    80     if rec=
'"' then leave;
    81     else if rec=
"&" then 
do;
    84         if fread(filein) ne 0 then 
goto getout;
    85         rc = fget(filein,rec,1);
    86         entity=cats(entity,rec);
    89         when (
'&' ) rec='&'  ;
    90         when ('<'  ) rec='<'  ;
    91         when ('>'  ) rec='>'  ;
    92         when (''') rec="'"  ;
    93         when ('"') rec='"'  ;
    94         when ('&
#x0a;') rec='0A'x;    95         when (
'
') rec='0D'x;
    96         when ('&
#36;' ) rec='$'  ;    97         otherwise putlog 
"WARNING: missing value for " entity=;
    99       rc =fput(fileid, substr(rec,1,1));
   103       rc =fput(fileid,rec);
   114   infile __shake dlm=
'=' missover;
   115   length name $50 value $500;
   116   input name $ value $;
   121 filename __out clear;
   122 filename __shake clear;