Skip to content

sasjs run

The sasjs run command enables developers to submit SAS code for execution from the commandline.

The log will be returned as a file in the current directory. The source file must have a ".sas" extension.

Note - an additional variable macro variable will be added by the adapter, with the value of the target appLoc and the filename (equivalent to %let _program=/My/AppLoc/runfilename.sas;). This is actually added as a session variable, so will not be visible in the logs.

Prerequisites

Before using this command, you will need to install the SASJS CLI and add a deployment target.

Syntax

sasjs run <sourcecode> [additional arguments]

<sourcecode> can be a local file path or a file on a web server.

Using Github Urls

If using a URL from github, be sure to link to the raw version of the file, eg: https://raw.githubusercontent.com/sasjs/core/main/base/mf_getattrc.sas

As opposed to: https://github.com/sasjs/core/blob/main/base/mf_getattrc.sas

If you click the links above you will see the difference. Whenever <sourcecode> begins with http:// or https:// we simply fetch the contents from the URL - so the raw value should be SAS code and nothing else.

You can find the raw version by clicking on the 'raw' button when viewing the program on github (next to the 'blame' button)

Additional arguments may include:

  • --target (alias -t) - the target environment in which to deploy the services. If not specified, default target will be used, mentioned in sasjsconfig.json. The target can exist either in the local project configuration or in the global .sasjsrc file.

Examples

Running some local SAS code:

# create minimal SAS program
cat > ./somecode.sas <<'EOL'
  %put hello from SASjs;
EOL

# run the SAS code on the target
sasjs run somecode.sas -t myTarget

Running some SAS code from github:

sasjs run https://raw.githubusercontent.com/sasjs/template_jobs/master/includes/someprogram.sas -t viya

Roadmap

We plan to support the following:

  • keeping sessions alive
  • directing log output
  • extracting items from the session

If there are items you are looking for, or have problems / ideas, do raise an issue.