You are on page 1of 4

ACL Technical Support

Standard Script Document

COMMENT
** DISCLAIMER NOTICE:
** ACL SERVICES LTD. ("ACL") AND ITS DISTRIBUTORS PROVIDE THE SCRIPT "AS IS" AND
** FREE OF CHARGE. ACL AND ITS DISTRIBUTORS: (A) DO NOT PROVIDE SUPPORT FOR THESE
** SCRIPTS; (B) MAKE NO WARRANTIES OR REPRESENTATIONS, EXPRESSED OR IMPLIED, WITH
** RESPECT TO THE SCRIPT, INCLUDING ITS FITNESS FOR A PARTICULAR PURPOSE,
** MERCHANTABILITY, DURABILITY, QUALITY OR ITS NON-INFRINGEMENT; (C) DO NOT
WARRANT ** THAT THE SCRIPT IS FREE FROM ERRORS; AND (D) WILL NOT BE LIABLE FOR ANY
DAMAGES ** (INCLUDING, BUT NOT LIMITED TO INDIRECT DAMAGES SUCH AS LOST PROFITS
AND LOST
** DATA) ARISING OUT OF THE USE OF, OR THE INABILITY TO USE THE SCRIPT. YOU AGREE
TO ** ASSUME ALL RISK OF LOSS OR DAMAGE ARISING FROM THE USE OF THE SCRIPT.
END

COMMENT
*******************************************************************************
** Script Name: Classified_benford (Script 1 of 2)
** Description: This Script simulates a Benford calculation on a specific
** key field.
**
** Requirements: File containing a character key field and a numeric field
** for the Benford calculation.
**
** Output: An extracted file with the Benford on the key field.
**
** Written By: Thomas Steeves, ACL Services On: November 7, 2001
** Edited By: Heiko Wieler, ACL Services On: December 24, 2001
** Last Edit By: Heiko Wieler, ACL Services On: May 30, 2003
** Don Mak, ACL Services On: August 30, 2004
*******************************************************************************
END

COMMENT
***** This will allow the Script to overwrite previous results.
***** Cleanup previous output files.

SET SAFETY OFF


SET ECHO NONE

DELETE "Benford_Done.FIL" OK
DELETE FORMAT Benford_Done OK

COMMENT
***** Prompt for Table name, break column, and numeric field for running
***** Benford.

DIALOG (DIALOG TITLE "ACL - Classified Benford" WIDTH 472 HEIGHT 135 ) (BUTTONSET
TITLE "&OK;&Cancel" AT 372 60 DEFAULT 1 ) (TEXT TITLE "Select the Table Name:" AT 24
28 ) (ITEM TITLE "f" TO "v_table_name" AT 228 24 ) (TEXT TITLE "Enter the Output
File Name:" AT 24 64 ) (EDIT TO "v_output" AT 228 60 )

OPEN %v_table_name%

DIALOG (DIALOG TITLE "ACL - Classified Benford" WIDTH 544 HEIGHT 238 ) (BUTTONSET
TITLE "&OK;&Cancel" AT 444 168 DEFAULT 1 ) (ITEM TITLE "C" TO "v_break_field" AT 348
36 ) (TEXT TITLE "Select the break field:" AT 24 40 ) (TEXT TITLE "Select the
numeric field to analyze:" AT 24 76 ) (ITEM TITLE "N" TO "v_benford_field" AT 348 72

Page 1 of 4
ACL Technical Support
Standard Script Document

) (TEXT TITLE "Select the number of leading digits to analyze:" AT 24 112 ) (EDIT TO
"v_lead_digits" AT 348 108 )

COMMENT
***** This will allow the Script to overwrite previous results.
***** Cleanup previous output files.

DELETE "%v_output%.FIL" OK
DELETE FORMAT %v_output% OK

COMMENT
***** Summarize to find the number of unique key fields and count them.

SUMMARIZE ON %v_break_field% TO "Temp_Sum" OPEN PRESORT


COUNT
v_total_record = COUNT1
v_record = 1

COMMENT
***** Call Classified_benford_2 to set a filter and run the Benford test.

DO Classified_benford_2 WHILE v_record <= v_total_record

COMMENT
***** Open the resulting file.

OPEN %v_output%

COMMENT
***** Delete the temporary files and set safety back on for overwrite
***** prompting.

DELETE "Temp_Sum.FIL" OK
DELETE FORMAT Temp_Sum OK
DELETE "Temp_Ben.FIL" OK
DELETE FORMAT Temp_Ben OK

SET ECHO ON
SET SAFETY ON

Page 2 of 4
ACL Technical Support
Standard Script Document

COMMENT
** DISCLAIMER:
** ACL SERVICES LTD. ("ACL") AND ITS DISTRIBUTORS PROVIDE THE SCRIPT "AS IS"
** AND FREE OF CHARGE. ACL AND ITS DISTRIBUTORS MAKE NO WARRANTIES OR
** REPRESENTATIONS, EXPRESSED OR IMPLIED, WITH RESPECT TO THE SCRIPT,
** INCLUDING ITS FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, QUALITY
** OR ITS NON-INFRINGEMENT. ACL DOES NOT WARRANT THAT THE SCRIPT IS FREE FROM
** ERRORS. ACL AND ITS DISTRIBUTORS WILL NOT BE LIABLE FOR ANY DAMAGES
** (INCLUDING, BUT NOT LIMITED TO INDIRECT DAMAGES SUCH AS LOST PROFITS AND
** LOST DATA) ARISING OUT OF THE USE OF, OR THE INABILITY TO USE THE SCRIPT.
** YOU AGREE TO ASSUME ALL RISK OF LOSS OR DAMAGE ARISING FROM THE USE OF THE
** SCRIPT.
END

COMMENT
*******************************************************************************
** Script Name: Classified_benford_2 (Script 2 of 2)
** Description: This Script filters the source data and runs the Benford
** test.
**
** Requirements: File containing a character key field and a numeric field
** for the Benford calculation.
**
** Output: An extracted file with a the key field and the Benford
** results.
**
** Written By: Thomas Steeves, ACL Services On: November 7, 2001
** Edited By: Heiko Wieler, ACL Services On: December 24, 2001
** Last Edit By: Heiko Wieler, ACL Services On: May 30, 2003
** Don Mak, ACL Services On: August 30, 2004
*******************************************************************************
END

COMMENT
***** Select the correct key field from the temporary file.

LOCATE RECORD v_record


v_break = %v_break_field%

COMMENT
***** Open the original file and run the Benford test for the key field.

OPEN %v_table_name%
BENFORD ON %v_benford_field% LEADING %v_lead_digits% BOUNDS IF %v_break_field% =
v_break TO "Temp_Ben.FIL"
OPEN Temp_Ben

COMMENT
***** Write out the Benford results to Benford_Done.

EXTRACT FIELDS v_break AS "%v_break_field%" ALL TO "%v_output%" APPEND

COMMENT
***** Increment the counter for the next key field.

ASSIGN v_record = v_record + 1

Page 3 of 4
ACL Technical Support
Standard Script Document

COMMENT
***** Open the summarized file.

OPEN Temp_Sum

Page 4 of 4

You might also like