A robust and flexible approach to automating SAS jobs under Unix Mike Atkinson, with the Ministry of Health Services, British Columbia

Size: px
Start display at page:

Download "A robust and flexible approach to automating SAS jobs under Unix Mike Atkinson, with the Ministry of Health Services, British Columbia"

Transcription

1 A robust and flexible approach to automating SAS jobs under Unix Mike Atkinson, with the Ministry of Health Services, British Columbia Abstract So you ve got a Unix server that is terrific for running big jobs, either right when you command or perhaps scheduled to run off-hours. What if those jobs could you to indicate their success or failure, with generated reports as attachments (when successful)? And if they could automatically store all of their logs, date and time stamped? This paper describes the use of a perl script that has been developed at the BC Ministry of Health Services to schedule SAS jobs on Unix. Here the term job refers to a set of SAS program(s) and/or perl module(s) to be run in sequence. In practice, most of the steps in our jobs are SAS programs, with perl used to do things like ing reports, and sending files via FTP. The Unix server is up and running 24/7, which makes it ideal for scheduling those massive jobs to run at night while everyone is sleeping. You may be aware that Unix comes with a nifty scheduling facility called crontab, which lets you run programs at specific times and dates, including the ability to run programs at regular intervals. Our system extends the power of crontab so that we can easily run multi-step jobs. Log and output files are automatically date-time stamped, so they won t be overwritten. Reports are typically ed to recipients as a final step of each job. Directory Tree The Unix file system uses a tree structure, and trees are a great way to organise your SAS code, logs, data, and output. In our system, the effective root of the tree indicates the environment: devl, prod, test, et cetera. Under each environment (devl, prod, etc) is an identical structure for storing all the items related to SAS jobs: programs, logs, reports, data. Here is a sample tree structure for an automated system: /path/to/devl /parms /bin /sascode /demo /monthly_reports

2 /shared_code /macros /logs /demo /monthly_reports /shared_code /reports /demo /monthly_reports /shared_code /sasdata /demo /monthly_reports Some of these sub-directories (shown in bold above) are required by our job scheduling system; others can be created as needed based on system-specific requirements. The /bin sub-directory contains all perl code, including the scripts that run jobs. Other useful perl modules (such as a module designed to FTP files) and any custom perl modules are stored here as well. The /parms sub-directory contains two files related to each job. Each job requires a.run file and a.mail file in the /parms sub-directory, for instance: demo.run and demo.mail. The.run file lists the steps (SAS programs and/or perl modules) to be run, one per line. Parameter values can be passed to perl modules or to SAS programs on the command line. The /sascode sub-directory in turn has a separate sub-directory for each distinct system being automated. Each of its sub-directories stores a group of SAS programs that might represent a system or sub-system of a larger system. (Using sub-directories in this way is a great way to organise SAS code, logs, and reports.) Our convention is to create a sub-directory of /sascode named /shared_code to store programs that cross system boundaries, and to put shared macros in a sub-directory beneath /shared_code. Other SAS code is placed under the appropriate sub-directory name. The /logs sub-directory contains the same set of sub-directories as the /sascode sub-directory; that is, there is a log directory corresponding to each sascode directory. When a job is run, the log for each executed program is automatically placed into the appropriate /logs sub-directory, with the job start date and time both contained within the file name of the log. The /reports sub-directory should also contain the same set of sub-directories as the /sascode sub-directory. Reports to standard SAS output will be automatically stored in the correct sub-directory under /reports, again date and time stamped. There is a bit more flexibility around the /sasdata sub-directory. This sub-directory (as might be expected) is used to store SAS datasets, and is allocated within SAS programs using a libname statement. Programs can choose whether to store each SAS dataset

3 directly under the /sasdata directory, or to store datasets under a lower level sub-directory (one level down from /sasdata). One of the goals when writing production SAS programs is to make the code completely portable between environments. It is much easier to manage migration from development to production when the migration does not require a single change to the code. We use a simple method for portable programs: the perl script that executes SAS programs passes the environment (e.g. devl) as a parameter to each SAS job it runs. SAS programs can easily make this into a macro variable indicating which environment the job is running in. Portability can be achieved if SAS programs use this macro variable within the path to all referenced files. Crontab The perl script will pass the environment to each executed SAS program, but how does the perl script know which environment it is running in? Our perl script determines the environment by checking the current directory at run time. A convention we follow for scheduling jobs (under crontab) is that two commands are always scheduled together: a cd command (change directory) to set the current directory as the /bin directory in one of the environments, and, separated by a semi-colon on the same line, a command to run the perl script. For instance, a crontab entry might look like the following: * * cd /path/to/prod/bin; run_job demo Up until now, we ve not given a name to the perl script - here it appears as run_job. This run_job is actually a small stub that performs some initialisations and then calls the real workhorse perl module job_control.pm. Each system using our job scheduler has its own small stub script to set a few system-specific items (such as the path to the system) before calling job_control.pm. Most of the details of the perl module job_control.pm are outside the scope of this paper. When the run_job perl script is executing, it can easily determine what the current directory is in this case /path/to/prod/bin. This system-specific script would likely be expecting the path to be of the form /path/to/environment/bin, and in this case the script would find that it is running in the prod environment. Crontab will execute these commands at the indicated time: 5am on the first of each month. The perl scripts will look in the directory /path/to/prod/parms for files named demo.run and demo.mail, and will start executing the steps in the demo.run file. It is also easy to run a job immediately by entering the run_job command at the prompt (while in the /bin directory of the environment we want to run in). This is often how the job is submitted to restart at the point of error - described later in the section Running jobs manually.

4 Defining Jobs As mentioned above, each job requires two files in the /parms directory, named job_name.run and job_name.mail where job_name is replaced by the name of a job. The.run file lists the steps of the job, in the order they are to be run. The.mail file lists the addresses of people to receive s of job success/failure notifications and s with reports as attachments. The.run file contains one line for each step in a job. This line simply names the program to be run and the name of the system the program belongs to, and optionally provides parameter values to be passed to the job. Either a SAS program or perl module can be called in each step: the file type (after the dot) indicates the type of each step. Comments start with a pound sign. Here s a short sample job.run file that has been named demo.run. # Demonstration job # demo/compile_data.sas demo/summary_report.sas demo/mail_reports.pm period_type=month_end You may have noticed that each line in this job starts with demo/. This names the system (or sub-system) the programs belong to: this also forms part of the path to sub-directories where the SAS code will be found, and where logs and reports will be placed. For instance, SAS code might be in the directory /path/to/prod/sascode/demo. When this job is executed (by the run_job perl script), one step will be run at a time. The file type on each line in the.run file (.sas or.pm) indicates whether the named code is SAS or perl. In this job, first the SAS program named compile_data.sas will be run. This program must be in the sub-directory named /demo, which in turn falls within the /sascode directory, e.g. path_to/devl/sascode/monthly_reports. This command line has a parameter named period_type. The perl script will pass this to the SAS program, where it can be turned into a macro variable (named &period_type) with the value MONTH_END. (Note: The sample code for demo_init.sasinc is just a demonstration of parameter passing, and does create any macro variables actually used by sample program named summary_report.sas.) The next SAS program in the job, summary_reports.sas, can create reports in one or many available formats: standard output listing, PDF, RTF, et cetera. If reports are written to the standard output destination, they will be created (in the reports sub-directory) as.lst files, with the program name and date/time stamp in the filename. For more refined output, the reporting program can specify a filename for a PDF or other type of output file.

