SAS development under UNIX/Linux
This is a summary of my SAS blog posts on SAS applications development under UNIX and Linux platforms. It provides useful tools for SAS developers covering such topics as running SAS jobs under UNIX/Linux Operating System, automating creation of UNIX/Linux scripts by using SAS system to write them for you, conditional execution of SAS job flows in UNIX/Linux.
Let's take a look.
Running SAS programs in batch under Unix/Linux
While SAS program development is usually done in an interactive SAS environment (SAS Enterprise Guide, SAS Display Manager, SAS Studio, etc.), when it comes to running SAS programs in a production or operations environment, it is routinely done in batch mode.
Running SAS programs in batch mode allows streamlining SAS processing by eliminating the possibility of human error, submitting multiple SAS jobs (programs) all at once or in a sequence securing programs and/or data dependencies. Continue reading ↪
Let SAS write batch scripts for you
In this post, I describe a tool (SAS macro) that allows to automate the process of creating UNIX/Linux script files without leaving the comfort of SAS environment. Not only you can create script files from SAS quickly and efficiently, SAS also sets proper permissions to the script files to make them executable in the operating system environment and also protected from unauthorized access. Continue reading ↪
How to conditionally terminate a SAS batch flow process in UNIX/Linux
When running multiple SAS jobs as a flow, sometimes we need to automatically stop and terminate that job flow execution if certain criteria are met (or not met) in a program of that process flow.
For example, our first job in a batch flow is an ETL data preparation step where we extract data tables from a database and prepare them for further processing. The rest of the batch process is dependent on successful completion of that critical first job. However, sometimes the database connection is unavailable, the database itself is not finished refreshing, or something else happens resulting in the ETL program completing with ERRORs.
This blog post describes a technique for conditionally stopping the flow of execution of the subsequent jobs that are dependent on successful completion of the prior jobs. Continue reading ↪