mirror of
https://github.com/sasjs/core.git
synced 2025-12-11 22:44:36 +00:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
888e07468c | ||
|
|
f491fa3ef5 | ||
|
|
6b1ea7323c |
@@ -1,6 +1,6 @@
|
|||||||
# Macro Core
|
# Macro Core
|
||||||
|
|
||||||
Much quality. Many standards. The **Macro Core** library exists to save time and development effort! Herein ye shall find a veritable host of MIT-licenced, production quality SAS macros. These are a mix of tools, utilities, functions and code generators that are useful in the context of Application Development on the SAS platform (eg https://datacontroller.io). [Contributions](https://github.com/sasjs/core/blob/master/CONTRIBUTING.md) are welcomed.
|
Much quality. Many standards. The **Macro Core** library exists to save time and development effort! Herein ye shall find a veritable host of MIT-licenced, production quality SAS macros. These are a mix of tools, utilities, functions and code generators that are useful in the context of Application Development on the SAS platform (eg https://datacontroller.io). [Contributions](https://github.com/sasjs/core/blob/main/CONTRIBUTING.md) are welcomed.
|
||||||
|
|
||||||
You can download and compile them all in just two lines of SAS code:
|
You can download and compile them all in just two lines of SAS code:
|
||||||
|
|
||||||
|
|||||||
41
all.sas
41
all.sas
@@ -3080,7 +3080,9 @@ create table &outds (rename=(
|
|||||||
* PROCJSON (default)
|
* PROCJSON (default)
|
||||||
* DATASTEP
|
* DATASTEP
|
||||||
|
|
||||||
@param dbg= Typically used with an _debug (numeric) option
|
@param dbg= DEPRECATED - was used to conditionally add PRETTY to
|
||||||
|
proc json but this can cause line truncation in large files.
|
||||||
|
|
||||||
|
|
||||||
@version 9.2
|
@version 9.2
|
||||||
@author Allan Bowe
|
@author Allan Bowe
|
||||||
@@ -3106,9 +3108,8 @@ create table &outds (rename=(
|
|||||||
proc sql;drop table &tempds;
|
proc sql;drop table &tempds;
|
||||||
data &tempds /view=&tempds;set &ds;
|
data &tempds /view=&tempds;set &ds;
|
||||||
%if &fmt=N %then format _numeric_ best32.;;
|
%if &fmt=N %then format _numeric_ best32.;;
|
||||||
proc json out=&jref
|
proc json out=&jref pretty
|
||||||
%if &action=ARR %then nokeys ;
|
%if &action=ARR %then nokeys ;
|
||||||
%if &dbg ge 131 %then pretty ;
|
|
||||||
;export &tempds / nosastags fmtnumeric;
|
;export &tempds / nosastags fmtnumeric;
|
||||||
run;
|
run;
|
||||||
proc sql;drop view &tempds;
|
proc sql;drop view &tempds;
|
||||||
@@ -6053,9 +6054,8 @@ data _null_;
|
|||||||
put ' proc sql;drop table &tempds; ';
|
put ' proc sql;drop table &tempds; ';
|
||||||
put ' data &tempds /view=&tempds;set &ds; ';
|
put ' data &tempds /view=&tempds;set &ds; ';
|
||||||
put ' %if &fmt=N %then format _numeric_ best32.;; ';
|
put ' %if &fmt=N %then format _numeric_ best32.;; ';
|
||||||
put ' proc json out=&jref ';
|
put ' proc json out=&jref pretty ';
|
||||||
put ' %if &action=ARR %then nokeys ; ';
|
put ' %if &action=ARR %then nokeys ; ';
|
||||||
put ' %if &dbg ge 131 %then pretty ; ';
|
|
||||||
put ' ;export &tempds / nosastags fmtnumeric; ';
|
put ' ;export &tempds / nosastags fmtnumeric; ';
|
||||||
put ' run; ';
|
put ' run; ';
|
||||||
put ' proc sql;drop view &tempds; ';
|
put ' proc sql;drop view &tempds; ';
|
||||||
@@ -6150,7 +6150,8 @@ data _null_;
|
|||||||
put '%end; ';
|
put '%end; ';
|
||||||
put '%mend; ';
|
put '%mend; ';
|
||||||
put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=Y); ';
|
put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=Y); ';
|
||||||
put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug; ';
|
put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug ';
|
||||||
|
put ' sasjs_tables; ';
|
||||||
put '%local i tempds; ';
|
put '%local i tempds; ';
|
||||||
put ' ';
|
put ' ';
|
||||||
put '%if &action=FETCH %then %do; ';
|
put '%if &action=FETCH %then %do; ';
|
||||||
@@ -6177,6 +6178,7 @@ data _null_;
|
|||||||
put ' if _n_<20 then putlog _infile_; ';
|
put ' if _n_<20 then putlog _infile_; ';
|
||||||
put ' %end; ';
|
put ' %end; ';
|
||||||
put ' run; ';
|
put ' run; ';
|
||||||
|
put ' %let sasjs_tables=&sasjs_tables &&_webin_name&i; ';
|
||||||
put ' %end; ';
|
put ' %end; ';
|
||||||
put '%end; ';
|
put '%end; ';
|
||||||
put ' ';
|
put ' ';
|
||||||
@@ -9188,7 +9190,8 @@ run;
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=Y);
|
%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=Y);
|
||||||
%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug;
|
%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug
|
||||||
|
sasjs_tables;
|
||||||
%local i tempds;
|
%local i tempds;
|
||||||
|
|
||||||
%if &action=FETCH %then %do;
|
%if &action=FETCH %then %do;
|
||||||
@@ -9215,6 +9218,7 @@ run;
|
|||||||
if _n_<20 then putlog _infile_;
|
if _n_<20 then putlog _infile_;
|
||||||
%end;
|
%end;
|
||||||
run;
|
run;
|
||||||
|
%let sasjs_tables=&sasjs_tables &&_webin_name&i;
|
||||||
%end;
|
%end;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -9836,9 +9840,8 @@ data _null_;
|
|||||||
put ' proc sql;drop table &tempds; ';
|
put ' proc sql;drop table &tempds; ';
|
||||||
put ' data &tempds /view=&tempds;set &ds; ';
|
put ' data &tempds /view=&tempds;set &ds; ';
|
||||||
put ' %if &fmt=N %then format _numeric_ best32.;; ';
|
put ' %if &fmt=N %then format _numeric_ best32.;; ';
|
||||||
put ' proc json out=&jref ';
|
put ' proc json out=&jref pretty ';
|
||||||
put ' %if &action=ARR %then nokeys ; ';
|
put ' %if &action=ARR %then nokeys ; ';
|
||||||
put ' %if &dbg ge 131 %then pretty ; ';
|
|
||||||
put ' ;export &tempds / nosastags fmtnumeric; ';
|
put ' ;export &tempds / nosastags fmtnumeric; ';
|
||||||
put ' run; ';
|
put ' run; ';
|
||||||
put ' proc sql;drop view &tempds; ';
|
put ' proc sql;drop view &tempds; ';
|
||||||
@@ -9933,7 +9936,8 @@ data _null_;
|
|||||||
put '%end; ';
|
put '%end; ';
|
||||||
put '%mend; ';
|
put '%mend; ';
|
||||||
put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=Y); ';
|
put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=Y); ';
|
||||||
put '%global _webin_file_count _webin_fileuri _debug _omittextlog ; ';
|
put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name ';
|
||||||
|
put ' sasjs_tables; ';
|
||||||
put '%if %index("&_debug",log) %then %let _debug=131; ';
|
put '%if %index("&_debug",log) %then %let _debug=131; ';
|
||||||
put ' ';
|
put ' ';
|
||||||
put '%local i tempds; ';
|
put '%local i tempds; ';
|
||||||
@@ -9947,11 +9951,11 @@ data _null_;
|
|||||||
put ' %if not %symexist(_webin_fileuri1) %then %do; ';
|
put ' %if not %symexist(_webin_fileuri1) %then %do; ';
|
||||||
put ' %let _webin_file_count=%eval(&_webin_file_count+0); ';
|
put ' %let _webin_file_count=%eval(&_webin_file_count+0); ';
|
||||||
put ' %let _webin_fileuri1=&_webin_fileuri; ';
|
put ' %let _webin_fileuri1=&_webin_fileuri; ';
|
||||||
|
put ' %let _webin_name1=&_webin_name; ';
|
||||||
put ' %end; ';
|
put ' %end; ';
|
||||||
put ' ';
|
put ' ';
|
||||||
put ' %if %symexist(sasjs_tables) %then %do; ';
|
put ' /* if the sasjs_tables param is passed, we expect param based upload */ ';
|
||||||
put ' /* small volumes of non-special data are sent as params for responsiveness */ ';
|
put ' %if %length(&sasjs_tables.XX)>2 %then %do; ';
|
||||||
put ' /* to do - deal with escaped values */ ';
|
|
||||||
put ' filename _sasjs "%sysfunc(pathname(work))/sasjs.lua"; ';
|
put ' filename _sasjs "%sysfunc(pathname(work))/sasjs.lua"; ';
|
||||||
put ' data _null_; ';
|
put ' data _null_; ';
|
||||||
put ' file _sasjs; ';
|
put ' file _sasjs; ';
|
||||||
@@ -10030,6 +10034,7 @@ data _null_;
|
|||||||
put ' infile indata firstobs=2 dsd termstr=crlf ; ';
|
put ' infile indata firstobs=2 dsd termstr=crlf ; ';
|
||||||
put ' input &input_statement; ';
|
put ' input &input_statement; ';
|
||||||
put ' run; ';
|
put ' run; ';
|
||||||
|
put ' %let sasjs_tables=&sasjs_tables &&_webin_name&i; ';
|
||||||
put ' %end; ';
|
put ' %end; ';
|
||||||
put '%end; ';
|
put '%end; ';
|
||||||
put '%else %if &action=OPEN %then %do; ';
|
put '%else %if &action=OPEN %then %do; ';
|
||||||
@@ -11954,7 +11959,8 @@ filename &fref1 clear;
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=Y);
|
%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=Y);
|
||||||
%global _webin_file_count _webin_fileuri _debug _omittextlog ;
|
%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name
|
||||||
|
sasjs_tables;
|
||||||
%if %index("&_debug",log) %then %let _debug=131;
|
%if %index("&_debug",log) %then %let _debug=131;
|
||||||
|
|
||||||
%local i tempds;
|
%local i tempds;
|
||||||
@@ -11968,11 +11974,11 @@ filename &fref1 clear;
|
|||||||
%if not %symexist(_webin_fileuri1) %then %do;
|
%if not %symexist(_webin_fileuri1) %then %do;
|
||||||
%let _webin_file_count=%eval(&_webin_file_count+0);
|
%let _webin_file_count=%eval(&_webin_file_count+0);
|
||||||
%let _webin_fileuri1=&_webin_fileuri;
|
%let _webin_fileuri1=&_webin_fileuri;
|
||||||
|
%let _webin_name1=&_webin_name;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
%if %symexist(sasjs_tables) %then %do;
|
/* if the sasjs_tables param is passed, we expect param based upload */
|
||||||
/* small volumes of non-special data are sent as params for responsiveness */
|
%if %length(&sasjs_tables.XX)>2 %then %do;
|
||||||
/* to do - deal with escaped values */
|
|
||||||
filename _sasjs "%sysfunc(pathname(work))/sasjs.lua";
|
filename _sasjs "%sysfunc(pathname(work))/sasjs.lua";
|
||||||
data _null_;
|
data _null_;
|
||||||
file _sasjs;
|
file _sasjs;
|
||||||
@@ -12051,6 +12057,7 @@ filename &fref1 clear;
|
|||||||
infile indata firstobs=2 dsd termstr=crlf ;
|
infile indata firstobs=2 dsd termstr=crlf ;
|
||||||
input &input_statement;
|
input &input_statement;
|
||||||
run;
|
run;
|
||||||
|
%let sasjs_tables=&sasjs_tables &&_webin_name&i;
|
||||||
%end;
|
%end;
|
||||||
%end;
|
%end;
|
||||||
%else %if &action=OPEN %then %do;
|
%else %if &action=OPEN %then %do;
|
||||||
|
|||||||
@@ -40,7 +40,9 @@
|
|||||||
* PROCJSON (default)
|
* PROCJSON (default)
|
||||||
* DATASTEP
|
* DATASTEP
|
||||||
|
|
||||||
@param dbg= Typically used with an _debug (numeric) option
|
@param dbg= DEPRECATED - was used to conditionally add PRETTY to
|
||||||
|
proc json but this can cause line truncation in large files.
|
||||||
|
|
||||||
|
|
||||||
@version 9.2
|
@version 9.2
|
||||||
@author Allan Bowe
|
@author Allan Bowe
|
||||||
@@ -66,9 +68,8 @@
|
|||||||
proc sql;drop table &tempds;
|
proc sql;drop table &tempds;
|
||||||
data &tempds /view=&tempds;set &ds;
|
data &tempds /view=&tempds;set &ds;
|
||||||
%if &fmt=N %then format _numeric_ best32.;;
|
%if &fmt=N %then format _numeric_ best32.;;
|
||||||
proc json out=&jref
|
proc json out=&jref pretty
|
||||||
%if &action=ARR %then nokeys ;
|
%if &action=ARR %then nokeys ;
|
||||||
%if &dbg ge 131 %then pretty ;
|
|
||||||
;export &tempds / nosastags fmtnumeric;
|
;export &tempds / nosastags fmtnumeric;
|
||||||
run;
|
run;
|
||||||
proc sql;drop view &tempds;
|
proc sql;drop view &tempds;
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ cat > $OUTFILE <<'EOL'
|
|||||||
'included' in SAS with just 2 lines of code:
|
'included' in SAS with just 2 lines of code:
|
||||||
|
|
||||||
filename mc url
|
filename mc url
|
||||||
"https://raw.githubusercontent.com/sasjs/core/master/macrocore.sas";
|
"https://raw.githubusercontent.com/sasjs/core/main/macrocore.sas";
|
||||||
%inc mc;
|
%inc mc;
|
||||||
|
|
||||||
The `build.sh` file in the https://github.com/sasjs/core repo
|
The `build.sh` file in the https://github.com/sasjs/core repo
|
||||||
|
|||||||
@@ -104,9 +104,8 @@ data _null_;
|
|||||||
put ' proc sql;drop table &tempds; ';
|
put ' proc sql;drop table &tempds; ';
|
||||||
put ' data &tempds /view=&tempds;set &ds; ';
|
put ' data &tempds /view=&tempds;set &ds; ';
|
||||||
put ' %if &fmt=N %then format _numeric_ best32.;; ';
|
put ' %if &fmt=N %then format _numeric_ best32.;; ';
|
||||||
put ' proc json out=&jref ';
|
put ' proc json out=&jref pretty ';
|
||||||
put ' %if &action=ARR %then nokeys ; ';
|
put ' %if &action=ARR %then nokeys ; ';
|
||||||
put ' %if &dbg ge 131 %then pretty ; ';
|
|
||||||
put ' ;export &tempds / nosastags fmtnumeric; ';
|
put ' ;export &tempds / nosastags fmtnumeric; ';
|
||||||
put ' run; ';
|
put ' run; ';
|
||||||
put ' proc sql;drop view &tempds; ';
|
put ' proc sql;drop view &tempds; ';
|
||||||
@@ -201,7 +200,8 @@ data _null_;
|
|||||||
put '%end; ';
|
put '%end; ';
|
||||||
put '%mend; ';
|
put '%mend; ';
|
||||||
put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=Y); ';
|
put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=Y); ';
|
||||||
put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug; ';
|
put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug ';
|
||||||
|
put ' sasjs_tables; ';
|
||||||
put '%local i tempds; ';
|
put '%local i tempds; ';
|
||||||
put ' ';
|
put ' ';
|
||||||
put '%if &action=FETCH %then %do; ';
|
put '%if &action=FETCH %then %do; ';
|
||||||
@@ -228,6 +228,7 @@ data _null_;
|
|||||||
put ' if _n_<20 then putlog _infile_; ';
|
put ' if _n_<20 then putlog _infile_; ';
|
||||||
put ' %end; ';
|
put ' %end; ';
|
||||||
put ' run; ';
|
put ' run; ';
|
||||||
|
put ' %let sasjs_tables=&sasjs_tables &&_webin_name&i; ';
|
||||||
put ' %end; ';
|
put ' %end; ';
|
||||||
put '%end; ';
|
put '%end; ';
|
||||||
put ' ';
|
put ' ';
|
||||||
|
|||||||
@@ -33,7 +33,8 @@
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=Y);
|
%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=Y);
|
||||||
%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug;
|
%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug
|
||||||
|
sasjs_tables;
|
||||||
%local i tempds;
|
%local i tempds;
|
||||||
|
|
||||||
%if &action=FETCH %then %do;
|
%if &action=FETCH %then %do;
|
||||||
@@ -60,6 +61,7 @@
|
|||||||
if _n_<20 then putlog _infile_;
|
if _n_<20 then putlog _infile_;
|
||||||
%end;
|
%end;
|
||||||
run;
|
run;
|
||||||
|
%let sasjs_tables=&sasjs_tables &&_webin_name&i;
|
||||||
%end;
|
%end;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
|
|||||||
@@ -241,9 +241,8 @@ data _null_;
|
|||||||
put ' proc sql;drop table &tempds; ';
|
put ' proc sql;drop table &tempds; ';
|
||||||
put ' data &tempds /view=&tempds;set &ds; ';
|
put ' data &tempds /view=&tempds;set &ds; ';
|
||||||
put ' %if &fmt=N %then format _numeric_ best32.;; ';
|
put ' %if &fmt=N %then format _numeric_ best32.;; ';
|
||||||
put ' proc json out=&jref ';
|
put ' proc json out=&jref pretty ';
|
||||||
put ' %if &action=ARR %then nokeys ; ';
|
put ' %if &action=ARR %then nokeys ; ';
|
||||||
put ' %if &dbg ge 131 %then pretty ; ';
|
|
||||||
put ' ;export &tempds / nosastags fmtnumeric; ';
|
put ' ;export &tempds / nosastags fmtnumeric; ';
|
||||||
put ' run; ';
|
put ' run; ';
|
||||||
put ' proc sql;drop view &tempds; ';
|
put ' proc sql;drop view &tempds; ';
|
||||||
@@ -338,7 +337,8 @@ data _null_;
|
|||||||
put '%end; ';
|
put '%end; ';
|
||||||
put '%mend; ';
|
put '%mend; ';
|
||||||
put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=Y); ';
|
put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=Y); ';
|
||||||
put '%global _webin_file_count _webin_fileuri _debug _omittextlog ; ';
|
put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name ';
|
||||||
|
put ' sasjs_tables; ';
|
||||||
put '%if %index("&_debug",log) %then %let _debug=131; ';
|
put '%if %index("&_debug",log) %then %let _debug=131; ';
|
||||||
put ' ';
|
put ' ';
|
||||||
put '%local i tempds; ';
|
put '%local i tempds; ';
|
||||||
@@ -352,11 +352,11 @@ data _null_;
|
|||||||
put ' %if not %symexist(_webin_fileuri1) %then %do; ';
|
put ' %if not %symexist(_webin_fileuri1) %then %do; ';
|
||||||
put ' %let _webin_file_count=%eval(&_webin_file_count+0); ';
|
put ' %let _webin_file_count=%eval(&_webin_file_count+0); ';
|
||||||
put ' %let _webin_fileuri1=&_webin_fileuri; ';
|
put ' %let _webin_fileuri1=&_webin_fileuri; ';
|
||||||
|
put ' %let _webin_name1=&_webin_name; ';
|
||||||
put ' %end; ';
|
put ' %end; ';
|
||||||
put ' ';
|
put ' ';
|
||||||
put ' %if %symexist(sasjs_tables) %then %do; ';
|
put ' /* if the sasjs_tables param is passed, we expect param based upload */ ';
|
||||||
put ' /* small volumes of non-special data are sent as params for responsiveness */ ';
|
put ' %if %length(&sasjs_tables.XX)>2 %then %do; ';
|
||||||
put ' /* to do - deal with escaped values */ ';
|
|
||||||
put ' filename _sasjs "%sysfunc(pathname(work))/sasjs.lua"; ';
|
put ' filename _sasjs "%sysfunc(pathname(work))/sasjs.lua"; ';
|
||||||
put ' data _null_; ';
|
put ' data _null_; ';
|
||||||
put ' file _sasjs; ';
|
put ' file _sasjs; ';
|
||||||
@@ -435,6 +435,7 @@ data _null_;
|
|||||||
put ' infile indata firstobs=2 dsd termstr=crlf ; ';
|
put ' infile indata firstobs=2 dsd termstr=crlf ; ';
|
||||||
put ' input &input_statement; ';
|
put ' input &input_statement; ';
|
||||||
put ' run; ';
|
put ' run; ';
|
||||||
|
put ' %let sasjs_tables=&sasjs_tables &&_webin_name&i; ';
|
||||||
put ' %end; ';
|
put ' %end; ';
|
||||||
put '%end; ';
|
put '%end; ';
|
||||||
put '%else %if &action=OPEN %then %do; ';
|
put '%else %if &action=OPEN %then %do; ';
|
||||||
|
|||||||
@@ -36,7 +36,8 @@
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=Y);
|
%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=Y);
|
||||||
%global _webin_file_count _webin_fileuri _debug _omittextlog ;
|
%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name
|
||||||
|
sasjs_tables;
|
||||||
%if %index("&_debug",log) %then %let _debug=131;
|
%if %index("&_debug",log) %then %let _debug=131;
|
||||||
|
|
||||||
%local i tempds;
|
%local i tempds;
|
||||||
@@ -50,11 +51,11 @@
|
|||||||
%if not %symexist(_webin_fileuri1) %then %do;
|
%if not %symexist(_webin_fileuri1) %then %do;
|
||||||
%let _webin_file_count=%eval(&_webin_file_count+0);
|
%let _webin_file_count=%eval(&_webin_file_count+0);
|
||||||
%let _webin_fileuri1=&_webin_fileuri;
|
%let _webin_fileuri1=&_webin_fileuri;
|
||||||
|
%let _webin_name1=&_webin_name;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
%if %symexist(sasjs_tables) %then %do;
|
/* if the sasjs_tables param is passed, we expect param based upload */
|
||||||
/* small volumes of non-special data are sent as params for responsiveness */
|
%if %length(&sasjs_tables.XX)>2 %then %do;
|
||||||
/* to do - deal with escaped values */
|
|
||||||
filename _sasjs "%sysfunc(pathname(work))/sasjs.lua";
|
filename _sasjs "%sysfunc(pathname(work))/sasjs.lua";
|
||||||
data _null_;
|
data _null_;
|
||||||
file _sasjs;
|
file _sasjs;
|
||||||
@@ -133,6 +134,7 @@
|
|||||||
infile indata firstobs=2 dsd termstr=crlf ;
|
infile indata firstobs=2 dsd termstr=crlf ;
|
||||||
input &input_statement;
|
input &input_statement;
|
||||||
run;
|
run;
|
||||||
|
%let sasjs_tables=&sasjs_tables &&_webin_name&i;
|
||||||
%end;
|
%end;
|
||||||
%end;
|
%end;
|
||||||
%else %if &action=OPEN %then %do;
|
%else %if &action=OPEN %then %do;
|
||||||
|
|||||||
Reference in New Issue
Block a user