SAS Server Pages were initially described in my SAS Press book Building Web Applications with SAS/IntrNet: A Guide to the Application Dispatcher . The creation of SAS Server Pages was accomplished through the use of a DATA step and the RESOLVE function. SAS Server Pages have been used by a number of SAS developers as a way of creating custom UIs for Web-based applications, much like JSP and ASP pages came to be used in Web applications.
PROC STREAM, a new experimental procedure available in SAS 9.3 significantly extends this paradigm to provide a framework for applications development by providing a foundation technology that greatly expands SAS' capabilities for Dynamic and Rich Content generation. In conjunction with the Macro facility, PROC STREAM provides robust support for dynamic content generation using a language well known to SAS programs: the Macro language. Thus, SAS can now be used to produce virtually any text-based content, including but not limited to HTML, CSV, RTF, XML and more.
SAS programs can be executed interactively, in batch mode, and over the Web via the Stored Process Server and the SAS/IntrNet Application Dispatcher; and PROC STREAM can be used in all of those modes. It can be used to produce reports, custom user interfaces and more. It supports a number of key features
- The %include statement can now also be used to implement what JSP and ASP applications refer to as Server Side includes.
- SAS code can be defined/executed inside of an input SAS Server Page.
- The SCL data access functions can be used and provides facilities to access SAS data sets and include data values directly in a SAS Server Page.
I have a new SAS eBook, SAS Server Pages: Generating Dynamic Content, under development that provides an overview of what can be done with PROC STREAM, including a rich set of samples. A free preview copy of selected chapters will be available by SAS Global Forum 2012.
Check out my blog for tips, techniques and examples on PROC STREAM and SAS Server Pages. To see an example of PROC STREAM in action, check out this example that produces an events calendar of my PROC STREAM blogs. It includes both published and planned blog listings. And the published ones are clickable. Leveraging JQuery Widgets - An Events Calendar is an overview of how PROC STREAM was used to do this.
You can also follow the PROC STREAM and SAS Server Pages tags on communities.sas.com to learn more and, more importantly, to provide feedback on changes and improvements you'd like to see made to PROC STREAM before it becomes production.