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;