Transforming SAS code into a SAS Macro using PERL Sumner H. Williams, CareOregon, Portland, OR, USA

Size: px
Start display at page:

Download "Transforming SAS code into a SAS Macro using PERL Sumner H. Williams, CareOregon, Portland, OR, USA"

Transcription

1 ABSTRACT Transforming SAS code into a SAS Macro using PERL Sumner H. Williams, CareOregon, Portland, OR, USA SAS code is strengthened by transforming the code into a macro. This paper is intended to demonstrate using the SAS Macro language to schedule macros to run at specific times during the day, week, month, quarter, or year. Scheduling SAS Macros to run during off-peak hours greatly increases the hours that SAS is used by programmers. By running a SAS program during normal work hours, a SAS license is being used and can not run anything else AND you are using up computer cycles that could be spent in other ways. For periodic reports, this can be an inefficient use of computer power. An efficient programmer would schedule each of those tasks to run during off hours, but once the programmer has more than 10 scheduled tasks, the administration becomes tedius. This paper will show how to decrease the administrative tedium of scheduling SAS Macros. Since this paper is about increasing efficiency, the paper will also demonstrate using a PERL program which develops and sets up the scheduling macro. Finally, one more PERL program will be demonstrated that transforms standard SAS code into SAS Macro code. In the end, you will have a scheduling macro which makes calls to other macros depending on the date. The macros that are called by the scheduling macro may have already been generated or may have been generated by PERL. Keywords: PERL, SAS code, SAS Macro, goto. INTRODUCTION A programmer could schedule a task to run weekly, monthly, daily, quarterly, annually, etc. It is very easy to schedule one macro that then runs all of the other macros. It would look like %macro scheduled_reports; %macro weekly_reports; /*&rogue_run was put in to force a report*/ /*This will run on Sunday or if a rogue_run is requested %if %sysfunc(weekday("&sysdate"d)) = 1 or %sysfunc(index(&rogue_run,weekly)) > 0 %then %do; %put Running weekly reports; proc printto new log= "&outdir\weekly_&sysdate..log"; %Weekly(); proc printto log=log; %mend weekly_reports; %weekly_reports; %macro monthly_reports; /*This should only occur monthly*/ %if %sysfunc(day("&sysdate"d)) = 05 or %sysfunc(index(&rogue_run,monthly)) > 0 %then %do; proc printto new log= "&outdir\monthly_&sysdate..log"; %Monthly(); proc printto log=log; %mend monthly_reports; %monthly_reports; %mend scheduled_reports; The scheduled_reports macro can then be scheduled to run everyday during off hours. I have fulfilled the first 1

2 requirement in the abstract, namely how do I schedule macros to run with a macro. The thrust of using a single macro to schedule numerous other macros is increasing efficiency of the computer and the analysts. A SAS programmer might have several programs that could be turned into macros, but not enough time to make the transformation. For code with no parameters, I have developed PERL programs that make the transformation. For code that will need parameters, less effort will have to be spent making the transformation. For extant macros, the PERL code can be used to add callable documentation. First, there needs to be some background on my macro development. CareOregon s macros all reside on a server that I can not access. One problem with this is that I can not see the source code or documentation and that makes it so I have to either remember how to use every macro I write OR I have to maintain two copies which may or may not be synchronized. My solution is to document the macro in a peculiar way. DOCUMENTING A SAS MACRO The %example macro will demonstrate how I call for help when I forget how to use the macro. %macro %example(help); ❶ %if &help =? %upcase(&help) = HELP %then %do; ❷ %put ERROR: Help was requested.; ❸ %put %example_usage; ❹ %goto exit; ❺ { SAS Code goes here } %exit: ❻ %mend example; It is best to give several options for calling help. ❶ is a positional, optional parameter. In this case, it is used to indicate if help will be called. The user is allowed to give a? or some case independent version of help. ❷ tests for whether help was called. A programmer might wish to add in other required macro variables to this list. ❸ is some helpful text that will be printed to the log. The programmer can and should modify this to satisfy the end user. ERROR: will force the macro to bring up the log window when the user exits. ❹ calls a second macro that is the first macros name with _usage appended. ❹ uses a %goto statement to assign a macro variable telling SAS where to go next. goto statments were popular in FORTRAN, but are not generally recommended in typical programming. Thsi is one case where a goto is acceptable since it determines the end of the program. A line containing %exit: states where the code should goto. In this case the %exit: is added at the end of the macro. In addition, PERL scripts write this section of the code. This keeps the coding consistent up to a point. Every macro generated by PERL scripts has help as it s first positional parameter. They all have goto statements. Within the %if statement, they all have a call to the documentation macro. The documentation macro is generated using a programmer supplied text file and PERL. If the code already is a macro, PERL will skip over those sections and only generate the positional help parameter and subsequent logic if necessary. EXTRA MACRO CODING A second macro needs to be generated and it contains the documentation. The usage macro should include the programmer(s), dates of modification, purpose of the code, the manner in which it can be used, the variables, and the important output. Any additional requirements of the company should also be added, i.e. project identifiers, requestors, or other important information. When PERL is used to create the utilization macro, the columns line up and every line ends at the same point. 2

