You are on page 1of 15

CHAPTER 1 corruption that often occurs when mainframe data is

converted into a server/PC character set (ASCII).


ABOUT ACL ANALYTICS
o Vast array of functions to support analysis
ACL Analytics - a tool that allows auditors and
others to perform data analysis for the purpose ACL Analytics has over 100 functions that can be
of gaining greater insight into the accuracy and incorporated into expressions. These functions play a
validity of corporate data by ensuring it was vital role in many data analysis objectives including the
transacted in compliance with internal policies creation of mathematical and financial calculations,
and procedures and/or external regulations. It data searches, data harmonization, data scrubbing, etc.
can also be used for other purposes, such as
fraud detection, data scrubbing and data o Analysis steps automatically documented
conversions.
Most analysis steps are recorded by ACL Analytics into
Who uses ACL Analytics? a log file, creating a documented audit trail to support
data analysis results. The log file allows for accurate
Existing ACL Analytics users include: repetition of the analysis steps in two ways: it serves as
o Auditors - Internal & External a manual reference point (for you or a colleague), and it
can be copied into a script for automated repetition.
o Fraud Examiners
o Operational Departments - Finance, Accounts o Ability to compare data from disparate systems
Payable, IT, Production, etc.
Tables that originated from different system types can
o Most Industries - Manufacturing, Airlines, Retail,
be combined (joined) in order to make comparisons
Insurance, Banking, Healthcare, Utilities, etc.
between them. Consider two data files that need to be
o Companies of all Sizes - Includes Fortune 100 & 500, compared, one from a mainframe and the other from a
Global 500, etc. server. Provided that common key fields exist in both
o Government Agencies - Federal & State tables, ACL Analytics can use them to combine the
tables to identify matched and/or unmatched records
Why use ACL Analytics? between the two data files.

ACL Analytics is dedicated to data analysis and offers an o Analyze complete data sets
expansive range of options, allowing users to perform all of
their tests in one convenient place. Oftentimes, large data sets must be broken into smaller
subsets due to file size limit restrictions. ACL Analytics
Key benefits
has no file size limits, meaning that data sets can be
o Easy to use analyzed in their entirety. Analyzing data sets in their
entirety improves data analysis in several ways: reduces
A vast array of data analysis tools assist with the complexity, improves speed and efficiency, and is a
complexities of data analysis. An intuitive interface necessity when performing pattern analysis for
promotes accessibility and comprehension, allowing for indicators of fraud.
a remarkably small learning curve.
o Fast processing
o Read-only application protects data integrity
ACL Analytics processes large data files rapidly.
Because ACL Analytics is a read-only application, it
prevents data from being accidentally or deliberately o Automate analytical procedures
altered. This increased protection of data integrity
means that far greater reliance can be placed on the ACL Analytics Scripts can be programmed to automate
accuracy of data analysis results. many analysis procedures, saving time and ensuring
consistency.
o Ability to analyze mainframe data

ACL Analytics can read mainframe data in its native


character set (EBCDIC). This eliminates the risk of data
The impact of ACL Analytics' use Field Types

o Validate effectiveness of Internal Controls Each field must have a defined data type that identifies
o Drive Down Cost of Regulatory Compliance how each value in that field will be interpreted by ACL.
o Enhance Business Performance & Bottom-Line Some source file types contain information fully describing
Results the fields within (ex. Excel files have the field name and
data type), whereas others have a combination of letters,
The enabling technologies of ACL Analytics numbers, and symbols that are meaningless until context is
o Enterprise-Wide Data Testing applied.
o Powerful Analytics
o Continuous Monitoring What might this string of numbers represent?

How data is stored o 09082016

There's four components of data storage: files, records, This eight byte string could be interpreted as:
fields, and bytes.
o Character fields have values with printable
o Files - A named collection of information (alphanumeric and symbols) and non-printable
stored and processed as an individual characters (line feeds, tabs etc.).
entity, such as an accounts payable
transaction file or a vendor master file. Unsure if a field is character or numeric?
o Numeric fields contain values that can be used for
o Records - The lines (rows) of data stored within the mathematical calculations.
file.
Example
A vendor master file containing info. for 1,500 vendors o Datetime. In order for ACL Analytics to properly
would contain 1,500 records, one for each vendor. interpret datetime values, datetime fields must include
the format, such as MM/DD/YYYY. Since ACL uses
o Fields - Columns within a file where this format to interpret the values within the field, it's
particular pieces of information are important that all the values follow the format.
stored, such as vendor ID, purchase date, o Logical fields are filters that evaluate as true or false
amount etc. Each entry in a field is known (discussed later).
as a value (where a field and record
intersect). ACL for Windows

o Bytes - The individual components of a field that ACL for Windows is a single, downloadable product that
determine its length; these can be printable and non- contains ACL Analytics, and links to resources that will be
printable characters. of use to you.

The vendor number AH-3456 is seven bytes long. Key Features


