diff --git a/README.md b/README.md index d776c37..e7a25ab 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Short description of the SAS Packages Framework macros can be found [here](https - [SAS Global Forum 2020 V.E.](https://www.youtube.com/watch?v=qCkb-bx0Dv8&t=0s "SGF2020") (April 2020) - [Sasensei International Dojo](https://www.youtube.com/watch?v=BFhdUBQgjYQ&t=0s "SID no. 1") (April 2020) - [SAS dla Administratorów i Praktyków 2020](https://www.youtube.com/watch?v=mXuep2k48Z8&feature=youtu.be&t=0s "SASAiP2020") (October 2020, in Polish) - - [Boston Area SAS Users Group webinar](https://us02web.zoom.us/rec/share/p6ZpCsvc5YZDQGpLOOLOB4zyNGA4vjfjJcNhwaGQ7jKKR00Z_bmeCcBkcwkut6Pr.Q6UoueYAOcv6dPQf "BASUG") (November 2020) + - [Boston Area SAS Users Group webinar](https://www.basug.org/videos?wix-vod-video-id=78067e61413d43d3a6951974b3bc3014&wix-vod-comp-id=comp-klv807gt "BASUG") (November 2020) - [SAS Global Forum 2021 V.E.](https://www.youtube.com/watch?v=hqexaQtGw88 "SGF2021") (May 20th, 2021) --- @@ -144,7 +144,7 @@ SHA256 digest for macroArray: 849629D3AF3FE3AB45D86990E303F1D5E4D5F9F31C8ED6864C [Documentation for macroArray](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/macroarray.md "Documentation for macroArray") -- **BasePlus**\[0.991\] adds a bunch of functionalities I am missing in BASE SAS, such as: +- **BasePlus**\[0.992\] adds a bunch of functionalities I am missing in BASE SAS, such as: ```sas call arrMissToRight(myArray); call arrFillMiss(17, myArray); @@ -158,16 +158,16 @@ format x bool.; %put %getVars(sashelp.class, pattern = ght$, sep = +, varRange = _numeric_); ``` -SHA256 digest for BasePlus: A321A4BC54D444B82575EC5D443553A096557AD69DC171D578A330277E67637A +SHA256 digest for BasePlus: C9D26CAC2504634EF25F02B5BD04596B2F873E3C25E8CEDDD7F496A78B184E9F [Documentation for BasePlus](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/baseplus.md "Documentation for BasePlus") -- **GSM** (Generate Secure Macros)\[0.11\], package allows +- **GSM** (Generate Secure Macros)\[0.13\], 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. -SHA256 digest for GSM: 4322D79C382B9D58EF5E51AFD0856331F8B38B1B35AC21295DADFC43F81B2AF8 +SHA256 digest for GSM: 2FC239B5A2216D073826125999BFD64FBA32BFEA3EE6EA2B22EC64E8C1B04144 [Documentation for GSM](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/gsm.md "Documentation for GSM") diff --git a/packages/README.md b/packages/README.md index 8ffbdfc..8196de5 100644 --- a/packages/README.md +++ b/packages/README.md @@ -90,7 +90,7 @@ SHA256 digest for macroArray: 849629D3AF3FE3AB45D86990E303F1D5E4D5F9F31C8ED6864C --- -- **BasePlus**\[0.991\] adds a bunch of functionalities I am missing in BASE SAS, such as: +- **BasePlus**\[0.992\] adds a bunch of functionalities I am missing in BASE SAS, such as: ```sas call arrMissToRight(myArray); call arrFillMiss(17, myArray); @@ -104,18 +104,18 @@ format x bool.; %put %getVars(sashelp.class, pattern = ght$, sep = +, varRange = _numeric_); ``` -SHA256 digest for BasePlus: A321A4BC54D444B82575EC5D443553A096557AD69DC171D578A330277E67637A +SHA256 digest for BasePlus: C9D26CAC2504634EF25F02B5BD04596B2F873E3C25E8CEDDD7F496A78B184E9F [Documentation for BasePlus](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/baseplus.md "Documentation for BasePlus") --- -- **GSM** (Generate Secure Macros)\[0.11\], package allows +- **GSM** (Generate Secure Macros)\[0.13\], 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. -SHA256 digest for GSM: 4322D79C382B9D58EF5E51AFD0856331F8B38B1B35AC21295DADFC43F81B2AF8 +SHA256 digest for GSM: 2FC239B5A2216D073826125999BFD64FBA32BFEA3EE6EA2B22EC64E8C1B04144 [Documentation for GSM](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/gsm.md "Documentation for GSM") diff --git a/packages/SHA256_for_packages.txt b/packages/SHA256_for_packages.txt index 8cb9dbc..0ca9136 100644 --- a/packages/SHA256_for_packages.txt +++ b/packages/SHA256_for_packages.txt @@ -1,3 +1,12 @@ +/* 20210818 */ +BasePlus: C9D26CAC2504634EF25F02B5BD04596B2F873E3C25E8CEDDD7F496A78B184E9F + +/* 20210726 */ +GSM: 2FC239B5A2216D073826125999BFD64FBA32BFEA3EE6EA2B22EC64E8C1B04144 + +/* 20210722 */ +GSM: 311BCF510B7B189AE9A75C56C4D2F99F844114CC5AD32329FAD690BA1F10422A + /* 20210719 */ GSM: 4322D79C382B9D58EF5E51AFD0856331F8B38B1B35AC21295DADFC43F81B2AF8 diff --git a/packages/baseplus.md b/packages/baseplus.md index 5c758c6..c1ec220 100644 --- a/packages/baseplus.md +++ b/packages/baseplus.md @@ -41,12 +41,13 @@ * [`semicolonN()` function](#semicolonn-function) * [`%zipEvalf()` macro](#zipevalf-macro) * [`%QzipEvalf()` macro](#qzipevalf-macro) + * [`%functionExists()` macro](#functionexists-macro) * [License](#license) --- -# The BasePlus package [ver. 0.991] ############################################### +# The BasePlus package [ver. 0.992] ############################################### The **BasePlus** package implements useful functions and functionalities I miss in the BASE SAS. @@ -61,7 +62,8 @@ Kudos to all who inspired me to generate this package: *Mark Keintz*, *Paul Dorfman*, *Richard DeVenezia*, -*Christian Graffeuille*. +*Christian Graffeuille*, +*Allan Bowe*. --- @@ -179,52 +181,54 @@ Kudos to all who inspired me to generate this package: --- Package contains: -1. macro deduplistc -2. macro deduplistp -3. macro deduplists -4. macro deduplistx -5. macro getvars -6. macro qdeduplistx -7. macro qgetvars -8. macro qzipevalf -9. macro symdelglobal -10. macro zipevalf -11. format bool -12. format boolz -13. format ceil -14. format floor -15. format int -16. functions arrfill -17. functions arrfillc -18. functions arrmissfill -19. functions arrmissfillc -20. functions arrmisstoleft -21. functions arrmisstoleftc -22. functions arrmisstoright -23. functions arrmisstorightc -24. functions bracketsc -25. functions bracketsn -26. functions catxfc -27. functions catxfi -28. functions catxfj -29. functions catxfn -30. functions deldataset -31. functions semicolonc -32. functions semicolonn -33. format brackets -34. format semicolon -35. proto qsortincbyprocproto -36. functions frommissingtonumberbs -37. functions fromnumbertomissing -38. functions quicksort4notmiss -39. functions quicksorthash -40. functions quicksorthashsddv -41. functions quicksortlight +1. macro deduplistc +2. macro deduplistp +3. macro deduplists +4. macro deduplistx +5. macro functionexists +6. macro getvars +7. macro qdeduplistx +8. macro qgetvars +9. macro qzipevalf +10. macro symdelglobal +11. macro zipevalf +12. format bool +13. format boolz +14. format ceil +15. format floor +16. format int +17. functions arrfill +18. functions arrfillc +19. functions arrmissfill +20. functions arrmissfillc +21. functions arrmisstoleft +22. functions arrmisstoleftc +23. functions arrmisstoright +24. functions arrmisstorightc +25. functions bracketsc +26. functions bracketsn +27. functions catxfc +28. functions catxfi +29. functions catxfj +30. functions catxfn +31. functions deldataset +32. functions semicolonc +33. functions semicolonn +34. format brackets +35. format semicolon +36. proto qsortincbyprocproto +37. functions frommissingtonumberbs +38. functions fromnumbertomissing +39. functions quicksort4notmiss +40. functions quicksorthash +41. functions quicksorthashsddv +42. functions quicksortlight + *SAS package generated by generatePackage, version 20210109* The SHA256 hash digest for package BasePlus: -`A321A4BC54D444B82575EC5D443553A096557AD69DC171D578A330277E67637A` +`C9D26CAC2504634EF25F02B5BD04596B2F873E3C25E8CEDDD7F496A78B184E9F` --- # Content description ############################################################################################ @@ -2929,7 +2933,42 @@ run; --- +## >>> `%functionExists()` macro: <<< ####################### +The functionExists() macro function tests +if given funcion exists in the SAS session. +The `sashelp.vfunc` view is used. + +See examples below for the details. + +The `%functionExists()` macro executes like a pure macro code. + +The function is a result of cooperation with [Allan Bowe](https://www.linkedin.com/in/allanbowe/) + +### SYNTAX: ################################################################### + +The basic syntax is the following, the `<...>` means optional parameters: +~~~~~~~~~~~~~~~~~~~~~~~sas +%functionExists( + funName +) +~~~~~~~~~~~~~~~~~~~~~~~ + +**Arguments description**: + +1. `funName` - *Required*, the name of the function + existence of which you are testing. + +### EXAMPLES AND USECASES: #################################################### + +**EXAMPLE 1.** Test if function exists: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas + %put %functionExists(HASHING); + + %put %functionExists(COSsinLOG); +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +--- ## License #################################################################### diff --git a/packages/baseplus.zip b/packages/baseplus.zip index 159c594..cf927c8 100644 Binary files a/packages/baseplus.zip and b/packages/baseplus.zip differ diff --git a/packages/gsm.md b/packages/gsm.md index dbe6a06..d6cc564 100644 --- a/packages/gsm.md +++ b/packages/gsm.md @@ -8,7 +8,7 @@ --- -# The GSM package [ver. 0.11] ############################################### +# The GSM package [ver. 0.13] ############################################### The **GSM** (a.k.a. *Generate Secure Macros*) package allows to create secured macros stored in SAS Proc FCMP functions. @@ -68,7 +68,7 @@ Required SAS Components: * SAS package generated by generatePackage, version 20210528 * The SHA256 hash digest for package BasePlus: -`4322D79C382B9D58EF5E51AFD0856331F8B38B1B35AC21295DADFC43F81B2AF8` +`2FC239B5A2216D073826125999BFD64FBA32BFEA3EE6EA2B22EC64E8C1B04144` ## >>> `%GSM()` macro: <<< ####################### diff --git a/packages/gsm.zip b/packages/gsm.zip index f7e6fde..bb0273f 100644 Binary files a/packages/gsm.zip and b/packages/gsm.zip differ