3 %macro example_usage; %put ********************************************************************************; %put * Programmer: Sumner Williams *; %put * Modified: Created (6/5/2008) *; %put * Macrotized (6/10/2008) *; %put * Added callable documentation *; %put * Purpose: Demonstrate creation of SAS Macro with documentation *; %put * Usage: %nrbquote(%)example(help) *; %put * Variables: help - option positional parameter. *; %put ********************************************************************************; %mend example_usage; IMPLEMENTATION First, the user needs to have PERL on their system. For Windows, this can be obtained from For Linux/Mac, it should already be installed on your system. Second, the user needs to get the PERL scripts from the author by ing williamsu@careoregon.org or finding a friend that already has them. There are 4 subroutines in the PERL program: BuildAutomation{"<directory>\\Scheduling.sas"); OpenHeader("<directory\\file>"); ModifyHeaderfromFile("MacroDocumentation.txt"); CreateHeader("<directory>", "<directory>\\temp.sas", "<macroname>"); BuildSASMacro("<directory>\\Temp.sas", "<directory>\\fintest.sas", "<macroname>"); InsertMacro("<directory>\\Scheduling.sas", "weekly", "<macroname>", "<directory>\\<macroname>_&sysdate..log" ); Note that PERL thinks of a \ as an escape character and so on windows, use two \\. On Linux, the file system uses / to distinguish file hierarchies, making a single \ appropriate. BuildAutomation This generates the code for the scheduling macro. In the above example the code will be named Scheduling.sas. It contains the code which will allow for a macro to be inserted in daily, weekly, monthly, etc. runs. OpenHeader This will open the header part of the SAS program (which can be a Macro). OpenHeader will look at all lines up until it finds a line known to start a SAS program, i.e. a data step, options statement, sql statement, etc. Within the header, the tags are appended with a colon (:). The above SAS example has tags for programmer, Modified, Purpose, Usage, and Variables. If the program follows the guidelines I give, then the header will be read in fine. Some tweaks will need to be made for other headers. ModifyHeaderfromFile Originally, the user was allowed to do this from the command line, but poor typing skills and impatience lead to having the subroutine read a file. The file should only contain the updates to the documentation. Do not re-run the same documentation file for each iteration of the SAS code as this would give you something like PROGRAMMER: Sumner Williams Sumner Williams Sum... CreateHeader CreateHeader is fairly uninteresting because it takes the output from OpenHeader and ModifyHeaderfromFile and puts it into a temporary file. While uninteresting, it is essential. 3

4 BuildSASMacro BuildSASMacro reads the temporary file created by CreateHeader. It checks to make sure the program has help as the first positional parameter of the macro. It will name the macro if necessary. It adds in the error checking code. It adds in the %goto and the subsequent variable at the end of the program so that the program will exit when help is requested. If the programmer has nested macros within macros, it will NOT create help code for the nested macros. (This could be future work, time/desire permitting). InsertMacro This inserts the code to call the macro specified into the Scheduling.sas macro. It will not check to make certain that you have not already put the code into the scheduling macro. LIMITATIONS One limitation is that it does not create help for nested or even serialized macros. SAS code on a separate server can not be called unless the macro name is exactly the same as the file name?. If three macros are in the same program macrocode.sas, only the macro named macrocode will be able to be called by a SAS user not on the server. Should the programmer need help with the PERL code, they can call BuildSASMacro(?) and the documentation will be supplied in the console. The PERL code also does not generate macro variables or force documentation of macro variables. It is astoundingly difficult to consider all of the ways in which a macro variable can be created. Input file names, data set names, output file names, date values, can all be a macro variable. Therefore, to avoid over parameterizing a macro, none of this has been added to the PERL scripts. Again, time/desire permitting, it may become a project. RESULTS Code will transform FROM: data Example; infile "C:\Testing Folder\Example.csv" dsd; input claim \$ paid; proc sort data=example; by claim; TO: %macro Example_usage; %put *********************************************************************; %put * PROGRAMMER: Sumner Williams *; %put * MODIFIED: Created *; %put * TRACK-IT: 0 *; %put * PURPOSE: This is a demonstration program of the PERL *; %put * programs. *; %put * USAGE: %nrbquote(%)example%str() *; %put * REQUESTNUMBER: pi *; %put *********************************************************************; %mend Example_usage; %macro Example_(help); %if &help =? %upcase(&help) = HELP %then %do; %put ERROR:; %put Help has been requested.; %put Get help directly by running %nrbquote(%)example_usage; %put Check the log for the help %Example_usage; %goto autoexit; 4

5 data Example; infile "C:\Testing Folder\Example.csv" dsd; input claim \$ paid; proc sort data=example; by claim; %autoexit: %mend Example; CONCLUSION This paper discussed how to schedule a macro using another macro. Efficiency is gained by having a second set of programs built in PERL, construct the scheduling macro, the log file paths, insert the macros that are to-bescheduled, and finally, to have PERL build those macros where necessary. A few new ideas include the callable documentation as well as adding in a help section to a macro. While this would not be of much us to the original programmer that has access to the source code, it can be tremendously valuable to the end-user that has neither access to the source code nor the memories of writing the macro. ACKNOWLEDGMENTS Ron Fehd Macro Maven has been helpful in his lectures and s. CONTACT INFORMATION Contact the author: Author: Sumner Williams Company: CareOregon, Inc. Address: 315 SW 5th Ave. Suite 900 Portland, OR Phone: (503) williamsu@careoregon.org SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. indicates USA registration. Other brand and product names are trademarks of their respective companies. 5

While You Were Sleeping - Scheduling SAS Jobs to Run Automatically Faron Kincheloe, Baylor University, Waco, TX

While You Were Sleeping - Scheduling SAS Jobs to Run Automatically Faron Kincheloe, Baylor University, Waco, TX While You Were Sleeping - Scheduling SAS Jobs to Run Automatically Faron Kincheloe, Baylor University, Waco, TX ABSTRACT If you are tired of running the same jobs over and over again, this paper is for

More information

Flow Control: Branches and loops

Flow Control: Branches and loops Flow Control: Branches and loops In this context flow control refers to controlling the flow of the execution of your program that is, which instructions will get carried out and in what order. In the

More information

SAS Macro Dynamics - From Simple Basics to Powerful Invocations Rick Andrews, Office of the Actuary, CMS, Baltimore, MD