o Profile and Help - View or update your user profile,
o Record Bytes - A record layout is required sign out of ACL Launchpad, or view online Help.
for each data file imported to ACL
Analytics. By providing information about o Organization selector - Switch between accounts
fields within the file, record layouts (organizations) you have access to using this drop-
down list.
contextualize data. Record layouts include
information for each field: name, o Recent Analytics Files - Open recently
description, data type, start position, accessed ACL projects or analysis apps.
length, decimals, format (Datetime o Sample Files - Open pre-built ACL projects that
fields). include a variety of sample data.

Fields (Data Types) o Open - Open an existing ACL project, analysis app, or
GRC project.
There are four field types: character, numeric, datetime, o Create - Create a new Analytic Project or Workflow in
and logical. Results Manager for organizing, tracking, and
remediation of exceptions.
o Community - Ask questions, share product ideas, you can create and customize. You can pin the View
contact support and access templates, content, training tab if you want to open more than one table.
and other resources as part of your ACL subscription.
The ACL Analytics Environment
Interface and basic navigation
Project
1. Menu bar - The menu bar provides access to most ACL
Analytics features including menu commands for The project is similar to a file folder within a filing cabinet;
working with ACL projects, performing audit analysis, supporting documentation items for each audit are filed in
and configuring options and connection settings. separate, clearly named folders. For each new analysis or
audit, a new project should be created to contain the
2. Navigator - The Navigator displays information about
relevant documentation. There are several item types
the project using three tabs at the bottom of the pane:
within an ACL project such as table layouts, Views, the log,
folders, and scripts.
o Overview - displays all the items that belong to the
project.
Table layout
You can right-click any project item to perform an
action.
To organize items in the Overview, right-click the When an ACL Analytics project is first created, it's empty
project icon and select New > Folder. since the source file(s) are stored outside of the project.
You can drag any project item into the folders that you Creating a table layout links the source file to the project.
create in the Overview. In the ACL Analytics Environment Process Diagram, the
source data file (AP2016.dat) is linked to the project via the
table layout AP2016. Table layouts contain various
o Log - displays the ACL Analytics command log, where
information:
all actions taken with the project are recorded and
organized chronologically.
Double-click log entries to open them, and right-click o Data path to the location of the source data file
log entries to perform an action. o Field names, start positions, lengths, types, number of
decimal places and datetime formats
o Variables - displays the names, values, and data o Named expressions (calculated fields and named filters)
categories of any variables in the project. The contents
of the tab are dynamically updated as variables are o View definitions
created, deleted, or changed.
View
3. Status bar - The status bar displays information such
A View determines how data is displayed on the screen
as the name of the active ACL table, the record count,
within ACL Analytics. Whenever a table layout is created,
the details of any filters currently applied to the table,
a View (named Default_View) is automatically generated
and the name of any currently running script.
that contains all of the fields within the table.
4. Command line - The command line allows you to
If you only want to work with certain fields, you can create
enter ACL Script commands. To display the command
a new View that has the desired fields. A table layout can
line, if it is not visible, in the menu bar, click
have multiple Views. Changing a View does not affect the
Window > Command Line. underlying table layout or other Views.

5. Filter text box - The Filter text box and drop-down list Log file
allow you to apply a filter to the data displayed in the
View tab. You can also enter one or more search terms The log records most analysis steps and results. While you
to perform a quick search of the data. can access the log from within the ACL project, it's stored
as its own file (eg. ACL Demo.log) outside the project.
6. Display area - The display area is your core view
which displays data, results from your analysis and In the ACL Analytics Environment process diagram, the
scripts. log is named APAudit2016.log.

7. View tabs - The tabs available here, allow for multiple Example
views to exist for the same set of data, allowing you to
switch between tables using the different view tabs that
Folder (not pictured) The log provides a chronological record of work performed
on a project. The log automatically records every step taken
You can use folders within the project to organize project in a project. This provides an audit trail of the analysis, and
items. allows users to retrace and/or re-create the steps taken to
produce their results, print a report, or create a script to
Quick Sort and Quick Filter repeat the analysis process. Each analysis step is written to
the log as an entry, with log entries organized into log
Quick Filter and Quick Sort are ACL features that allow sessions.
you to quickly perform basic tasks by selecting a field or
value, right-clicking, and selecting the desired option. Basic ACL Analytics environment
o Source files, such as an Excel file reside outside of the
o Quick Sort allows you to quickly sort fields in ACL project.
ascending or descending order
o Corresponding .FIL files are created for each source
o Quick Filter allows you to build basic filters based off file. .FIL files also reside outside of the ACL project
a selected value and are referenced by the table layout. In a way, the
table layout acts as a window to the .FIL file.
Commands o You can view the log in the Navigator of your project.

