can anyone help me see if there's anything that can be changed in the Autoexec file below that can solve this issue? 1 The SAS System 09:14 Tuesday, October 22, 2019
NOTE: Copyright (c) 2016 by SAS Institute Inc., Cary, NC, USA.
NOTE: SAS (r) Proprietary Software 9.4 (TS1M5)
Licensed to *****
NOTE: This session is executing on the X64_SRV16 platform.
NOTE: Updated analytical products:
SAS/STAT 14.3
NOTE: Additional host information:
X64_SRV16 WIN 10.0.14393 Server
NOTE: SAS Initialization used (Total process time):
real time 0.01 seconds
cpu time 0.01 seconds
NOTE: The autoexec file, D:\SAS\Config\Lev1\SASApp\WorkspaceServer\autoexec.sas, was executed at server initialization.
1 The SAS System 09:14 Tuesday, October 22, 2019
1 options validvarname=ANY validmemname=EXTEND;
2 The SAS System 09:14 Tuesday, October 22, 2019
2 /* -------------------------------------------------------- */
3 /* Check format search path to see if it's the default value
4 If so, then we'll add EGTASK and SASUSER so that user-defined formats
5 will work when created with the Create Format task
6 If FMTSEARCH is already different from the supplied default,
7 Create Format task might place new formats in a library that won't be searched */
8 /* -------------------------------------------------------- */
9 %macro checkfmt;
10 %if %UPCASE(%sysfunc(getoption(fmtsearch))) eq (WORK LIBRARY) %then
11 OPTIONS FMTSEARCH=(WORK LIBRARY EGTASK SASUSER);
12 %mend checkfmt;
13 %checkfmt;
14
15
16
17 /* Data access options to allow opening data when we can't find formats */
18 options nofmterr;
19
20 run;quit;
3 The SAS System 09:14 Tuesday, October 22, 2019
1 The SAS System 09:14 Tuesday, October 22, 2019
1 OPTIONS NOSYNTAXCHECK;
2
3 %LET _CLIENTUSERID = 'myuser';
4 %LET _CLIENTUSERNAME = 'myname';
5 %LET _CLIENTMACHINE = 'mypc';
6 %LET _CLIENTVERSION = '7';
7 %LET _CLIENTAPP = 'SAS Enterprise Guide';
8 %LET _CLIENTAPPABBREV = EG;
9
10 %LET _SASSERVERNAME = 'SASApp';
11 %LET _SASHOSTNAME = 'myremotehost';
12
13 /*--------------------------------------------------------------*/
14 /* Copyright (c) 2005 by SAS Institute Inc, Cary NC 27512 USA */
15 /* */
16 /* This file contains SAS code that will be submitted to a SAS */
17 /* server whenever a new SAS session is established from */
18 /* within Enterprise Guide. */
19 /* */
20 /* DO NOT EDIT this file unless you are sure of the changes */
21 /* that you are making. Inappropriate changes to this file */
22 /* might result in SAS errors during your Enterprise Guide */
23 /* session. */
24 /*--------------------------------------------------------------*/
25
26 /* ---------------------------------- */
27 /* MACRO: enterpriseguide */
28 /* PURPOSE: define a macro variable */
29 /* that contains the file system */
30 /* path of the WORK library on the */
31 /* server. Note that different */
32 /* logic is needed depending on the */
33 /* server type. */
34 /* ---------------------------------- */
35 %macro enterpriseguide;
36 %global sasworklocation;
37 %local tempdsn unique_dsn path;
38
39 %if &sysscp=OS %then %do; /* MVS Server */
40 %if %sysfunc(getoption(filesystem))=MVS %then %do;
41 /* By default, physical file name will be considered a classic MVS data set. */
42 /* Construct dsn that will be unique for each concurrent session under a particular account: */
43 filename egtemp '&egtemp' disp=(new,delete); /* create a temporary data set */
44 %let tempdsn=%sysfunc(pathname(egtemp)); /* get dsn */
45 filename egtemp clear; /* get rid of data set - we only wanted its name */
46 %let unique_dsn=".EGTEMP.%substr(&tempdsn, 1, 16).PDSE";
47 filename egtmpdir &unique_dsn
48 disp=(new,delete,delete) space=(cyl,(5,5,50))
49 dsorg=po dsntype=library recfm=vb
50 lrecl=8000 blksize=8004 ;
51 options fileext=ignore ;
52 %end;
53 %else %do;
54 /*
55 By default, physical file name will be considered an HFS
56 (hierarchical file system) file.
57 */
58 %if "%sysfunc(getoption(filetempdir))"="" %then %do;
2 The SAS System 09:14 Tuesday, October 22, 2019
59 filename egtmpdir '/tmp';
60 %end;
61 %else %do;
62 filename egtmpdir "%sysfunc(getoption(filetempdir))";
63 %end;
64 %end;
65 %let path=%sysfunc(pathname(egtmpdir));
66 %let sasworklocation=%sysfunc(quote(&path));
67 %end; /* MVS Server */
68 %else %do;
69 %let sasworklocation = "%sysfunc(getoption(work))/";
70 %end;
71 %if &sysscp=VMS_AXP %then %do; /* Alpha VMS server */
72 %let sasworklocation = "%sysfunc(getoption(work))";
73 %end;
74 %if &sysscp=CMS %then %do;
75 %let path = %sysfunc(getoption(work));
76 %let sasworklocation = "%substr(&path, %index(&path,%str( )))";
77 %end;
78 %mend enterpriseguide;
79
80 %enterpriseguide
81
82 /* ---------------------------------- */
83 /* OPTION: TIMEZONE */
84 /* PURPOSE: set the server to use */
85 /* the same time zone as the client */
86 /* ---------------------------------- */
87 OPTIONS TIMEZONE="GMT+03:00";
88
89 /* EGAuto.sas */
90
91 /* ---------------------------------- */
92 /* OPTION: FORMCHAR */
93 /* PURPOSE: use simple ASCII line */
94 /* chars for text plots */
95 /* ---------------------------------- */
96 OPTIONS FORMCHAR="|----|+|---+=|-/\<>*";
97
98 /* ---------------------------------- */
99 /* OPTION; */
100 /* PURPOSE: Turn off overprint for */
101 /* log and listing output. */
102 /* ---------------------------------- */
103 OPTIONS NOOVP;
104
105 /* ---------------------------------- */
106 /* OPTION; */
107 /* PURPOSE: Prevent missing formats */
108 /* from causing data to be */
109 /* inaccessible. */
110 /* ---------------------------------- */
111 options NOFMTERR;
112
113
114 /* ---------------------------------- */
115 /* TITLE; */
116 /* PURPOSE: Clear the default title. */
3 The SAS System 09:14 Tuesday, October 22, 2019
117 /* ---------------------------------- */
118 TITLE;
119
120 /* ---------------------------------- */
121 /* Make sure LISTING really closes */
122 /* for 8.2 servers. */
123 /* ---------------------------------- */
124 ODS LISTING CLOSE;
125
126
127 /* ----------------------------------------------------------------------- */
128 /* These two functions, eclibassign and eclibunassign, are intended */
129 /* to be used when establishing or clearing LIBREFs on an OS/390 server. */
130 /* They check the state of the LIBREF before actually defining or clearing */
131 /* the library. They use the LIBNAME function to do the work. */
132 /* ----------------------------------------------------------------------- */
133 %macro eclibassign(libtoassign, libpath, libeng, libopt);
134 %local success;
135 %if "&libopt" ne "" %then
136 %let success = %sysfunc(libname(&libtoassign, &libpath, &libeng, &libopt));
137 %else %if "&libeng" ne "" %then
138 %let success = %sysfunc(libname(&libtoassign, &libpath, &libeng));
139 %else
140 %let success = %sysfunc(libname(&libtoassign, &libpath));
141
142 %if %eval(&success > 0) %then
143 %put WARNING: Libref &libtoassign could not be assigned;
144 %else
145 %put NOTE: Libref &libtoassign was successfully assigned;
146 %mend;
147
148
149 /* free the library if it is currently assigned */
150 %macro eclibunassign(libtofree);
151 %if %sysfunc(libname(&libtofree)) ne 0 %then
152 %put WARNING: Libref &libtofree could not be unassigned;
153 %else
154 %put NOTE: Libref &libtofree has been unassigned;
155 %mend;
156
157
158 /* Conditionally delete set of tables or views, if they exists */
159 /* If the member does not exist, then no action is performed */
160 %macro _eg_conditional_dropds /parmbuff;
161
162 %local num;
163 %local stepneeded;
164 %local stepstarted;
165 %local dsname;
166 %local name;
167
168 %let num=1;
169 /* flags to determine whether a PROC SQL step is needed */
170 /* or even started yet */
171 %let stepneeded=0;
172 %let stepstarted=0;
173 %let dsname= %qscan(&syspbuff,&num,',()');
174 %do %while(&dsname ne);
4 The SAS System 09:14 Tuesday, October 22, 2019
175 %let name = %sysfunc(left(&dsname));
176 %if %qsysfunc(exist(&name)) %then %do;
177 %let stepneeded=1;
178 %if (&stepstarted eq 0) %then %do;
179 proc sql;
180 %let stepstarted=1;
181
182 %end;
183 drop table &name;
184 %end;
185
186 %if %sysfunc(exist(&name,view)) %then %do;
187 %let stepneeded=1;
188 %if (&stepstarted eq 0) %then %do;
189 proc sql;
190 %let stepstarted=1;
191 %end;
192 drop view &name;
193 %end;
194 %let num=%eval(&num+1);
195 %let dsname=%qscan(&syspbuff,&num,',()');
196 %end;
197 %if &stepstarted %then %do;
198 quit;
199 %end;
200 %mend _eg_conditional_dropds;
201
202 /* save the current settings of XPIXELS and YPIXELS */
203 /* so that they can be restored later */
204 %macro _sas_pushchartsize(new_xsize, new_ysize);
205 %global _savedxpixels _savedypixels;
206 options nonotes;
207 proc sql noprint;
208 select setting into :_savedxpixels
209 from sashelp.vgopt
210 where optname eq "XPIXELS";
211 select setting into :_savedypixels
212 from sashelp.vgopt
213 where optname eq "YPIXELS";
214 quit;
215 options notes;
216 GOPTIONS XPIXELS=&new_xsize YPIXELS=&new_ysize;
217 %mend _sas_pushchartsize;
218
219 /* restore the previous values for XPIXELS and YPIXELS */
220 %macro _sas_popchartsize;
221 %if %symexist(_savedxpixels) %then %do;
222 GOPTIONS XPIXELS=&_savedxpixels YPIXELS=&_savedypixels;
223 %symdel _savedxpixels / nowarn;
224 %symdel _savedypixels / nowarn;
225 %end;
226 %mend _sas_popchartsize;
227
228 %*--------------------------------------------------------------*
229 * Tests the current version against a required version. A *
230 * negative result means that the SAS server version is less *
231 * than the version required. A positive result means that *
232 * the SAS server version is greater than the version required. *
5 The SAS System 09:14 Tuesday, October 22, 2019
233 * A result of zero indicates that the SAS server is exactly *
234 * the version required. *
235 * *
236 * NOTE: The parameter "maint" is optional. *
237 *--------------------------------------------------------------*;
238 %macro _SAS_VERCOMP(major, minor, maint);
239
240 %local CurMaj;
241 %local CurMin;
242 %local CurMnt;
243
244 %* Pull the current version string apart.;
245 %let CurMaj = %scan(&sysvlong, 1, %str(.));
246 %let CurMin = %scan(&sysvlong, 2, %str(.));
247 %let CurMnt = %scan(&sysvlong, 4, %str(.ABCDEFGHIKLMNOPQRSTUVWXYZ));
248
249 %* Now perform the version comparison.;
250 %if %eval(&major NE &CurMaj) %then
251 %eval(&CurMaj - &major);
252 %else
253 %if %eval(&minor NE &CurMin) %then
254 %eval(&CurMin - &minor);
255 %else
256 %if "&maint" = "" %then
257 %str(0);
258 %else
259 %eval(&CurMnt - &maint);
260 %mend _SAS_VERCOMP;
261
262 %*--------------------------------------------------------------*
263 * This macro calls _SAS_VERCOMP() with the passed version. *
264 * If the current server version matches or is newer, then the *
265 * true code (tcode) is executed, else the false code (fcode) *
266 * is executed. *
267 * Example: *
268 * %let isV92 = *
269 * %_SAS_VERCONDCODE(9,2,0, *
270 * tcode=%nrstr(Yes), *
271 * fcode=%nrstr(No)); *
272 *--------------------------------------------------------------*;
273 %macro _SAS_VERCONDCODE( major, minor, maint, tcode=, fcode= );
274 %if %_SAS_VERCOMP(&major, &minor, &maint) >= 0 %then
275 %do;
276 &tcode
277 %end;
278 %else
279 %do;
280 &fcode
281 %end;
282 %mend _SAS_VERCONDCODE;
283
284 /* Build where clauses from stored process parameters */
285 %macro _eg_WhereParam( COLUMN, PARM, OPERATOR, TYPE=S, MATCHALL=_ALL_VALUES_, MATCHALL_CLAUSE=1, MAX= , IS_EXPLICIT=0,
285 ! MATCH_CASE=1);
286
287 %local q1 q2 sq1 sq2;
288 %local isEmpty;
289 %local isEqual isNotEqual;
6 The SAS System 09:14 Tuesday, October 22, 2019
290 %local isIn isNotIn;
291 %local isString;
292 %local isBetween;
293
294 %let isEqual = ("%QUPCASE(&OPERATOR)" = "EQ" OR "&OPERATOR" = "=");
295 %let isNotEqual = ("%QUPCASE(&OPERATOR)" = "NE" OR "&OPERATOR" = "<>");
296 %let isIn = ("%QUPCASE(&OPERATOR)" = "IN");
297 %let isNotIn = ("%QUPCASE(&OPERATOR)" = "NOT IN");
298 %let isString = (%QUPCASE(&TYPE) eq S or %QUPCASE(&TYPE) eq STRING );
299 %if &isString %then
300 %do;
301 %if "&MATCH_CASE" eq "0" %then %do;
302 %let COLUMN = %str(UPPER%(&COLUMN%));
303 %end;
304 %let q1=%str(%");
305 %let q2=%str(%");
306 %let sq1=%str(%');
307 %let sq2=%str(%');
308 %end;
309 %else %if %QUPCASE(&TYPE) eq D or %QUPCASE(&TYPE) eq DATE %then
310 %do;
311 %let q1=%str(%");
312 %let q2=%str(%"d);
313 %let sq1=%str(%');
314 %let sq2=%str(%');
315 %end;
316 %else %if %QUPCASE(&TYPE) eq T or %QUPCASE(&TYPE) eq TIME %then
317 %do;
318 %let q1=%str(%");
319 %let q2=%str(%"t);
320 %let sq1=%str(%');
321 %let sq2=%str(%');
322 %end;
323 %else %if %QUPCASE(&TYPE) eq DT or %QUPCASE(&TYPE) eq DATETIME %then
324 %do;
325 %let q1=%str(%");
326 %let q2=%str(%"dt);
327 %let sq1=%str(%');
328 %let sq2=%str(%');
329 %end;
330 %else
331 %do;
332 %let q1=;
333 %let q2=;
334 %let sq1=;
335 %let sq2=;
336 %end;
337
338 %if "&PARM" = "" %then %let PARM=&COLUMN;
339
340 %let isBetween = ("%QUPCASE(&OPERATOR)"="BETWEEN" or "%QUPCASE(&OPERATOR)"="NOT BETWEEN");
341
342 %if "&MAX" = "" %then %do;
343 %let MAX = &parm._MAX;
344 %if &isBetween %then %let PARM = &parm._MIN;
345 %end;
346
347 %if not %symexist(&PARM) or (&isBetween and not %symexist(&MAX)) %then %do;
7 The SAS System 09:14 Tuesday, October 22, 2019
348 %if &IS_EXPLICIT=0 %then %do;
349 not &MATCHALL_CLAUSE
350 %end;
351 %else %do;
352 not 1=1
353 %end;
354 %end;
355 %else %if "%qupcase(&&&PARM)" = "%qupcase(&MATCHALL)" %then %do;
356 %if &IS_EXPLICIT=0 %then %do;
357 &MATCHALL_CLAUSE
358 %end;
359 %else %do;
360 1=1
361 %end;
362 %end;
363 %else %if (not %symexist(&PARM._count)) or &isBetween %then %do;
364 %let isEmpty = ("&&&PARM" = "");
365 %if (&isEqual AND &isEmpty AND &isString) %then
366 &COLUMN is null;
367 %else %if (&isNotEqual AND &isEmpty AND &isString) %then
368 &COLUMN is not null;
369 %else %do;
370 %if &IS_EXPLICIT=0 %then %do;
371 &COLUMN &OPERATOR
372 %if "&MATCH_CASE" eq "0" %then %do;
373 %unquote(&q1)%QUPCASE(&&&PARM)%unquote(&q2)
374 %end;
375 %else %do;
376 %unquote(&q1)&&&PARM%unquote(&q2)
377 %end;
378 %end;
379 %else %do;
380 &COLUMN &OPERATOR
381 %if "&MATCH_CASE" eq "0" %then %do;
382 %unquote(%nrstr(&sq1))%QUPCASE(&&&PARM)%unquote(%nrstr(&sq2))
383 %end;
384 %else %do;
385 %unquote(%nrstr(&sq1))&&&PARM%unquote(%nrstr(&sq2))
386 %end;
387 %end;
388 %if &isBetween %then
389 AND %unquote(&q1)&&&MAX%unquote(&q2);
390 %end;
391 %end;
392 %else
393 %do;
394 %local emptyList;
395 %let emptyList = %symexist(&PARM._count);
396 %if &emptyList %then %let emptyList = &&&PARM._count = 0;
397 %if (&emptyList) %then
398 %do;
399 %if (&isNotin) %then
400 1;
401 %else
402 0;
403 %end;
404 %else %if (&&&PARM._count = 1) %then
405 %do;
8 The SAS System 09:14 Tuesday, October 22, 2019
406 %let isEmpty = ("&&&PARM" = "");
407 %if (&isIn AND &isEmpty AND &isString) %then
408 &COLUMN is null;
409 %else %if (&isNotin AND &isEmpty AND &isString) %then
410 &COLUMN is not null;
411 %else %do;
412 %if &IS_EXPLICIT=0 %then %do;
413 %if "&MATCH_CASE" eq "0" %then %do;
414 &COLUMN &OPERATOR (%unquote(&q1)%QUPCASE(&&&PARM)%unquote(&q2))
415 %end;
416 %else %do;
417 &COLUMN &OPERATOR (%unquote(&q1)&&&PARM%unquote(&q2))
418 %end;
419 %end;
420 %else %do;
421 &COLUMN &OPERATOR (
422 %if "&MATCH_CASE" eq "0" %then %do;
423 %unquote(%nrstr(&sq1))%QUPCASE(&&&PARM)%unquote(%nrstr(&sq2)))
424 %end;
425 %else %do;
426 %unquote(%nrstr(&sq1))&&&PARM%unquote(%nrstr(&sq2)))
427 %end;
428 %end;
429 %end;
430 %end;
431 %else
432 %do;
433 %local addIsNull addIsNotNull addComma;
434 %let addIsNull = %eval(0);
435 %let addIsNotNull = %eval(0);
436 %let addComma = %eval(0);
437 (&COLUMN &OPERATOR (
438 %do i=1 %to &&&PARM._count;
439 %let isEmpty = ("&&&PARM&i" = "");
440 %if (&isString AND &isEmpty AND (&isIn OR &isNotIn)) %then
441 %do;
442 %if (&isIn) %then %let addIsNull = 1;
443 %else %let addIsNotNull = 1;
444 %end;
445 %else
446 %do;
447 %if &addComma %then %do;,%end;
448 %if &IS_EXPLICIT=0 %then %do;
449 %if "&MATCH_CASE" eq "0" %then %do;
450 %unquote(&q1)%QUPCASE(&&&PARM&i)%unquote(&q2)
451 %end;
452 %else %do;
453 %unquote(&q1)&&&PARM&i%unquote(&q2)
454 %end;
455 %end;
456 %else %do;
457 %if "&MATCH_CASE" eq "0" %then %do;
458 %unquote(%nrstr(&sq1))%QUPCASE(&&&PARM&i)%unquote(%nrstr(&sq2))
459 %end;
460 %else %do;
461 %unquote(%nrstr(&sq1))&&&PARM&i%unquote(%nrstr(&sq2))
462 %end;
463 %end;
9 The SAS System 09:14 Tuesday, October 22, 2019
464 %let addComma = %eval(1);
465 %end;
466 %end;)
467 %if &addIsNull %then OR &COLUMN is null;
468 %else %if &addIsNotNull %then AND &COLUMN is not null;
469 %do;)
470 %end;
471 %end;
472 %end;
473 %mend _eg_WhereParam;
474
475 %macro _eg_hidenotesandsource;
476 %global _egnotes;
477 %global _egsource;
478
479 %let _egnotes=%sysfunc(getoption(notes));
480 options nonotes;
481 %let _egsource=%sysfunc(getoption(source));
482 options nosource;
483 %mend _eg_hidenotesandsource;
484
485 %macro _eg_restorenotesandsource;
486 %global _egnotes;
487 %global _egsource;
488
489 options &_egnotes;
490 options &_egsource;
491 %mend _eg_restorenotesandsource;
492
493 /* ---------------------------------------------------- */
494 /* DATA step to determine whether certain products */
495 /* are licensed/installed. */
496 /* ---------------------------------------------------- */
497
498 /* Note: Use 'n' parameter to tslvl function if 9.4 M2
499 or later to avoid unnecessary warning. */
500 %macro GetTslvlParam2;
501 %if %_SAS_VERCOMP(9,4,2) >= 0 %then , 'n';
502 %mend;
503
504 data _prodsavail;
505 length name $ 8 fullname $ 30 prodcode $ 10 prodmod $ 10 installed $ 12;
506 input fullname 1-30 name 32-39 prodcode prodmod;
507 licensed=sysprod(prodcode);
508 installed = tslvl(prodmod%GetTslvlParam2);
509 cards;
NOTE: The data set WORK._PRODSAVAIL has 8 observations and 6 variables.
NOTE: DATA statement used (Total process time):
real time 0.02 seconds
cpu time 0.03 seconds
518 ;
519 run;
520
521 %let _EG_WORKSPACEINIT=1;
522
... View more