Vous êtes sur la page 1sur 21

Best Practices:

How to set the foundation


for a more integrated
tomorrow!
Porter Broyles
Harris County Auditors Office
Continuous Controls Analyst II
ConLlnuous Assurance rogram
6 Major Projects
Projects range from 40-100+ scripts
New projects are built upon a common skeleton.
New projects use same scripts!
Projects may perform over 100 different tests
Continuous Assurance results are sent to one of 3 standardized
report formats
Some projects produce over 10K worth of ACL Logging per day!
Cb[ecLlves of &
Want to write projects that
Are easily expandable
Are easily editable
Others can review and understand
Are modular in design
Do not pose a risk to currently approved projects
That minimize the number of reports generated
CuLllne
Commands
Comments
Comments
Data Tables
End of Scripts
Field Names
In Scripts
Naming Conventions
Opening Sections
Other Issues to Consider
Project Names
Reports
Results Tables
Script Library
Script Names
Start of Scripts
Table Names
Temporary Tables
Variable names
Working tables
Naming Conventions
Script Names
Table Names
Data Tables
Results Tables
Working Tables
Temp Tables
Variable Names
Field Names
Project Names
Comments
Start of Script
In Scripts
End of Scripts
Opening Sections
Comments
Commands
Reports
Other Issues to Consider
Alpha numerlc ConcepL
When writing scripts, all scripts begin with two letters
followed by two numbers.
The letters organize the scripts by
type/purpose/objective/process.
The numbers organize the script within the process.
Lxample:
AA01Naming Conventions
AB01 Script Names
AC01 Table Names
AC02 Data Tables
AC03 Results Tables
AC04 Working Tables
AC05 Temp Tables
AD01 Variable Names
AE01 Field Names
AF01 Project Names
BA01Comments
BB01 Start of Script
BC01 In Scripts
BD01 End of Scripts
CA01 Opening Sections
CA02 Comments
CA03 Commands
DA01 Other Issues to Consider
Naming Conventions
Script Names
Table Names
Data Tables
Results Tables
Working Tables
Temp Tables
Variable Names
Field Names
Project Names
Comments
Start of Script
In Scripts
End of Scripts
Opening Sections
Comments
Commands
Other Issues to Consider
Advance namlng concepL
Use the Alpha characters to represent the same
processes in every project. For example:
AX## = Start up scripts
BX## = repeating scripts within the project
CX## = Communal scripts
DX## = Data Load Scripts
EX## -WX## = Processing/Analytic Scripts
YX## = Administrative Functions
ZX## = Shut down/Clean Up Scripts
1able namlng ConvenLlons
There are 4 types of tables:
1) Original Data
2) Computed data/working tables
3) Temporary files
4) Final Product(s)/Reports
1able namlng ConvenLlons
Original data files---Naming should include 3 parts:
A prefix to identify the file as original data.
The original table name without any non-alpha-numeric
characters.
The date of the data---consider YYMMDD v MMDDYY
AAA_Employeefile_111013
AP_VendorFile_111013
STD_memberfile_111013
{corporate initials}_Employeefile_111013
1able name - Lemp flles
Temporary files are labeled TEMP001-TEMPXXX.
This allows for
Easy trouble shooting
Helps to identify where issues exist
Helps to determine if expected results flowed through temp
files
Clean up of project via a standardized clean up script
8LC81 Lables
Reports begin with the word REPORT followed by the
alpha numeric script identifier that generated the
report and a short description.
So one might have a REPORT_DA01_DuplicateAddress.
Worklng 1ables
Working tables are generally one of two types of tables:
1) Data derived from basic data tables.
2) Data contained within the project, but not derived
from current data tables.
These tables should be descriptive and contained in a
special folder.
SLandardlzed varlable names
I use a two or three part name in creating variables.
Part 1 the v_ that identifies the value as a variable.
Part 2 the type of variable being defined
Part 3 a short description/qualifier for the variable
(optional)
Sample varlables
V_Path
V_path_bat
V_path_data
V_path_results
V_date
V_date_run
V_date_DOS
V_date1
V_table
V_table_AP
V_com
V_com_test1
V_cnt/v_cntr/V_count
V_cnt_test/v_cntr_test
V_table
v_table_list
V_define_tablename
V_Drive
llelds names
Field names generated by ACL should
always be readily identified as such.
Amount vs amt
Dept vs Department
Use a prefix F_ield or something
comparable to identify a field name.
CCMMLn1 Lvery Llne
Best practice is to put the COM at the
start of every record which should be
commented out.
SLarL of ScrlpL CommenL
Comments that go at the start of a script should be
highlighted with two rows of COM followed by
asterisks. E.g.:
COM******************
COM******************
COM Written by Porter Broyles Date: 10/13/11
COM Description: This makes it easier to find the start of
COM subscripts in the log.
COM******************
COM******************
Cpenlng CommenLs
Comments should be used at the start of every script to:
1) Identify who wrote the script
2) When the script was written
3) When the script was last modified (by whom)
4) What the intent of the script is
5) Any special considerations
Mlddle of ScrlpL CommenL
When writing comments they should stand out. To help
them stand out add a line before and after the
comment itself. This should include the word COM
with a series of asterisks after it:
COM*********************
COM details of the comment
COM*********************
Lnd of ScrlpL CommenLs
When using scripts and subscripts, it can often be a challenge
to determine where one is when reviewing the project log.
Whenever a subscript is called, the last command in the
subscript should be a note indicating that the subscript is
completed:
DO AA01_subscript_A
~~~~
COM*******************
COM Returning from AA01_Subscript_A
COM*******************
CLher Lhlngs Lo conslder
Script Library
Development v Production
Change Control
Version Archiving
Crash Log