feat: adding 4 new tables for catalogs
This commit is contained in:
24
sas/package-lock.json
generated
24
sas/package-lock.json
generated
@@ -6,7 +6,7 @@
|
||||
"": {
|
||||
"name": "dc-sas",
|
||||
"dependencies": {
|
||||
"@sasjs/cli": "^4.12.7",
|
||||
"@sasjs/cli": "^4.12.8",
|
||||
"@sasjs/core": "^4.59.1"
|
||||
}
|
||||
},
|
||||
@@ -30,9 +30,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@sasjs/adapter": {
|
||||
"version": "4.11.3",
|
||||
"resolved": "https://registry.npmjs.org/@sasjs/adapter/-/adapter-4.11.3.tgz",
|
||||
"integrity": "sha512-KF6G4vzs4l4efjpCD02og3kB44uFfJ1u2UWu749VdHtLKNN9l+PO26/moR+YAmRmmz2I9sC3X09fZE1nlN6zgw==",
|
||||
"version": "4.12.1",
|
||||
"resolved": "https://registry.npmjs.org/@sasjs/adapter/-/adapter-4.12.1.tgz",
|
||||
"integrity": "sha512-0217oZIkrecOyQygRe6Azgc1C4TIcjB5noi15fU4Rd5GsfDpleKVfQQdzYZ7im/vesWlLIVl/yUT67MMaQe0ew==",
|
||||
"hasInstallScript": true,
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
@@ -45,14 +45,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@sasjs/cli": {
|
||||
"version": "4.12.7",
|
||||
"resolved": "https://registry.npmjs.org/@sasjs/cli/-/cli-4.12.7.tgz",
|
||||
"integrity": "sha512-KcXSR+3dRgINOLiN+7oJbzWsNQu7qm1YQ7eaVqiHTZI429BSgZez9+7p1bq09R4otHN8IzMAgLP9se/r9p9yJA==",
|
||||
"version": "4.12.8",
|
||||
"resolved": "https://registry.npmjs.org/@sasjs/cli/-/cli-4.12.8.tgz",
|
||||
"integrity": "sha512-20WiywlcLV22T1XfkAumV66mM3PfQ1N9ihJfpxoOVCFs2wF/ZertqnP4BZ5CE1dc30M1C2oDOzzSSVZqePPQnw==",
|
||||
"hasInstallScript": true,
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@sasjs/adapter": "4.11.3",
|
||||
"@sasjs/core": "4.58.1",
|
||||
"@sasjs/adapter": "4.12.1",
|
||||
"@sasjs/core": "4.59.1",
|
||||
"@sasjs/lint": "2.4.3",
|
||||
"@sasjs/utils": "3.5.2",
|
||||
"adm-zip": "0.5.10",
|
||||
@@ -76,12 +76,6 @@
|
||||
"sasjs": "build/index.js"
|
||||
}
|
||||
},
|
||||
"node_modules/@sasjs/cli/node_modules/@sasjs/core": {
|
||||
"version": "4.58.1",
|
||||
"resolved": "https://registry.npmjs.org/@sasjs/core/-/core-4.58.1.tgz",
|
||||
"integrity": "sha512-Qp6KAtp1VZcmN5HLGSIUE9H41qpFuihWLbjNygOYp+NRs/Y8VagpHrYeyIQbh3cSgchiJEMXudLql8hoU06wpg==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@sasjs/core": {
|
||||
"version": "4.59.1",
|
||||
"resolved": "https://registry.npmjs.org/@sasjs/core/-/core-4.59.1.tgz",
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
},
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@sasjs/cli": "^4.12.7",
|
||||
"@sasjs/cli": "^4.12.8",
|
||||
"@sasjs/core": "^4.59.1"
|
||||
}
|
||||
}
|
||||
|
||||
17
sas/sasjs/db/datactrl/mpe_datacatalog_cats.ddl
Normal file
17
sas/sasjs/db/datactrl/mpe_datacatalog_cats.ddl
Normal file
@@ -0,0 +1,17 @@
|
||||
/**
|
||||
@file mpe_datacatalog_CATS.ddl
|
||||
@brief ddl file
|
||||
@details
|
||||
|
||||
@version 9.3
|
||||
@author 4GL Apps Ltd
|
||||
@copyright 4GL Apps Ltd
|
||||
**/
|
||||
|
||||
create table &curlib..mpe_datacatalog_CATS(
|
||||
TX_FROM float format=datetime19.,
|
||||
TX_TO float format=datetime19.,
|
||||
libref char(8) label='Library Name',
|
||||
memname char(64) label='Member Name',
|
||||
constraint pk_mpe_datacatalog_CATS
|
||||
primary key(libref,memname,tx_to));
|
||||
21
sas/sasjs/db/datactrl/mpe_datacatalog_objs.ddl
Normal file
21
sas/sasjs/db/datactrl/mpe_datacatalog_objs.ddl
Normal file
@@ -0,0 +1,21 @@
|
||||
/**
|
||||
@file mpe_datacatalog_CATS.ddl
|
||||
@brief ddl file
|
||||
@details
|
||||
|
||||
@version 9.3
|
||||
@author 4GL Apps Ltd
|
||||
@copyright 4GL Apps Ltd
|
||||
**/
|
||||
|
||||
create table &curlib..mpe_datacatalog_OBJS(
|
||||
TX_FROM float format=datetime19.,
|
||||
TX_TO float format=datetime19.,
|
||||
libref char(8) label='Library Name',
|
||||
memname char(64) label='Member Name',
|
||||
objname char(32) label='Object Name',
|
||||
objtype char(8) label='Object Type',
|
||||
objdesc char(256) label='Object Description',
|
||||
alias char(32) label='Object Alias',
|
||||
constraint pk_mpe_datacatalog_OBJS
|
||||
primary key(libref,memname,objname,objtype,tx_to));
|
||||
20
sas/sasjs/db/datactrl/mpe_datastatus_cats.ddl
Normal file
20
sas/sasjs/db/datactrl/mpe_datastatus_cats.ddl
Normal file
@@ -0,0 +1,20 @@
|
||||
/**
|
||||
@file mpe_datacatalog_CATS.ddl
|
||||
@brief ddl file
|
||||
@details
|
||||
|
||||
@version 9.3
|
||||
@author 4GL Apps Ltd
|
||||
@copyright 4GL Apps Ltd
|
||||
**/
|
||||
|
||||
create table &curlib..mpe_datastatus_CATS(
|
||||
TX_FROM float format=datetime19.,
|
||||
TX_TO float format=datetime19.,
|
||||
libref char(8) label='Library Name',
|
||||
memname char(64) label='Member Name',
|
||||
nobjs num label='Number of objects',
|
||||
created num format=DATETIME. informat=DATETIME. label='Date Created',
|
||||
modified num format=DATETIME. informat=DATETIME. label='Date Modified',
|
||||
constraint pk_mpe_datastatus_CATS
|
||||
primary key(libref,memname,tx_to));
|
||||
22
sas/sasjs/db/datactrl/mpe_datastatus_objs.ddl
Normal file
22
sas/sasjs/db/datactrl/mpe_datastatus_objs.ddl
Normal file
@@ -0,0 +1,22 @@
|
||||
/**
|
||||
@file mpe_datacatalog_CATS.ddl
|
||||
@brief ddl file
|
||||
@details
|
||||
|
||||
@version 9.3
|
||||
@author 4GL Apps Ltd
|
||||
@copyright 4GL Apps Ltd
|
||||
**/
|
||||
|
||||
create table &curlib..mpe_datastatus_OBJS(
|
||||
TX_FROM float format=datetime19.,
|
||||
TX_TO float format=datetime19.,
|
||||
libref char(8) label='Library Name',
|
||||
memname char(64) label='Member Name',
|
||||
objname char(32) label='Object Name',
|
||||
objtype char(8) label='Object Type',
|
||||
created num format=DATETIME. informat=DATETIME. label='Date Created',
|
||||
modified num format=DATETIME. informat=DATETIME. label='Date Modified',
|
||||
level num label='Library Concatenation Level',
|
||||
constraint pk_mpe_datastatus_OBJS
|
||||
primary key(libref,memname,objname,objtype,tx_to));
|
||||
@@ -106,6 +106,19 @@ proc datasets lib=&lib noprint;
|
||||
/nomiss unique;
|
||||
quit;
|
||||
proc sql;
|
||||
create table &lib..mpe_datacatalog_CATS(
|
||||
TX_FROM float ¬null format=datetime19.,
|
||||
TX_TO float format=datetime19.,
|
||||
libref char(8) label='Library Name',
|
||||
memname char(64) label='Member Name'
|
||||
);quit;
|
||||
proc datasets lib=&lib noprint;
|
||||
modify mpe_datacatalog_CATS;
|
||||
index create
|
||||
pk_mpe_datacatalog_CATS=(tx_to libref memname)
|
||||
/nomiss unique;
|
||||
quit;
|
||||
proc sql;
|
||||
create table &lib..mpe_datacatalog_libs(
|
||||
TX_FROM num ¬null format=datetime19.3,
|
||||
TX_TO num ¬null format=datetime19.3,
|
||||
@@ -125,6 +138,23 @@ proc datasets lib=&lib noprint;
|
||||
/nomiss unique;
|
||||
quit;
|
||||
proc sql;
|
||||
create table &lib..mpe_datacatalog_OBJS(
|
||||
TX_FROM num ¬null format=datetime19.,
|
||||
TX_TO num ¬null format=datetime19.,
|
||||
libref char(8) ¬null label='Library Name',
|
||||
memname char(64) ¬null label='Member Name',
|
||||
objname char(32) ¬null label='Object Name',
|
||||
objtype char(8) ¬null label='Object Type',
|
||||
objdesc char(256) label='Object Description',
|
||||
alias char(32) label='Object Alias'
|
||||
);quit;
|
||||
proc datasets lib=&lib noprint;
|
||||
modify mpe_datacatalog_OBJS;
|
||||
index create
|
||||
pk_mpe_datacatalog_OBJS=(libref memname objname objtype tx_to)
|
||||
/nomiss unique;
|
||||
quit;
|
||||
proc sql;
|
||||
create table &lib..mpe_datacatalog_TABS(
|
||||
TX_FROM num ¬null format=datetime19.3,
|
||||
TX_TO num ¬null format=datetime19.3,
|
||||
@@ -137,7 +167,7 @@ create table &lib..mpe_datacatalog_TABS(
|
||||
nvar num label='Number of Variables',
|
||||
compress char(8) label='Compression Routine',
|
||||
pk_fields char(512)
|
||||
label='Primary Key Fields (identified by being in a constraint that is both Unique and Not Null)'
|
||||
label='Primary Key Fields - in a constraint being both Unique and Not Null'
|
||||
);quit;
|
||||
proc datasets lib=&lib noprint;
|
||||
modify mpe_datacatalog_TABS;
|
||||
@@ -169,6 +199,22 @@ proc datasets lib=&lib noprint;
|
||||
/nomiss unique;
|
||||
quit;
|
||||
proc sql;
|
||||
create table &lib..mpe_datastatus_CATS(
|
||||
TX_FROM float format=datetime19.,
|
||||
TX_TO float format=datetime19.,
|
||||
libref char(8) label='Library Name',
|
||||
memname char(64) label='Member Name',
|
||||
nobjs num ¬null label='Number of objects',
|
||||
created num ¬null format=DATETIME. label='Date Created',
|
||||
modified num format=DATETIME. label='Date Modified'
|
||||
);quit;
|
||||
proc datasets lib=&lib noprint;
|
||||
modify mpe_datastatus_CATS;
|
||||
index create
|
||||
pk_mpe_datastatus_cats=(libref memname tx_to)
|
||||
/nomiss unique;
|
||||
quit;
|
||||
proc sql;
|
||||
create table &lib..mpe_datastatus_libs(
|
||||
TX_FROM num ¬null format=datetime19.3,
|
||||
TX_TO num ¬null format=datetime19.3,
|
||||
@@ -183,6 +229,24 @@ proc datasets lib=&lib noprint;
|
||||
/nomiss unique;
|
||||
quit;
|
||||
proc sql;
|
||||
create table &lib..mpe_datastatus_OBJS(
|
||||
TX_FROM float ¬null format=datetime19.,
|
||||
TX_TO float ¬null format=datetime19.,
|
||||
libref char(8) label='Library Name',
|
||||
memname char(64) label='Member Name',
|
||||
objname char(32) label='Object Name',
|
||||
objtype char(8) label='Object Type',
|
||||
created num ¬null format=DATETIME. label='Date Created',
|
||||
modified num format=DATETIME. label='Date Modified',
|
||||
level num label='Library Concatenation Level'
|
||||
);quit;
|
||||
proc datasets lib=&lib noprint;
|
||||
modify mpe_datastatus_OBJS;
|
||||
index create
|
||||
pk_mpe_datastatus_OBJS=(libref memname objname objtype tx_to)
|
||||
/nomiss unique;
|
||||
quit;
|
||||
proc sql;
|
||||
create table &lib..mpe_datastatus_tabs(
|
||||
TX_FROM num ¬null format=datetime19.3,
|
||||
TX_TO num ¬null format=datetime19.3,
|
||||
|
||||
26
sas/sasjs/macros/mpe_makedatamodel.test.sas
Normal file
26
sas/sasjs/macros/mpe_makedatamodel.test.sas
Normal file
@@ -0,0 +1,26 @@
|
||||
/**
|
||||
@file
|
||||
@brief Testing mpe_refreshtables macro
|
||||
|
||||
<h4> SAS Macros </h4>
|
||||
@li mpe_makedatamodel.sas
|
||||
@li mp_assert.sas
|
||||
@li mp_assertscope.sas
|
||||
|
||||
@author 4GL Apps Ltd
|
||||
@copyright 4GL Apps Ltd. This code may only be used within Data Controller
|
||||
and may not be re-distributed or re-sold without the express permission of
|
||||
4GL Apps Ltd.
|
||||
|
||||
**/
|
||||
|
||||
%mp_assertscope(SNAPSHOT)
|
||||
%mpe_makedatamodel(lib=WORK)
|
||||
%mp_assertscope(COMPARE,
|
||||
desc=Checking macro variables against previous snapshot
|
||||
)
|
||||
|
||||
%mp_assert(
|
||||
iftrue=(&syscc = 0),
|
||||
desc=Checking error condition
|
||||
)
|
||||
@@ -295,7 +295,7 @@ proc sql;
|
||||
%if &ds ne #ALL %then %do;
|
||||
and upcase(memname)="&ds"
|
||||
%end;
|
||||
;
|
||||
;
|
||||
%end;
|
||||
|
||||
%bitemporal_dataloader(base_lib=&mpelib
|
||||
|
||||
49
sas/sasjs/macros/mpe_refreshtables.test.sas
Normal file
49
sas/sasjs/macros/mpe_refreshtables.test.sas
Normal file
@@ -0,0 +1,49 @@
|
||||
/**
|
||||
@file
|
||||
@brief Testing mpe_refreshtables macro
|
||||
|
||||
<h4> SAS Macros </h4>
|
||||
@li mpe_refreshtables.sas
|
||||
@li mp_assert.sas
|
||||
@li mp_assertscope.sas
|
||||
|
||||
@author 4GL Apps Ltd
|
||||
@copyright 4GL Apps Ltd. This code may only be used within Data Controller
|
||||
and may not be re-distributed or re-sold without the express permission of
|
||||
4GL Apps Ltd.
|
||||
|
||||
**/
|
||||
|
||||
%mp_assertscope(SNAPSHOT)
|
||||
%mpe_refreshtables(FMTONLY)
|
||||
%mp_assertscope(COMPARE,
|
||||
desc=Checking macro variables against previous snapshot
|
||||
)
|
||||
|
||||
/* make sure that the process picks up a library that contains only a single
|
||||
catalog */
|
||||
proc sql;
|
||||
create table work.libinfo as
|
||||
select a.engine,
|
||||
a.libname,
|
||||
a.paths,
|
||||
a.perms,
|
||||
a.owners,
|
||||
a.schemas,
|
||||
a.libid,
|
||||
b.libsize,
|
||||
b.table_cnt
|
||||
from &mpelib..mpe_datacatalog_libs(where=(&dc_dttmtfmt. lt tx_to)) a
|
||||
left join &mpelib..mpe_datastatus_libs(where=(&dc_dttmtfmt. lt tx_to)) b
|
||||
on a.libref=b.libref
|
||||
where a.libref="&libref";
|
||||
|
||||
%let test1=0;
|
||||
data _null_;
|
||||
set work.libinfo;
|
||||
call symputx('test1',table_cnt);
|
||||
run;
|
||||
%mp_assert(
|
||||
iftrue=(&test1>0),
|
||||
desc=Checking fmtonly.dcfmts was picked up
|
||||
)
|
||||
@@ -19,19 +19,27 @@
|
||||
4GL Apps Ltd.
|
||||
**/
|
||||
|
||||
%macro dc_refreshcatalog();
|
||||
%macro dc_refreshcatalog(libref);
|
||||
|
||||
%mpe_refreshlibs()
|
||||
|
||||
filename executor catalog 'work.code.code.source';
|
||||
data libraries;
|
||||
set &mpelib..mpe_datacatalog_libs;
|
||||
where &dc_dttmtfmt. le TX_TO;
|
||||
file executor;
|
||||
str=cats('%mpe_refreshtables(',libref,')');
|
||||
put str;
|
||||
putlog str;
|
||||
run;
|
||||
%inc executor;
|
||||
%if #&libref# ne ## %then %do;
|
||||
%put &sysmacroname: assigning specific libref, &libref;
|
||||
%dc_assignlib(WRITE,&libref) /* write just in order to assign direct lib */
|
||||
%mpe_refreshlibs(lib=&libref)
|
||||
%mpe_refreshtables(&libref)
|
||||
%end;
|
||||
%else %do;
|
||||
filename executor catalog 'work.code.code.source';
|
||||
data libraries;
|
||||
set &mpelib..mpe_datacatalog_libs;
|
||||
where &dc_dttmtfmt. le TX_TO;
|
||||
file executor;
|
||||
str=cats('%mpe_refreshtables(',libref,')');
|
||||
put str;
|
||||
putlog str;
|
||||
run;
|
||||
%inc executor;
|
||||
%end;
|
||||
|
||||
%mend dc_refreshcatalog;
|
||||
|
||||
Reference in New Issue
Block a user