Loading...
Searching...
No Matches
mpe_refreshcatalogs.sas
Go to the documentation of this file.
1/**
2 @file
3 @brief Refreshes the data catalog
4 @details Assumes library is already assigned.
5 Usage:
6
7 %mpe_refreshcatalogs(sashelp)
8
9 <h4> SAS Macros </h4>
10 @li bitemporal_dataloader.sas
11
12 @version 9.3
13 @author 4GL Apps Ltd
14
15**/
16
17%macro mpe_refreshcatalogs(lib,cat=#all);
18%let lib=%upcase(&lib);
19%let cat=%upcase(&cat);
20
21%put running &sysmacroname &lib for &cat;
22proc sql;
23create table work.catdata as
24 select libname as libref,
25 memname,
26 objname,
27 objtype,
28 objdesc,
29 created,
30 modified,
31 alias,
32 level
33 from dictionary.catalogs
34 where upcase(libname)="&lib"
35%if &cat ne #ALL %then %do;
36 and upcase(memname)="&cat"
37%end;
38 ;
39
40%mp_abort(iftrue= (&syscc ne 0)
41 ,mac=&_program
42 ,msg=%str(syscc=&syscc afer &lib objects extraction)
43)
44
45/* load mpe_datacatalog_CATS */
46proc sql;
47create table datacats as select distinct libref,memname from catdata;
48
49%bitemporal_dataloader(base_lib=&mpelib
50 ,base_dsn=mpe_datacatalog_CATS
51 ,append_dsn=datacats
52 ,PK=LIBREF MEMNAME
53 ,etlsource=&sysmacroname
54 ,loadtype=TXTEMPORAL
55 ,tech_from=TX_FROM
56 ,tech_to=TX_TO
57%if &cat = #ALL %then %do;
58 ,close_vars=LIBREF
59%end;
60 ,dclib=&mpelib
61)
62
63/* load mpe_datacatalog_objsS */
64proc sql;
65create table dataobjs as
66 select distinct libref,
67 memname,
68 objname,
69 objtype,
70 objdesc,
71 alias
72 from catdata;
73quit;
74
75%bitemporal_dataloader(base_lib=&mpelib
76 ,base_dsn=mpe_datacatalog_OBJS
77 ,append_dsn=dataobjs
78 ,PK=LIBREF MEMNAME OBJNAME OBJTYPE
79 ,etlsource=&sysmacroname
80 ,loadtype=TXTEMPORAL
81 ,tech_from=TX_FROM
82 ,tech_to=TX_TO
83%if &cat = #ALL %then %do;
84 ,close_vars=LIBREF MEMNAME
85%end;
86 ,dclib=&mpelib
87)
88
89%put load mpe_datastatus_OBJS;
90proc sql;
91create table statusobjs as
92 select distinct libref,
93 memname,
94 objname,
95 objtype,
96 created,
97 modified,
98 level
99 from catdata;
100
101%bitemporal_dataloader(base_lib=&mpelib
102 ,base_dsn=mpe_datastatus_OBJS
103 ,append_dsn=statusobjs
104 ,PK=LIBREF MEMNAME OBJNAME OBJTYPE
105 ,etlsource=&sysmacroname
106 ,loadtype=TXTEMPORAL
107 ,tech_from=TX_FROM
108 ,tech_to=TX_TO
109%if &cat = #ALL %then %do;
110 ,close_vars=LIBREF MEMNAME
111%end;
112 ,dclib=&mpelib
113)
114
115%put load mpe_datastatus_cats;
116proc sql;
117create table statuscats as
118 select libref,
119 memname,
120 count(*) as nobjs,
121 min(created) as created,
122 max(modified) as modified
123 from catdata
124 group by 1,2;
125
126%bitemporal_dataloader(base_lib=&mpelib
127 ,base_dsn=mpe_datastatus_cats
128 ,append_dsn=statuscats
129 ,PK=LIBREF MEMNAME
130 ,etlsource=&sysmacroname
131 ,loadtype=TXTEMPORAL
132 ,tech_from=TX_FROM
133 ,tech_to=TX_TO
134%if &cat = #ALL %then %do;
135 ,close_vars=LIBREF
136%end;
137 ,dclib=&mpelib
138)
139
140
141%mend mpe_refreshcatalogs;