x Things you should know about Altair SLC when migrating from SAS Institute Products

Here are a few things I experienced with Altair SLC while writing some SAS code.

Locale Formats Cannot Be Used

The locale option of proc format is not recognized by Altair SLC. So if you work with multiple languages, you will have to find a workaround. Here is an example which works with SAS Studio but not with Altair SLC. 

options locale=en_US;
proc format lib=work.formats locale;
    value ny 0='No'
             1='Yes';
run;

options locale=de_DE;
proc format lib=work.formats locale;
    value ny 0='Nein'
             1='Ja';
run;

data demo;
    result=0; output;
    result=1; output;
run;

options fmtsearch=(work/locale);

options locale=en_US;
proc print data=demo;
    format result ny.;
run;

options locale=de_DE;
proc print data=demo;
    format result ny.;
run;
ERROR: Option "locale" is not known for the PROC FORMAT statement

Listing all Files Available in a Given Directory (Windows)

The following code creates a text file containing the list of Excel files available in a given directory, With SAS Institue solitons, this file can be saved in a permanent or a temporary directory. With Altair SLC, it can only be saved in a permanent directory. In other words, the path used by the work library, retrieved using the pathname function cannot be used in the call system routine.
%let xxwork=%sysfunc(pathname(work));

options noxwait;

data _null_;
    call system("dir &xxroot.\data\*.xlsx /a-d /b > &xxroot.\reporting\listfiles.txt");
   *call system("dir &xxroot.\data\*.xlsx /a-d /b > &xxwork.\listfiles.txt");
run;

Unknown Statement

The following statement is usually used to stop the system to send the output in the RESULTS tab (in SAS Studio for example). The HTML5(Web) destination is not recognized by Altair SLC.

ods html5(web) exclude all;
ERROR: Not a valid statement in this context: ODS destination HTML5(web) is not open

Dataset Options Cannot Be Always be Used in proc sql

In SAS Studio, dataset options can be used in a proc sql statement. This is not always the case with Altair SLC. Here is an example.
proc sql;
    select a.*, b.height
    from class  (keep=name age sex where=(age=12)) a
    left join
         class (keep=name age height where=(age=12)) b
    on a.name=b.name;
   
quit;

About the Author

You may also like these