SAS on CentOS 7

SAS on Centos 7.9

Whilst CentOS is not an officially supported (by SAS...

SASjs Artefacts

SASjs Artefacts

What is a SAS program?

In SAS Solution Development, a file with a “.sas” extension can be many different things. A macro, a program, a piece of DDL, a datalines file, an autoexec, an FCMP function. Often t...

Log Location


Version 0.11 of SASjs Server now has a configurable LOGS location!

Logs rotate daily, and are named according to the start time - so every time you restart the serv...


Incrementing a Macro Variable

Incrementing a macro variable is fairly straightforward and can be done in several ways, for instance - a do-loop:

SASjs Core

SASjs Core - Macros for SAS Application Developers

How often have you needed a macro and thought “surely someone has done this before”?

There’s no need to re-invent the wheel! The SASjs Core library is a collection of 228 (and cou...

Data Controller v5

Version 5 of Data Controller for SAS® is now available!

With some serious updates since v4.0:

🚀 Viya 4 support 🚀 Base SAS support - on SASjs Server 🚀 COLUMN LEVEL SECURITY

This means that Data Controller will now run on A...

Failed to Transcode Data

Failed to transcode data from UUTF8CE to ULATIN9CE

During a recent Data Controller deployment for a Swedish customer we faced the error code below when deploying the backend SAS se...

Retained Keys

A Retained Key is an integer used to represent a particular business key in a database table. It is useful in the following scenarios:

  1. Optimising for speed of joins
  2. Enabling business keys with null values
  3. Handling co...

Login failed due to an error with the security certificate

When running the sas-admin CLI tool against a Viya server on https you may get the following response:

Password> Login failed due to an err...

Dictionary of Dictionaries

The SQL procedure contains a lot of metadata information in the special DICTIONARY libref, and I often find myself needing to call select * from dictionary.dictionaries in order to query it. So to save time I've...

« Older Entries