ACL Analytics commands are pre-defined routines and are Sub Files
organized into three menu bar choices: Data, Analyze, and
Sampling.
When a new table is created as the result of running a
command, a .fil sub file is created. In the image above, the
Data Manipulate (combine or reorder) data. source file AR 2016.dat is 129 KB and contains Accounts
Receivable data for all of 2016. If we use the Extract
Analyze - Understand (test) data. command to create a new table, AR_Q1_2016, that
contains only the AR data from the first quarter, a sub file,
Sampling - Create and evaluate sample pools. AR_Q1_2016.fil is created. Since AR_Q1_2016 is a subset
of the AR_2016 file, it makes sense that it is only 32 KB.
Executing basic commands o AR_2016 contains data for the full year, but analysis is
to be performed on Q1 data.
The basic commands in the Analyze tab of Analytics will o Use the Extract command to create a sub-file
be useful in helping you analyze and get a statistical picture containing Q1 data.
of the data. Click play for an overview of these.
o Subsequent analysis will be faster on the smaller, sub-
file.
To follow along, use the project TNE.acl which is located
in the folder 'Demo Training Data'. o ACL Analytics commands that create new tables always
create new sub-files with .FIL extensions.
What's a command parameter?
Data Analysis Cycle
Command parameters detail what information or data needs
to be included in order for the command to run. Some Every data analysis project follows a cycle consisting of
parameters are required, meaning that they need to be five phases:
fulfilled in order for the command to run. Other parameters
are optional, meaning that the command will still run even 1 Planning
if they aren't fulfilled. If you attempt to run a command
1 Importing data
without fulfilling a required parameter, the command will
fail and you will receive an error message. 1 Preparing data
1 Analyzing data
One example of a required command parameter is the
1 Reporting issues
"value" parameter which is used to specify the field(s) that
the command will run on. If you do not select a field when
attempting to run a command, you will receive an error To ensure accuracy and efficiency, its important to
message like the one shown below: consider all phases from the beginning. By 'efficiency,' we
mean thoroughly (anomalies otherwise undetected can be
identified in ACL Analytics) and timely (ACL Analytics
About the log
supports speedily completion of complex tests). To
remember the five phases of data analysis, use the acronym
PIPAR, which stands for Planning, Importing, Preparing, data is being filtered to see the results (apply a filter) or
Analyzing, and Reporting. created as a physical field (a computed field).

CHAPTER 2 Considerations

EXPRESSIONS ACL Analytics evaluates expressions from left to right,


according to the following rules:
Working with expressions
o Operators are evaluated in order of arithmetic
Expressions are statements used primarily to create filters precedence.
and computed fields. They perform calculations, specify o Use parentheses ( ) to modify the order in which the
logical conditions, or create values that do not exist in the expression is evaluated.
data file. Expressions can be named and saved as part of a
project or else created just for immediate use. o Each operator works only if its operands are of an
acceptable type.
The output of an expression can be returned in any of the Using expressions
four data types: logical, character, numeric, and datetime.
ACL expressions are combinations of values and operators
Filters (Logical expressions) that perform a calculation and return a result.

Filters are logical expressions, because it produces Expressions are a valuable and flexible tool. You can use
outcomes based on if a particular condition is met - them to:
evaluating each record as being true, or false. Because
logical expressions restrict the records that can be viewed perform a wide range of calculations
or analyzed to those that meet the expression criteria, they
are known as filters. For example, you can create a filter create filters
that selects only records that fall within a specified range of
dates.
prepare data for analysis
Note
create computed fields
Filters can be named or unnamed. To save a filter, name
it. The content of expressions

Computed Field (Character, Datetime, Numeric) Expressions can include data fields, functions, literals,
constants, and variables, which can be combined using
arithmetic or logical operators.
A computed field is a virtual field, derived from a
calculation that references either physical field(s) and/or
previously created computed field(s). Computed fields can You can enter expressions manually, or you can build them
return character, numeric, date, or logical values, and can using the Expression Builder, which provides a standard
be conditional or unconditional. Once created, they can be utility throughout ACLfor creating expressions.
treated as if they were physical fields.
The complexity of expressions
In the table above, you can see that the last three
expressions all create a computed field (convert, calculate, Expressions can be as simple or as complex as needed.
and add). These result can be seen in the table by adding
the new computed field into the view. A simple expression could return the result of a basic
arithmetic operation. For example, Quantity * Cost .
Note
A more complex expression could reference a number of
A computed field must be named (i.e. always saved). fields and functions and use operators to combine the parts
of the expression.
Filter or Computed Field?
For example:
When trying to discern if an expression you are creating
will be a filter or a computed field, consider whether or not
PROPER(first_name) + " " + PROPER(last_name)
converts all the names in o literal numeric values, without quotation marks limited to
the first_name and last_name fields to proper case (initial digits, a minus sign if needed, and a decimal point if
needed
capital letter followed by lowercase), and joins the first and
last names with a single space between them.
Datetime
Types of expressions
Contains any of the following:
ACL supports four types of expressions, which correspond
o datetime fields
with the four supported data categories, or data types:

o variables that contain datetime data


