feat: extra table metadata for #75
Build / Build-and-ng-test (pull_request) Failing after 17s Details

This commit is contained in:
zmaj 2024-02-09 19:02:24 +00:00
parent cff5989559
commit 837821fd01
5 changed files with 114 additions and 7 deletions

View File

@ -0,0 +1,70 @@
/**
@file
@brief Gets table metadata
@details Runs mp_dsmeta and adds datadictionary info
<h4> SAS Macros </h4>
@li mp_dsmeta.sas
@version 9.2
@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.
**/
%macro mpe_dsmeta(libds, outds=dsmeta);
%local ddsd ddld notes lenstmt;
%let lenstmt=length ods_table $18 name $100 value $1000;
%let libds=%upcase(&libds);
%mp_dsmeta(&libds, outds=&outds)
data _null_;
set &mpelib..mpe_datadictionary;
where &dc_dttmtfmt < tx_to & dd_source=%upcase("&libds") & dd_type='TABLE';
call symputx('ddsd',dd_shortdesc,'l');
call symputx('ddld',dd_longdesc,'l');
run;
data &outds;
&lenstmt;
if last then do;
ODS_TABLE='MPE_DATADICTIONARY';
NAME='DD_SHORTDESC';
VALUE="&ddsd";
output;
NAME='DD_LONGDESC';
VALUE="&ddld";
output;
end;
set &outds end=last;
output;
run;
data _data_;
set &mpelib..mpe_tables;
where libref="%scan(&libds,1,.)"
& dsn="%scan(&libds,2,.)"
& &dc_dttmtfmt<tx_to;
&lenstmt;
ODS_TABLE='MPE_TABLES';
array c _character_;
array n _numeric_;
do over c;
name=upcase(vname(c));
value=c;
output;
end;
do over n;
name=upcase(vname(n));
value=cats(n);
output;
end;
keep ods_table name value;
run;
proc append base=&outds data=&syslast;
run;
%mend mpe_dsmeta;

View File

@ -0,0 +1,37 @@
/**
@file
@brief Testing mpe_dsmeta macro
@details Checking functionality of mpe_dsmeta.sas macro
<h4> SAS Macros </h4>
@li mp_assertdsobs.sas
@li mp_assertscope.sas
@li mpe_dsmeta.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.
**/
/* run the macro*/
%mp_assertscope(SNAPSHOT)
%mpe_dsmeta(&mpelib..mpe_security, outds=test1)
%mp_assertscope(COMPARE,
desc=Checking macro variables against previous snapshot
)
data work.test1;
set work.test1;
where ods_table in ('MPE_DATADICTIONARY','MPE_TABLES');
putlog (_all_)(=);
run;
%mp_assertdsobs(work.test1,
desc=Test 1 - 27 records returned,
test=EQUALS 27,
outds=work.test_results
)

View File

@ -14,7 +14,7 @@
<h5> sasdata </h5>
<h5> sasparams </h5>
Contains info on the request. One row is returned.
@li CLS_FLG - set to 0 if there are no CLS rules (everything should be editable)
@li CLS_FLG - set to 0 if there are no CLS rules (everything editable)
else set to 1 (CLS rules exist)
@li ISMAP - set to 1 if the target DS is an excel map target, else 0
@ -56,12 +56,12 @@
@li mf_wordsinstr1butnotstr2.sas
@li mp_abort.sas
@li mp_cntlout.sas
@li mp_dsmeta.sas
@li mp_getcols.sas
@li mp_getmaxvarlengths.sas
@li mp_validatecol.sas
@li mpe_accesscheck.sas
@li mpe_columnlevelsecurity.sas
@li mpe_dsmeta.sas
@li mpe_getlabels.sas
@li mpe_filtermaster.sas
@li mpe_runhook.sas
@ -665,7 +665,7 @@ data xl_rules;
keep xl_column xl_rule;
run;
%mp_dsmeta(&libds, outds=dsmeta)
%mpe_dsmeta(&libds, outds=dsmeta)
/* send to the client */
%webout(OPEN)

View File

@ -21,7 +21,7 @@
data _null_;
file &f1 termstr=crlf;
put 'XLMAP_ID:$char12.';
put "Sample";
put "BASEL-KM1";
run;
%mx_testservice(&_program,
@ -38,7 +38,7 @@ run;
%mp_assertdsobs(work.xlmaprules,
test=ATLEAST 2,
desc=Checking successful return of at least 2 rules for the Sample map,
desc=Checking successful return of at least 2 rules for the BASEL-KM1 map,
outds=work.test_results
)

View File

@ -44,13 +44,13 @@
@li mf_verifymacvars.sas
@li mp_abort.sas
@li mp_cntlout.sas
@li mp_dsmeta.sas
@li mp_getcols.sas
@li mp_getpk.sas
@li mp_jsonout.sas
@li mp_searchdata.sas
@li mp_validatecol.sas
@li mpe_columnlevelsecurity.sas
@li mpe_dsmeta.sas
@li mpe_filtermaster.sas
@ -351,7 +351,7 @@ run;
%mp_getcols(&libds, outds=cols)
%mp_dsmeta(&libds, outds=dsmeta)
%mpe_dsmeta(&libds, outds=dsmeta)
%webout(OPEN)
%webout(OBJ,cls_rules)