Hi,
you should query both objects (PhysicalTable and Tree) and match them by either TreeID or TableID.
Here's an example, that will query all tables (and their tree associations) and trees and match the two.
[pre]
%let REPID=XXXXXXXXXXXX; * REPLACE WITH THE DESIRED REP ID!!!!;
filename request temp lrecl=2048;
* maps;
filename x_tabs_m temp lrecl=2048;
data _null_;
file x_tabs_m encoding="UTF-8";
put '';
put '
';
put '';
put '/GetMetadataObjects/Objects/PhysicalTable';
put 'characterSTRING50/GetMetadataObjects/Objects/PhysicalTable@Id';
put 'characterSTRING200/GetMetadataObjects/Objects/PhysicalTable@Name';
put 'characterSTRING50/GetMetadataObjects/Objects/PhysicalTable/Trees/Tree@Id';
put '
';
put '';
run;
filename x_trees_m temp lrecl=2048;
data _null_;
file x_trees_m encoding="UTF-8";
put '';
put '
';
put '';
put '/GetMetadataObjects/Objects/Tree';
put 'characterSTRING50/GetMetadataObjects/Objects/Tree@Id';
put 'characterSTRING200/GetMetadataObjects/Objects/Tree@Name';
put '
';
put '';
run;
* queries;
filename x_tabs temp lrecl=800000;
data _null_;
file request;
put '
';
put "&REPID";
put 'PhysicalTable';
put '';
put 'SAS';
put '276';
put '';
put '';
put '';
put '';
put '';
put '';
run;
proc metadata in=request out=x_tabs;
run;
filename x_trees temp lrecl=800000;
data _null_;
file request;
put '
';
put "&REPID";
put 'Tree';
put '';
put 'SAS';
put '276';
put '';
put '';
put '';
put '';
run;
proc metadata in=request out=x_trees;
run;
* extract desired metadata;
libname x_tabs xml xmlmap=x_tabs_m;
libname x_trees xml xmlmap=x_trees_m;
proc sql;
select T1.TabName, T1.TabId, T2.TreeName, T2.TreeId
from x_tabs.x_tabs as T1 left outer join x_trees.x_trees as T2
on T1.TreeID = T2.TreeId;
run;
[/pre]
Cheers from Portugal.
Daniel Santos @
www.cgd.pt