SAS Macro Dynamics - From Simple Basics to Powerful Invocations Rick Andrews, Office of the Actuary, CMS, Baltimore, MD Paper BB-7 SAS Macro Dynamics - From Simple Basics to Powerful Invocations Rick Andrews, Office of the Actuary, CMS, Baltimore, MD ABSTRACT The SAS Macro Facility offers a mechanism for expanding and customizing

More information

My SAS Grid Scheduler

My SAS Grid Scheduler ABSTRACT Paper 1148-2017 My SAS Grid Scheduler Patrick Cuba, Cuba BI Consulting No Batch Scheduler? No problem! This paper describes the use of a SAS DI Studio job that can be started by a time dependent

More information

While You Were Sleeping, SAS Was Hard At Work Andrea Wainwright-Zimmerman, Capital One Financial, Inc., Richmond, VA

While You Were Sleeping, SAS Was Hard At Work Andrea Wainwright-Zimmerman, Capital One Financial, Inc., Richmond, VA Paper BB-02 While You Were Sleeping, SAS Was Hard At Work Andrea Wainwright-Zimmerman, Capital One Financial, Inc., Richmond, VA ABSTRACT Automating and scheduling SAS code to run over night has many advantages,

More information

What to Expect When You Need to Make a Data Delivery... Helpful Tips and Techniques

What to Expect When You Need to Make a Data Delivery... Helpful Tips and Techniques What to Expect When You Need to Make a Data Delivery... Helpful Tips and Techniques Louise Hadden, Abt Associates Inc. QUESTIONS YOU SHOULD ASK REGARDING THE PROJECT Is there any information regarding

More information

A Generalized Macro-Based Data Reporting System to Produce Both HTML and Text Files

A Generalized Macro-Based Data Reporting System to Produce Both HTML and Text Files A Generalized Macro-Based Data Reporting System to Produce Both HTML and Text Files Jeff F. Sun, Blue Cross Blue Shield of North Carolina, Durham, North Carolina Abstract This paper will address the inter-connection

More information

OLAP Drill-through Table Considerations

OLAP Drill-through Table Considerations Paper 023-2014 OLAP Drill-through Table Considerations M. Michelle Buchecker, SAS Institute, Inc. ABSTRACT When creating an OLAP cube, you have the option of specifying a drill-through table, also known

More information

PROGRAMMING ROLLING REGRESSIONS IN SAS MICHAEL D. BOLDIN, UNIVERSITY OF PENNSYLVANIA, PHILADELPHIA, PA

PROGRAMMING ROLLING REGRESSIONS IN SAS MICHAEL D. BOLDIN, UNIVERSITY OF PENNSYLVANIA, PHILADELPHIA, PA PROGRAMMING ROLLING REGRESSIONS IN SAS MICHAEL D. BOLDIN, UNIVERSITY OF PENNSYLVANIA, PHILADELPHIA, PA ABSTRACT SAS does not have an option for PROC REG (or any of its other equation estimation procedures)

More information

SAS/Warehouse Administrator Usage and Enhancements Terry Lewis, SAS Institute Inc., Cary, NC

SAS/Warehouse Administrator Usage and Enhancements Terry Lewis, SAS Institute Inc., Cary, NC SAS/Warehouse Administrator Usage and Enhancements Terry Lewis, SAS Institute Inc., Cary, NC ABSTRACT SAS/Warehouse Administrator software makes it easier to build, maintain, and access data warehouses

More information

Lecture Programming in C++ PART 1. By Assistant Professor Dr. Ali Kattan

Lecture Programming in C++ PART 1. By Assistant Professor Dr. Ali Kattan Lecture 08-1 Programming in C++ PART 1 By Assistant Professor Dr. Ali Kattan 1 The Conditional Operator The conditional operator is similar to the if..else statement but has a shorter format. This is useful

More information

SEARCH ENGINE MARKETING (SEM)

SEARCH ENGINE MARKETING (SEM) D I G I TA L M A R K E T I N G S E A R C H E N G I N E O P T I M I Z AT I O N ( S E O ) SEARCH ENGINE MARKETING (SEM) C O N T E N T S T R AT E G Y SEARCH ENGINE OPTIMIZATION (SEO) 90% of all website traffic

More information

UOP - Method #1 - Enter a percentage for the life - Annual Depreciation.

UOP - Method #1 - Enter a percentage for the life - Annual Depreciation. UOP - Method #1 - Enter a percentage for the life - Annual Depreciation. There are two ways that you can use the UOP depreciation method. The first method is by entering a percentage for the life. However,

More information

A Cross-national Comparison Using Stacked Data

A Cross-national Comparison Using Stacked Data A Cross-national Comparison Using Stacked Data Goal In this exercise, we combine household- and person-level files across countries to run a regression estimating the usual hours of the working-aged civilian

More information

Files Arriving at an Inconvenient Time? Let SAS Process Your Files with FILEEXIST While You Sleep

Files Arriving at an Inconvenient Time? Let SAS Process Your Files with FILEEXIST While You Sleep Files Arriving at an Inconvenient Time? Let SAS Process Your Files with FILEEXIST While You Sleep Educational Testing Service SAS and all other SAS Institute Inc. product or service names are registered

More information

Principle of Complier Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore

Principle of Complier Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore Principle of Complier Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore Lecture - 20 Intermediate code generation Part-4 Run-time environments

More information

Tips for Mastering Relational Databases Using SAS/ACCESS

Tips for Mastering Relational Databases Using SAS/ACCESS Tips for Mastering Relational Databases Using SAS/ACCESS SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other

More information

Login Brothers Bookmarks Its Place in B2B and B2C E-Commerce

Login Brothers Bookmarks Its Place in B2B and B2C E-Commerce Login Brothers Bookmarks Its Place in B2B and B2C E-Commerce By Elizabeth Barnett lthough Login Brothers Book Company had a history of allowing Customers to order books electronically, it wasn't until