5 The final step of this job is a perl module called mail_reports.pm. This perl module is commonly found at the end of.run files. Like other perl modules and scripts (but unlike SAS code in the system), the mail_reports.pm module does not reside in a sub-directory named /bin/demo it sits right in the /bin sub-directory. When this perl module is executed, it will look for reports within the correct reports sub-directory, in this case the directory /path/to/devl/reports/demo. The mail_reports.pm perl module will only mail reports associated with this particular execution of the job, which are identified by the date and time stamp that should appear in every report s file name. The mail_reports.pm module sends reports to recipients based on information in the.mail file. This file lists the addresses of report recipients, and includes one or more regular expression patterns for each recipient. Each recipient is sent all report files (created by this run of the job) that have names matching at least one of the listed patterns for that recipient. A regular expression consisting of a single period (.) will match all reports created by the job (and in the named sub-directory). In addition to regular expressions, there are a couple of special characters available as well, mainly for job administrators: exclamation mark (!) and greater-than sign (>). The exclamation mark indicates that a recipient will receive a notification of success or failure each time the job is executed. The greater-than sign indicates that the recipient will receive a list of which reports were sent to all recipients. Here is a sample.mail file, which in this case would be named demo.mail: # # Send all the reports, a list of who was sent what report, # and the job summary report IT.Guy@ABC.net! >. # # Send all reports, but nothing else Main.User@ABC.net. # # Gets all PDF reports only Other.User@ABC.net pdf$ PDF$ # # Gets reports containing one, two or three in the file name Another.User@ABC.net one two three SAS programs The first thing one of our SAS programs needs to do is to determine which environment it s being run in: development, production, et cetera. This has to be done first since if the program will %include other SAS code, it needs to know whether to include code file(s) from the devl, prod, or another environment. The perl script (that runs each SAS program) extracts the environment from the current directory, and passes this to the SAS program via sysparm. Also passed via sysparm (as one single, long value) are other parameters and values, including the date-time stamp.

