mirror of
https://github.com/yabwon/SAS_PACKAGES.git
synced 2026-01-07 23:10:06 +00:00
SAS Packages Framework, version 20231111
SAS Packages Framework, version 20231111
- new type: kmfsnip for keyboard macro abbreviations added to the framework
- documentation updated
SQLinDS package [ver. 2.3.0]
- KMF snippet added
- documentation updated
BasePlus package [ver. 1.34.0]
- update in unzipArch macro
- new zipArch macro added
- documentation updated
Packages regenerated with the latest version of SPF:
- SQLinDS package [ver. 2.3.0]
- BasePlus package [ver. 1.34.0]
- DFA package [ver. 0.5.7]
- GSM package [ver. 0.22.1]
- macroArray package [ver. 1.2.1]
- dynMacroArray package [ver. 0.2.7]
This commit is contained in:
@@ -10,7 +10,7 @@ Packages:
|
||||
|
||||
---
|
||||
|
||||
- **SQLinDS**\[2.2.7\], based on Mike Rhoads' article *Use the Full Power of SAS in Your Function-Style Macros*. The package allows to write SQL queries in the data step, e.g.
|
||||
- **SQLinDS**\[2.3.0\], based on Mike Rhoads' article *Use the Full Power of SAS in Your Function-Style Macros*. The package allows to write SQL queries in the data step, e.g.
|
||||
```sas
|
||||
data class;
|
||||
set %SQL(
|
||||
@@ -22,13 +22,13 @@ data class;
|
||||
WH = weight + height;
|
||||
run;
|
||||
```
|
||||
SHA256 digest for SQLinDS: F*42DC179E1D2B946AD519C4EC04A068061B312E021C3F4BC4826D2775E116E1B9
|
||||
SHA256 digest for SQLinDS: F*3C010734B76CA7459C4D35087C899121011CD4AA2932B56335FF11A805C8EF8D
|
||||
|
||||
[Documentation for SQLinDS](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/sqlinds.md "Documentation for SQLinDS")
|
||||
|
||||
---
|
||||
|
||||
- **DFA** (Dynamic Function Arrays)\[0.5.6\], contains set of macros and FCMP functions which implement: a dynamically allocated array, a stack, a fifo queue, an ordered stack, and a priority queue, run `%helpPackage(DFA,createDFArray)` to find examples.
|
||||
- **DFA** (Dynamic Function Arrays)\[0.5.7\], contains set of macros and FCMP functions which implement: a dynamically allocated array, a stack, a fifo queue, an ordered stack, and a priority queue, run `%helpPackage(DFA,createDFArray)` to find examples.
|
||||
```sas
|
||||
%createDFArray(ArrDynamic, resizefactor=17);
|
||||
|
||||
@@ -55,13 +55,13 @@ data _null_;
|
||||
end;
|
||||
run;
|
||||
```
|
||||
SHA256 digest for DFA: F*09EA5201360922A91A9EEE72F4567792E9CFDFB591BA33419E2BF2B31D9B7C62
|
||||
SHA256 digest for DFA: F*012375D87F66EB3A7BF5DDD0CC5AEE28851733EE33CC63231DF9045BEB958168
|
||||
|
||||
[Documentation for DFA](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/dfa.md "Documentation for DFA")
|
||||
|
||||
---
|
||||
|
||||
- **macroArray**\[1.2.0\], implementation of an array concept in a macro language, e.g.
|
||||
- **macroArray**\[1.2.1\], implementation of an array concept in a macro language, e.g.
|
||||
```sas
|
||||
%array(ABC[17] (111:127), macarray=Y);
|
||||
|
||||
@@ -80,13 +80,13 @@ SHA256 digest for DFA: F*09EA5201360922A91A9EEE72F4567792E9CFDFB591BA33419E2BF2B
|
||||
which = 1:H:2
|
||||
);
|
||||
```
|
||||
SHA256 digest for macroArray: F*8689194590698F9A00B57FB37BE3CA8D7330F16B3E591CEAF49E6BE0B70D61D0
|
||||
SHA256 digest for macroArray: F*2A108D121D4DACAA8752E681301371F80F0500B2EE28A9E3B39678415BCBD6B2
|
||||
|
||||
[Documentation for macroArray](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/macroarray.md "Documentation for macroArray")
|
||||
|
||||
---
|
||||
|
||||
- **BasePlus**\[1.33.0\] adds a bunch of functionalities I am missing in BASE SAS, such as:
|
||||
- **BasePlus**\[1.34.0\] adds a bunch of functionalities I am missing in BASE SAS, such as:
|
||||
```sas
|
||||
call arrMissToRight(myArray);
|
||||
call arrFillMiss(17, myArray);
|
||||
@@ -114,13 +114,13 @@ format x bool.;
|
||||
|
||||
%put %monthShift(2023,1,-5);
|
||||
```
|
||||
SHA256 digest for BasePlus: F*6214654B4575DC8E4BA3CF032924862C2F69A03A6384872BAA9F774EDF6A8DDA
|
||||
SHA256 digest for BasePlus: F*D84CE41A550DC2D5C092C70C04A796E8329F34087A603BEF0CD366910C162E80
|
||||
|
||||
[Documentation for BasePlus](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/baseplus.md "Documentation for BasePlus")
|
||||
|
||||
---
|
||||
|
||||
- **GSM** (Generate Secure Macros)\[0.22.0\], package allows
|
||||
- **GSM** (Generate Secure Macros)\[0.22.1\], package allows
|
||||
to create secured macros stored in SAS Proc FCMP functions.
|
||||
The dataset with functions can be shared between different operating systems
|
||||
and allows to generate macros on site without showing their code.
|
||||
@@ -129,14 +129,14 @@ SHA256 digest for BasePlus: F*6214654B4575DC8E4BA3CF032924862C2F69A03A6384872BAA
|
||||
|
||||
[The WUSS 2023 Conference article describing the idea](https://www.wuss.org/proceedings/2023/WUSS-2023-Paper-189.pdf "Article about the idea GSM")
|
||||
|
||||
SHA256 digest for GSM: F*8D80AEB2DB7A4531BA124240E7A12EBE717293048561A877EB5B6B039BD11D18
|
||||
SHA256 digest for GSM: F*80197391195C3EC41BD436DF0C8802D3920E4D22B64009A7DE872FBDF8D4B86E
|
||||
|
||||
[Documentation for GSM](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/gsm.md "Documentation for GSM")
|
||||
|
||||
---
|
||||
|
||||
- **dynMacroArray**\[0.2.6\], set of macros (wrappers for a hash table) emulating dynamic array in the data step (macro predecessor of DFA). Development of this package is currently on hold.
|
||||
- **dynMacroArray**\[0.2.7\], set of macros (wrappers for a hash table) emulating dynamic array in the data step (macro predecessor of DFA). Development of this package is currently on hold.
|
||||
|
||||
SHA256 digest for dynMacroArray: F*F50BEDB542D96B07C763EAB7549FBC5F08ED389DC2338BFAAEBFBD1FD20E22B6
|
||||
SHA256 digest for dynMacroArray: F*C1644842102C87522E22513744B249027306A833AF7951E51D1760FF28656C16
|
||||
|
||||
---
|
||||
|
||||
@@ -1,3 +1,11 @@
|
||||
/* 20231111 */
|
||||
BasePlus: F*D84CE41A550DC2D5C092C70C04A796E8329F34087A603BEF0CD366910C162E80
|
||||
DFA: F*012375D87F66EB3A7BF5DDD0CC5AEE28851733EE33CC63231DF9045BEB958168
|
||||
dynMacroArray: F*C1644842102C87522E22513744B249027306A833AF7951E51D1760FF28656C16
|
||||
GSM: F*80197391195C3EC41BD436DF0C8802D3920E4D22B64009A7DE872FBDF8D4B86E
|
||||
macroArray: F*2A108D121D4DACAA8752E681301371F80F0500B2EE28A9E3B39678415BCBD6B2
|
||||
SQLinDS: F*3C010734B76CA7459C4D35087C899121011CD4AA2932B56335FF11A805C8EF8D
|
||||
|
||||
/* 20231107 */
|
||||
BasePlus: F*6214654B4575DC8E4BA3CF032924862C2F69A03A6384872BAA9F774EDF6A8DDA
|
||||
GSM: F*8D80AEB2DB7A4531BA124240E7A12EBE717293048561A877EB5B6B039BD11D18
|
||||
|
||||
@@ -45,7 +45,8 @@
|
||||
* [`%RainCloudPlot()` macro](#raincloudplot-macro)
|
||||
* [`%zipLibrary()` macro](#ziplibrary-macro)
|
||||
* [`%unzipLibrary()` macro](#unziplibrary-macro)
|
||||
* [`%unzipArch()` macro](#unzipatch-macro)
|
||||
* [`%zipArch()` macro](#ziparch-macro)
|
||||
* [`%unzipArch()` macro](#unziparch-macro)
|
||||
* [`%LDSN()` macro](#ldsn-macro)
|
||||
* [`%LDsNm()` macro](#ldsnm-macro)
|
||||
* [`%LVarNm()` macro](#lvarnm-macro)
|
||||
@@ -79,7 +80,7 @@
|
||||
|
||||
---
|
||||
|
||||
# The BasePlus package [ver. 1.33.0] <a name="baseplus-package"></a> ###############################################
|
||||
# The BasePlus package [ver. 1.34.0] <a name="baseplus-package"></a> ###############################################
|
||||
|
||||
The **BasePlus** package implements useful
|
||||
functions and functionalities I miss in the BASE SAS.
|
||||
@@ -355,82 +356,128 @@ run;
|
||||
;
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
**EXAMPLE 25** Zipping and unzipping directories:
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
|
||||
options dlCreateDir;
|
||||
libname arch1 "%workPath()/testArch1";
|
||||
libname arch2 "%workPath()/testArch2";
|
||||
|
||||
filename arch1 "%workPath()/testArch1";
|
||||
|
||||
data _null_;
|
||||
file arch1(test1.txt);
|
||||
put "text for test file 1";
|
||||
data _null_;
|
||||
file arch1(test2.txt);
|
||||
put "text for test file 2";
|
||||
data _null_;
|
||||
file arch1(test3.txt);
|
||||
put "text for test file 3";
|
||||
run;
|
||||
|
||||
data arch1.class(index=(name));
|
||||
set sashelp.class;
|
||||
run;
|
||||
data arch1.cars(index=(model));
|
||||
set sashelp.cars;
|
||||
run;
|
||||
|
||||
%zipArch(
|
||||
archName2.zip
|
||||
, pathRef = arch1
|
||||
, target = %workPath()/testArch2
|
||||
, list = 1
|
||||
, overwrite = 1
|
||||
)
|
||||
|
||||
%unzipArch(
|
||||
archName2.zip
|
||||
, path = %workPath()/testArch2
|
||||
, target = %workPath()/testArch2
|
||||
, clean=1
|
||||
, list=1
|
||||
);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
---
|
||||
|
||||
Package contains:
|
||||
1. macro bppipe
|
||||
2. macro deduplistc
|
||||
3. macro deduplistp
|
||||
4. macro deduplists
|
||||
5. macro deduplistx
|
||||
6. macro dirsandfiles
|
||||
7. macro functionexists
|
||||
8. macro getvars
|
||||
9. macro intslist
|
||||
10. macro ldsn
|
||||
11. macro ldsnm
|
||||
12. macro lvarnm
|
||||
13. macro lvarnmlab
|
||||
14. macro qdeduplistx
|
||||
15. macro qgetvars
|
||||
16. macro qzipevalf
|
||||
17. macro raincloudplot
|
||||
18. macro repeattxt
|
||||
19. macro splitdsintoblocks
|
||||
20. macro splitdsintoparts
|
||||
21. macro symdelglobal
|
||||
22. macro unziparch
|
||||
23. macro unziplibrary
|
||||
24. macro zipevalf
|
||||
25. macro ziplibrary
|
||||
26. format bool
|
||||
27. format boolz
|
||||
28. format ceil
|
||||
29. format floor
|
||||
30. format int
|
||||
31. function arrfill
|
||||
32. function arrfillc
|
||||
33. function arrmissfill
|
||||
34. function arrmissfillc
|
||||
35. function arrmisstoleft
|
||||
36. function arrmisstoleftc
|
||||
37. function arrmisstoright
|
||||
38. function arrmisstorightc
|
||||
39. function bracketsc
|
||||
40. function bracketsn
|
||||
41. function catxfc
|
||||
42. function catxfi
|
||||
43. function catxfj
|
||||
44. function catxfn
|
||||
45. function deldataset
|
||||
46. function semicolonc
|
||||
47. function semicolonn
|
||||
48. format brackets
|
||||
49. format semicolon
|
||||
50. proto qsortincbyprocproto
|
||||
51. function frommissingtonumberbs
|
||||
52. function fromnumbertomissing
|
||||
53. function quicksort4notmiss
|
||||
54. function quicksorthash
|
||||
55. function quicksorthashsddv
|
||||
56. function quicksortlight
|
||||
57. macro date
|
||||
58. macro datetime
|
||||
59. macro filepath
|
||||
60. macro finddswithvarval
|
||||
61. macro fmt
|
||||
62. macro gettitle
|
||||
63. macro infmt
|
||||
64. macro letters
|
||||
65. macro libpath
|
||||
66. macro minclude
|
||||
67. macro monthshift
|
||||
68. macro replist
|
||||
69. macro time
|
||||
70. macro today
|
||||
71. macro translate
|
||||
72. macro tranwrd
|
||||
73. macro workpath
|
||||
1. macro bppipe
|
||||
2. macro deduplistc
|
||||
3. macro deduplistp
|
||||
4. macro deduplists
|
||||
5. macro deduplistx
|
||||
6. macro dirsandfiles
|
||||
7. macro functionexists
|
||||
8. macro getvars
|
||||
9. macro intslist
|
||||
10. macro ldsn
|
||||
11. macro ldsnm
|
||||
12. macro lvarnm
|
||||
13. macro lvarnmlab
|
||||
14. macro qdeduplistx
|
||||
15. macro qgetvars
|
||||
16. macro qzipevalf
|
||||
17. macro raincloudplot
|
||||
18. macro repeattxt
|
||||
19. macro splitdsintoblocks
|
||||
20. macro splitdsintoparts
|
||||
21. macro symdelglobal
|
||||
22. macro unziparch
|
||||
23. macro unziplibrary
|
||||
24. macro ziparch
|
||||
25. macro zipevalf
|
||||
26. macro ziplibrary
|
||||
27. format bool
|
||||
28. format boolz
|
||||
29. format ceil
|
||||
30. format floor
|
||||
31. format int
|
||||
32. functions arrfill
|
||||
33. functions arrfillc
|
||||
34. functions arrmissfill
|
||||
35. functions arrmissfillc
|
||||
36. functions arrmisstoleft
|
||||
37. functions arrmisstoleftc
|
||||
38. functions arrmisstoright
|
||||
39. functions arrmisstorightc
|
||||
40. functions bracketsc
|
||||
41. functions bracketsn
|
||||
42. functions catxfc
|
||||
43. functions catxfi
|
||||
44. functions catxfj
|
||||
45. functions catxfn
|
||||
46. functions deldataset
|
||||
47. functions semicolonc
|
||||
48. functions semicolonn
|
||||
49. format brackets
|
||||
50. format semicolon
|
||||
51. proto qsortincbyprocproto
|
||||
52. functions frommissingtonumberbs
|
||||
53. functions fromnumbertomissing
|
||||
54. functions quicksort4notmiss
|
||||
55. functions quicksorthash
|
||||
56. functions quicksorthashsddv
|
||||
57. functions quicksortlight
|
||||
58. macro date
|
||||
59. macro datetime
|
||||
60. macro filepath
|
||||
61. macro finddswithvarval
|
||||
62. macro fmt
|
||||
63. macro gettitle
|
||||
64. macro infmt
|
||||
65. macro letters
|
||||
66. macro libpath
|
||||
67. macro minclude
|
||||
68. macro monthshift
|
||||
69. macro replist
|
||||
70. macro time
|
||||
71. macro today
|
||||
72. macro translate
|
||||
73. macro tranwrd
|
||||
74. macro workpath
|
||||
|
||||
|
||||
|
||||
@@ -441,7 +488,7 @@ localization (only if additional content was deployed during the installation pr
|
||||
* SAS package generated by generatePackage, version 20231107 *
|
||||
|
||||
The SHA256 hash digest for package BasePlus:
|
||||
`F*6214654B4575DC8E4BA3CF032924862C2F69A03A6384872BAA9F774EDF6A8DDA`
|
||||
`F*D84CE41A550DC2D5C092C70C04A796E8329F34087A603BEF0CD366910C162E80`
|
||||
|
||||
---
|
||||
# Content description ############################################################################################
|
||||
@@ -3773,6 +3820,136 @@ run;
|
||||
|
||||
---
|
||||
|
||||
## >>> `%zipArch()` macro: <<< <a name="ziparch-macro"></a> #######################
|
||||
|
||||
The zipArch() macro allows to ZIP content of a directory.
|
||||
Macro is OS independent, the `XCMD` option is not required.
|
||||
|
||||
Content of zipped archive can be listed in the log.
|
||||
|
||||
Errors of decompression and are reported.
|
||||
|
||||
Macro **does not** include hidden files.
|
||||
|
||||
See examples below for the details.
|
||||
|
||||
### SYNTAX: ###################################################################
|
||||
|
||||
The basic syntax is the following, the `<...>` means optional parameters:
|
||||
~~~~~~~~~~~~~~~~~~~~~~~sas
|
||||
%zipArch(
|
||||
archName
|
||||
,path =
|
||||
<,pathRef=>
|
||||
<,target=>
|
||||
<,targetRef=>
|
||||
<,list=>
|
||||
<,overwrite=>
|
||||
<,dropList=>
|
||||
)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
**Arguments description**:
|
||||
|
||||
1. `archName` - *Required*, name of the archive to be generated.
|
||||
Name should be full, i.e., with the extension!
|
||||
|
||||
2. `path=` - *Required/Optional*, location of a directory to ZIP.
|
||||
The path should be provided unquoted.
|
||||
Has priority over the `pathRef` parameter.
|
||||
|
||||
* `pathRef=` - *Required/Optional*, fileref to location of a directory to ZIP.
|
||||
The reference **has** to be pointing to single directory.
|
||||
If provided with `path` - the `path` takes
|
||||
priority over the `pathRef` parameter.
|
||||
|
||||
* `target=` - *Optional*, a path pointing to target location where
|
||||
the archive will be generated.
|
||||
The path should be provided unquoted.
|
||||
Default value is `WORK` location.
|
||||
Has priority over the `targetRef` parameter.
|
||||
|
||||
* `targetRef=` - *Optional*, fileref to a path pointing to target location
|
||||
where the archive will be generated.
|
||||
The reference **has** to be pointing to single directory.
|
||||
If provided with `target` - the `target` takes
|
||||
priority over the `targetRef` parameter.
|
||||
|
||||
* `list = 0` - *Optional*, default value is `0`,
|
||||
indicates if zip content should be listed in the log.
|
||||
`1` means *yes*, `0` means *no*.
|
||||
|
||||
* `overwrite = 0` - *Optional*, default value is `0`,
|
||||
indicates if existing archive file should be overwritten.
|
||||
`1` means *yes*, `0` means *no*.
|
||||
|
||||
* `overwrite = 1` - *Technical*, default value is `1`,
|
||||
indicates if the "to-be-zipped-files-list"
|
||||
data set should be deleted.
|
||||
`1` means *yes*, `0` means *no*.
|
||||
|
||||
---
|
||||
|
||||
### EXAMPLES AND USECASES: ####################################################
|
||||
|
||||
**EXAMPLE 1.** Zip a directory . Example requires the `basePlus` package.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
|
||||
|
||||
options dlCreateDir;
|
||||
libname arch1 "%workPath()/testArch1";
|
||||
libname arch2 "%workPath()/testArch2";
|
||||
|
||||
filename arch1 "%workPath()/testArch1";
|
||||
|
||||
data _null_;
|
||||
file arch1(test1.txt);
|
||||
put "text for test file 1";
|
||||
data _null_;
|
||||
file arch1(test2.txt);
|
||||
put "text for test file 2";
|
||||
data _null_;
|
||||
file arch1(test3.txt);
|
||||
put "text for test file 3";
|
||||
run;
|
||||
|
||||
data arch1.class(index=(name));
|
||||
set sashelp.class;
|
||||
run;
|
||||
data arch1.cars(index=(model));
|
||||
set sashelp.cars;
|
||||
run;
|
||||
|
||||
|
||||
|
||||
%zipArch(
|
||||
archName1.zip
|
||||
, path = %workPath()/testArch1
|
||||
, list = 1
|
||||
, overwrite = 1
|
||||
|
||||
)
|
||||
|
||||
%zipArch(
|
||||
archName2.zip
|
||||
, pathRef = arch1
|
||||
, target = %workPath()/testArch2
|
||||
, list = 1
|
||||
, overwrite = 1
|
||||
)
|
||||
|
||||
|
||||
%unzipArch(
|
||||
archName2.zip
|
||||
, path = %workPath()/testArch2
|
||||
, target = %workPath()/testArch2
|
||||
, clean=1
|
||||
, list=1
|
||||
);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
---
|
||||
|
||||
## >>> `%unzipArch()` macro: <<< <a name="unziparch-macro"></a> #######################
|
||||
|
||||
The unzipArch() macro allows to unzip content of a ZIP archive.
|
||||
@@ -3795,7 +3972,9 @@ The basic syntax is the following, the `<...>` means optional parameters:
|
||||
%unzipArch(
|
||||
archName
|
||||
<,path=>
|
||||
<,pathRef=>
|
||||
<,target=>
|
||||
<,targetRef=>
|
||||
<,list=>
|
||||
<,clean=>
|
||||
)
|
||||
@@ -3804,17 +3983,24 @@ The basic syntax is the following, the `<...>` means optional parameters:
|
||||
**Arguments description**:
|
||||
|
||||
1. `archName` - *Required*, name of the ZIP archive to be extracted.
|
||||
Name should be full, i.e., with the extension.
|
||||
Name should be full, i.e., with the extension!
|
||||
|
||||
* `path=` - *Optional*, a path pointing to zipped file location.
|
||||
The path should be provided unquoted.
|
||||
Default value is `WORK` location.
|
||||
|
||||
* `pathRef=` - *Optional*, a fileref to path pointing to zipped file location.
|
||||
The `path`, if not null, has precedense over the `pathRef`.
|
||||
|
||||
* `target=` - *Optional*, a path pointing to target location where
|
||||
files will be extracted.
|
||||
The path should be provided unquoted.
|
||||
Default value is `WORK` location.
|
||||
|
||||
* `target=` - *Optional*, a fileref to path pointing to target location where
|
||||
files will be extracted.
|
||||
The `target`, if not null, has precedense over the `targetRef`.
|
||||
|
||||
* `list = 0` - *Optional*, default value is `0`,
|
||||
indicates if zip content should be listed in the log.
|
||||
`1` means *yes*, `0` means *no*.
|
||||
@@ -3850,15 +4036,21 @@ run;
|
||||
, list=1
|
||||
);
|
||||
|
||||
|
||||
|
||||
filename pR "%workPath()";
|
||||
|
||||
%unzipArch(
|
||||
testArch.zip
|
||||
, path = %workPath()
|
||||
, target = %workPath()
|
||||
, pathRef = pR
|
||||
, targetRef = pR
|
||||
, clean=1
|
||||
);
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
---
|
||||
|
||||
## >>> `%LDSN()` macro: <<< <a name="ldsn-macro"></a> #######################
|
||||
|
||||
The LDSN (Long DataSet Names) macro function
|
||||
|
||||
Binary file not shown.
@@ -18,7 +18,7 @@
|
||||
|
||||
---
|
||||
|
||||
# The DFA package [ver. 0.5.6] <a name="dfa-package"></a> ###############################################
|
||||
# The DFA package [ver. 0.5.7] <a name="dfa-package"></a> ###############################################
|
||||
|
||||
The **DFA** (a.k.a. *Dynamic Function Array*) package implements:
|
||||
- dynamic numeric and character arrays,
|
||||
@@ -52,10 +52,10 @@ Package contains:
|
||||
12. exec generatearrays
|
||||
13. clean generatearrays
|
||||
|
||||
*SAS package generated by generatePackage, version 20230905*
|
||||
*SAS package generated by generatePackage, version 20231111*
|
||||
|
||||
The SHA256 hash digest for package DFA:
|
||||
`F*09EA5201360922A91A9EEE72F4567792E9CFDFB591BA33419E2BF2B31D9B7C62`
|
||||
`F*012375D87F66EB3A7BF5DDD0CC5AEE28851733EE33CC63231DF9045BEB958168`
|
||||
|
||||
---
|
||||
# Content description ############################################################################################
|
||||
|
||||
BIN
packages/dfa.zip
BIN
packages/dfa.zip
Binary file not shown.
Binary file not shown.
@@ -8,7 +8,7 @@
|
||||
---
|
||||
|
||||
|
||||
# The GSM package [ver. 0.22.0] <a name="gsm-package"></a> ###############################################
|
||||
# The GSM package [ver. 0.22.1] <a name="gsm-package"></a> ###############################################
|
||||
|
||||
The **GSM** (a.k.a. *Generate Secure Macros*) package allows
|
||||
to create secured macros stored in SAS Proc FCMP functions.
|
||||
@@ -98,10 +98,10 @@ Package contains additional content, run: %loadPackageAddCnt(GSM) to load it
|
||||
or look for the gsm_AdditionalContent directory in the Packages fileref
|
||||
localization (only if additional content was deployed during the installation process).
|
||||
|
||||
*SAS package generated by generatePackage, version 20231107*
|
||||
*SAS package generated by generatePackage, version 20231111*
|
||||
|
||||
The SHA256 hash digest for package GSM:
|
||||
`F*8D80AEB2DB7A4531BA124240E7A12EBE717293048561A877EB5B6B039BD11D18`
|
||||
`F*80197391195C3EC41BD436DF0C8802D3920E4D22B64009A7DE872FBDF8D4B86E`
|
||||
|
||||
|
||||
## >>> `%GSM()` macro: <<< <a name="gsm-macro"></a> #######################
|
||||
|
||||
BIN
packages/gsm.zip
BIN
packages/gsm.zip
Binary file not shown.
@@ -19,7 +19,7 @@
|
||||
|
||||
---
|
||||
|
||||
# The macroArray package [ver. 1.2.0] <a name="macroarray-package"></a> ###############################################
|
||||
# The macroArray package [ver. 1.2.1] <a name="macroarray-package"></a> ###############################################
|
||||
|
||||
The **macroArray** package implements a macro array facility:
|
||||
- `%array()`,
|
||||
@@ -75,10 +75,10 @@ Package contains:
|
||||
Required SAS Components:
|
||||
*Base SAS Software*
|
||||
|
||||
*SAS package generated by generatePackage, version 20231107*
|
||||
*SAS package generated by generatePackage, version 20231111*
|
||||
|
||||
The SHA256 hash digest for package macroArray:
|
||||
`F*8689194590698F9A00B57FB37BE3CA8D7330F16B3E591CEAF49E6BE0B70D61D0`
|
||||
`F*2A108D121D4DACAA8752E681301371F80F0500B2EE28A9E3B39678415BCBD6B2`
|
||||
|
||||
---
|
||||
# Content description ############################################################################################
|
||||
|
||||
Binary file not shown.
@@ -8,7 +8,7 @@
|
||||
|
||||
---
|
||||
|
||||
# The SQLinDS package [ver. 2.2.7] <a name="sqlinds-package"></a> ###############################################
|
||||
# The SQLinDS package [ver. 2.3.0] <a name="sqlinds-package"></a> ###############################################
|
||||
|
||||
The **SQLinDS** package is an implementation of
|
||||
the *macro-function-sandwich* concept introduced in the
|
||||
@@ -35,8 +35,9 @@ SQLinDS package contains the following components:
|
||||
|
||||
1. `%SQL()` macro - the main package macro available for the User
|
||||
2. `dsSQL()` function (internal)
|
||||
3. `%dsSQL_inner()` macro (internal)
|
||||
3. `%dsSQL_inner()` macro (internal)
|
||||
4. Library `DSSQL` (created as a subdirectory of the `WORK` library)
|
||||
5. Optional KMF-abbreviations `sqlinds`
|
||||
|
||||
---
|
||||
|
||||
@@ -45,14 +46,19 @@ Package contains:
|
||||
2. macro dssql_inner
|
||||
3. macro sql
|
||||
4. function dssql
|
||||
5. kmfsnip sqlinds
|
||||
|
||||
Required SAS Components:
|
||||
*Base SAS Software*
|
||||
|
||||
*SAS package generated by generatePackage, version 20230905*
|
||||
Package contains additional content, run: %loadPackageAddCnt(SQLinDS) to load it
|
||||
or look for the sqlinds_AdditionalContent directory in the Packages fileref
|
||||
localization (only if additional content was deployed during the installation process).
|
||||
|
||||
*SAS package generated by generatePackage, version 20231111*
|
||||
|
||||
The SHA256 hash digest for package SQLinDS:
|
||||
`F*42DC179E1D2B946AD519C4EC04A068061B312E021C3F4BC4826D2775E116E1B9`
|
||||
`F*3C010734B76CA7459C4D35087C899121011CD4AA2932B56335FF11A805C8EF8D`
|
||||
|
||||
---
|
||||
# Content description ############################################################################################
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user