More information

Hidden in plain sight: my top ten underpublicized enhancements in SAS Versions 9.2 and 9.3

Hidden in plain sight: my top ten underpublicized enhancements in SAS Versions 9.2 and 9.3 Hidden in plain sight: my top ten underpublicized enhancements in SAS Versions 9.2 and 9.3 Bruce Gilsen, Federal Reserve Board, Washington, DC ABSTRACT SAS Versions 9.2 and 9.3 contain many interesting

More information

Producing Summary Tables in SAS Enterprise Guide

Producing Summary Tables in SAS Enterprise Guide Producing Summary Tables in SAS Enterprise Guide Lora D. Delwiche, University of California, Davis, CA Susan J. Slaughter, Avocet Solutions, Davis, CA ABSTRACT This paper shows, step-by-step, how to use

More information

Economic Variables. 1. We will search for GDP for Ghana. To begin, open Excel

Economic Variables. 1. We will search for GDP for Ghana. To begin, open Excel Economic Variables Before you start: please work through the guide Logging on and getting started with Datastream. It would also be helpful if you have used our guide for Company/Equity Data as this outlines

More information

Administrator Guide. November 2010

Administrator Guide. November 2010 Administrator Guide November 2010 AppShore Inc. Administrator Guide Table of Contents Overview...2 Logging into AppShore...2 How to upgrade a subscription...3 How to close your AppShore account...4 Roles...5

More information

Your Own SAS Macros Are as Powerful as You Are Ingenious

Your Own SAS Macros Are as Powerful as You Are Ingenious Paper CC166 Your Own SAS Macros Are as Powerful as You Are Ingenious Yinghua Shi, Department Of Treasury, Washington, DC ABSTRACT This article proposes, for user-written SAS macros, separate definitions

More information

Scheduled Automatic Search using Dell Repository Manager

Scheduled Automatic Search using Dell Repository Manager Scheduled Automatic Search using Dell Repository Manager A Dell Technical White Paper Dell, Inc. Dell Repository Manager Team THIS WHITE PAPER IS FOR INFORMATIONAL PURPOSES ONLY, AND MAY CONTAIN TYPOGRAPHICAL

More information

Introduction. How Does it Work with Autodesk Vault? What is Microsoft Data Protection Manager (DPM)? autodesk vault

Introduction. How Does it Work with Autodesk Vault? What is Microsoft Data Protection Manager (DPM)? autodesk vault Introduction What is Microsoft Data Protection Manager (DPM)? The Microsoft Data Protection Manager is a member of the Microsoft System Center family of management products. DPM provides continuous data

More information

University of Technology. Laser & Optoelectronics Engineering Department. C++ Lab.

University of Technology. Laser & Optoelectronics Engineering Department. C++ Lab. University of Technology Laser & Optoelectronics Engineering Department C++ Lab Sixth week Jump statements The break statement Using break we can leave a loop even if the condition for its end is not fulfilled

More information

Monitor Qlik Sense sites. Qlik Sense Copyright QlikTech International AB. All rights reserved.

Monitor Qlik Sense sites. Qlik Sense Copyright QlikTech International AB. All rights reserved. Monitor Qlik Sense sites Qlik Sense 2.1.2 Copyright 1993-2015 QlikTech International AB. All rights reserved. Copyright 1993-2015 QlikTech International AB. All rights reserved. Qlik, QlikTech, Qlik Sense,

More information

Make it a Date! Setting up a Master Date View in SAS

Make it a Date! Setting up a Master Date View in SAS SCSUG Paper 19-2017 Make it a Date! Setting up a Master Date View in SAS Crystal Carel, MPH¹ ² ¹STEEEP Analytics, Baylor Scott & White Health, Dallas, TX ²Northern Illinois University, College of Health

More information

Key Terms and Concepts. Introduction

Key Terms and Concepts. Introduction TIME SERIES MAGIC: SMOOTHING, INTERPOLATING, EXPANDING AND COLLAPSING TIME SERIES DATA WITH PROC EXPAND Andrew H. Karp Sierra Information Services, Inc. San Francisco, California USA Introduction PROC

More information

LECTURE 5 Control Structures Part 2

LECTURE 5 Control Structures Part 2 LECTURE 5 Control Structures Part 2 REPETITION STATEMENTS Repetition statements are called loops, and are used to repeat the same code multiple times in succession. The number of repetitions is based on

More information

Unlock SAS Code Automation with the Power of Macros

Unlock SAS Code Automation with the Power of Macros SESUG 2015 ABSTRACT Paper AD-87 Unlock SAS Code Automation with the Power of Macros William Gui Zupko II, Federal Law Enforcement Training Centers SAS code, like any computer programming code, seems to

More information

Applicant User Guide

Applicant User Guide Washington Headquarters Services Mass Transportation Benefit Program (MTBP) Web Application Applicant User Guide June 2011 SW Release Version 1.3 User Guide Version 1.6 Table of Contents 1. Introduction...

More information

Going Under the Hood: How Does the Macro Processor Really Work?

Going Under the Hood: How Does the Macro Processor Really Work? Going Under the Hood: How Does the Really Work? ABSTRACT Lisa Lyons, PPD, Inc Hamilton, NJ Did you ever wonder what really goes on behind the scenes of the macro processor, or how it works with other parts

More information

8. Control statements

8. Control statements 8. Control statements A simple C++ statement is each of the individual instructions of a program, like the variable declarations and expressions seen in previous sections. They always end with a semicolon

More information

A Practical Introduction to SAS Data Integration Studio

A Practical Introduction to SAS Data Integration Studio ABSTRACT A Practical Introduction to SAS Data Integration Studio Erik Larsen, Independent Consultant, Charleston, SC Frank Ferriola, Financial Risk Group, Cary, NC A useful and often overlooked tool which

More information

