Intros/Bios
Definition of Terms Used
Architecture (Before & After)
Business Reason for upgrade
Factors Considered in solution
Case Study:
– Problem/objective
– Solution
Lessons Learned
Q & A
Rene
– 2 years EHI experience
– 9 years audit experience (6 yrs. CAATS)
– Toolset: ACL, T-SQL, PLSQL, SAS, SSAS,
SSRS, SSIS, SQL Management Studio
Nick
– 13 years EHI Experience
– 8 years audit experience
SSIS – SQL Server Integration Services, provides ETL of data and automation of starting ACL. It is part of the Business
Intelligence Developer Studio (BIDS) software.
SMS- SQL Server Management Studio, the more “dba” centric tool used for adding, deleting, updating tables on the server.
SSRS – SQL Server Reporting
Services, the reporting engine that hosts the reports on a web server, which the users access via internet.
DATASOURCE
ACL
EMAIL DISTRIBUTION -NOTIFY
MANUAL POSTING OF REPORTS TO SITE
Efficient exception management solution
Repository for external data we accumulate
Flexibility of being able to access reports without having to be “ACL” proficient
Needed to be able to query/store large amounts of data
In house Expertise
Scalability Across the Enterprise
Cost of Ownership
Familiarity with solutions
Technical Support Resources Availability
Out of box connectors for ETL
ACL CODE PROMOTION
ACL -DEVELOPMENT
ReportBuilder
CORP USER
SSRS web server
ACL -PROD
.FILs NEEDED FOR PROJECTS
OUTBOUND REPORT/DATA POSTS
VIA ODBC /EXCEL
IA USER
SQL db Server
VIA ODBC/ACL
INBOUND DATA LOADS
FRAUD USER
SQL -db Server FTP SERVER
VENDOR DATA
ORACLE TERADATA SQL SERVER
ACL
DATASOURCE
AUTOMATED EMAILS VIA NOTIFY
MANUAL POSTING TO SITE
POSTING TO WEB SERVER
ACCESS TOREPORT VIA ACL
ACCESS TOREPORT VIA EXCEL
Problem: Wanted to leverage our existing ACL CM projects and allow our end users to consume the reports in a variety of ways (i.e. ACL, excel or via the web).
Solution: Use the built in functionality of ACL to trigger SSIS into performing certain functions.
Solution- Using an Audit Objective
DIFFERENT SUB-
SCRIPTS
ACL
App Server
DATA SOURCE START ACL RUN ACL
ACL SCRIPTS
SSIS and ACL are on same server
Script to create a 1 row table to be read by SQL Server
EXPORT &
INDICATE
Entire
Process
Controlled via SSIS
More than X number of cars not on rent in > 5 days?
YES
Is the Audit
Threshold exeeded?
REPORT DELIVERY
EMAIL COMPLETION
TO MAILER
END
Step 1: Add a final script to existing
ACL script stack (Indicator_script)
Step 2: Create the Indicator script to capture “threshold needed” (i.e.
COUNTN variable)
this syntax is done in the master- just to illustrate the SSIS process its done here
******************************************
SET SAFETY OFF
SET SESSION initialze_SYSDATE
SET DATE 'YYYYMMDD' v_sys_date = ALLTRIM(DATE())
SET LOG "LOG_%v_sys_date%"
ASSIGN v_end_date = ALLTRIM(DATE(CTOD(%v_sys_date%) - 34))
ASSIGN v_ana_date = CTOD(%v_end_date%)
SET SESSION calcuate_days
COMM
******************* set script vars, note variable path
***********************
ASSIGN v_path = "D:\FY12_RK_UnitsUnrented\EXPORTS"
SET SESSION strt_export
COMMENT
************************
COUNT TO TEST FOR THE Audit OBJECTIVE
************************************************
OPEN UnitsUnrented_%v_end_date%
SET FILTER TO c_DaysDiffOdy > 5
COUNT
CLOSE
COMM
********************* export the report – done in del format for ease of integration with SSIS
*****************************
EXPORT FIELDS FIELD1 AS ‘FIELD1' FIELD2 AS ‘FIELD2' FIELD3 AS ‘FIELD3' DELIMITED
TO "%v_path%\UnitsUnrented_%v_end_date%" KEEPTITLE SEPARATOR "," QUALIFIER '"'
COMM
****************** export indicator file, using the COUNTN variable which is converted to CHAR, then read by
SSIS package and decision is taken based solely on the threshold –which is the COUNTN variable. NOTE: “FIRST N ROWS , optional APPEND is not used
***************************
OPEN UnitsUnrented_%v_end_date%
EXPORT TIME() + " " + DATE() + STRING(COUNT1, 10) TO "%v_path%\Indicator.txt"
FIRST 1
CLOSE
SET SESSION end_exprt
SET SAFETY ON
QUIT
Save the script (master or other) as a .bat file
Step3: Use Execute Process Task to locate the
.bat file
Step 4: Create a Stored Procedure in SMS
USE rene_db
GO
-- =============================================
-- Author: Rene Kennedy
-- Create date: 2011-11-05
-- Description: Return status for upload file from acl to trigger ssis to do work
--EXEC Ia_sp_Ind_chck
-- =============================================
ALTER PROCEDURE IA_sp_Ind_Chck
AS
DECLARE @UnitsIndChck int
BEGIN
SET @UnitsIndChck =( select CASE WHEN ACL_Count> 3300 THEN 1 ELSE 0
END ExceptStatus from ACL_Ind_File)
END
--selects the status dynamically---
SELECT @UnitsIndChck AS UnitsIndChck
RETURN
-- done in other cft task--execute IA_sp_Ind_Chck
Negatives:
– “Buy vs Build” – is true
– We “paid for it” in terms of :
Resource allocation
Time to market (time to have reports running on the server)
Changing roles (no longer auditors)
Conflict of Interests (audit vs developers)
Still need to determine exception management solution framework (SharePoint or ASP.NET)
Positives:
– Exception Management can be a scalable solution.
– Able to “test drive” the platform
– IT is more willing to help out now that we have
“SQL code to look at”
– Answered our business need
Don’t “hard code” the paths within the ACL projects, use variable substitution and code migration will be easier!
Leverage ACL’s “built-in” variables (i.e.. COUNTN, LOW1,
HIGH1, ABS1) to perform automated steps for you.
Use EXPORT to send an “N row” table- which allows other applications (ie. SSIS) to read and act on it.
When using SSIS and ACL, it will be MUCH easier if both apps are on a single “production” server.
Thank You!