26 %macro mm_getdocument(
    27     tree=/User Folders/sasdemo
    29     ,outref=%sysfunc(pathname(work))/mm_getdocument.txt
    34 %
if &mDebug=1 %then %let mD=;
    35 %
else %let mD=%str(*);
    36 %&mD.put Executing &sysmacroname..sas;
    45   rc=metadata_pathobj(
"",
"&tree",
"Folder",type,uri);
    46   call symputx(
'type',type,
'l');
    47   call symputx(
'treeuri',uri,
'l');
    51   iftrue= (&type ne Tree)
    52   ,mac=mm_getdocument.sas
    53   ,msg=Tree &tree does not exist!
    60   length type docuri tsuri tsid $256 ;
    61   rc1=metadata_pathobj("","&tree/&name","Note",type,docuri);
    62   rc2=metadata_getnasn(docuri,"Notes",1,tsuri);
    63   rc3=metadata_getattr(tsuri,"Id",tsid);
    64   call symputx('type',type,'l');
    65   call symputx("tsid",tsid,'l');
    70   iftrue= (&type ne Document)
    71   ,mac=mm_getdocument.sas
    72   ,msg=Document &name could not be found in &tree!
    78 filename __getdoc temp lrecl=10000000;
    80  in="<GetMetadata><Reposid>$METAREPOSITORY</Reposid>
    81     <Metadata><TextStore Id='&tsid'/></Metadata>
    82     <Ns>SAS</Ns><Flags>1</Flags><Options/></GetMetadata>"
    88   infile __getdoc lrecl=10000;
    90   start=index(_infile_,'StoredText="');
    92     call symputx("start",start+11);
    93     put start= "type=&type";
    94     putlog '"' _infile_ '"';
    99 filename __outdoc "&outref" lrecl=100000;
   101  length filein 8 fileid 8;
   102  filein = fopen("__getdoc","I",1,"B");
   103  fileid = fopen("__outdoc","O",1,"B");
   106  do while(fread(filein)=0);
   109     rc = fget(filein,rec,1);
   110     if rec='"' then leave;
   111     else if rec="&" then do;
   114         if fread(filein) ne 0 then goto getout;
   115         rc = fget(filein,rec,1);
   116         entity=cats(entity,rec);
   119         when ('&' ) rec='&'  ;
   120         when ('<'  ) rec='<'  ;
   121         when ('>'  ) rec='>'  ;
   122         when (''') rec="'"  ;
   123         when ('"') rec='"'  ;
   124         when ('&
#x0a;') rec='0A'x;   125         when (
'
') rec='0D'x;
   126         when ('&
#36;' ) rec='$'  ;   127         otherwise putlog 
"WARNING: missing value for " entity=;
   129       rc =fput(fileid, substr(rec,1,1));
   133       rc =fput(fileid,rec);
   142 filename __getdoc clear;
   143 filename __outdoc clear;