mirror of
https://github.com/sasjs/core.git
synced 2026-01-07 09:30:06 +00:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4b69e91362 | ||
|
|
8f9715035a | ||
|
|
35ddccaa16 | ||
|
|
cb0ddfb61c | ||
|
|
c3b6f06b3a | ||
|
|
8046d5a0b1 | ||
|
|
aed07f2943 | ||
|
|
5bf87a78b8 | ||
|
|
0851523d18 |
19
.gitpod.yml
19
.gitpod.yml
@@ -1,8 +1,25 @@
|
|||||||
tasks:
|
tasks:
|
||||||
- init: nvm install --latest-npm && npm i -g @sasjs/cli
|
- init: nvm install --lts && npm i -g @sasjs/cli
|
||||||
|
|
||||||
image:
|
image:
|
||||||
file: .gitpod.dockerfile
|
file: .gitpod.dockerfile
|
||||||
vscode:
|
vscode:
|
||||||
extensions:
|
extensions:
|
||||||
- sasjs.sasjs-for-vscode
|
- sasjs.sasjs-for-vscode
|
||||||
|
|
||||||
|
github:
|
||||||
|
prebuilds:
|
||||||
|
# enable for the master/default branch (defaults to true)
|
||||||
|
master: true
|
||||||
|
# enable for all branches in this repo (defaults to false)
|
||||||
|
branches: false
|
||||||
|
# enable for pull requests coming from this repo (defaults to true)
|
||||||
|
pullRequests: true
|
||||||
|
# enable for pull requests coming from forks (defaults to false)
|
||||||
|
pullRequestsFromForks: true
|
||||||
|
# add a "Review in Gitpod" button as a comment to pull requests (defaults to true)
|
||||||
|
addComment: true
|
||||||
|
# add a "Review in Gitpod" button to pull requests (defaults to false)
|
||||||
|
addBadge: false
|
||||||
|
# add a label once the prebuild is ready to pull requests (defaults to false)
|
||||||
|
addLabel: prebuilt-in-gitpod
|
||||||
32
all.sas
32
all.sas
@@ -975,7 +975,8 @@ https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/baseplus.md#functionex
|
|||||||
%end;
|
%end;
|
||||||
%end;
|
%end;
|
||||||
%else %do;
|
%else %do;
|
||||||
%put dataset &libds not opened! (rc=&dsid);
|
%put &sysmacroname: dataset &libds not opened! (rc=&dsid);
|
||||||
|
%put &sysmacroname: %sysfunc(sysmsg());
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
@@ -1037,7 +1038,11 @@ https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/baseplus.md#functionex
|
|||||||
%let vlen = %str( );
|
%let vlen = %str( );
|
||||||
%end;
|
%end;
|
||||||
%end;
|
%end;
|
||||||
%else %put dataset &libds not opened! (rc=&dsid);
|
%else %do;
|
||||||
|
%put &sysmacroname: dataset &libds not opened! (rc=&dsid);
|
||||||
|
%put &sysmacroname: %sysfunc(sysmsg());
|
||||||
|
%return;
|
||||||
|
%end;
|
||||||
|
|
||||||
/* Close dataset */
|
/* Close dataset */
|
||||||
%let rc = %sysfunc(close(&dsid));
|
%let rc = %sysfunc(close(&dsid));
|
||||||
@@ -1161,7 +1166,11 @@ returns:
|
|||||||
%let vnum = %str( );
|
%let vnum = %str( );
|
||||||
%end;
|
%end;
|
||||||
%end;
|
%end;
|
||||||
%else %put dataset &ds not opened! (rc=&dsid);
|
%else %do;
|
||||||
|
%put &sysmacroname: dataset &libds not opened! (rc=&dsid);
|
||||||
|
%put &sysmacroname: %sysfunc(sysmsg());
|
||||||
|
%return;
|
||||||
|
%end;
|
||||||
|
|
||||||
/* Close dataset */
|
/* Close dataset */
|
||||||
%let rc = %sysfunc(close(&dsid));
|
%let rc = %sysfunc(close(&dsid));
|
||||||
@@ -1210,7 +1219,11 @@ Usage:
|
|||||||
%let vtype = %str( );
|
%let vtype = %str( );
|
||||||
%end;
|
%end;
|
||||||
%end;
|
%end;
|
||||||
%else %put dataset &libds not opened! (rc=&dsid);
|
%else %do;
|
||||||
|
%put &sysmacroname: dataset &libds not opened! (rc=&dsid);
|
||||||
|
%put &sysmacroname: %sysfunc(sysmsg());
|
||||||
|
%return;
|
||||||
|
%end;
|
||||||
|
|
||||||
/* Close dataset */
|
/* Close dataset */
|
||||||
%let rc = %sysfunc(close(&dsid));
|
%let rc = %sysfunc(close(&dsid));
|
||||||
@@ -1817,7 +1830,7 @@ Usage:
|
|||||||
msg=cats('"',msg,'"');
|
msg=cats('"',msg,'"');
|
||||||
if symexist('_debug') then debug=quote(trim(symget('_debug')));
|
if symexist('_debug') then debug=quote(trim(symget('_debug')));
|
||||||
else debug='""';
|
else debug='""';
|
||||||
if debug ge '"131"' then put '>>weboutBEGIN<<';
|
put '>>weboutBEGIN<<';
|
||||||
put '{"START_DTTM" : "' "%sysfunc(datetime(),datetime20.3)" '"';
|
put '{"START_DTTM" : "' "%sysfunc(datetime(),datetime20.3)" '"';
|
||||||
put ',"sasjsAbort" : [{';
|
put ',"sasjsAbort" : [{';
|
||||||
put ' "MSG":' msg ;
|
put ' "MSG":' msg ;
|
||||||
@@ -1849,7 +1862,7 @@ Usage:
|
|||||||
put ",""SYSWARNINGTEXT"" : " syswarningtext;
|
put ",""SYSWARNINGTEXT"" : " syswarningtext;
|
||||||
put ',"END_DTTM" : "' "%sysfunc(datetime(),datetime20.3)" '" ';
|
put ',"END_DTTM" : "' "%sysfunc(datetime(),datetime20.3)" '" ';
|
||||||
put "}" @;
|
put "}" @;
|
||||||
if debug ge '"131"' then put '>>weboutEND<<';
|
put '>>weboutEND<<';
|
||||||
run;
|
run;
|
||||||
|
|
||||||
%put _all_;
|
%put _all_;
|
||||||
@@ -4453,8 +4466,11 @@ create table &outds as
|
|||||||
on upcase(a.TABLE_CATALOG)=upcase(b.TABLE_CATALOG)
|
on upcase(a.TABLE_CATALOG)=upcase(b.TABLE_CATALOG)
|
||||||
and upcase(a.TABLE_NAME)=upcase(b.TABLE_NAME)
|
and upcase(a.TABLE_NAME)=upcase(b.TABLE_NAME)
|
||||||
and a.constraint_name=b.constraint_name
|
and a.constraint_name=b.constraint_name
|
||||||
where upcase(a.TABLE_CATALOG)="&lib"
|
/**
|
||||||
and upcase(b.TABLE_CATALOG)="&lib"
|
* We cannot apply this clause to the underlying dictionary table. See:
|
||||||
|
* https://communities.sas.com/t5/SAS-Programming/Unexpected-Where-Clause-behaviour-in-dictionary-TABLE/m-p/771554#M244867
|
||||||
|
*/
|
||||||
|
where calculated libref="&lib"
|
||||||
%if "&ds" ne "" %then %do;
|
%if "&ds" ne "" %then %do;
|
||||||
and upcase(a.TABLE_NAME)="&ds"
|
and upcase(a.TABLE_NAME)="&ds"
|
||||||
and upcase(b.TABLE_NAME)="&ds"
|
and upcase(b.TABLE_NAME)="&ds"
|
||||||
|
|||||||
@@ -51,7 +51,8 @@
|
|||||||
%end;
|
%end;
|
||||||
%end;
|
%end;
|
||||||
%else %do;
|
%else %do;
|
||||||
%put dataset &libds not opened! (rc=&dsid);
|
%put &sysmacroname: dataset &libds not opened! (rc=&dsid);
|
||||||
|
%put &sysmacroname: %sysfunc(sysmsg());
|
||||||
%return;
|
%return;
|
||||||
%end;
|
%end;
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,11 @@
|
|||||||
%let vlen = %str( );
|
%let vlen = %str( );
|
||||||
%end;
|
%end;
|
||||||
%end;
|
%end;
|
||||||
%else %put dataset &libds not opened! (rc=&dsid);
|
%else %do;
|
||||||
|
%put &sysmacroname: dataset &libds not opened! (rc=&dsid);
|
||||||
|
%put &sysmacroname: %sysfunc(sysmsg());
|
||||||
|
%return;
|
||||||
|
%end;
|
||||||
|
|
||||||
/* Close dataset */
|
/* Close dataset */
|
||||||
%let rc = %sysfunc(close(&dsid));
|
%let rc = %sysfunc(close(&dsid));
|
||||||
|
|||||||
@@ -43,7 +43,11 @@ returns:
|
|||||||
%let vnum = %str( );
|
%let vnum = %str( );
|
||||||
%end;
|
%end;
|
||||||
%end;
|
%end;
|
||||||
%else %put dataset &ds not opened! (rc=&dsid);
|
%else %do;
|
||||||
|
%put &sysmacroname: dataset &libds not opened! (rc=&dsid);
|
||||||
|
%put &sysmacroname: %sysfunc(sysmsg());
|
||||||
|
%return;
|
||||||
|
%end;
|
||||||
|
|
||||||
/* Close dataset */
|
/* Close dataset */
|
||||||
%let rc = %sysfunc(close(&dsid));
|
%let rc = %sysfunc(close(&dsid));
|
||||||
|
|||||||
@@ -39,7 +39,11 @@ Usage:
|
|||||||
%let vtype = %str( );
|
%let vtype = %str( );
|
||||||
%end;
|
%end;
|
||||||
%end;
|
%end;
|
||||||
%else %put dataset &libds not opened! (rc=&dsid);
|
%else %do;
|
||||||
|
%put &sysmacroname: dataset &libds not opened! (rc=&dsid);
|
||||||
|
%put &sysmacroname: %sysfunc(sysmsg());
|
||||||
|
%return;
|
||||||
|
%end;
|
||||||
|
|
||||||
/* Close dataset */
|
/* Close dataset */
|
||||||
%let rc = %sysfunc(close(&dsid));
|
%let rc = %sysfunc(close(&dsid));
|
||||||
|
|||||||
@@ -169,7 +169,7 @@
|
|||||||
msg=cats('"',msg,'"');
|
msg=cats('"',msg,'"');
|
||||||
if symexist('_debug') then debug=quote(trim(symget('_debug')));
|
if symexist('_debug') then debug=quote(trim(symget('_debug')));
|
||||||
else debug='""';
|
else debug='""';
|
||||||
if debug ge '"131"' then put '>>weboutBEGIN<<';
|
put '>>weboutBEGIN<<';
|
||||||
put '{"START_DTTM" : "' "%sysfunc(datetime(),datetime20.3)" '"';
|
put '{"START_DTTM" : "' "%sysfunc(datetime(),datetime20.3)" '"';
|
||||||
put ',"sasjsAbort" : [{';
|
put ',"sasjsAbort" : [{';
|
||||||
put ' "MSG":' msg ;
|
put ' "MSG":' msg ;
|
||||||
@@ -201,7 +201,7 @@
|
|||||||
put ",""SYSWARNINGTEXT"" : " syswarningtext;
|
put ",""SYSWARNINGTEXT"" : " syswarningtext;
|
||||||
put ',"END_DTTM" : "' "%sysfunc(datetime(),datetime20.3)" '" ';
|
put ',"END_DTTM" : "' "%sysfunc(datetime(),datetime20.3)" '" ';
|
||||||
put "}" @;
|
put "}" @;
|
||||||
if debug ge '"131"' then put '>>weboutEND<<';
|
put '>>weboutEND<<';
|
||||||
run;
|
run;
|
||||||
|
|
||||||
%put _all_;
|
%put _all_;
|
||||||
|
|||||||
@@ -49,8 +49,11 @@ create table &outds as
|
|||||||
on upcase(a.TABLE_CATALOG)=upcase(b.TABLE_CATALOG)
|
on upcase(a.TABLE_CATALOG)=upcase(b.TABLE_CATALOG)
|
||||||
and upcase(a.TABLE_NAME)=upcase(b.TABLE_NAME)
|
and upcase(a.TABLE_NAME)=upcase(b.TABLE_NAME)
|
||||||
and a.constraint_name=b.constraint_name
|
and a.constraint_name=b.constraint_name
|
||||||
where upcase(a.TABLE_CATALOG)="&lib"
|
/**
|
||||||
and upcase(b.TABLE_CATALOG)="&lib"
|
* We cannot apply this clause to the underlying dictionary table. See:
|
||||||
|
* https://communities.sas.com/t5/SAS-Programming/Unexpected-Where-Clause-behaviour-in-dictionary-TABLE/m-p/771554#M244867
|
||||||
|
*/
|
||||||
|
where calculated libref="&lib"
|
||||||
%if "&ds" ne "" %then %do;
|
%if "&ds" ne "" %then %do;
|
||||||
and upcase(a.TABLE_NAME)="&ds"
|
and upcase(a.TABLE_NAME)="&ds"
|
||||||
and upcase(b.TABLE_NAME)="&ds"
|
and upcase(b.TABLE_NAME)="&ds"
|
||||||
|
|||||||
1256
package-lock.json
generated
1256
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -33,6 +33,6 @@
|
|||||||
"prepare": "git rev-parse --git-dir && git config core.hooksPath ./.git-hooks || true"
|
"prepare": "git rev-parse --git-dir && git config core.hooksPath ./.git-hooks || true"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@sasjs/cli": "^2.37.8"
|
"@sasjs/cli": "^2.38.8"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,10 @@
|
|||||||
"appLoc": "/Shared Data/temp/macrocore",
|
"appLoc": "/Shared Data/temp/macrocore",
|
||||||
"macroFolders": [
|
"macroFolders": [
|
||||||
"tests/sas9only"
|
"tests/sas9only"
|
||||||
]
|
],
|
||||||
|
"deployConfig": {
|
||||||
|
"deployServicePack": true
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "docsonly",
|
"name": "docsonly",
|
||||||
|
|||||||
29
tests/crossplatform/mp_getconstraints.test.sas
Normal file
29
tests/crossplatform/mp_getconstraints.test.sas
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
/**
|
||||||
|
@file
|
||||||
|
@brief Testing mp_getconstraints.sas macro
|
||||||
|
|
||||||
|
<h4> SAS Macros </h4>
|
||||||
|
@li mf_nobs.sas
|
||||||
|
@li mp_getconstraints.sas
|
||||||
|
@li mp_assert.sas
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
proc sql;
|
||||||
|
create table work.example(
|
||||||
|
TX_FROM float format=datetime19.,
|
||||||
|
DD_TYPE char(16),
|
||||||
|
DD_SOURCE char(2048),
|
||||||
|
DD_SHORTDESC char(256),
|
||||||
|
constraint pk primary key(tx_from, dd_type,dd_source),
|
||||||
|
constraint unq unique(tx_from, dd_type),
|
||||||
|
constraint nnn not null(DD_SHORTDESC)
|
||||||
|
);
|
||||||
|
|
||||||
|
%mp_getconstraints(lib=work,ds=example,outds=work.constraints)
|
||||||
|
|
||||||
|
%mp_assert(
|
||||||
|
iftrue=(%mf_nobs(work.constraints)=6),
|
||||||
|
desc=Output table work.constraints created with correct number of records,
|
||||||
|
outds=work.test_results
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user