BookmarkSubscribeRSS Feed

BASUG June Meeting & Training (In Person!)

sas-users-groups.jpg

Time & Location

Jun 27, 2025, 8:15 AM – 5:00 PM EDT

Microsoft NERD, 1 Memorial Dr, Cambridge, MA 02142, USA

 

BASUG is thrilled to announce our IN-PERSON June Meeting + Training Class!

  

Pre-registration by June 24 is required. No on-site registration or walk-ins.

 

BASUG welcomes students with a 50% discount if they register by Friday, June 13.  Please email an image of your current student ID to registrations@basug.org to request the coupon code.

 

Register today!: https://www.basug.org/event-details/basug-june-meeting-training-in-person

 

MORNING MEETING (8:15am - 12:00pm)

 

Code Hard and Put away Wet: Replacing Hardcoded SAS® Software Quality Checks with Data-Driven Design and Defensive Programming Techniques That Validate Code and Control Data

Troy Martin Hughes

 

You wouldn’t ride that pony hard and put her away wet, so why subject your SAS® software to the same ill treatment?! Defensive programming describes a risk management strategy that aims to identify threats to software functionality and/or performance before they occur and, where possible, to identify pathways to programmatically mitigate those risks (or to communicate realized threats to stakeholders). This talk introduces various defensive programming techniques that can be implemented before software executes, such as verifying SAS program file state (i.e., availability, accessibility) and program file metadata (e.g., filename, checksum, create date, version). Data-driven software design further espouses the reality that “software” comprises not only code but also the underlying control data that drive that code’s functionality and flexibility. Thus, defensive data-driven design requires a fuller risk management strategy that evaluates risks not only to code but also to control data, including lookup tables, control tables, configuration files, and other control files. Finally, although not considered to be “software,” domain data sets and other data sources can be no less essential to ensuring software success, so the state and quality of these transactional data can be evaluated as well. Given this more expansive view, this talk further demonstrates defensive programming techniques that evaluate the state and metadata of required input data, be they SAS data sets, spreadsheets, CSV files, XML, JSON, or other interoperable formats. Defensive programming methods should be implemented where robust software must execute reliably, and data-driven software should be designed to incorporate these best practices.

 
 

The (ODS) Output of Your Desires: Creating Designer Reports and Data Sets

Louise Hadden

 

SAS® procedures can convey an enormous amount of information – sometimes more information than is needed. Most SAS procedures generate ODS objects behind the scenes. SAS uses these objects with style templates that have custom buckets for certain types of output to produce the output that we see in all destinations (including the SAS listing). By tracing output objects and ODS templates using ODS TRACE (DOM) and by manipulating procedural output and ODS OUTPUT objects, we can pick and choose just the information that we want to see. We can then harness the power of SAS data management and reporting procedures to coalesce the information collected and present the information accurately and attractively.

 
 

Beyond Labels: Mastering PROC FORMAT for Dynamic, Scalable SAS Programming

Michael Salé

 

PROC FORMAT is one of SAS’s most powerful yet underrated tools, capable of transforming how you label, categorize, and analyze your data. This in-depth session will explore the full breadth of PROC FORMAT, from simple value-label mappings to advanced techniques like dynamic format creation using CNTLIN datasets and multi-label classification for overlapping categories. We'll dive into the use of PICTURE formats for elegant numeric and date display, discuss strategies for maintaining and sharing format catalogs, and examine performance and debugging tips to keep your code clean and efficient. Whether you're building a reusable reporting framework or customizing output for diverse audiences, this session will show you how mastering PROC FORMAT can bring clarity, consistency, and scalability to your SAS programs.

 
AFTERNOON TRAINING CLASS (1:00pm - 5:00pm)

How to Build User-Defined FCMP Functions and Macro Functions

by Troy Martin Hughes

 

SAS “User-defined” functions are those functions that are created by SAS users, as contrasted with “built-in” functions that are part of out-of-the-box Base SAS functionality. SAS provides two methods to build user-defined functions, including the SAS macro language and the SAS Function Compiler (aka PROC FCMP). This introductory course demonstrates how to build user-defined functions (and subroutines)—including both macro functions and FCMP functions. No prior experience with the SAS macro language or PROC FCMP syntax is required.

 

User-defined functions improve software reusability—that is, the ability of code modules to be reused in future software projects, and to be reused by multiple SAS users within a team or organization. Reusability enables a function to be developed once but used repeatedly, which reduces the workload of the SAS users who are writing programs, by enabling us to rely on previously built (and fully tested) code modules. Thus, user-defined functions facilitate more flexible and configurable software, as well as a more productive, efficient team.

 

This lecture-style class (NOT hands on) provides an introduction to writing functions with both PROC FCMP and the SAS macro language.



Organizer
ShelleySessoms
Community Manager

Add to Calendar
Starts:
Fri, Jun 27, 2025 08:00 AM EDT
Ends:
Fri, Jun 27, 2025 05:00 PM EDT
Microsoft New England Research and Development Center, 1 Memorial Dr, Cambridge, MA 02142, USA
3 Comments
Quentin
Super User

Registration link: https://www.basug.org/event-details/basug-june-meeting-training-in-person

The Boston Area SAS Users Group (BASUG) is hosting an in person Meeting & Training on June 27!
Full details and registration info at https://www.basug.org/events.
ShelleySessoms
Community Manager

My mistake! I made the link more apparent, @Quentin

Quentin
Super User

Thanks much @ShelleySessoms !

The Boston Area SAS Users Group (BASUG) is hosting an in person Meeting & Training on June 27!
Full details and registration info at https://www.basug.org/events.