dc/sas/sasjs/services/public/getddl.sas
Mihajlo Medjedovic f268de21a3
Some checks failed
Test / Build-and-test-development (push) Failing after 6m14s
Test / Build-and-test-development-latest-adapter (push) Failing after 6m13s
init
2023-07-13 13:44:05 +02:00

56 lines
1.3 KiB
SAS

/**
@file
@brief Download DDL for a table or entire library in a particular flavour.
@details
<h4> SAS Macros </h4>
@li mddl_sas_cntlout.sas
@li dc_assignlib.sas
@li mf_existds.sas
@li mp_abort.sas
@li mp_getddl.sas
@li mp_streamfile.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.
**/
%global libref ds flavour;
%let flavour=%sysfunc(coalescec(&flavour,SAS));
%mpeinit()
%dc_assignlib(READ,&libref)
data _null_;
/* check if the request is for a format catalog */
ds=symget('ds');
if subpad(cats(reverse(ds)),1,3)=:'CF-' then do;
ds=scan(ds,1,'-');
libds=cats(symget('libref'),'.',ds);
putlog "Format Catalog Captured";
call execute('%mddl_sas_cntlout(libds=work.fmtextract)');
call symputx('libref','work');
call symputx('ds','fmtextract');
end;
putlog (_all_)(=);
run;
%mp_abort(iftrue=("exist&ds" ne "exist" and %mf_existds(libds=&libref..&ds)<1)
,mac=&_program
,msg=%str(Dataset &libref..&ds was not found)
)
%let tmploc=%sysfunc(pathname(work))/temp.txt;
filename tmp "&tmploc";
%mp_getddl(&libref,&ds,flavour=&flavour, fref=tmp, applydttm=YES)
%mp_streamfile(contenttype=TEXT
,inloc=%str(&tmploc)
,outname=&libref._&ds..ddl
)