Creating a Departmental Standard SAS Enterprise Guide Template

Creating a Departmental Standard SAS Enterprise Guide Template Paper 1288-2017 Creating a Departmental Standard SAS Enterprise Guide Template ABSTRACT Amanda Pasch and Chris Koppenhafer, Kaiser Permanente This paper describes an ongoing effort to standardize and simplify

More information

SAS Data Integration Studio Take Control with Conditional & Looping Transformations

SAS Data Integration Studio Take Control with Conditional & Looping Transformations Paper 1179-2017 SAS Data Integration Studio Take Control with Conditional & Looping Transformations Harry Droogendyk, Stratia Consulting Inc. ABSTRACT SAS Data Integration Studio jobs are not always linear.

More information

Chapter 2: Getting Data Into SAS

Chapter 2: Getting Data Into SAS Chapter 2: Getting Data Into SAS Data stored in many different forms/formats. Four categories of ways to read in data. 1. Entering data directly through keyboard 2. Creating SAS data sets from raw data

More information

Dictionary.coumns is your friend while appending or moving data

Dictionary.coumns is your friend while appending or moving data ABSTRACT SESUG Paper CC-41-2017 Dictionary.coumns is your friend while appending or moving data Kiran Venna, Dataspace Inc. Dictionary.columns is a dictionary table, which gives metadata information of

More information

A Practical Guide to SAS Extended Attributes

A Practical Guide to SAS Extended Attributes ABSTRACT Paper 1980-2015 A Practical Guide to SAS Extended Attributes Chris Brooks, Melrose Analytics Ltd All SAS data sets and variables have standard attributes. These include items such as creation

More information

PowerSchool Student and Parent Portal User Guide. https://powerschool.gpcsd.ca/public

PowerSchool Student and Parent Portal User Guide. https://powerschool.gpcsd.ca/public PowerSchool Student and Parent Portal User Guide https://powerschool.gpcsd.ca/public Released June 2017 Document Owner: Documentation Services This edition applies to Release 11.x of the PowerSchool software

More information

Iterative Languages. Scoping

Iterative Languages. Scoping Iterative Languages Scoping Sample Languages C: static-scoping Perl: static and dynamic-scoping (use to be only dynamic scoping) Both gcc (to run C programs), and perl (to run Perl programs) are installed

More information

Consider the following to determine which data and fields to include in your report:

Consider the following to determine which data and fields to include in your report: report writer working with report writer This document discusses the basics of working with the Issuetrak Report Writer. For additional information, please see Issuetrak Best Practices Report Writer. report

More information

Billing: Managing Items. Rate Increases, Description Updates, and Member Assignments

Billing: Managing Items. Rate Increases, Description Updates, and Member Assignments Billing: Managing Items Rate Increases, Description Updates, and Member Assignments Rate adjustments Adjust default rate Increase/Decrease member amounts Percentage or flat amount All members or by renewal

More information

(Refer Slide Time: 01:12)

(Refer Slide Time: 01:12) Internet Technology Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No #22 PERL Part II We continue with our discussion on the Perl

More information

Paper AD12 Using the ODS EXCEL Destination with SAS University Edition to Send Graphs to Excel

Paper AD12 Using the ODS EXCEL Destination with SAS University Edition to Send Graphs to Excel Paper AD12 Using the ODS EXCEL Destination with SAS University Edition to Send Graphs to Excel ABSTRACT William E Benjamin Jr, Owl Computer Consultancy LLC, Phoenix Arizona Students now have access to

More information

CHAPTER 7 Using Other SAS Software Products

CHAPTER 7 Using Other SAS Software Products 77 CHAPTER 7 Using Other SAS Software Products Introduction 77 Using SAS DATA Step Features in SCL 78 Statements 78 Functions 79 Variables 79 Numeric Variables 79 Character Variables 79 Expressions 80

More information

ABSTRACT: INTRODUCTION: WEB CRAWLER OVERVIEW: METHOD 1: WEB CRAWLER IN SAS DATA STEP CODE. Paper CC-17

ABSTRACT: INTRODUCTION: WEB CRAWLER OVERVIEW: METHOD 1: WEB CRAWLER IN SAS DATA STEP CODE. Paper CC-17 Paper CC-17 Your Friendly Neighborhood Web Crawler: A Guide to Crawling the Web with SAS Jake Bartlett, Alicia Bieringer, and James Cox PhD, SAS Institute Inc., Cary, NC ABSTRACT: The World Wide Web has

More information

You deserve ARRAYs; How to be more efficient using SAS!

You deserve ARRAYs; How to be more efficient using SAS! ABSTRACT Paper 3259-2015 You deserve ARRAYs; How to be more efficient using SAS! Kate Burnett-Isaacs, Statistics Canada Everyone likes getting a raise, and using arrays in SAS can help you do just that!

More information

Data Policy. Actionable Data, Part I. Feature Guide

Data Policy. Actionable Data, Part I. Feature Guide Feature Guide Data Policy Actionable Data, Part I Data Policy... 2 How it Works... 2 Activation Triggers... 2 Calendar-Based Activation... 2 Action-Based Activation... 3 Activation Sequence... 3 Actions...

More information

LepideAuditor. Current Permission Report

LepideAuditor. Current Permission Report Table of Contents 1. Introduction... 3 2. Current Permission Scan Settings... 3 2.1 Configure SQL Server... 3 2.2 Stale Object Settings... 5 2.3 Available Options to manage the data set... 6 2.3.1 Add

More information

Different Methods for Accessing Non-SAS Data to Build and Incrementally Update That Data Warehouse

Different Methods for Accessing Non-SAS Data to Build and Incrementally Update That Data Warehouse Different Methods for Accessing Non-SAS Data to Build and Incrementally Update That Data Warehouse Ben Cochran, The Bedford Group, Raleigh, NC Abstract Often SAS users need to access data from non- SAS

