Академический Документы
Профессиональный Документы
Культура Документы
V02.4
Contents
Introduction ...................................................................................................................................................................................................................................................3 ACL User Interface Overview .......................................................................................................................................................................................................................4 Common Data Types in ACL ........................................................................................................................................................................................................................5 ACL Command Reference ...........................................................................................................................................................................................................................6 ACL Command Terminology ........................................................................................................................................................................................................................7 Basic Commands: VERIFY, COUNT, TOTAL, & STATISTICS....................................................................................................................................................................8 Explanation of Output for STATISTICS (Numeric field) ...........................................................................................................................................................................8 Explanation of Output for STATISTICS (Date field) .................................................................................................................................................................................9 STATISTICS Shortcuts ............................................................................................................................................................................................................................9 What is Standard Deviation?....................................................................................................................................................................................................................9 Commands: Frequency & Materiality Distributions ....................................................................................................................................................................................10 Explanation of Output for CLASSIFY, STRATIFY, & AGE ....................................................................................................................................................................10 Identifying Outliers..................................................................................................................................................................................................................................11 Commands: Multi-File Combinations, Comparisons, and Associations .....................................................................................................................................................12 EXTRACT...............................................................................................................................................................................................................................................12 JOIN .......................................................................................................................................................................................................................................................13 RELATIONS ...........................................................................................................................................................................................................................................14 ACL Expressions Reference: Expression Builder ......................................................................................................................................................................................15 Expression Builder .................................................................................................................................................................................................................................15 ACL Expressions Reference: Filters and Computed Fields .......................................................................................................................................................................16 Filters......................................................................................................................................................................................................................................................16 Computed Fields ....................................................................................................................................................................................................................................17 Unconditional Computed Fields .............................................................................................................................................................................................................18 Conditional Computed Fields .................................................................................................................................................................................................................18 ACL Expressions Reference: Functions .....................................................................................................................................................................................................19 Functions ................................................................................................................................................................................................................................................19
ACL, the ACL logo and Audit Command Language are trademarks or registered trademarks of ACL Services Ltd. All other trademarks are the property of their respective owners.
Introduction
Introduction
The purpose of the ACL 9 Quick Guide is to provide you with a quick and easy reference on common ACL data types, ACL commands and expressions. For more information on these topics, please refer to the ACL 9 help: Help >Contents from the main menu of ACL Desktop, or the detailed ACL User Guide, available for download from the ACL Support Center www.acl.com/supportcenter. The ACL Support Center includes many other resources for the ACL community, including an extensive searchable knowledge base covering all aspects of ACL usage. You can also find great resources in our ACL user groups, www.acl.com/usergroup, or join the conversation on Facebook, Twitter and LinkedIn, www.acl.com/social. It's never been easier to connect with ACL experts - access the latest industry insights and collaborate with a global network of audit, finance and compliance professionals. To learn more about online training or available classes visit us at www.acl.com/training.
The main application window includes the following user interface elements: 1. Title Bar The title bar displays the name of the active ACL project. 2. Main Menu The main menu provides access to most ACL features including menu commands for working with ACL projects, performing audit analysis, and configuring options and connection settings. 3. Toolbar The buttons in the toolbar are shortcuts to common actions. ACL displays buttons that are relevant to your current activity. You can customize the buttons displayed in the toolbar. 4. Project Navigator The Project Navigator displays information in two tabs about the open ACL project:
The Overview tab displays all items that belong to the project. You can right-click any project item to perform an action. To organize items in the Overview, right-click the project icon and select New > Folder. You can drag any project item into the folders that you create in the Overview.
5.
The Log tab displays the ACL project log, in which all actions you take associated with the project are recorded and organized chronologically. Double-click entries to open them and right-click to perform an action. Display Area In this area, ACL displays three different tabs:
Welcome tab When you open ACL it initially displays the Welcome tab with links to help you begin your session. View tab When you open an ACL table the data is displayed in the View tab. At the top of the tab are a text box and buttons that allow you to apply filters to the view, and activate existing indexes. If multiple views exist for the same table, buttons at the bottom of the tab let you switch between views.
6. 7.
Results tab When you output results of an analytical operation to screen or graph, or view command log entries, they are displayed in the Results tab. For operations with text and graph output, buttons at the bottom of the tab let you switch back and forth between the two formats. You can pin the results tab to keep the content visible and cause subsequent results to appear in an additional results tab. Status Bar The status bar displays information such as the name of the active ACL table, the record count, and the details of any filters currently applied to the table. Command Line The command line allows you to enter ACLScript commands. To display the command line, if it is not visible, select Window > Show Command Line. 4
Category
N - Numeric
Description
This data type can include any punctuation, but most commonly includes leading or trailing blanks, an optional leading or trailing sign, embedded commas, and an explicit decimal point. This data type should be used instead of the Numeric (Unformatted)/NUMERIC type when the decimal digits are not included for every numeric value. For example, if you specify 2 decimal places and the values $500.50 and $399 are read, this data type will correctly interpret both values (500.50 and 399.00). PC-source alpha-numeric or character data. Used for Unicode encoded character data. This data type is only available in the Unicode edition of ACL. IBM z/OS or i/OS source alpha-numeric or character data. Used for dates stored using a standard date format, such as YYMMDD. The Format setting in the field definition specifies how to read dates from the data source. ACLs internal format for numeric data. Calculated numeric fields are assigned a data type of ACL Used for single character fields that represent Boolean data (usually true or false).
Examples
1,234.56
N - Numeric
$500.50 $399
ASCII UNICODE
C - Character C - Character
ACL1234 ACL1234
EBCDIC DATE
C -Character D - Date
ACL
N Numeric
LOGICAL
L - Logical
ACL can interpret the following sets of values, where the first value evaluates to true and the second evaluates to false: 1/0, T/F, t/f, Y/N, y/n, non-blank/ASCII blank
Command(s)
VERIFY COUNT TOTAL STATICICS
Explanation
These commands are used when first working with a data file. They provide general information about the file or about a subset of the data when applied in conjunction with a command filter. Verifies that all records in a sequence are present, e.g., check numbers. Used to check for tables for repeated records. It can also determine whether or not a particular field contains duplicate values or if all values are unique. Can determine how many records and how much value is concentrated by time period, value range, or other record identifiers such as location codes, vendor/customer numbers, or product identifiers. These commands are also useful for identifying outliers, either in financial or age terms. Associate or combine data from separate files.
Key fields*/Records
C, N, D Record-based N N, D C, N, D
Output
Screen, File Screen Screen Screen, File Screen, File
Completeness
GAPS
Uniqueness
DUPLICATES
C, N, D
Screen, File
Screen/Graph, File Screen/Graph, File Screen/Graph, File Screen, File Screen/Graph, File File File
Conduct record-based and monetary unit samples. Tests leading digits for variance from expected Benford distribution. May indicate unusual patterns in numeric data. Confirms that a column is in sequential order, and reports out of sequence records. Allows the user to change the order of the data in the current file or in a new file containing the same data.
Order
SEQUENCE
C, N, D
Screen, File
Re-Ordering
SORT INDEX
C, N, D C, N, D
File Screen
Explanation
Any user-defined or user-selected criteria that govern how the command is executed. Examples of parameters:
Key field(s) Command filter More tab
Key fields Subtotaled numeric fields Additional field information Command filters Output type/name Limits on how many records will be processed (found on the More tab)
The field(s) against which the command is run. Certain commands can only be run against specific field types, either character, numeric, or date. A filter local to the command that is active only while the command is running. Once the command has completed execution, the filter becomes inactive. Governs the number of records (scope) that will be processed. First: Allows you to test the command against the first x records. This can save time if you have a very large file and you would like to test the command against a limited number of records. Next: If your record indicator is not set at the first record, this will allow you to process the next x records. While: Executes the command only when a certain condition is met, either a record-based condition or a variable-based condition. This parameter is useful primarily in scripts.
Command filter
Command
VERIFY
Toolbar Button
Key field(s)*
C, N, D
Comments
Checks the contents of the field are consistent with the fields defined data type. Identifies invalid or blank dates, numeric fields containing non-numeric characters and text fields with unknown characters. Useful for verifying that field definitions are appropriate. Counts the number of records in a table and documents the result in the log. The most recent count result is stored in the variable COUNT1. Totals the selected numeric field and documents the result in the log. The most recent total result is stored in the variable TOTAL1. Confirms record counts, control totals (numeric), date bounds, negative and positive numeric values, means, and bounds. Documents results in the log. Generates multiple variables (see list below).
COUNT TOTAL
Record-based N
STATISTICS
N, D
ACL Variables Generated by Statistics: MAX1 MIN1 HIGH1 LOW1 Difference between maximum (MAX1) and minimum (MIN1) values: RANGE1 Nth highest item (HIGH1) and Nth lowest item (LOW1) All records: COUNT1, TOTAL1, AVERAGE1 Absolute value of total materiality in field: ABS1 Measure of dispersion around the average (optional): STD1
Most recent
Oldest
STATISTICS Shortcuts
To isolate the top ten transactions by value, run STATISTICS on the numeric field with the number of high/low parameter set to 10. Then run the EXTRACT command with the command filter name of value field>=HIGH1 To isolate the ten oldest transactions, run STATISTICS on the transaction date field with the number of high/low parameter set to 10. Then run the EXTRACT command with the command filter name of transaction date field>=HIGH1
Command
CLASSIFY SUMMARIZE STRATIFY CROSS-TABULATE AGE
Toolbar Button
Key field(s)
Character fields, one at a time. Multiple character/date fields. Numeric fields, one at a time. Multiple character fields; creates pivot-table output. Cutoff date fields.
Comments
Comparing Two Populations: After isolating exceptions or suspicious transactions, you can compare the relative frequency or materiality by running Classify against the entire population and against the exceptions. Then use RELATIONS on the key field to bring the two results into one view for comparison. Financial Auditors: Subtotal amount fields to compare transaction amounts by category. Operational Auditors: The Count column (see example below) will tell you how many transactions meet each criteria.
Example of blanks occurring in the GL_ACCT_ID column Drill down on underlined value to view records with that value
Percent of Field: AMOUNT for the row divided by the AMOUNT total: 7,941.99/6,898.622.40 = 0.12%
Percent of Count: Count for the row divided by the Count total: 8/10,728 = 0.07%
10
Identifying Outliers
Outliers are transactions that occur outside of reasonable expectations. These expectations are usually, but not always, base d on the transactions materiality. Other types of outliers can be based on the age of the transaction, the volume (units), unit value (price), or classification codes such as vendors, product numbers/classes, or geographic regions. Outliers can also be based on combinations of multiple parameters, such as a very large transaction in a geographic region where the average transaction is relatively small. Numeric fields: Run STATISTICS to get an overall picture of the bounds of that field. Then run STRATIFY to see the number and materiality of the transactions based on size ranges. Drill down from the screen output to isolate the outliers with a view filter. Date fields: Run STATISTICS to get an overall picture of the period covered by the transaction data. Then run AGE to see the number and materiality of the transactions based on age ranges. Drill down from the screen output to isolate the outliers with a view filter. Character fields: Run CLASSIFY against the specific field to identify the number and materiality of the transactions based on that field. If there are any codes that are not recognizable, drill down from the screen output to isolate the transactions associated with those codes. Multiple fields: For character and date combinations, use SUMMARIZES. For character field combinations, use SUMMARIZE or CROSS-TABULATE. If you want to use a command that is designed for character fields against a date or numeric field, use conversion functions such as STRING() or DATE() to create computed character fields. You can also create filters with multiple conditions to identify outliers with specific characteristics.
11
Toolbar button
Key field(s)*
Record- or field-based. C, N, D C, N, D
Output
New ACL table containing the specified records/fields extracted and appended from the original tables. New ACL table containing the result of the JOIN command, according to the users selected JOIN parameters. None. RELATIONs are applied to the current table. Fields from related tables can be used in computed fields, filters, and commands in the current table.
EXTRACT
The EXTRACT command allows you to isolate specific records or to combine records from multiple tables into one master table.
Combining Records
You may often receive data from multiple time periods or from multiple locations that you wish to combine into one master file. You can do this by selecting the Append option on the More tab when running the EXTRACT command from each source table to the master table. In the example below, you would combine the January, February, and March transactions to create the YTD table. YTD Record-based Extract/Append: Ensure that table layouts are identical in the source file and the destination file. The fields must have the same length and the same physical order. Field-based Extract/Append: Ensure that the selected fields have the same length in both files and that they are selected in the same order as they exist physically in the destination file. Best Practice: Always Extract/Append to a new table rather than to one of the source tables. Mar
Jan
Feb
12
JOIN
The JOIN command compares two tables (referred to as Primary and Secondary) and results in either matched or unmatched records based o n the users parameter selection. The two tables must have at least one field in common, and that common field must be of the same type (CND) and length in both tables. When you join two tables, ACL automatically harmonizes the key fields in two situations: You use a character and a numeric key field to join tables You select character key fields of different lengths This feature simplifies certain kinds of joins and reduces the associated labor. For example, when using key fields such as social security number or telephone number, when one key field contains numbers and punctuation formatted as character data (555-44-3322), and the other contains only numbers formatted as numeric data (555443322), you can perform a standard join without needing to first manually harmonize the fields using functions.
JOIN Examples
In the examples below, we will be comparing a payroll file to an active employee master file for different types of tests.
13
The first five Join options on the More tab are many-to-0ne in nature. This means that if there are any duplicate instances of the key field in the Secondary table (such as the employee number), the first match encountered in the Secondary table will be used and the second will be ignored. The sixth Join is many-to-many in nature and all possible matches will be written to the output file.
RELATIONS
The RELATIONS command links (or relates) multiple tables to a parent table (usually a transaction table) for multiple lookup capability. This allows data columns to be compared across tables. In the purchasing example shown below, four tables (Payments, Purchase Orders, Standard Price List and Vendors) have been directly related to the Invoices table, The Employees table is indirectly related to Invoices via the employee number field in the Purchase Orders table.
These relations will allow the following tests to be executed in the Invoices table:
Identify invoiced prices variance from standard price and calculate amount of variance Identify invoices with unmatched products and quantities compared to purchase orders and calculate variance Identify vendor/employee/product profiles of non-compliant transactions and materiality Compare vendor-employee addresses, phone numbers, and other identifiers Calculate days between purchase order and invoice Compare all invoices to master vendor list to identify inactive/invalid vendors
14
The Expression Builder includes the following user interface elements: 1. Expression text box Use this text box to create a new expression or edit an existing expression. You can type the required syntax for the expression, and use the lists and buttons in the dialog box to enter required information. When you use the controls on the dialog box, the information is added at the current cursor position in the Expression text box. Verify button Click this button to verify the syntax of the statement in the Expression text box. Save As text box Enter a name for the expression you are creating or editing. The expression will be saved with this name when you click OK. Available Fields list Lists all of the data fields and computed fields in the selected table. Double-click a field entry to add it to the Expression text box. From Table drop-down list If the table is related to one or more other table, you can select any of the related tables from the drop-down list. The expression can contain fields from more than one related table. You can build expressions with fields from related tables, even if those fields do not appear in your current view. You can also build filters that include fields from related tables and see the results in your view, whether or not you add the fields from the related tables to your view. 6. 7. 8. 9. Operator and Date buttons Click the buttons in this area to add operators to, or select dates to add in, the Expression text box. Filters list Lists all of the filters associated with the selected table. Double-click a filter entry to add it to the Expression text box. Variables list Lists all of the variables associated with the selected table. Double-click a variable entry to add it to the Expression text box. Functions drop-down list Lists function categories that can be used to filter the functions displayed in the Functions list.
2. 3. 4. 5.
10. Functions list Lists the functions available in ACL and their required syntax. Optional parameters are enclosed in angle brackets (< >). Double-click a function to add it to the Expression text box. Depending on the type of function, the parameters can be constants, field names, or expressions, which may include other functions. 11. Paste Parameters checkbox If this checkbox is selected, the function is copied to the Expression text box with named placeholders for each parameter. If the checkbox is not selected, only the function name, including opening and closing brackets, is copied to the Expression text box.
15
Creation point
Edit View Filter button opens the Expression Builder.
Filters
You can apply a named or ad hoc filter to a view to limit the records displayed in the view. When a filter is applied to a view, only the records included in the view are included in analytic operations applied to the view. For this reason, these types of filters are referred to as global filters. You can only apply one filter to a view at a time, but you can combine existing filters in your expression using the AND and OR operators. Document number of exceptions in the log by running Count while the filter is active. Isolate filtered records in a separate table by using Extract with command filter. Syntax: The minimum required syntax for any filter is fieldoperator-string/value. Character: LastName = Smith Numeric: Amount > 100000 Date: TransDate <= `20060101` Note the required formatting for each data type. You can combine, group or exclude multiple criteria by using AND, OR, NOT and ().
Select and right-click cell(s) in view. Resulting view filter can be edited in the Expression Builder.
Command or Local Filter Executes command against filtered records, after which filter is inactivated.
16
Types of expressions
Categories
Unconditional
Creation point
Computed Fields
Virtual data based on a formula. Added permanently to table layout when named. Can be based on fields within the current table and in any related tables. Result data types: C, N, D Commands: Commands can be run against computed fields in the same way that they can be run against physical data fields.
Conditional
Important: If you are working with a very large number of records (e.g., more than 100,000) you may get a time-out message when imposing a view filter on the data. This type of filter is known as a thin filter as it is looking for a very small number of records in a very large table. To avoid time-outs, you can: 1. Extract the desired records to a separate table with a local filter in the command dialog IF box. 2. Re-set the Redraw Seconds option to a higher number in the View tab in Tools>Options. This is not considered a best practice as it is less efficient.
17
Green check mark: Click to save computed field. Format: Governs how numeric field will be presented in the view. Alternate Column Title: Column heading that appears in the view and in reports.
Insert a new condition: Create new condition/value pair using the Expression Builder.
Condition/Value pairs: Different result for each condition. ACL tests each record beginning with the first condition; if that condition is not met, it proceeds to the second. The order of the conditions is thus important.
18
Category
Conversion Date Logical Math String Other
Examples
Convert numeric to character and vice-versa. Identify day of week, convert to character and vice-versa, automatically use todays date. Wild-card search, search for multiple matches, isolate range of records, test data pattern for consistency, test for blank entries. Absolute value, rounding, modulus, selecting largest/smallest values of a pair. Data harmonization, isolating components within one field. Tag records with record number for tracking, compare values between records (up or down).
Name
Andrew Jacobs Myrtle Eunice ODonnell Last Name: First Name: Middle Name:
Last
Jacobs ODonnell
First
Andrew Myrtle
Middle
Eunice
SPLIT(Name, ,OCCURS(ALLTRIM(Name), )+1) SPLIT(Name, ,1) Default value: SPLIT(Name, ,OCCURS(ALLTRIM(Name), )) Condition: OCCURS(ALLTRIM(Name), )=1 Value:
Filter Example
Input validation is the process by which a system tests user inputs for appropriateness before being accepted by a system. Legacy systems tend to have weak input validation, and additional ad hoc testing is often necessary to validate user inputs. One example is an identification number that should follow a consistent pattern and format, such as a social insurance number or a social security number. The MAP() function can be used to test for content and format and will identify any records where that field is not consistent with the requirements. In this example, the required format is Alpha-Number-Slash-Number-Number, such as k3/72. The filter should search for the records where the field does not match the format:
ID Number
a1/22 b518 33/y6 z4/93
Filter Result
F T T F
The filter expression is written as follows: NOT(MAP(ID_Number, x9/99)) where x is the universal indicator for an alphabetic character and 9 is the indicator for a numeric character. Run the Count command with this expression as a command filter to document the existence of any exceptions. Run the Extract command with the same command filter to isolate non-compliant records in a separate table.
19