diff --git a/SAS(r) packages - the way to share (a how to)- Paper 4725-2020.pdf b/SAS(r) packages - the way to share (a how to)- Paper 4725-2020.pdf index 44a4579..adb6d32 100644 Binary files a/SAS(r) packages - the way to share (a how to)- Paper 4725-2020.pdf and b/SAS(r) packages - the way to share (a how to)- Paper 4725-2020.pdf differ diff --git a/SQLinDS/generate_package_sqlinds.sas b/SQLinDS/generate_package_sqlinds.sas index 57dc68e..320f0c7 100644 --- a/SQLinDS/generate_package_sqlinds.sas +++ b/SQLinDS/generate_package_sqlinds.sas @@ -1,5 +1,7 @@ -%include "C:\SAS_PACKAGES\generatePackage.sas"; + +filename packages "C:\SAS_PACKAGES"; +%include packages(generatePackage.sas); ods html; %generatePackage(filesLocation=C:\SAS_PACKAGES_DEV\SQLinDS) diff --git a/dfa.zip b/dfa.zip index 768a9b4..25b81d9 100644 Binary files a/dfa.zip and b/dfa.zip differ diff --git a/dynmacroarray.zip b/dynmacroarray.zip index 2e86ee9..c79cda8 100644 Binary files a/dynmacroarray.zip and b/dynmacroarray.zip differ diff --git a/generatePackage.sas b/generatePackage.sas index 53e121c..a532e4c 100644 --- a/generatePackage.sas +++ b/generatePackage.sas @@ -749,7 +749,7 @@ data _null_; /* update SYSloadedPackages global macrovariable */ put ' data _null_ ; '; - put ' length SYSloadedPackages $ 32767; '; + put ' length SYSloadedPackages stringPCKG $ 32767; '; put ' if SYMEXIST("SYSloadedPackages") = 1 and SYMGLOBL("SYSloadedPackages") = 1 then '; put ' do; '; put ' do until(EOF); '; @@ -758,13 +758,23 @@ data _null_; put ' end; '; put ' SYSloadedPackages = cats("#", translate(strip(SYSloadedPackages), "#", " "), "#"); '; - put " if INDEX(lowcase(SYSloadedPackages), '#%lowcase(&packageName.(&packageVersion.))#') = 0 then "; + put " indexPCKG = INDEX(lowcase(SYSloadedPackages), '#%lowcase(&packageName.)('); "; + put " if indexPCKG = 0 then "; put ' do; '; put " SYSloadedPackages = catx('#', SYSloadedPackages, '&packageName.(&packageVersion.)'); "; put ' SYSloadedPackages = compbl(translate(SYSloadedPackages, " ", "#")); '; put ' call symputX("SYSloadedPackages", SYSloadedPackages, "G"); '; put ' put "NOTE: " SYSloadedPackages = ; '; put ' end ; '; + put " else "; + put ' do; '; + put " stringPCKG = scan(substr(SYSloadedPackages, indexPCKG+1), 1, '#'); "; + put ' SYSloadedPackages = compbl(tranwrd(SYSloadedPackages, strip(stringPCKG), "#")); '; + put " SYSloadedPackages = catx('#', SYSloadedPackages, '&packageName.(&packageVersion.)'); "; + put ' SYSloadedPackages = compbl(translate(SYSloadedPackages, " ", "#")); '; + put ' call symputX("SYSloadedPackages", SYSloadedPackages, "G"); '; + put ' put "NOTE: " SYSloadedPackages = ; '; + put ' end ; '; put ' end; '; put ' else '; put ' do; '; @@ -1262,7 +1272,9 @@ filename currdir "."; filename currdir list; /* if your package uses any other packages this points to their location */ +/* test if packages fileref exists and if do then use it */ /* if no one is provided the filesLocation is used as a repalacement */ +%if %bquote(&packages.)= %then %let packages=%sysfunc(pathname(packages)); %if %bquote(&packages.)= %then %let packages=&filesLocation.; filename packages "&packages."; filename packages list; diff --git a/macroarray.zip b/macroarray.zip index ab27fd9..11d7704 100644 Binary files a/macroarray.zip and b/macroarray.zip differ diff --git a/sqlinds.zip b/sqlinds.zip index ff3d582..ec2395a 100644 Binary files a/sqlinds.zip and b/sqlinds.zip differ