SAS Customer Recognition — Steve Sanders
Steve Sanders’ interest in computers (and his path to SAS programming) began in junior high school. Sanders’ first programming experience was a BASIC programming class at RadioShack on Saturdays. He then took enough COBOL in college to determine that wasn’t what he wanted to do with his life, but it did provide an excellent base for programming and database design. Sanders’ next foray into programming was writing reports with EasyTrieve, which led to custom extracts downloaded and imported into Lotus123, Lotus Approach and eventually into Excel and Access. He then moved into custom end-user databases for task automation. It was around that time that Sanders was offered a job to build a “data warehouse” using something called “SAS.” Sanders says he had no idea what he was getting himself into, but 15 years later, he’s really glad he accepted that job!
How long have you been using SAS®? (in years)
What SAS products have you used in the past? What products and solutions are you currently using?
Primarily Base SAS® and SAS/CONNECT® on Windows workstation, Windows server and System 370.
What is a problem you have solved using SAS?
We use SAS for data warehousing in consumer credit risk management. SAS is the only tool that we use for ETL, DBMS, analysis and reporting.
What is the most innovative way you have used SAS?
I wrote an automated process that runs a batch SAS program on our Windows server that controls our nightly source data acquisition. It monitors source data on mainframe and database servers using a variety of methods. When refreshed data is detected, it will launch processes that may run locally on the server or be uploaded to the mainframe for batch processing to retrieve the data. If the process runs in batch on the mainframe, it will send a message back to another batch SAS process running on the server that is a data retrieval service. The message from the mainframe program will tell which batch of files is ready to be retrieved.
The data retrieval service will retrieve the files and record that the batch has been retrieved. The batch controller also monitors the list of file batches that have arrived and will conditionally execute reporting and analysis programs based on file batch dependencies. This process controller is unusual because it is not a linear process scheduler. Everything it does is based on data dependencies that can be satisfied in any order. The process also stores the execution sequence from one day to the next. Each day, it will attempt to run programs in the order that they ran in the previous day. In doing so, it continually seeks its own optimal execution order.
What is your most memorable SAS moment?
The first time I made a table-driven data testing macro language process work.
How has SAS changed in the time you have been using it?
The first version of SAS I used was version 6.12. There are so many things that have changed that I don't really recall what it was like when I first started using it. The addition of the 32-character table and variable names was a significant improvement. The introduction of hash tables has also been a significant improvement in efficiency.
Have you ever attended a SAS Users Group meeting or SAS Global Forum? If yes, please list them.
I have attended many meetings of the Birmingham Users Group for SAS. SSU 2001 (SESUG and SCSUG) in New Orleans; SESUG in Portsmouth, VA; Hilton Head, SC; and Birmingham, AL. I also attended the 2012 SAS Global Forum in Orlando, FL.
Has your work with SAS been influenced by any other members of the SAS Community?
Yes. I have learned many new techniques at user conferences.
If you could point a new SAS user to one resource, what would it be?
SAS Technical Support!