More information

Here Scripts. Writing An HTML File With A Script

Here Scripts. Writing An HTML File With A Script Here Scripts Beginning with this lesson, we will construct a useful application. This application will produce an HTML document that contains information about your system. I spent a lot of time thinking

More information

University of Technology. Laser & Optoelectronics Engineering Department. C++ Lab.

University of Technology. Laser & Optoelectronics Engineering Department. C++ Lab. University of Technology Laser & Optoelectronics Engineering Department C++ Lab. Fifth week Control Structures A program is usually not limited to a linear sequence of instructions. During its process

More information

Using GSUBMIT command to customize the interface in SAS Xin Wang, Fountain Medical Technology Co., ltd, Nanjing, China

Using GSUBMIT command to customize the interface in SAS Xin Wang, Fountain Medical Technology Co., ltd, Nanjing, China PharmaSUG China 2015 - Paper PO71 Using GSUBMIT command to customize the interface in SAS Xin Wang, Fountain Medical Technology Co., ltd, Nanjing, China One of the reasons that SAS is widely used as the

More information

Cutting the SAS LOG down to size Malachy J. Foley, University of North Carolina at Chapel Hill, NC

Cutting the SAS LOG down to size Malachy J. Foley, University of North Carolina at Chapel Hill, NC Paper SY05 Cutting the SAS LOG down to size Malachy J. Foley, University of North Carolina at Chapel Hill, NC ABSTRACT Looking through a large SAS LOG (say 250 pages) for NOTE's and WARNING's that might

More information

Getting Started With Google Analytics Detailed Beginner s Guide

Getting Started With Google Analytics Detailed Beginner s Guide Getting Started With Google Analytics Detailed Beginner s Guide Copyright 2009-2016 FATbit - All rights reserved. The number of active websites on the internet could exceed the billionth mark by the end

More information

Exsys RuleBook Selector Tutorial. Copyright 2004 EXSYS Inc. All right reserved. Printed in the United States of America.

Exsys RuleBook Selector Tutorial. Copyright 2004 EXSYS Inc. All right reserved. Printed in the United States of America. Exsys RuleBook Selector Tutorial Copyright 2004 EXSYS Inc. All right reserved. Printed in the United States of America. This documentation, as well as the software described in it, is furnished under license

More information

Useful Tips When Deploying SAS Code in a Production Environment

Useful Tips When Deploying SAS Code in a Production Environment Paper SAS258-2014 Useful Tips When Deploying SAS Code in a Production Environment ABSTRACT Elena Shtern, SAS Institute Inc., Arlington, VA When deploying SAS code into a production environment, a programmer

More information

Service Line Export and Pivot Table Report (Windows Excel 2010)

Service Line Export and Pivot Table Report (Windows Excel 2010) Service Line Export and Pivot Table Report (Windows Excel 2010) In this tutorial, we will take the Service Lines of the Active Students only and only the most recent record to take a snapshot look at approximate

More information

SEER AKADEMI LINUX PROGRAMMING AND SCRIPTINGPERL 7

SEER AKADEMI LINUX PROGRAMMING AND SCRIPTINGPERL 7 SEER AKADEMI LINUX PROGRAMMING AND SCRIPTINGPERL 7 Hi everyone once again welcome to this lecture we are actually the course is Linux programming and scripting we have been talking about the Perl, Perl

More information

DATA WAREHOUSE BASICS

DATA WAREHOUSE BASICS DATA WAREHOUSE BASICS A Software Overview using the Retail Golf Model with version 9 NOTE: This course material was developed using Hummingbird version 9 with Windows XP. There will be navigational differences

More information

SAS Macro Dynamics: from Simple Basics to Powerful Invocations Rick Andrews, Office of Research, Development, and Information, Baltimore, MD

SAS Macro Dynamics: from Simple Basics to Powerful Invocations Rick Andrews, Office of Research, Development, and Information, Baltimore, MD ABSTRACT CODERS CORNER SAS Macro Dynamics: from Simple Basics to Powerful Invocations Rick Andrews, Office of Research, Development, and Information, Baltimore, MD The SAS Macro Facility offers a mechanism

More information

Posters. Workarounds for SASWare Ballot Items Jack Hamilton, First Health, West Sacramento, California USA. Paper

Posters. Workarounds for SASWare Ballot Items Jack Hamilton, First Health, West Sacramento, California USA. Paper Paper 223-25 Workarounds for SASWare Ballot Items Jack Hamilton, First Health, West Sacramento, California USA ABSTRACT As part of its effort to insure that SAS Software is useful to its users, SAS Institute

More information

Anaplan Snapshotting Learning App User Guide

Anaplan Snapshotting Learning App User Guide Anaplan Snapshotting Learning App User Guide For Public Use Last updated: May 19, 2016 Prepared by ZS Associates ZS Associates +1 847 492 3600 www.zsassociates.com Overview Background Snapshotting is a

More information

One Project, Two Teams: The Unblind Leading the Blind

One Project, Two Teams: The Unblind Leading the Blind ABSTRACT PharmaSUG 2017 - Paper BB01 One Project, Two Teams: The Unblind Leading the Blind Kristen Reece Harrington, Rho, Inc. In the pharmaceutical world, there are instances where multiple independent

More information

A Simple Framework for Sequentially Processing Hierarchical Data Sets for Large Surveys

A Simple Framework for Sequentially Processing Hierarchical Data Sets for Large Surveys A Simple Framework for Sequentially Processing Hierarchical Data Sets for Large Surveys Richard L. Downs, Jr. and Pura A. Peréz U.S. Bureau of the Census, Washington, D.C. ABSTRACT This paper explains

More information

Intermediate Excel 2013