6 The SAS program can use a single statement to set the macro variable &Env as the environment. * Find whether we are running in DEVL or PROD environment; %let Env = %scan(&sysparm, 1, %str(:)); Now that we have set &Env, we are ready to %include SAS code from the correct environment, by including &Env in the file path. Our SAS programs are likely to %include some code to read the remaining parameters from &sysparm, such as: %include "/path/to/&env/sascode/shared_code/initial.sasinc"; Here s what the command (created by the run_job script) might look like. This would be a single, long command it is only wrapped here because it is too long to fit on one line of this document. Notice that the sysparm parameter is one long string of characters the format will be described later. /usr/sas/sas -autoexec /path/to/site/autoexec/autoexec.sas -log /path/devl/logs/demo/compile_data log -print /demo/devl/reports/demo/compile_data lst /demo/devl/sascode/demo/compile_data.sas -sysparm devl:subdir=demo:date_stamp= :run_instance=1:period= MONTH_END This command ensures that the date and time stamp ( ) appears in the log and listing file names. The value is also passed to the SAS program via sysparm, to be placed into SAS macro variable &date_stamp. The string passed to sysparm is available within SAS as the system macro variable &sysparm. As mentioned, each SAS program extracts this from the start of &sysparm, as shown above. The SAS code in the file initial.sasinc reads the remainder of &sysparm (following the first colon), setting macro variables for each pair of variable=value found (between successive colons. In addition, initial.sasinc does some generic initialisation, such as allocating macro and template libraries, and determining the current date. Here s some of the code from initial.sasinc, which reads the parameter pairs from &sysparm. * Parse the passed sysparm value, setting macro values; %macro parse_sysparm; %global sysparm; %* Start with the 2nd parm the first indicated the environment; %let i = 2; %* Pairs are separated by colons; %let pair = %scan(&sysparm, &i, %str(:));

7 %do %while (%str(&pair) ne %str()); %end; %* Each parameter pair has a macro name and value, separated ; %* by the equals sign; %let var_name = %scan(&pair, 1, %str(=)); %let var_value = %substr(&pair, (1 + %index(&pair, %str(=)))); %* Assign value to global macro variable &var_name; %global &var_name; %let &var_name=&var_value; %* Get the next value, if any; %let i = %eval(&i + 1); %let pair = %scan(&sysparm, &i, %str(:)); %mend parse_sysparm; * Call the macro just defined; %parse_sysparm; The above macro could be stored in a macro library, with only the last line (calling the macro) required in the initial.sasinc code. If presentation is not important, a program might simply print to the standard text-based SAS output destination, and generate a report in a fixed width font. But for any program that will be run frequently, it might be worth a bit of effort to make reports more readable. Most often we will generate reports (using ODS) into PDF format. A sample SAS program (job step) Imagine that you need a SAS program named summary_report.sas to produce a monthly summary report. We ll look at a relatively simple sample program that creates PDF output (which is not really a monthly report), and then see how this program might be handled by the system. /********************************************************************** * summary_reports.sas: Report personal health expenditures * * for Canada * * * * Change History: * * * * ---Date--- Who What * * M.Atkinson Original * * * **********************************************************************/ * Find whether we are running in DEVL or PROD environment; %let Env = %scan(&sysparm, 1, %str(:));

8 * Include initialisation code; * (Set dates for processing based on the current date); %include "/path/to/&env/sascode/demo_init.sasinc"; * Print values of global macro variables into the log for reference; * Any global macro variables containing an underscore will be included; %print_macro_vals(inc_text=%str(_)); * Give file names for HTML and PDF output; * The macro variable &date_stamp should appear in file names; filename htmlfile "/path/to/&env/reports/&subdir/personal_health_expend_&date_stamp..html"; filename pdffile "/path/to/&env/reports/&subdir/personal_health_expend_&date_stamp..pdf"; * Assign a libname to the demo library; libname demolib "/path/to/&env/sasdata/demo"; * Create report in HTML format; options missing=' '; options orientation=landscape; ods listing close; ods markup file=htmlfile (title="personal Health Expenditure") style=my_helvetica tagset=tagsets.remtitle; ods printer pdf file=pdffile style=my_helvetica notoc; * Build a format for millions; proc format; picture million low-high='0,000,009m' (prefix='$' mult= ); run; * Report expenditures; proc report data=demolib.personal_health_expenditure nowd; column row_order description year, amount; define row_order / noprint group; define description / group ' ' style(header)={vjust=bottom}; define year / across ' ' style(header)={vjust=bottom};

9 define amount / analysis ' ' format=million. style(header)={vjust=bottom}; compute amount; if (substr(description, 1, 1) = '%') then call define(_col_, "format", "percent7.1"); endcomp; title1 "Personal expenditure on medical care and health services"; footnote1 j=l h=10pt f=helvetica "From Statistics Canada: quit; ods printer close; ods markup close; ods listing; Using the Current Date The following code is an example of setting various macro variables based on the current date. This is an artificial example, since the program summary_reports.sas above does not use the values created by this.sasinc file, except for those created by shared_code/initial.sasinc. /************************************************************************** * demo_init.sasinc Demonstrate initialisation processing, including * * the setting of dates based on the current date. * * * * Change History: * * * * ---Date--- Who What * * M.Atkinson Created * **************************************************************************/ * Include the shared initialisation code; * (this sets macro variable &current_date); %include "/hlth/sda/&env/sascode/shared_code/initial.sasinc"; * Set date cutoff value based on current date; data _null_; * Use 6 days after current date, allowing for the case that data for ; * the date becomes available a few days prior to the actual date; current_date_plus6_sas = 6 + input("&current_date", yymmdd8.); * If 6 days from current date is still prior to the 15th, ; * (i.e. we were prior to the 9th) then use the end of the prior month; if (day(current_date_plus6_sas) < 15) then do; call symput('mid_month', 'NO'); cutoff_sas = -1 + mdy(month(current_date_plus6_sas), 1, year(current_date_plus6_sas)); end;

10 * Otherwise, use mid-month (i.e. the 15th); else do; call symput('mid_month', 'YES'); cutoff_sas = mdy(month(current_date_plus6_sas), 15, year(current_date_plus6_sas)); end; call symput('cutoff_sas', cutoff_sas); call symput('cutoff_num', put(cutoff_sas, yymmddn8.)); run; * Print values of global macro variables into the log for reference; %print_macro_vals(inc_text=%str(_)); * Assign a libname to the demo library; libname demolib "/hlth/sda/&env/sasdata/demo"; One convention we have is to include an underscore in all macro variable names this makes it easy for our %print_macro_vals macro to pick out which macro variables to write to the log. We typically call this macro after initialising all macro variables, so that each log has a nice record of all the macro variable values that were in effect. For instance, the following might be written within the log: ************ User Macro Variable Values Shown Below ************ Note: Macro variables must contain one of: _ CURRENT_DATE = CUTOFF_NUM = CUTOFF_SAS = DATE_STAMP = MID_MONTH = NO PERIOD = MONTH_END RUN_INSTANCE = 1 TODAYS_DATE = ************ User Macro Variable Values Shown Above ************ A sample SAS step as part of a job Now suppose that this SAS program was one step of a job - the job shown in the section Defining Jobs. If a job fails, an is sent to the appropriate person or persons. In this case, the failure notification is sent only to IT.Guy@ABC.net (who has the! symbol in the.mail file). Presumably he will fix the error and re-submit. The indicating failure looks like this. (It tends to get your attention when you receive an with subject line containing failed in capital letters!) Subject: **run_job demo FAILED** run_job demo FAILED with return code 2 Command:...run_job demo

11 Environment:...devl Job Name:...demo Date Stamp: Start at step:...(beginning) End at step:...(end) Following steps were run: Start Return Time Code Command 18:23:46 0 demo/compile_data.sas period=month_end 18:23:57 ******2 demo/summary_reports.sas 18:23:57 Failure Time To run all steps from the failed step onward, you might use the following command: run_job demo summary_reports.sas & The last line of the failure message can be very handy. Once the error has been corrected, the job can be restarted at the step that had an error by using the command provided. Specifying the date-time stamp is key when restarting jobs. Since the mail_reports.pm perl module (usually the last step of the job) will be using the date-time stamp to identify all reports that apply to this job, it is important that the same date-time stamp value be used in the names of files created both in job steps run prior to the point of error, and in later job steps ran in the restarted job. Specifying the original date-time stamp as an argument to the perl script overrides the usual behaviour of using the current date and time, and the passed date-time stamp value is used instead. Oops if the same date/time stamp is used, won t the new log of the restarted step overwrite the log created by the failed execution? To prevent this from happening, old logs are kept in a separate file to the most recent log. Before a log file can be overwritten, it is renamed by the perl script, appending.old to the file name. If there have been two or more failures for the same step, logs for successive runs are appended to the log that ends with.old. The final, successful, log is always stored on its own, in the file ending with.log. When the job completes successfully, the final step (mail_reports.pm) will the report(s) to the indicated recipients. In the case of the demo job (as indicated by the demo.mail file), the recipients will be: IT.Guy@ABC.net (who receives all reports) Main.User@ABC.net (who also receives all reports) Other.User@ABC.net (who receives all reports of type PDF) Another.User@ABC.net (who receives reports where the file name contains one, two, or three ) All reports created during the job (by programs in the demo system), and which are targeted for a given recipient, will be mailed as multiple attachments of a single to

12 that recipient. Since the attached reports for each recipient may be different, each receives their own, separate, . Let s suppose that the program detail_reports.sas created reports named fancy_one.pdf, really_fancy.pdf, and summary_report.lst. All three reports would go to each of the recipients listed above, and the report named one.pdf will go to Other.User@ABC.net (and also to the other three recipients). But let s assume the job executed successfully the first time. An such as the following, showing the execution time for each step in the job, would be sent to IT.Guy. Subject: run_job demo was successful run_job demo completed with return code 0 Command:...run_job demo Environment:...devl Job Name:...demo Date Stamp: Start at step:...(beginning) End at step:...(end) Following steps were run: Start Return Time Code Command 18:18:35 0 demo/compile_data.sas period=month_end 18:18:46 0 demo/summary_reports.sas 18:18:55 0 demo/mail_reports.pm 18:18:55 Completion Time In addition to the job summary shown above, each recipient of report(s) would be sent an with applicable reports attached. Attachments to the could then be viewed on the screen or saved to disk. The with report attachments might look like the following: Subject: Reports from demo stream, Run date: This has the following 3 attachments: /path/to/devl/reports/demo/personal_health_expend_ html /path/to/devl/reports/demo/personal_health_expend_ pdf /path/to/devl/reports/demo/compile_data lst In addition to the text above listing these files, the would have the indicated files as attachments. Here s what the reports look like:

13 Personal_Health_Expend_ html: Personal expenditure on medical care and health services Total personal expenditure on consumer goods and services $596,009M $655,722M $719,917M $801,211M $891,197M Total personal expenditure on medical care and health services $28,986M $33,623M $38,032M $43,862M $50,589M Medical care $13,456M $15,395M $16,997M $19,657M $22,778M Hospital care and the like $1,388M $1,577M $1,798M $2,044M $2,380M Other medical care expenses $4,137M $4,546M $5,178M $5,480M $6,315M Drugs and pharmaceutical products $10,005M $12,105M $14,059M $16,681M $19,116M % of all personal expenditure on medical care and health services 4.9% 5.1% 5.3% 5.5% 5.7% From Statistics Canada: Personal_Health_Expend_ pdf: (on next page)

14 Personal expenditure on medical care and health services 18:18 Thursday, July 2, Total personal expenditure on consumer goods and services $596,009M $655,722M $719,917M $801,211M $891,197M Total personal expenditure on medical care and health services $28,986M $33,623M $38,032M $43,862M $50,589M Medical care $13,456M $15,395M $16,997M $19,657M $22,778M Hospital care and the like $1,388M $1,577M $1,798M $2,044M $2,380M Other medical care expenses $4,137M $4,546M $5,178M $5,480M $6,315M Drugs and pharmaceutical products $10,005M $12,105M $14,059M $16,681M $19,116M % of all personal expenditure on medical care and health services 4.9% 5.1% 5.3% 5.5% 5.7% From Statistics Canada:

15 compile_data lst: row_ Obs order year description Straight proc print with no frills 1 18:18 Thurday, July 2, Total personal expenditure on consumer goods and services Total personal expenditure on consumer goods and services Total personal expenditure on consumer goods and services Total personal expenditure on consumer goods and services Total personal expenditure on consumer goods and services Total personal expenditure on medical care and health services Total personal expenditure on medical care and health services Total personal expenditure on medical care and health services Total personal expenditure on medical care and health services Total personal expenditure on medical care and health services Medical care Medical care Medical care Medical care Medical care Obs amount Obs lag_description 1 2 Total personal expenditure on consumer goods and services 3 Total personal expenditure on consumer goods and services 4 Total personal expenditure on consumer goods and services 5 Total personal expenditure on consumer goods and services 6 Total personal expenditure on consumer goods and services 7 Total personal expenditure on medical care and health services 8 Total personal expenditure on medical care and health services 9 Total personal expenditure on medical care and health services 10 Total personal expenditure on medical care and health services 11 Total personal expenditure on medical care and health services 12 Medical care 13 Medical care 14 Medical care 15 Medical care Et cetera

16 IT.Guy would also receive a third , which lists which reports were sent to recipients. In this case, that might look like this: Subject: *Reports that the demo stream sent out, Run date: Recipient: IT.Guy@ABC.net /path/to/devl/reports/demo/personal_health_expend_ html /path/to/devl/reports/demo/personal_health_expend_ pdf /path/to/devl/reports/demo/compile_data lst Recipient: Main.User@ABC.net /path/to/devl/reports/demo/personal_health_expend_ html /path/to/devl/reports/demo/personal_health_expend_ pdf /path/to/devl/reports/demo/compile_data lst Recipient: Other.User@ABC.net /path/to/devl/reports/demo/personal_health_expend_ pdf Running jobs manually Jobs can be run on demand at the command prompt. First, we ensure that the current Unix directory is the /bin directory of the environment we wish to run in, such as /path/to/devl/bin. The command specify to run the entire job stream as a new run and using the current date and time in the date-time stamp, as in: run_job demo & or to run at a specific step and using a specific date-time stamp, as in: run_job demo summary_reports.sas & If all re-starts of a job specify the original date-time stamp (i.e. the time of the first attempt to run the job), all reports created by the job will have names which include this date-time stamp. If the failed step created reports, these will be overwritten by the new, successful, run of this step. At successful completion of the job, the latest version of all reports can be automatically mailed to recipients, regardless of whether the reports were generated prior to, within, or after the failed step. Note: the log file with this date-time stamp will be the log for the latest, successful, execution of each step. Earlier logs for failed steps are not lost however they are stored in a log file named with date-time stamp and also with the suffix.old.

17 Essential Perl Modules As mentioned earlier, the run_job perl script is just a stub that sets some parameters before calling the workhorse of the system, job_control.pm. The job_control.pm script reads both the.run file (to get the list of steps in the job) and the.mail file (for the list of recipients). Each line of the.run file is parsed to find the sub-directory, program name, and arguments (if applicable). Take for example, the following line: demo/compile_data.sas period=month_end Given this line (in the.mail file) the perl script will identify the sub-directory (demo) and the name of the program (compile_data.sas). Since in this case the program has the suffix.sas, the perl script will call the runpgm.pm perl module to execute the program using SAS. (If the suffix had been.pm, step would have been recognised as a perl module and executed as a perl subroutine.) The mail_reports.pm perl module is not required to be in every job, but is nearly always at the end of each job. When called, this perl module is given a system or sub-system name, such as demo in the call: demo/mail_reports.pm The mail_reports.pm module finds all files in the corresponding reports sub-directory (e.g. /path/to/prod/reports/demo) and performs pattern matching for each potential recipients as indicated by the information that was in the.mail file. An is sent to each recipient for whom one or more reports met the criteria, with those reports files as attachments. A summary of this information is sent to any recipient who has the pattern > (greater-than sign). Conclusion We ve developed a handy Unix-based framework for executing multi-step SAS jobs. Reports and logs are handled nicely, and it is straightforward to re-start failed jobs mid-stream. The system has the kind of reliability that helps one relax while on vacation. Contact Information Mike.Atkinson@gov.bc.ca working with the British Columbia Ministry of Health Services Victoria, British Columbia (250) 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 registered trademarks or trademarks of their respective companies.

Automation of Large SAS Processes with Email and Text Message Notification Seva Kumar, JPMorgan Chase, Seattle, WA

Automation of Large SAS Processes with Email and Text Message Notification Seva Kumar, JPMorgan Chase, Seattle, WA Automation of Large SAS Processes with Email and Text Message Notification Seva Kumar, JPMorgan Chase, Seattle, WA ABSTRACT SAS includes powerful features in the Linux SAS server environment. While creating

More information

SAS ODS HTML + PROC Report = Fantastic Output Girish K. Narayandas, OptumInsight, Eden Prairie, MN

SAS ODS HTML + PROC Report = Fantastic Output Girish K. Narayandas, OptumInsight, Eden Prairie, MN SA118-2014 SAS ODS HTML + PROC Report = Fantastic Output Girish K. Narayandas, OptumInsight, Eden Prairie, MN ABSTRACT ODS (Output Delivery System) is a wonderful feature in SAS to create consistent, presentable

More information

Writing Packages: A New Way to Distribute and Use SAS/IML Programs

Writing Packages: A New Way to Distribute and Use SAS/IML Programs Paper SAS4201-2016 Writing Packages: A New Way to Distribute and Use SAS/IML Programs Rick Wicklin, SAS Institute Inc. ABSTRACT SAS/IML 14.1 enables you to author, install, and call packages. A package

More information

You have got SASMAIL!

You have got SASMAIL! You have got SASMAIL! Rajbir Chadha, Cognizant Technology Solutions, Wilmington, DE ABSTRACT As SAS software programs become complex, processing times increase. Sitting in front of the computer, waiting

More information

FIRST STEP - ADDITIONS TO THE CONFIGURATIONS FILE (CONFIG FILE) SECOND STEP Creating the email to send

FIRST STEP - ADDITIONS TO THE CONFIGURATIONS FILE (CONFIG FILE) SECOND STEP Creating the email to send Using SAS to E-Mail Reports and Results to Users Stuart Summers, Alliant, Brewster, NY ABSTRACT SAS applications that are repeatedly and periodically run have reports and files that need to go to various

More information

Managing Tables in Microsoft SQL Server using SAS

Managing Tables in Microsoft SQL Server using SAS Managing Tables in Microsoft SQL Server using SAS Jason Chen, Kaiser Permanente, San Diego, CA Jon Javines, Kaiser Permanente, San Diego, CA Alan L Schepps, M.S., Kaiser Permanente, San Diego, CA Yuexin

More information

Choosing the Best Method to Create an Excel Report Romain Miralles, Clinovo, Sunnyvale, CA

Choosing the Best Method to Create an Excel Report Romain Miralles, Clinovo, Sunnyvale, CA Choosing the Best Method to Create an Excel Report Romain Miralles, Clinovo, Sunnyvale, CA ABSTRACT PROC EXPORT, LIBNAME, DDE or excelxp tagset? Many techniques exist to create an excel file using SAS.

More information

SAS Credit Scoring for Banking 4.3

SAS Credit Scoring for Banking 4.3 SAS Credit Scoring for Banking 4.3 Hot Fix 1 SAS Banking Intelligence Solutions ii SAS Credit Scoring for Banking 4.3: Hot Fix 1 The correct bibliographic citation for this manual is as follows: SAS Institute

More information

How To Write A Clinical Trial In Sas

How To Write A Clinical Trial In Sas PharmaSUG2013 Paper AD11 Let SAS Set Up and Track Your Project Tom Santopoli, Octagon, now part of Accenture Wayne Zhong, Octagon, now part of Accenture ABSTRACT When managing the programming activities

More information

A Method for Cleaning Clinical Trial Analysis Data Sets

A Method for Cleaning Clinical Trial Analysis Data Sets A Method for Cleaning Clinical Trial Analysis Data Sets Carol R. Vaughn, Bridgewater Crossings, NJ ABSTRACT This paper presents a method for using SAS software to search SAS programs in selected directories

More information

Methodologies for Converting Microsoft Excel Spreadsheets to SAS datasets

Methodologies for Converting Microsoft Excel Spreadsheets to SAS datasets Methodologies for Converting Microsoft Excel Spreadsheets to SAS datasets Karin LaPann ViroPharma Incorporated ABSTRACT Much functionality has been added to the SAS to Excel procedures in SAS version 9.

More information

An Introduction to SAS/SHARE, By Example

An Introduction to SAS/SHARE, By Example Paper 020-29 An Introduction to SAS/SHARE, By Example Larry Altmayer, U.S. Census Bureau, Washington, DC ABSTRACT SAS/SHARE software is a useful tool for allowing several users to simultaneously access

More information

Database manager does something that sounds trivial. It makes it easy to setup a new database for searching with Mascot. It also makes it easy to

Database manager does something that sounds trivial. It makes it easy to setup a new database for searching with Mascot. It also makes it easy to 1 Database manager does something that sounds trivial. It makes it easy to setup a new database for searching with Mascot. It also makes it easy to automate regular updates of these databases. 2 However,

More information

PharmaSUG2011 - Paper AD11

PharmaSUG2011 - Paper AD11 PharmaSUG2011 - Paper AD11 Let the system do the work! Automate your SAS code execution on UNIX and Windows platforms Niraj J. Pandya, Element Technologies Inc., NJ Vinodh Paida, Impressive Systems Inc.,

More information

Importing Excel File using Microsoft Access in SAS Ajay Gupta, PPD Inc, Morrisville, NC

Importing Excel File using Microsoft Access in SAS Ajay Gupta, PPD Inc, Morrisville, NC ABSTRACT PharmaSUG 2012 - Paper CC07 Importing Excel File using Microsoft Access in SAS Ajay Gupta, PPD Inc, Morrisville, NC In Pharmaceuticals/CRO industries, Excel files are widely use for data storage.

More information

An Approach to Creating Archives That Minimizes Storage Requirements

An Approach to Creating Archives That Minimizes Storage Requirements Paper SC-008 An Approach to Creating Archives That Minimizes Storage Requirements Ruben Chiflikyan, RTI International, Research Triangle Park, NC Mila Chiflikyan, RTI International, Research Triangle Park,

More information

Business Portal for Microsoft Dynamics GP. Electronic Document Delivery Release 10.0

Business Portal for Microsoft Dynamics GP. Electronic Document Delivery Release 10.0 Business Portal for Microsoft Dynamics GP Electronic Document Delivery Release 10.0 Copyright Copyright 2007 Microsoft Corporation. All rights reserved. Complying with all applicable copyright laws is

More information

Managing very large EXCEL files using the XLS engine John H. Adams, Boehringer Ingelheim Pharmaceutical, Inc., Ridgefield, CT

Managing very large EXCEL files using the XLS engine John H. Adams, Boehringer Ingelheim Pharmaceutical, Inc., Ridgefield, CT Paper AD01 Managing very large EXCEL files using the XLS engine John H. Adams, Boehringer Ingelheim Pharmaceutical, Inc., Ridgefield, CT ABSTRACT The use of EXCEL spreadsheets is very common in SAS applications,

More information

CA Workload Automation Agent for Databases

CA Workload Automation Agent for Databases CA Workload Automation Agent for Databases Implementation Guide r11.3.4 This Documentation, which includes embedded help systems and electronically distributed materials, (hereinafter referred to as the

More information

Forms Printer User Guide

Forms Printer User Guide Forms Printer User Guide Version 10.51 for Dynamics GP 10 Forms Printer Build Version: 10.51.102 System Requirements Microsoft Dynamics GP 10 SP2 or greater Microsoft SQL Server 2005 or Higher Reporting

More information

ABSTRACT INTRODUCTION

ABSTRACT INTRODUCTION Automating Concatenation of PDF/RTF Reports Using ODS DOCUMENT Shirish Nalavade, eclinical Solutions, Mansfield, MA Shubha Manjunath, Independent Consultant, New London, CT ABSTRACT As part of clinical

More information

MAS 500 Intelligence Tips and Tricks Booklet Vol. 1

MAS 500 Intelligence Tips and Tricks Booklet Vol. 1 MAS 500 Intelligence Tips and Tricks Booklet Vol. 1 1 Contents Accessing the Sage MAS Intelligence Reports... 3 Copying, Pasting and Renaming Reports... 4 To create a new report from an existing report...

More information

Practical Powerful Version control in SAS projects A rapid, Walk-through Workshop

Practical Powerful Version control in SAS projects A rapid, Walk-through Workshop Practical Powerful Version control in SAS projects A rapid, Walk-through Workshop Lorne Salter, Blue Shield of California, San Francisco, CA Gordon Cumming, Wells Fargo Bank, N.A., San Francisco, CA ABSTRACT

More information

Essential Project Management Reports in Clinical Development Nalin Tikoo, BioMarin Pharmaceutical Inc., Novato, CA

Essential Project Management Reports in Clinical Development Nalin Tikoo, BioMarin Pharmaceutical Inc., Novato, CA Essential Project Management Reports in Clinical Development Nalin Tikoo, BioMarin Pharmaceutical Inc., Novato, CA ABSTRACT Throughout the course of a clinical trial the Statistical Programming group is

More information

AN INTRODUCTION TO MACRO VARIABLES AND MACRO PROGRAMS Mike S. Zdeb, New York State Department of Health

AN INTRODUCTION TO MACRO VARIABLES AND MACRO PROGRAMS Mike S. Zdeb, New York State Department of Health AN INTRODUCTION TO MACRO VARIABLES AND MACRO PROGRAMS Mike S. Zdeb, New York State Department of Health INTRODUCTION There are a number of SAS tools that you may never have to use. Why? The main reason

More information

SENDING EMAILS IN SAS TO FACILITATE CLINICAL TRIAL. Frank Fan, Clinovo, Sunnyvale CA

SENDING EMAILS IN SAS TO FACILITATE CLINICAL TRIAL. Frank Fan, Clinovo, Sunnyvale CA SENDING EMAILS IN SAS TO FACILITATE CLINICAL TRIAL Frank Fan, Clinovo, Sunnyvale CA WUSS 2011 Annual Conference October 2011 TABLE OF CONTENTS 1. ABSTRACT... 3 2. INTRODUCTION... 3 3. SYSTEM CONFIGURATION...

More information

We begin by defining a few user-supplied parameters, to make the code transferable between various projects.

We begin by defining a few user-supplied parameters, to make the code transferable between various projects. PharmaSUG 2013 Paper CC31 A Quick Patient Profile: Combining External Data with EDC-generated Subject CRF Titania Dumas-Roberson, Grifols Therapeutics, Inc., Durham, NC Yang Han, Grifols Therapeutics,

More information

Using Macros to Automate SAS Processing Kari Richardson, SAS Institute, Cary, NC Eric Rossland, SAS Institute, Dallas, TX

Using Macros to Automate SAS Processing Kari Richardson, SAS Institute, Cary, NC Eric Rossland, SAS Institute, Dallas, TX Paper 126-29 Using Macros to Automate SAS Processing Kari Richardson, SAS Institute, Cary, NC Eric Rossland, SAS Institute, Dallas, TX ABSTRACT This hands-on workshop shows how to use the SAS Macro Facility

More information

Automated distribution of SAS results Jacques Pagé, Les Services Conseils HARDY, Quebec, Qc

Automated distribution of SAS results Jacques Pagé, Les Services Conseils HARDY, Quebec, Qc Paper 039-29 Automated distribution of SAS results Jacques Pagé, Les Services Conseils HARDY, Quebec, Qc ABSTRACT This paper highlights the programmable aspects of SAS results distribution using electronic

More information

Emailing Automated Notification of Errors in a Batch SAS Program Julie Kilburn, City of Hope, Duarte, CA Rebecca Ottesen, City of Hope, Duarte, CA

Emailing Automated Notification of Errors in a Batch SAS Program Julie Kilburn, City of Hope, Duarte, CA Rebecca Ottesen, City of Hope, Duarte, CA Emailing Automated Notification of Errors in a Batch SAS Program Julie Kilburn, City of Hope, Duarte, CA Rebecca Ottesen, City of Hope, Duarte, CA ABSTRACT With multiple programmers contributing to a batch

More information

William E Benjamin Jr, Owl Computer Consultancy, LLC

William E Benjamin Jr, Owl Computer Consultancy, LLC So, You ve Got Data Enterprise Wide (SAS, ACCESS, EXCEL, MySQL, Oracle, and Others); Well, Let SAS Enterprise Guide Software Point-n-Click Your Way to Using It. William E Benjamin Jr, Owl Computer Consultancy,

More information

SAS UNIX-Space Analyzer A handy tool for UNIX SAS Administrators Airaha Chelvakkanthan Manickam, Cognizant Technology Solutions, Teaneck, NJ

SAS UNIX-Space Analyzer A handy tool for UNIX SAS Administrators Airaha Chelvakkanthan Manickam, Cognizant Technology Solutions, Teaneck, NJ PharmaSUG 2012 Paper PO11 SAS UNIX-Space Analyzer A handy tool for UNIX SAS Administrators Airaha Chelvakkanthan Manickam, Cognizant Technology Solutions, Teaneck, NJ ABSTRACT: In the fast growing area

More information

An email macro: Exploring metadata EG and user credentials in Linux to automate email notifications Jason Baucom, Ateb Inc.

An email macro: Exploring metadata EG and user credentials in Linux to automate email notifications Jason Baucom, Ateb Inc. SESUG 2012 Paper CT-02 An email macro: Exploring metadata EG and user credentials in Linux to automate email notifications Jason Baucom, Ateb Inc., Raleigh, NC ABSTRACT Enterprise Guide (EG) provides useful

More information

Simply Accounting Intelligence Tips and Tricks Booklet Vol. 1

Simply Accounting Intelligence Tips and Tricks Booklet Vol. 1 Simply Accounting Intelligence Tips and Tricks Booklet Vol. 1 1 Contents Accessing the SAI reports... 3 Running, Copying and Pasting reports... 4 Creating and linking a report... 5 Auto e-mailing reports...

More information

DiskPulse DISK CHANGE MONITOR

DiskPulse DISK CHANGE MONITOR DiskPulse DISK CHANGE MONITOR User Manual Version 7.9 Oct 2015 www.diskpulse.com info@flexense.com 1 1 DiskPulse Overview...3 2 DiskPulse Product Versions...5 3 Using Desktop Product Version...6 3.1 Product

More information

AN ANIMATED GUIDE: SENDING SAS FILE TO EXCEL

AN ANIMATED GUIDE: SENDING SAS FILE TO EXCEL Paper CC01 AN ANIMATED GUIDE: SENDING SAS FILE TO EXCEL Russ Lavery, Contractor for K&L Consulting Services, King of Prussia, U.S.A. ABSTRACT The primary purpose of this paper is to provide a generic DDE

More information

Tivoli Access Manager Agent for Windows Installation Guide

Tivoli Access Manager Agent for Windows Installation Guide IBM Tivoli Identity Manager Tivoli Access Manager Agent for Windows Installation Guide Version 4.5.0 SC32-1165-03 IBM Tivoli Identity Manager Tivoli Access Manager Agent for Windows Installation Guide

More information

Using Form Scripts in WEBPLUS

Using Form Scripts in WEBPLUS Using Form Scripts in WEBPLUS In WEBPLUS you have the built-in ability to create forms that can be sent to your email address via Serif Web Resources. This is a nice simple option that s easy to set up,

More information

Integrating VoltDB with Hadoop

Integrating VoltDB with Hadoop The NewSQL database you ll never outgrow Integrating with Hadoop Hadoop is an open source framework for managing and manipulating massive volumes of data. is an database for handling high velocity data.

More information

Tips and Tricks for Creating Multi-Sheet Microsoft Excel Workbooks the Easy Way with SAS. Vincent DelGobbo, SAS Institute Inc.

Tips and Tricks for Creating Multi-Sheet Microsoft Excel Workbooks the Easy Way with SAS. Vincent DelGobbo, SAS Institute Inc. Paper HOW-071 Tips and Tricks for Creating Multi-Sheet Microsoft Excel Workbooks the Easy Way with SAS Vincent DelGobbo, SAS Institute Inc., Cary, NC ABSTRACT Transferring SAS data and analytical results

More information

Log Correlation Engine Backup Strategy

Log Correlation Engine Backup Strategy Log Correlation Engine Backup Strategy August 10, 2012 (Revision 1) Copyright 2002-2012 Tenable Network Security, Inc. Tenable Network Security, Nessus and ProfessionalFeed are registered trademarks of

More information

Designing and Implementing Forms 34

Designing and Implementing Forms 34 C H A P T E R 34 Designing and Implementing Forms 34 You can add forms to your site to collect information from site visitors; for example, to survey potential customers, conduct credit-card transactions,

More information

Report Customization Using PROC REPORT Procedure Shruthi Amruthnath, EPITEC, INC., Southfield, MI

Report Customization Using PROC REPORT Procedure Shruthi Amruthnath, EPITEC, INC., Southfield, MI Paper SA12-2014 Report Customization Using PROC REPORT Procedure Shruthi Amruthnath, EPITEC, INC., Southfield, MI ABSTRACT SAS offers powerful report writing tools to generate customized reports. PROC

More information

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 Paper 276-27 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

More information

Novell Identity Manager

Novell Identity Manager Password Management Guide AUTHORIZED DOCUMENTATION Novell Identity Manager 3.6.1 June 05, 2009 www.novell.com Identity Manager 3.6.1 Password Management Guide Legal Notices Novell, Inc. makes no representations

More information

Verify that the IIS Server meets or exceeds the system requirements. The latest system requirements are available at abila.com/solutions/millennium.

Verify that the IIS Server meets or exceeds the system requirements. The latest system requirements are available at abila.com/solutions/millennium. The current version of this guide was published on 5/21/2015. Verify that you have the latest version of this guide and the Installation Guide. The guides can be downloaded from http://kb.abila.com. This

More information

Better Safe than Sorry: A SAS Macro to Selectively Back Up Files

Better Safe than Sorry: A SAS Macro to Selectively Back Up Files Better Safe than Sorry: A SAS Macro to Selectively Back Up Files Jia Wang, Data and Analytic Solutions, Inc., Fairfax, VA Zhengyi Fang, Social & Scientific Systems, Inc., Silver Spring, MD ABSTRACT SAS

More information

USER GUIDE. Snow Inventory Client for Unix Version 1.1.03 Release date 2015-04-29 Document date 2015-05-20

USER GUIDE. Snow Inventory Client for Unix Version 1.1.03 Release date 2015-04-29 Document date 2015-05-20 USER GUIDE Product Snow Inventory Client for Unix Version 1.1.03 Release date 2015-04-29 Document date 2015-05-20 CONTENT ABOUT THIS DOCUMENT... 3 OVERVIEW... 3 OPERATING SYSTEMS SUPPORTED... 3 PREREQUISITES...

More information

Search and Replace in SAS Data Sets thru GUI

Search and Replace in SAS Data Sets thru GUI Search and Replace in SAS Data Sets thru GUI Edmond Cheng, Bureau of Labor Statistics, Washington, DC ABSTRACT In managing data with SAS /BASE software, performing a search and replace is not a straight

More information

Create an Excel report using SAS : A comparison of the different techniques

Create an Excel report using SAS : A comparison of the different techniques Create an Excel report using SAS : A comparison of the different techniques Romain Miralles, Clinovo, Sunnyvale, CA Global SAS Forum 2011 April 2011 1 1. ABSTRACT Many techniques exist to create an Excel

More information

Preparing Real World Data in Excel Sheets for Statistical Analysis

Preparing Real World Data in Excel Sheets for Statistical Analysis Paper DM03 Preparing Real World Data in Excel Sheets for Statistical Analysis Volker Harm, Bayer Schering Pharma AG, Berlin, Germany ABSTRACT This paper collects a set of techniques of importing Excel

More information

KEY FEATURES OF SOURCE CONTROL UTILITIES

KEY FEATURES OF SOURCE CONTROL UTILITIES Source Code Revision Control Systems and Auto-Documenting Headers for SAS Programs on a UNIX or PC Multiuser Environment Terek Peterson, Alliance Consulting Group, Philadelphia, PA Max Cherny, Alliance

More information

Applications Development ABSTRACT PROGRAM DESIGN INTRODUCTION SAS FEATURES USED

Applications Development ABSTRACT PROGRAM DESIGN INTRODUCTION SAS FEATURES USED Checking and Tracking SAS Programs Using SAS Software Keith M. Gregg, Ph.D., SCIREX Corporation, Chicago, IL Yefim Gershteyn, Ph.D., SCIREX Corporation, Chicago, IL ABSTRACT Various checks on consistency

More information

REx: An Automated System for Extracting Clinical Trial Data from Oracle to SAS

REx: An Automated System for Extracting Clinical Trial Data from Oracle to SAS REx: An Automated System for Extracting Clinical Trial Data from Oracle to SAS Edward McCaney, Centocor Inc., Malvern, PA Gail Stoner, Centocor Inc., Malvern, PA Anthony Malinowski, Centocor Inc., Malvern,

More information

Get in Control! Configuration Management for SAS Projects John Quarantillo, Westat, Rockville, MD

Get in Control! Configuration Management for SAS Projects John Quarantillo, Westat, Rockville, MD AD004 Get in Control! Configuration Management for SAS Projects John Quarantillo, Westat, Rockville, MD Abstract SAS applications development can benefit greatly from the use of Configuration Management/Source

More information

Tips and Tricks SAGE ACCPAC INTELLIGENCE

Tips and Tricks SAGE ACCPAC INTELLIGENCE Tips and Tricks SAGE ACCPAC INTELLIGENCE 1 Table of Contents Auto e-mailing reports... 4 Automatically Running Macros... 7 Creating new Macros from Excel... 8 Compact Metadata Functionality... 9 Copying,

More information

Vector HelpDesk - Administrator s Guide

Vector HelpDesk - Administrator s Guide Vector HelpDesk - Administrator s Guide Vector HelpDesk - Administrator s Guide Configuring and Maintaining Vector HelpDesk version 5.6 Vector HelpDesk - Administrator s Guide Copyright Vector Networks

More information

SUGI 29 Applications Development

SUGI 29 Applications Development Backing up File Systems with Hierarchical Structure Using SAS/CONNECT Fagen Xie, Kaiser Permanent Southern California, California, USA Wansu Chen, Kaiser Permanent Southern California, California, USA

More information

Sending Emails in SAS to Facilitate Clinical Trial Frank Fan, Clinovo, Sunnyvale, CA

Sending Emails in SAS to Facilitate Clinical Trial Frank Fan, Clinovo, Sunnyvale, CA Sending Emails in SAS to Facilitate Clinical Trial Frank Fan, Clinovo, Sunnyvale, CA ABSTRACT Email has drastically changed our ways of working and communicating. In clinical trial data management, delivering

More information

AutoMerge for MS CRM 3

AutoMerge for MS CRM 3 AutoMerge for MS CRM 3 Version 1.0.0 Users Guide (How to use AutoMerge for MS CRM 3) Users Guide AutoMerge.doc Table of Contents 1 USERS GUIDE 3 1.1 Introduction 3 1.2 IMPORTANT INFORMATION 3 2 XML CONFIGURATION

More information

Workflow Templates Library

Workflow Templates Library Workflow s Library Table of Contents Intro... 2 Active Directory... 3 Application... 5 Cisco... 7 Database... 8 Excel Automation... 9 Files and Folders... 10 FTP Tasks... 13 Incident Management... 14 Security

More information

Exploit SAS Enterprise BI Server to Manage Your Batch Scheduling Needs

Exploit SAS Enterprise BI Server to Manage Your Batch Scheduling Needs Exploit SAS Enterprise BI Server to Manage Your Batch Scheduling Needs Troy B. Wolfe, Qualex Consulting Services, Inc., Miami, Florida ABSTRACT As someone responsible for maintaining over 40 nightly batch

More information

Teamstudio USER GUIDE

Teamstudio USER GUIDE Teamstudio Software Engineering Tools for IBM Lotus Notes and Domino USER GUIDE Edition 30 Copyright Notice This User Guide documents the entire Teamstudio product suite, including: Teamstudio Analyzer

More information

Data Presentation. Paper 126-27. Using SAS Macros to Create Automated Excel Reports Containing Tables, Charts and Graphs

Data Presentation. Paper 126-27. Using SAS Macros to Create Automated Excel Reports Containing Tables, Charts and Graphs Paper 126-27 Using SAS Macros to Create Automated Excel Reports Containing Tables, Charts and Graphs Tugluke Abdurazak Abt Associates Inc. 1110 Vermont Avenue N.W. Suite 610 Washington D.C. 20005-3522

More information

Create your own brick-level backup script for Exchange Server 5.5

Create your own brick-level backup script for Exchange Server 5.5 Create your own brick-level backup script for Exchange Server 5.5 By Dominic Bosco Every Exchange Organization has its Very Important Mailboxes (VIMs). If you re like most Exchange Administrators, you

More information

SUGI 29 Coders' Corner

SUGI 29 Coders' Corner Paper 074-29 Tales from the Help Desk: Solutions for Simple SAS Mistakes Bruce Gilsen, Federal Reserve Board INTRODUCTION In 19 years as a SAS consultant at the Federal Reserve Board, I have seen SAS users

More information

SAS Drug Development Release Notes 35DRG07

SAS Drug Development Release Notes 35DRG07 SAS Drug Development Release Notes 35DRG07 SAS Drug Development (SDD) 3.5 is validated to work with/on the following technologies: MS Windows: Windows 7 and Windows XP Mac OS X: Snow Leopard (10.6) Internet

More information

Using SAS to Control and Automate a Multi SAS Program Process. Patrick Halpin November 2008

Using SAS to Control and Automate a Multi SAS Program Process. Patrick Halpin November 2008 Using SAS to Control and Automate a Multi SAS Program Process Patrick Halpin November 2008 What are we covering today A little background on me Some quick questions How to use Done files Use a simple example

More information

Customized Excel Output Using the Excel Libname Harry Droogendyk, Stratia Consulting Inc., Lynden, ON

Customized Excel Output Using the Excel Libname Harry Droogendyk, Stratia Consulting Inc., Lynden, ON Paper SIB-105 Customized Excel Output Using the Excel Libname Harry Droogendyk, Stratia Consulting Inc., Lynden, ON ABSTRACT The advent of the ODS ExcelXP tagset and its many features has afforded the

More information

Optimizing System Performance by Monitoring UNIX Server with SAS

Optimizing System Performance by Monitoring UNIX Server with SAS Optimizing System Performance by Monitoring UNIX Server with SAS Sam Mao, Quintiles, Inc., Kansas City, MO Jay Zhou, Quintiles, Inc., Kansas City, MO ABSTRACT To optimize system performance and maximize

More information

Eliminating Tedium by Building Applications that Use SQL Generated SAS Code Segments

Eliminating Tedium by Building Applications that Use SQL Generated SAS Code Segments Eliminating Tedium by Building Applications that Use SQL Generated SAS Code Segments David A. Mabey, Reader s Digest Association Inc., Pleasantville, NY ABSTRACT When SAS applications are driven by data-generated

More information

A Macro to Create Data Definition Documents

A Macro to Create Data Definition Documents A Macro to Create Data Definition Documents Aileen L. Yam, sanofi-aventis Inc., Bridgewater, NJ ABSTRACT Data Definition documents are one of the requirements for NDA submissions. This paper contains a

More information

Audit Trail Administration

Audit Trail Administration Audit Trail Administration 0890431-030 August 2003 Copyright 2003 by Concurrent Computer Corporation. All rights reserved. This publication or any part thereof is intended for use with Concurrent Computer

More information

Figure 1. Example of an Excellent File Directory Structure for Storing SAS Code Which is Easy to Backup.

Figure 1. Example of an Excellent File Directory Structure for Storing SAS Code Which is Easy to Backup. Paper RF-05-2014 File Management and Backup Considerations When Using SAS Enterprise Guide (EG) Software Roger Muller, Data To Events, Inc., Carmel, IN ABSTRACT SAS Enterprise Guide provides a state-of-the-art

More information

UNIX Comes to the Rescue: A Comparison between UNIX SAS and PC SAS

UNIX Comes to the Rescue: A Comparison between UNIX SAS and PC SAS UNIX Comes to the Rescue: A Comparison between UNIX SAS and PC SAS Chii-Dean Lin, San Diego State University, San Diego, CA Ming Ji, San Diego State University, San Diego, CA ABSTRACT Running SAS under

More information

How To Configure A Bmca Log File Adapter For Windows 2.5 (For Windows) For A Powerpoint 2.2 (For Microsoft) (For Ubuntu) (Powerpoint 2) (Windows) (Perl) (

How To Configure A Bmca Log File Adapter For Windows 2.5 (For Windows) For A Powerpoint 2.2 (For Microsoft) (For Ubuntu) (Powerpoint 2) (Windows) (Perl) ( BMC Impact Event Adapters User Guide Supporting BMC Event and Impact Management 2.0 BMC ProactiveNet Performance Manager 8.0 November 2009 www.bmc.com Contacting BMC Software You can access the BMC Software

More information

Hypercosm. Studio. www.hypercosm.com

Hypercosm. Studio. www.hypercosm.com Hypercosm Studio www.hypercosm.com Hypercosm Studio Guide 3 Revision: November 2005 Copyright 2005 Hypercosm LLC All rights reserved. Hypercosm, OMAR, Hypercosm 3D Player, and Hypercosm Studio are trademarks

More information

MOVES Batch Mode: Setting up and running groups of related MOVES run specifications. EPA Office of Transportation and Air Quality 11/3/2010

MOVES Batch Mode: Setting up and running groups of related MOVES run specifications. EPA Office of Transportation and Air Quality 11/3/2010 MOVES Batch Mode: Setting up and running groups of related MOVES run specifications EPA Office of Transportation and Air Quality 11/3/2010 Webinar Logistics Please use question box to send any questions

More information

PageScope Router. Version 1.5. Configuration Guide

PageScope Router. Version 1.5. Configuration Guide PageScope Router Version 1.5 Configuration Guide Table of Contents TABLE OF CONTENTS... 2 1. Introduction...3 1.1 IP Address and Domain Name...3 2. Sending Files to PageScope Router...4 2.1 MFP Device

More information

SAS Marketing Automation 4.4. Unix Install Instructions for Hot Fix 44MA10

SAS Marketing Automation 4.4. Unix Install Instructions for Hot Fix 44MA10 SAS Marketing Automation 4.4 Unix Install Instructions for Hot Fix 44MA10 Introduction This document describes the steps necessary to install and deploy the SAS Marketing Automation 4.4 Hot fix Release

More information

SyncTool for InterSystems Caché and Ensemble.

SyncTool for InterSystems Caché and Ensemble. SyncTool for InterSystems Caché and Ensemble. Table of contents Introduction...4 Definitions...4 System requirements...4 Installation...5 How to use SyncTool...5 Configuration...5 Example for Group objects

More information

ServerView Inventory Manager

ServerView Inventory Manager User Guide - English FUJITSU Software ServerView Suite ServerView Inventory Manager ServerView Operations Manager V6.21 Edition October 2013 Comments Suggestions Corrections The User Documentation Department

More information

It s not the Yellow Brick Road but the SAS PC FILES SERVER will take you Down the LIBNAME PATH= to Using the 64-Bit Excel Workbooks.

It s not the Yellow Brick Road but the SAS PC FILES SERVER will take you Down the LIBNAME PATH= to Using the 64-Bit Excel Workbooks. Pharmasug 2014 - paper CC-47 It s not the Yellow Brick Road but the SAS PC FILES SERVER will take you Down the LIBNAME PATH= to Using the 64-Bit Excel Workbooks. ABSTRACT William E Benjamin Jr, Owl Computer

More information

Government Applications

Government Applications GV003 Routine Web Reporting with Simple SAS ODS Ashley H. Sanders, Animal Improvements Program Lab - USDA, Beltsville, MD ABSTRACT Data provided via the Internet today is no longer simply a value added

More information

TU04. Best practices for implementing a BI strategy with SAS Mike Vanderlinden, COMSYS IT Partners, Portage, MI

TU04. Best practices for implementing a BI strategy with SAS Mike Vanderlinden, COMSYS IT Partners, Portage, MI TU04 Best practices for implementing a BI strategy with SAS Mike Vanderlinden, COMSYS IT Partners, Portage, MI ABSTRACT Implementing a Business Intelligence strategy can be a daunting and challenging task.

More information

PROC SQL for SQL Die-hards Jessica Bennett, Advance America, Spartanburg, SC Barbara Ross, Flexshopper LLC, Boca Raton, FL

PROC SQL for SQL Die-hards Jessica Bennett, Advance America, Spartanburg, SC Barbara Ross, Flexshopper LLC, Boca Raton, FL PharmaSUG 2015 - Paper QT06 PROC SQL for SQL Die-hards Jessica Bennett, Advance America, Spartanburg, SC Barbara Ross, Flexshopper LLC, Boca Raton, FL ABSTRACT Inspired by Christianna William s paper on

More information

EventTracker: Configuring DLA Extension for AWStats Report AWStats Reports

EventTracker: Configuring DLA Extension for AWStats Report AWStats Reports EventTracker: Configuring DLA Extension for AWStats Report AWStats Reports Publication Date: Oct 18, 2011 EventTracker 8815 Centre Park Drive Columbia MD 21045 www.eventtracker.com About This Guide Abstract

More information

FP File Organizer 3.0 Instruction Manual

FP File Organizer 3.0 Instruction Manual FP File Organizer 3.0 Instruction Manual Field Precision LLC PO Box 13595, Albuquerque, NM 87192 U.S.A. Telephone: +1-505-220-3975 Fax: +1-617-752-9077 E mail: techinfo@fieldp.com Internet: http://www.fieldp.com

More information

Scheduling in SAS 9.3

Scheduling in SAS 9.3 Scheduling in SAS 9.3 SAS Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc 2011. Scheduling in SAS 9.3. Cary, NC: SAS Institute Inc. Scheduling in SAS 9.3

More information

Return of the Codes: SAS, Windows, and Your s Mark Tabladillo, Ph.D., MarkTab Consulting, Atlanta, GA Associate Faculty, University of Phoenix

Return of the Codes: SAS, Windows, and Your s Mark Tabladillo, Ph.D., MarkTab Consulting, Atlanta, GA Associate Faculty, University of Phoenix Paper AP-11 Return of the Codes: SAS, Windows, and Your s Mark Tabladillo, Ph.D., MarkTab Consulting, Atlanta, GA Associate Faculty, University of Phoenix ABSTRACT Robust applications participate in the

More information

Post Processing Macro in Clinical Data Reporting Niraj J. Pandya

Post Processing Macro in Clinical Data Reporting Niraj J. Pandya Post Processing Macro in Clinical Data Reporting Niraj J. Pandya ABSTRACT Post Processing is the last step of generating listings and analysis reports of clinical data reporting in pharmaceutical industry

More information

SAS Macros as File Management Utility Programs

SAS Macros as File Management Utility Programs Paper 219-26 SAS Macros as File Management Utility Programs Christopher J. Rook, EDP Contract Services, Bala Cynwyd, PA Shi-Tao Yeh, EDP Contract Services, Bala Cynwyd, PA ABSTRACT This paper provides

More information

Hands-On UNIX Exercise:

Hands-On UNIX Exercise: Hands-On UNIX Exercise: This exercise takes you around some of the features of the shell. Even if you don't need to use them all straight away, it's very useful to be aware of them and to know how to deal

More information

How to Use SDTM Definition and ADaM Specifications Documents. to Facilitate SAS Programming

How to Use SDTM Definition and ADaM Specifications Documents. to Facilitate SAS Programming How to Use SDTM Definition and ADaM Specifications Documents to Facilitate SAS Programming Yan Liu Sanofi Pasteur ABSTRCT SDTM and ADaM implementation guides set strict requirements for SDTM and ADaM variable

More information

5. Crea+ng SAS Datasets from external files. GIORGIO RUSSOLILLO - Cours de prépara+on à la cer+fica+on SAS «Base Programming»

5. Crea+ng SAS Datasets from external files. GIORGIO RUSSOLILLO - Cours de prépara+on à la cer+fica+on SAS «Base Programming» 5. Crea+ng SAS Datasets from external files 107 Crea+ng a SAS dataset from a raw data file 108 LIBNAME statement In most of cases, you may want to assign a libref to a certain folder (a SAS library) LIBNAME

More information

Migrating FMS to SQL 2008. SIMS 2009 Autumn Main Release Onwards

Migrating FMS to SQL 2008. SIMS 2009 Autumn Main Release Onwards Migrating FMS to SQL 2008 SIMS 2009 Autumn Main Release Onwards Revision History Version Change Description Date 1.0 Initial release 23/10/09 Capita Business Services Ltd 2009. All rights reserved. No

More information

HP Operations Manager Software for Windows Integration Guide

HP Operations Manager Software for Windows Integration Guide HP Operations Manager Software for Windows Integration Guide This guide documents the facilities to integrate EnterpriseSCHEDULE into HP Operations Manager Software for Windows (formerly known as HP OpenView

More information

IBM Campaign Version-independent Integration with IBM Engage Version 1 Release 3 April 8, 2016. Integration Guide IBM

IBM Campaign Version-independent Integration with IBM Engage Version 1 Release 3 April 8, 2016. Integration Guide IBM IBM Campaign Version-independent Integration with IBM Engage Version 1 Release 3 April 8, 2016 Integration Guide IBM Note Before using this information and the product it supports, read the information

More information

Switching from PC SAS to SAS Enterprise Guide Zhengxin (Cindy) Yang, inventiv Health Clinical, Princeton, NJ

Switching from PC SAS to SAS Enterprise Guide Zhengxin (Cindy) Yang, inventiv Health Clinical, Princeton, NJ PharmaSUG 2014 PO10 Switching from PC SAS to SAS Enterprise Guide Zhengxin (Cindy) Yang, inventiv Health Clinical, Princeton, NJ ABSTRACT As more and more organizations adapt to the SAS Enterprise Guide,

More information