character
o functions that return datetime values
numeric
o quoted datetime values (datetime literals)
datetime
The Datetime data type encompasses three subtypes: date,
logical datetime, and time.
Quoted datetime values require backquotes for
For example:
example, `20141231` or `20141231.235959` . The
backquote (`) is the lowercase key at the upper left corner of
Amount + 1 is a numeric expression because it the keyboard.
performs an operation on numbers and returns a
numeric result. Logical

Amount > 1 is a logical expression because it Contains any of the following:


makes a comparison and returns a logical result of
True or False. o an operation that produces a logical result of True or False
(T or F)
The content of any expression you create must correspond
with the expression type: o functions that return logical values

Character If T or F are part of the expression, they must be entered


without quotation marks.
Contains any of the following: Note
A logical expression can reference fields, variables, or
o character fields literals of any data type.

o variables that contain character data How ACL evaluates expressions

ACL evaluates expressions according to the following rules:


o functions that return character values

Operator precedence - Arithmetic and logical precedence


o quoted character strings (character literals)
dictates the order in which operators are evaluated.
See Operators in ACL expressions.
Numeric
Use parentheses ( ) to modify the order in which the
Contains any of the following: operators are evaluated.

o numeric fields

o variables that contain numeric data Operand data type - Each operator works only if
its operands are of a compatible data type.
o functions that return numeric values
Function parentheses - All ACL functions require
parentheses. Everything inside a function's
parentheses is evaluated first, before any other
parts of an expression outside the function's + Concatenate character strings
parentheses.
Greater than
Comparing character strings - By default, when character
strings of different lengths are compared, the shorter of the < Less than
two lengths is used.
If the Exact Character Comparisons option is selected in = Equal to
the Tables tab in the Options dialog box, the longer of the
two lengths is used. For more information, see Table tab >= Greater than or equal to\
(Options dialog box).
<= Less than or equal to

< >Not equal to


Decimal precision - If numbers with different precision are
mixed in numerical operations, the result retains the decimal
places of the operand with the largest number of decimal AND (or &) Logical AND
places in the expression.
OR (or |) Logical OR
For example:
About Filtering
o 4 + 5.0 = 9.0
A filter sifts records, only returning those that meet
o 1.1 * 1.1 = 1.2 specified conditions; filters evaluate as true or false and
return records that meet the specified conditions. The
o 6 * 2.000000 = 12.000000 values in the filter syntax govern which records will be
returned after applying the filter.
Note
You can use the SET MATH command to change the number Filters are constructed using a combination of field names,
of decimal places that result from a mathematical operation. operators, and strings, dates, or values.

Operators in ACL expressions Considerations


o The benefit of filters is that they allow filter results to
Listed below are the some of the basic operators in ACL.
be visually inspected without having to extract the
The operators are listed in decreasing order of precedence.
filtered records into a new file.
When operators of equal precedence appear in an
expression, they are evaluated from left to right unless o When a command is run with an active filter, it only
you use parentheses to specify an operator precedence. produces results on the filtered records, but the entire
file still has to be processed. This can be inefficient
( ) Parentheses modify operator precedence, when a small number of records are filtered on a large
file.
or enclose function parameters
o Only one filter can be in effect at a time.
NOT - Logical NOT o When a filter is active the filter condition is visible in
the filter window (at the top of the work area) and the
- Unary minus minus sign, indicates a status bar (at the bottom of the work area). On the
negative number status bar, the record count is preceded with a question
mark. To generate a record count of filtered items, run a
command like Count or Total. These can be found
^ Exponentiation raises a number to a power
under Analyze on the menu bar.

* Multiply Creating filters using the Expression Builder

/ Divide The Expression Builder can be used to create both


filters and computed fields.
+ Add
Considerations
- Subtract o When filters arent saved, they are not added to the
table layout. Prior to AN10, this meant that they could
not be reused. Since AN10, the last ten unsaved filters About Quick Searching
are remembered by the table and can be re-selected by
clicking on the dropdown arrow to the right of the Quick searching allows you to find whole or partial words,
Filters bar. exact phrases, numbers, or datetime values. All the source
o In the table layout, saved filters appear with an L data in the table is searched, not just the data displayed in
(logical) in the category column. the current view. Entire records are searched, rather than
specific fields. You can subsequently modify the search if
Troubleshooting Filters you need to search a specific field (character data searches
only).
Common error message
Quick Searching a table
If you click the Edit View Filter button to access the
Expression Builder, the expression you create in the 1 In the Filter text box:
Expression Builder must be a logical expression (filter). If
o Type one or more search terms separated by a space
you create an expression that does not evaluate as logical
and press Enter.
(true/false), you'll receive an "Expression type invalid"
error message like the one shown below.
With multiple search terms,
the quick search performs a logical OR operation
In this example, the expression entered was InvValue * and finds records that contain at least one of
UnitCost, which produces a numeric output instead of the search terms.
logical.
o To search for an exact phrase, enclose the entire
Searching phrase in double quotation marks and press Enter.
The quick search finds only those records that
Search for a Starting String contain the exact phrase.
o When searching for numbers or datetime values,
Filters can be used to find specific words. you need to match the source data formatting
rather than the formatting in the view. For more
By default, the search behaves like a wildcard: information, see About quick searching.
1 To search a specific field:
o looks for every occurrence where the value begins with
the filter string o Modify the automatically generated filter in the
Filter text box by typing a comma after
o it doesnt matter what is after the string the search term, and then add the name of the field.

For example, modify FIND("casino")


o Only character fields can be used for word searches.
to FIND("casino", Merchant).
o The search can be performed on any characters
within the field (A-Z, 0-9, or symbols).
You must use the physical name of the field,
o The string being searched for will only be picked up which may not be the same as the display name of
if it's at the beginning of the string within the field the field in the view. To check the physical name,
(ie. nested words are not returned) right-click the appropriate column header and
o Alpha characters (A-Z) are case sensitive select Properties. If necessary, copy the physical
name from the Column Contents text box at the
Did you know? top of the Modify Column dialog box. Do not use
the Alternate Column Title.
The wildcard behavior is controlled by Exact Character
Comparisons (ECC). If ECC is on, the remainder of the To search in a related field you must specify the
field value after the search for string must be blank in order fully qualified name of the field (that
for it to be picked up. Consider the filter LastName = is, table.field name). For
"SMITH". The table below shows how values will evaluate example: FIND("casino", Vendor.Vendor_Name)
if ECC is turned on or off.
o Press Enter.
ECC can be found under Tools > Options >Table.
Unconditional Computed Fields

An unconditional computed field applies the same


expression to every record in order to produce a new field.
Note: A computed field must be named and always saved. o Values must be the same data type as the default value.
If the default value is 0.0000 then a valid value would
What's a computed field? be TotalAmt * .0625.
We've already looked at the four data types (numeric, o If the expression is numeric, the number of decimal
character, logical, and datetime). These are fields that places is controlled by the number of decimals in the
physically exist in the data, but what if you need additional default value.
fields? Such as a field that combines the first and last name
fields to produce a full name? You can create o You can enter as many condition and value pairs as
a computed field that calculates values based on existing needed.
fields (eg. First_name + Last_name).
Functions
Considerations (all computed fields)
o Only exist in the table and are not a part of the data In an expression, functions are used to apply calculations
source. for a wide variety of purposes.
o Must be named.
Commonly used functions
o Can return a character, numeric or date output.
o The rules for using the Expression Builder to create a PROPER( ) - Changes strings to proper
computed field are similar to those for creating a filter (sentence) case.
as detailed in the Expression Builder page.
UPPER( ) - Changes strings to upper case.
Conditional Computed Fields

When different calculations need to be applied based on LOWER( ) - Changes strings to lower case.
different conditions within the file, one expression, known
as a conditional computed field, can be created. In a
conditional computed field, values are calculated
conditionally.
DEC( ) - Determines the number of decimal
Note places that values are rounded to.
A computed field must be named and always saved.
The BETWEEN( ) function produces a logical output,
About conditions and values meaning that it returns all records that answer true to the
parameters. BETWEEN( ) works with datetime, character,
In a conditional computed field, different values are or numeric fields, filtering all the records between and
assigned when a specified condition is met. Every including the minimum and maximum values. Examples of
conditional computed field has a default value which is the how BETWEEN( ) works with different field types are
value that is assigned if none of the conditions are met. shown below.

Order in which conditions are evaluated Syntax

The conditions are evaluated in the order in which they are The syntax for the BETWEEN( ) function is:
listed. Once a record has evaluated as true, that record
cannot be re-selected by any subsequent condition. In the BETWEEN(value, min , max)
examples below, the order that the conditions are listed
does not matter since none of the records will meet more where:
than one condition, but in some cases they will.
PARAMETERS
Considerations
o The default value is the value to apply to any records Value - The field, expression, or literal value to
that dont meet any of the conditions. The default value test.
can be character, numeric,
logical, or datetime. Consider the calculation for a Min - The minimum value of the range.
discount. If transactions are less than $1,000, no
discount applies. So the default value here is 0.
Max - The maximum value of the range.
o Conditions must be logical (such as TotalAmt >=
1000). o Each parameter is separated by a comma (a space can
be used instead of the comma).
o Brackets denote optional parameters. There are several common resources and techniques that
help ensure that the correct data is identified: IT
o No space between the function name and the opening
partnership, pre-audit meeting, data dictionaries, sample
parenthesis.
data, system reports, data entry, ODBC, and Direct Link.
The ABS( ) function produces a numeric output
IT Partnership
and converts all negative values to positive. It
can also be used to create a logical output
(filter) IT departments frequently need to be involved in the data
access process. Their knowledge of corporate databases
and the technologies involved is often essential when it
Output
comes to locating data, but auditors frequently encounter
o Character obstacles when it comes to speaking with the right IT
personnel and/or obtaining the correct information from
o Numeric
them. There are two major factors which influence this:
o Datetime
o Logical o Lack of process

Considerations IT departments usually operate a ticket process for


requests. This process is often generic and doesnt lend
itself to the detail necessary when it comes to locating
o Learn more about a specific function by selecting
the correct data. It is extremely difficult to complete a
Help > Contents and entering the function name.
ticket if you dont really know what it is you are asking
o Access functions from the function list (right-hand for.
side of the expression builder).
o By default, the Paste Parameters check-box is o Disconnect
checked, meaning that when a function is selected
from the list, the parameter prompts are pasted into
the expression. There is often a disconnect between you and IT
whereby you understand the business processes and the
reasons why the data is required for the various tests
Fixed-Point Arithmetic
that need to be performed whereas the IT department
understands the technologies involved but often has
When multiplying or dividing, ACL Analytics uses fixed- limited appreciation as to why the data is being
point arithmetic. This means that the result is rounded to requested. The net result is that you will very likely
the largest number of decimal places used in the receive incomplete data.
expression.
Training Audit staff in ACL Analytics usage is only one
Note of the steps involved in setting them up for efficient and
successful optimization of ACL Analytics. It is essential
If the result contains more decimal places than the that there is correct infrastructure that allows the
number with the largest in the expression, it will be Auditors to communicate effectively with IT.
rounded up or down in order to have the correct number Oftentimes, it is necessary for senior personnel within
of decimal places. the IT and Audit departments to meet in order to ensure
there is a workable process for Auditors to request data.
Expressions with multiple calculations This process should include opportunities for Auditors
to meet with IT personnel to discuss the detail of their
Fixed-point arithmetic applies for each calculation in an requests; a revision of the ticket system may be
expression. For expressions with multiple calculations, the necessary in order to allow for comprehensive
largest number of decimal places is taken from each information to be included within the request ticket and
calculation. the solution ticket.

CHAPTER 3 Pre-Audit Meeting

IMPORTING DATA\ During the pre-audit meeting, try to obtain as much


information as possible from the auditee concerning the
Identifying data sources available data. Depending on the scope and complexity of
the audit, it may be beneficial to have an IT team member
present so that they can better understand the data ODBC
requirements and offer insight into the process.
Open Database Connectivity will be discussed in detail in
Data Dictionaries this chapter. It allows ACL Analytics to connect directly to
relational databases, allowing you to create your own
Each corporate database should have a data dictionary downloads. This has the benefit of allowing you to peruse
describing its tables and fields. The various data the database and download data without reliance on the IT
dictionaries can provide a useful reference for identifying Department.
the available files and fields for an audit. IT knowledge
will still be needed to help you understand the data Direct Link
dictionaries, but the more that they are used, the more self-
sufficient you will become. Direct Link is an ACL product that allows ACL Analytics
to connect directly to SAP databases. With this tool, it is
Sample Data possible to peruse the database and search for specific
keywords within file and/or field names.
Databases often contain obscure field names, which makes
it difficult to know whether the data contained within them Each organization has its own challenges when it comes to
is necessary for the audit / analysis in question. the identification of data. There is no magic "cure," but
Consideration should be given to requesting a sample file embracing some of the techniques suggested here will yield
containing a small number of records and with every field. huge benefits. The truth is in the transactions so it is
This sample file can be reviewed in ACL Analytics in order incumbent on the Audit team to do what they can to gain
to determine which fields are required for the audit. Over more knowledge of their corporate database technologies in
time, a central library can be built to contain sample files order to understand where the data resides. With this
that can be reviewed for content when needed. knowledge, the Audit Department will increase its
effectiveness and greater reliance can then be placed on the
System Reports completeness, quality, and accuracy of audit issues.

Obtain reports from the business area under audit/ analysis. Acquisition Methods
When meeting with the IT Department, it can be useful to
show reports containing the fields required for the There are three ways to acquire source data:
audit/analysis in order to help them identify which tables
and fields need to be accessed. o Source Data Access
o Database/Warehouse Access
Data Entry
o Receive a Copy of the Data
Meeting with data entry personnel can provide context and
enhance understanding of data; there are several benefits Source Data Access
that can contribute to this:
You are provided with a user name, password, and
o Screen shots taken of the data entry screens can often instructions to access the host system. You must extract the
help IT ascertain in which table(s) the required data is data yourself. Many systems have an extraction tool that
located. you can use to create a file that ACL Analytics can read.
These tools often allow you to choose the download file
o Some applications can identify field names by right-
type, so consider which file types contain the highest
clicking on the various elements of the data entry
screen(s). quality of data. For example, given a choice between Excel
or delimited, delimited is the preferred choice.
o Data entry personnel can highlight workarounds that
were implemented when the application being used Database / Warehouse Access
doesnt fully meet the requirements of the business i.e.
social security numbers being entered into a memo
From ACL Analytics, you are granted access to either a
field.
production database or a data warehouse. ACL Analytics
o Change logs can be reviewed to ascertain if it is reads the data directly from the source using data access
possible to make non-compliant entries. This will help technologies such as ODBC (Open Database Connectivity).
identify where potential data quality issues may exist. The benefit of this approach is that it allows you to
o The data entry process can be compared to the download the required data directly into ACL Analytics
appropriate policies and procedures to ensure the without having to make data requests from IT or other data
process is in compliance. providers.
For SAP users, ACL Analytics offers a product called fields. ACL Analytics can read mainframe data in
Direct Link, which allows direct access to SAP databases. its native form so conversion isn't necessary.
It provides search tools specific to the SAP environment
that are not available when using ODBC. Source file formats

Receive a copy of the data Source file format refers to the format the data file is in
prior to importing into ACL Analytics. While there are
The data is requested, often from the IT Department, and several file formats that can be imported, some are more
provided in a workable file format. Ask which file formats reliable than others; it is important to select the most
are available and select the one that is most likely to reliable file format available. In order of reliability, the
contain the highest quality of data. available file formats are: 1) fixed-width files, 2) delimited
files, 3) Excel/Access files, and 4) report (print image)
To ensure the data provider fully understands your files. ACL Analytics can also import other file types.
requirements, consider the following when making data
requests: Fixed-width files

Location - The name of the system where the A fixed-width file contains data without field definitions. It
data resides. can be created from servers or mainframes; each field has a
fixed-width. To ensure field width consistency, values are
Name - The file name, table name, or report padded with blanks. Consider a field with the value "soda"
name. (four bytes long) and another value "aspirin" (seven bytes
longs). In order to maintain field width consistency, "soda"
Date bounds - Be sure to specify whether the would be padded with three blanks, making it seven bytes
request is inclusive or exclusive of the start and long. Oftentimes, data from older mainframe systems is in
end dates. the data encoding EBCDIC. Because many applications
cannot read EBCDIC, data providers often convert
mainframe EBCDIC data into ASCII. This can create errors
Filter criteria - Caution! Minimize filter criteria
in some data types, especially packed fields. A packed field
in order to reduce the risk of receiving incorrect
is a mainframe numeric field that has been compressed to
data. It is better to create the filter yourself after
save disc space. Such fields can be correctly decompressed
the data has been imported to ACL Analytics so
in table layouts with the Packed data type. ACL Analytics
that you are in control of the filter criteria.
reads and processes EBCDIC without converting it into
ASCII, preserving data quality and integrity.
File type - The preferred file type(s) that you
would like to receive the data in.
Delimited files

Medium - The medium on which you would like Unlike a fixed-width file, a delimited file typically has a
the data transferred i.e. flash drive or place in a variable record length because variable length fields are not
specified location on the network. padded with blanks. Instead, a delimited file contains
delimiters to separate fields. A delimiter, such as a comma,
Deadline - The date by which you require the specifies the boundary between fields.
data.
What's a text delimiter?
Controls - Control totals and record counts.
The most common type of delimited file is a CSV (Comma
Field names - When requesting a delimited file, Separated Value). Delimited files can be in either data
be sure to request field names. If field names encoding: ASCII (server) or EBCDIC (mainframe). They
arent available, request a record layout. can also contain field names, so be sure to ask for them in
your request. If field names cannot be included, you will
Record layout - When requesting a fixed-width need to request an accompanying record layout.
file, be sure to request an accompanying record
layout. Best practice

Conversion - If data is provided from a Request a delimiter such as a tab or a pipe ( | ) to reduce
mainframe, don't allow the data to be converted the risk of non-delimiters being recognized as delimiters
from EBCDIC to ASCII. Conversion can cause
corruption of some field types, especially packed
Microsoft Excel/Access files data type that ignores commas and correctly interprets
parentheses and "CR" as negative. Signs can be leading
Although Excel and Access files can be imported to ACL or trailing, fixed or floating and any other punctuation
Analytics, they are not the preferred formats because the (such as $) is ignored.
original data must be converted from server/mainframe to
Direct Access Method
Excel. Often, during this conversion, data is corruption
(such as dropping leading blanks or zeros) occurs. Due to
When an ACL Analytics table layout is created for a fixed-
Excel file size limits, multiple Excel files may be produced
width file, it will be linked directly to the fixed-width file
for one data set. Nevertheless, there will be situations when
without making a copy.
Excel/Access files need to be imported to ACL Analytics.

Defining overlapping fields


Best practice

Discuss other file options, such as fixed-width files (no


conversion) or delimited files (limited conversion), with
your data provider as these file types have no size limits Importing Delimited Files

Report (print image) Import and Copy Method

A report file is the soft copy of a printed report. It contains When an ACL Analytics table layout is created for a
page breaks with header information repeating on every delimited source file, it cannot be linked directly to the
page. Only use report files when other file types are not delimited file, so during the import process a copy will be
available or when the report itself needs to be audited / written to a fixed-width file with a .FIL extension. The
analyzed for accuracy. Report file structures can vary table layout will be linked to the copy and not to the
significantly and ACL Analytics contains many features to original delimited file.
handle these complexities.
Importing Report (Print Image) Files
PDF (report)
Import and copy method
Although PDF files are increasingly popular, they are not
the preferred file format for accessing data and should only When an ACL Analytics table layout is created for a source
be used when alternative files, such as fixed-width or report file, it cannot be linked directly to the report file;
delimited, are not available. Only the text elements of a instead, during the import process, a copy is written to a
PDF file can be imported to ACL Analytics; scanned fixed-width file with a .FIL extension. The ACL table
images cannot be interpreted. A PDF file that does not layout is linked to the .FIL and not to the original report
contain any text will be rejected. In ACL Analytics, a PDF file.
file is treated as a report file because it typically contains
data that is formatted like a printed report. Reviewing hard copy of report

Other files Prior to beginning the import, review a hard copy of the
report (or the soft copy in Notepad or WordPad):
ACL Analytics can also import other file types, including
XML, AS400, Cobol Copybook and SAP (Private File 1 Identify the fields that need to be imported into ACL
Format). Analytics.
1 Identify structural elements of the report.
Importing Fixed-Width Files
1 Identify which structural elements contain
Considerations o Header Records (optional)
Elements above the detail records that they belong
o Select Platform For Data Source window only opens if
to.
ACL Analytics server integration is enabled under
Tools > Options. o Footer Records (optional)
Elements below the detail records that they belong
o Ensure EBCDIC data is not converted to ASCII.
to.
o If EBCDIC data contains packed fields, use the
o Detail Records
"packed" data type.
These are considered the "anchor" in the report.
o Fields defined as numeric in the Edit Field Properties
screen will be converted to Print, which is a numeric
Importing PDF Files Some databases will have restricted access, in which case
youll need a user name and password in order to allow
Import and copy method read-only access.

When importing PDF files, the Data Definition Wizard The Data Access window
(DDW) copies the PDF data to a text file. This copied text
file is then imported the same way as a report file (identify The Data Access window is a component of ACL Analytics
detail, header and footer records and create identification that contains data connectors which you can use to import
filters), with an additional DDW step that allows you to data to ACL from a wide range of sources. For a complete
select the number of pages to import. Oftentimes, this list, see Data sources you can access with ACL .
conversion to a text file corrupts field alignment, making it
extremely difficult to properly import the data. The Data Access window also contains features for filtering
and joining tables prior to importing.
To reduce the risk of field alignment corruption, it is
recommended to open the PDF file in Adobe Acrobat and Advanced ODBC imports
save it as a text file by selecting File > Save As > Text and
then use the Data Definition Wizard to import the new text You may have noticed a few things in the Data Access
file. However, if you convert the PDF to a text file in this window while you were navigating the activity:
way, you will no longer be able to select specific pages to
import.
o The toggle. This switches to a
For directions on how to import PDF files, refer to the text box where you can freely edit or insert SQL syntax
report file import steps. to extract specific data.
o More than one table can be placed into the staging area,
Importing from an ODBC compliant data source which allows them to be joined.

About ODBC These are handy features, however are considered


advanced topics - so we've put together introductory
Short for Open DataBase Connectivity, ODBC is a standard material of Advanced Importing Concepts , to get you
database access method developed by the SQL Access started in the appendix.
group. ODBC was developed to allow access to any data
from any application, regardless of which database Caution
management system (DBMS) is handling the data. ODBC
achieves this by inserting a middle layer, called a database SQL joins are different from ACL joins. So unless you're
driver, between an application and the DBMS. This middle an SQL pro, maybe leave this until the end of the course.
layer translates the applications data queries into
commands that the DBMS understands.
Reusing table layouts

For this to work, both the application and the DBMS must
By eliminating field definition and other table layout
be ODBC-compliant - that is, the application must be able
definition steps, reusing table layouts can increase
to issue ODBC commands and the DBMS must be able to
efficiency. We'll look at three methods for reusing table
respond to them. ACL Analytics is ODBC-compliant. To
layouts:
use it on a DBMS that is also ODBC-compliant, an ODBC
driver is required.
o reusing table layouts of fixed-width files
Setting up an ODBC Driver o refreshing from source
o reusing the IMPORT entry from the log
An ODBC Driver needs to be setup on the same computer
that is running ACL Analytics. This is a one-time setup,
There is one method for reusing table layouts created from
typically done by IT personnel. Installed ODBC drivers can
Fixed-Width source files. There are two methods for
be found in the Windows Control Panel under
reusing table layouts created from all other source file
Administrative Tools > Data Sources (ODBC).
types that used either the Import and Copy Method
(Delimited, Excel, Report, and PDF) or Direct Access
Note Method (ODBC).
Reusing table layouts of fixed-width files o Access file
o Report (Print Image)
When you have two or more fixed-width files that share the
same record structure, it is only necessary to use the Data o PDF
Definition Wizard to define the first one. This table layout o ODBC
can then be copied and pasted as many times as necessary.
The copies can be renamed and linked to the other fixed- Reusing IMPORT from the log
width files. Compared to the alternative of creating the
same field definitions multiple times, this process saves
Whenever the DDW creates a table layout using the Import
considerable time.
& Copy method, table layouts can be re-used by adjusting
and reusing the import statement that was written to the
Refreshing from source log. The benefit of this is that the file names within the
import statement can be changed to allow a different source
Whenever the Data Definition Wizard creates a table layout file to be imported and to prevent overwriting the first .FIL
using the Import & Copy method, table layouts can be re- file and associated table layout.
used using Refresh from Source. Since the created table is
linked to the .FIL copy of the source file, selecting Refresh
Reusing IMPORT entry from the log
from Source will overwrite the .FIL file to reflect any
changes that occurred in the source file. In ACL Analytics, If data paths are eliminated from the Command
the View will reflect any changes made to the .FIL file. Line syntax, ACL Analytics will automatically use the
default Windows working folder (the Windows folder
where the ACL Analytics project is located).
Source file types that can be refreshed from source:

o Delimited file
o Excel file

You might also like