Intermediate Excel 2013 Intermediate Excel 2013 Class Objective: Elmhurst Public Library is committed to offering enriching programs to help our patrons Explore, Learn, and Grow. Today, technology skills are more than a valuable

More information

(Refer Slide Time: 1:27)

(Refer Slide Time: 1:27) Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 1 Introduction to Data Structures and Algorithms Welcome to data

More information

SilverStripe - Website content editors.

SilverStripe - Website content editors. SilverStripe - Website content editors. Web Content Best Practices In this section: Learn how to make your site search-engine friendly Learn how to make your content accessible Other web best practices

More information

Week 1: Introduction to R, part 1

Week 1: Introduction to R, part 1 Week 1: Introduction to R, part 1 Goals Learning how to start with R and RStudio Use the command line Use functions in R Learning the Tools What is R? What is RStudio? Getting started R is a computer program

More information

Using 25Live. Navigating 25Live Tabs CollegeNET, Inc.

Using 25Live. Navigating 25Live Tabs CollegeNET, Inc. Using 25Live Navigating 25Live Tabs Home tab 25Live Home tab provides two options for your initial working view of 25Live Dashboard is your browser-based desktop for quick access to a variety of 25Live

More information

T.I.P.S. (Techniques and Information for Programming in SAS )

T.I.P.S. (Techniques and Information for Programming in SAS ) Paper PO-088 T.I.P.S. (Techniques and Information for Programming in SAS ) Kathy Harkins, Carolyn Maass, Mary Anne Rutkowski Merck Research Laboratories, Upper Gwynedd, PA ABSTRACT: This paper provides

More information

ACTIVANT. Prophet 21 ACTIVANT PROPHET 21. New Features Guide Version 11.0 ADMINISTRATION NEW FEATURES GUIDE (SS, SA, PS) Pre-Release Documentation

ACTIVANT. Prophet 21 ACTIVANT PROPHET 21. New Features Guide Version 11.0 ADMINISTRATION NEW FEATURES GUIDE (SS, SA, PS) Pre-Release Documentation I ACTIVANT ACTIVANT PROPHET 21 Prophet 21 ADMINISTRATION NEW FEATURES GUIDE (SS, SA, PS) New Features Guide Version 11.0 Version 11.5 Pre-Release Documentation This manual contains reference information

More information

Using a Control Dataset to Manage Production Compiled Macro Library Curtis E. Reid, Bureau of Labor Statistics, Washington, DC

Using a Control Dataset to Manage Production Compiled Macro Library Curtis E. Reid, Bureau of Labor Statistics, Washington, DC AP06 Using a Control Dataset to Manage Production Compiled Macro Library Curtis E. Reid, Bureau of Labor Statistics, Washington, DC ABSTRACT By default, SAS compiles and stores all macros into the WORK

More information

The Output Bundle: A Solution for a Fully Documented Program Run

The Output Bundle: A Solution for a Fully Documented Program Run Paper AD05 The Output Bundle: A Solution for a Fully Documented Program Run Carl Herremans, MSD (Europe), Inc., Brussels, Belgium ABSTRACT Within a biostatistics department, it is required that each statistical

More information

A Mass Symphony: Directing the Program Logs, Lists, and Outputs

A Mass Symphony: Directing the Program Logs, Lists, and Outputs PharmaSUG2011 Paper CC24 ABSTRACT A Mass Symphony: Directing the Program Logs, Lists, and Outputs Tom Santopoli, Octagon Research Solutions, Inc., Wayne, PA When executing programs in SAS, it is efficient

More information

SAS ENTERPRISE GUIDE USER INTERFACE

SAS ENTERPRISE GUIDE USER INTERFACE Paper 294-2008 What s New in the 4.2 releases of SAS Enterprise Guide and the SAS Add-In for Microsoft Office I-kong Fu, Lina Clover, and Anand Chitale, SAS Institute Inc., Cary, NC ABSTRACT SAS Enterprise

More information

Loops! Loops! Loops! Lecture 5 COP 3014 Fall September 25, 2017

Loops! Loops! Loops! Lecture 5 COP 3014 Fall September 25, 2017 Loops! Loops! Loops! Lecture 5 COP 3014 Fall 2017 September 25, 2017 Repetition Statements Repetition statements are called loops, and are used to repeat the same code mulitple times in succession. The

More information

MeltLab Reporting Text, CSV or Excel

MeltLab Reporting Text, CSV or Excel MeltLab Reporting Text, CSV or Excel Graphic Statistical Process Control by MeltLab Systems 844-MeltLab www.meltlab.com Fast Accurate Comprehensive Setting up MeltLab Reporting for ASCII ASCII reporting

More information

Top Coding Tips. Neil Merchant Technical Specialist - SAS

Top Coding Tips. Neil Merchant Technical Specialist - SAS Top Coding Tips Neil Merchant Technical Specialist - SAS Bio Work in the ANSWERS team at SAS o Analytics as a Service and Visual Analytics Try before you buy SAS user for 12 years obase SAS and O/S integration

More information

Error Trapping Techniques for SCL. Andrew Rosenbaum, Trilogy Consulting, Kalamazoo, MI

Error Trapping Techniques for SCL. Andrew Rosenbaum, Trilogy Consulting, Kalamazoo, MI Paper 28-26 Error Trapping Techniques for SCL Andrew Rosenbaum, Trilogy Consulting, Kalamazoo, MI ABSTRACT An often-overlooked aspect of applications programming is error trapping. There are always unexpected

More information

Time : 3 hours. Full Marks : 75. Own words as far as practicable. The questions are of equal value. Answer any five questions.

Time : 3 hours. Full Marks : 75. Own words as far as practicable. The questions are of equal value. Answer any five questions. XEV (H-3) BCA (6) 2 0 1 0 Time : 3 hours Full Marks : 75 Candidates are required to give their answers in their Own words as far as practicable. The questions are of equal value. Answer any five questions.

More information

