BookmarkSubscribeRSS Feed
Calcite | Level 5

Hello All,


I am currently using SAS DI and Scheduled all my jobs in SAS Management Console 

Now I am migrating in to SAS VIYA 9.4 


Can anyone know how can i migrate SAS DI Scheduler flow in SAS VIYA

Also run all jobs and load data in sas viya.



Jignesh Patel



SAS Employee



You can schedule jobs using SAS Job Execution. Here is a good example of how to do that.

Calcite | Level 5

Hi Alexal


It looks like SAS VIYA has its own schedule manager where we schedule jobs.

Also, By using SAS Viya Studio we can schedule program by using snippets functionality. 


I will work upon on both option.


But is their other option in which we import SAS DI Jobs directly  as SPK Package ?



Jignesh Patel

Tourmaline | Level 20
IMO Viya isn't ready for DI applications, especially if you are migrating a off of legacy from 9.4.
DI Studio/Server doesn't exist on Viya. So how do you intend to execute the code? If you are thinking of to use the the deployed .sas code, you need to do a LOT of changes.
There will be a major data management release for Viya later this year (I hope). In that perspective early next your it should mature to start thinking of migration, since there should be support for importing 9.4 spk's.
In the mean time, I recommend a parallel life where you could redirect ETL of you data marts/ABT to Viya/CASlibs.
Data never sleeps
Calcite | Level 5

Hi LinusH,


Thanks a lot for your reply. So till now there will be no bridge directly between in SAS Di  and SAS Viya.  


If I want to run SAS DI codes in SAS Viya then can you tell me which type of major changes require from server / connection side ?



Jignesh Patel





Tourmaline | Level 20

I don't think it makes sense to "execute" the code in Viya unless you have severe performance issues as of now.

But there are transformations available in DI Studio (later versions) that lets you connect to Viya, upload data, and send steps for processing.


If you are using a version older then M5, you'll have to use SAS/CONNECT.

Data never sleeps
Obsidian | Level 7



The main thing you need is to configure connect between sas 9.4 and SAS Viya. 

  1. Obtain the CA certificate that was used to sign the certificate that the CAS Server is using.
    the trusted.pem file usually located at /opt/sas/viya/config/etc/SASSecurityCertificateFramework/cacerts
  2. Copy certificate to SAS94 server into a directory where all users can read the trusted.pem  file(chmod 755)
  3. On the SAS94 server where WorkspaceServer works, set environment variable CAS_CLIENT_SSL_CA_LIST= to the trust list that the client uses to connect to the server. 
  4. Add the same env variable into sasenv_loca file ( /app/sas/94/sashome/SASFoundation/9.4/bin/sasenv_local)


I am using DI 4.903 and as @LinusH  mentioned it has the special transformation for loading tables into CAS (SAS Viya).

This link helped me a lot

Note:  that you will need to create authinfo file

Also, I created the custom script that I am using for loading table into CAS (you can also run it EG)

%macro mLoadTableToCAS (mvSASLibname=,mvTableName=, mvTableNameInCAS=, mvCasLibname=);
    %macro dummy; %mend dummy;
    /* Create CAS session  */
    cas CASAUTO host="<cas server hostname>" port=5570;
    LIBNAME CASRDBP CAS  CASLIB=&mvCasLibname  PORT=5570  SERVER="<cas server hostname>" ;

    %let checkExist=%eval(%sysfunc(exist(CASRDBP.&mvTableNameInCAS, DATA)));   
    %if  (&checkExist) %then %do;
        /* Replace target table requested: Drop session table  */
        proc casutil sessref=&_SESSREF_.;
           droptable casdata="&mvTableNameInCAS." incaslib="&mvCasLibname" quiet;
        /* Replace target table requested: Drop global table  */
        proc casutil sessref=&_SESSREF_.;
           droptable casdata="&mvTableNameInCAS." incaslib="&mvCasLibname" quiet;
    proc casutil outcaslib="&mvCasLibname" sessref=&_SESSREF_.;
                 load data=&mvSASLibname..&mvTableName casout="&mvTableNameInCAS."
    /* Terminate CAS session  */
    cas CASAUTO terminate;
%mend mLoadTableToCAS;
libname SASLIB '<path>'; /*Please specify libname statement*/
%let mpSaslib=SASLIB;
%let mpCaslib=Public;/*specify CAS library name where you want to load data. By default Public*/
%let mpTableName=<table_name>;  /*Please specify table name.*/




Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.


Register now!

Discussion stats
  • 6 replies
  • 4 in conversation