Macros are a block of code that can be executed/called on demand

Macros are a block of code that can be executed/called on demand What Are These Macros are a block of code that can be executed/called on demand Global variables are variables that you assign a value to, which can be referenced anywhere within your program. (Leah s

More information

OPS Webportal User Guide - Reporting v.2.1

OPS Webportal User Guide - Reporting v.2.1 OPS Webportal User Guide - Reporting v.2.1 Contents OPS Reporting... 3 OPS Web Portal... 4 Running Reports... 5 Report Navigation... 5 Group (Client) Selection... 6 Reporting Period... 7 Downloading the

More information

Automatically Generating a Customized Table for Summarizing the Activities in Clinics

Automatically Generating a Customized Table for Summarizing the Activities in Clinics Automatically Generating a Customized Table for Summarizing the Activities in Clinics Yan Xu, Joyce X. Wu and Han Wu * Keywords: Automatically, Tabulate, INTCK, INTNX Abstract Automatically generating

More information

Effectively Utilizing Loops and Arrays in the DATA Step

Effectively Utilizing Loops and Arrays in the DATA Step Paper 1618-2014 Effectively Utilizing Loops and Arrays in the DATA Step Arthur Li, City of Hope National Medical Center, Duarte, CA ABSTRACT The implicit loop refers to the DATA step repetitively reading

More information

What you learned so far. Loops & Arrays efficiency for statements while statements. Assignment Plan. Required Reading. Objective 2/3/2018

What you learned so far. Loops & Arrays efficiency for statements while statements. Assignment Plan. Required Reading. Objective 2/3/2018 Loops & Arrays efficiency for statements while statements Hye-Chung Kum Population Informatics Research Group http://pinformatics.org/ License: Data Science in the Health Domain by Hye-Chung Kum is licensed

More information

Library Calendar Project

Library Calendar Project Library Calendar Project Basic Information Project goals include: 1. Create a master calendar for the library which will be the basis for all calendars produced by the library. Print and web page formats

More information

Statistics, Data Analysis & Econometrics

Statistics, Data Analysis & Econometrics ST009 PROC MI as the Basis for a Macro for the Study of Patterns of Missing Data Carl E. Pierchala, National Highway Traffic Safety Administration, Washington ABSTRACT The study of missing data patterns

More information

ACT! Calendar to Excel

ACT! Calendar to Excel Another efficient and affordable ACT! Add-On by ACT! Calendar to Excel v.6.0 for ACT! 2008 and up http://www.exponenciel.com ACT! Calendar to Excel 2 Table of content Purpose of the add-on... 3 Installation

More information

CS450 - Structure of Higher Level Languages

CS450 - Structure of Higher Level Languages Spring 2018 Streams February 24, 2018 Introduction Streams are abstract sequences. They are potentially infinite we will see that their most interesting and powerful uses come in handling infinite sequences.

More information

Contents GENERAL OVERVIEW 3. User Profile and Permissions... 3 Regional Manager... 3 Manager... 3 User... 4 Security... 4

Contents GENERAL OVERVIEW 3. User Profile and Permissions... 3 Regional Manager... 3 Manager... 3 User... 4 Security... 4 SYNERGY USER GUIDE Contents GENERAL OVERVIEW 3 User Profile and Permissions... 3 Regional Manager... 3 Manager... 3 User... 4 Security... 4 Budgets... 4 Spending Limits... 5 PO Hold Review... 5 Regional

More information

GOOGLE ANALYTICS HELP PRESENTATION. We Welcome You to. Google Analytics Implementation Guidelines

GOOGLE ANALYTICS HELP PRESENTATION. We Welcome You to. Google Analytics Implementation Guidelines GOOGLE ANALYTICS HELP PRESENTATION We Welcome You to Google Analytics Implementation Guidelines 05/23/2008 Ashi Avalon - Google Analytics Implementation Presentation Page 1 of 28 1) What Is Google Analytics?

More information

Are Your SAS Programs Running You?

Are Your SAS Programs Running You? Overview Are Your SAS Programs Running You? Have you ever QUICKLY written some code assuming it will never be used again?? Is it now 5 years later and the SPAGHETTI CODE is still in production? Worse still

More information

Postgres Plus xdb Replication Server with Multi-Master User s Guide

Postgres Plus xdb Replication Server with Multi-Master User s Guide Postgres Plus xdb Replication Server with Multi-Master User s Guide Postgres Plus xdb Replication Server with Multi-Master 5.0 November 13, 2012 , Version 5.0 by EnterpriseDB Corporation Copyright 2012

More information

Programming Basics and Practice GEDB029 Decision Making, Branching and Looping. Prof. Dr. Mannan Saeed Muhammad bit.ly/gedb029

Programming Basics and Practice GEDB029 Decision Making, Branching and Looping. Prof. Dr. Mannan Saeed Muhammad bit.ly/gedb029 Programming Basics and Practice GEDB029 Decision Making, Branching and Looping Prof. Dr. Mannan Saeed Muhammad bit.ly/gedb029 Decision Making and Branching C language possesses such decision-making capabilities

More information

(Refer Slide Time: 01:25)

(Refer Slide Time: 01:25) Computer Architecture Prof. Anshul Kumar Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture - 32 Memory Hierarchy: Virtual Memory (contd.) We have discussed virtual

More information

%MAKE_IT_COUNT: An Example Macro for Dynamic Table Programming Britney Gilbert, Juniper Tree Consulting, Porter, Oklahoma

%MAKE_IT_COUNT: An Example Macro for Dynamic Table Programming Britney Gilbert, Juniper Tree Consulting, Porter, Oklahoma Britney Gilbert, Juniper Tree Consulting, Porter, Oklahoma ABSTRACT Today there is more pressure on programmers to deliver summary outputs faster without sacrificing quality. By using just a few programming

More information