SlideShare a Scribd company logo
1 of 11
Name:  Jolisa DillardSetFocus, LLC         Date: 2/14/10<br />SSIS Student Project – ALLWORKS Database – Documentation<br />This project is for a fictitious company called AllWorks.  The purpose of this project is to build a database to track employee and customer information.  Included in this project are tables to collect timesheet and labor rates.  There are also tables for job order information, job materials and customer invoices.  Previously, the AllWorks company used to store all of this information in Excel Spreadsheets, XML and CSV files.   All Packages produced for this project will run from the main Package which is called the Master Package.  <br />Main Specification: Each package per specifications will insert rows that do not exist, update rows that already exist and write invalid rows to Error files. Per instructor, data load files will not contain records with NULL key values; also the initial data load will not contain any duplicate keys.  Load data will be imported from source files i.e.: Spreadsheet (.XLS) and Comma Separated Values (.CSV) files.  The fields or columns will then be converted to necessary data types for the AllWorksDBStudent database. Note: Record/s or Row/s are interchangeable. The packages will run nightly at Midnight.  Trans means Transformed.  LK means LookUp.<br />Packages:<br />3a: Employee Master Package  created as EmployeeMaster.dtsx<br />3b: Employee Rates Package  created as EmployeeRates.dtsx<br />3c: Client Masters Package  created as ClientMaster.dtsx<br />3d: Client Grouping  Package  created as ClientGroupings.dtsx<br />3e: Division Master  Package  created as Division.dtsx<br />3f: Client Grouping  to Client Xref Master Package  created as ClientGroupingsXClients.dtsx<br />3g: Project (“Job”) Master Package  created as ProjectMaster.dtsx<br />3h: Project Job TimeSheets  Package  created as JobTimeSheets.dtsx<br />PACKAGE: Master.dtsx<br />3a: Employee Master Package  created as EmployeeMaster.dtsx<br />Source File: C:etFocusBISourceDatamployees.xls, Sheet: Employees<br />Target Table:  AllWorksDBStudent.dbo.EmployeeMaster<br />Assumption: The package will insert rows that do not exist based on Employee Id, Name, Cell Number and update rows that already exist. <br /> Package Requirements:<br />A new column FullName is derived from the converted Trans_Lastname + “, “ + Trans_Firstname columns. The converted employee id column, Trans_EmployeeID is compared to the LK_EmployeePK column of the AllWorksDBStudent Employee table through the lookup task. If the EmployeePK record is missing (ISNULL), then the new record is inserted into the Employees table. A lookup is performed on all columns except the FullName to check for changes. If there are changes then these records are updated. Row counts are performed in 3 places: after the Excel input and after the conditional split which tests for Insert Rows and the Update Rows.<br />Email Notification types are Successful or Failure:<br />Successful email notification will include:<br />,[object Object],                     Execution Start Time <br />             Total # Input records <br />             Total # Inserted rows <br />             Total # of Updated rows <br />             Total # of Rows Counted <br />,[object Object],                      quot;
The Employee Master Updates has failed please contact Operations!!!<br /> 3b: Employee Rates Package  created as EmployeeRates.dtsx<br />Source File: C:etFocusBISourceDatamployees.xls, Sheet: EmployeeRates<br />Target Table:  AllWorksDBStudent.dbo.EmployeeRates<br />Error File: C:etFocusBIProjectstudentVersionSISStudentProjectad RowadEmployeeRate.txt <br />Assumption: The package will insert rows that do not exist based on Employee Id and Effective Date and update rows that already exist.  If there are Invalid Rows they will be added to the Error File.<br />Package Requirements:<br />There are 2 lookups performed for this table. The converted employee id column, Trans_EmployeeID is compared to the LK_EmployeePK column of the Employees table with the lookup task to make sure the Employee exists, otherwise Invalid Record. The second lookup checks to see if the data from the Excel Spreadsheet already exists in the EmployeeRates table.  If the EmployeeRatePK record is missing (ISNULL), then a new record/row is inserted into the EmployeeRates table. If there exists an Employee Rate row for that employee then the lookup performed on the EmployeeRates table also checks the Hourly Rate and Effective Date.  If there are changes then these records are updated. Row counts are performed in 4 places: after the Excel input, after the conditional split for the Insert Rows, Update Rows and Invalid Records.<br />Email Notification types are Successful or Failure:<br />Successful email notification will include:<br />,[object Object],                     Execution Start Time <br />             Total # Input records <br />             Total # Inserted rows <br />             Total # of Updated rows <br />             Total # of Invalid rows <br />             Total # of Rows Counted <br />,[object Object],                      quot;
The Employee Rates Updates has failed please contact Operations!!!”<br />     <br />,[object Object],BadEmployeeRate.txt<br />3c: Client Masters Package  created as ClientMaster.dtsx<br />Source File: C:etFocusBISourceDatalientGeographies.xls, Sheet: ClientListing<br />Target Table:  AllWorksDBStudent.dbo.ClientMaster<br />Error File: C:etFocusBIProjectstudentVersionSISStudentProjectad RowadClientMaster .txt<br />Assumption: The package will insert rows that do not exist based on Client Id and update rows that already exist.  If there are Invalid Rows they will be added to the Error File.<br /> Package Requirements:<br />The County table must exist before the Clients table can be added to the database.  The County table needs to be populated first. There is one lookup for the County table which checks for the existence of that County Key.  If the County Key does not exist it is inserted.  If the County Key exists and there is a change to the description then Updates to the description will be made.  Invalid rows are written to the BadClientMaster.txt file. No County Table row counts are performed for the email statistics. <br />The Client table has 2 lookups. The converted employee id column, Trans_EmployeeID is compared to the LK_EmployeePK column of the Employees table with the lookup task to make sure the Employee exists, otherwise InvalidRecord which will be written to the Error File. The second lookup checks to see if the data from the Excel sheet already exists in the EmployeeRates table.  If the EmployeeRatePK row is missing (ISNULL), then the new row is inserted into the EmployeeRates table. If there exists, an Employee Rate row for that employee then the lookup performed on the EmployeeRates table also checks the Hourly Rate and Effective Date.  If there are changes then these records are updated. Row counts are performed in 4 places: after the Excel input, after the conditional split for the Insert Rows, Update Rows and Invalid Records.<br />  <br />Email Notification types are Successful or Failure:<br />Successful email notification will include:<br />,[object Object],                     Execution Start Time <br />             Total # Input records <br />             Total # Inserted rows <br />             Total # of Updated rows <br />             Total # of Invalid rows <br />             Total # of Rows Counted <br />,[object Object],                      quot;
The Client Master Updates has failed please contact Operations!!!”<br />     <br />,[object Object],BadClientMaster.txt<br />3d: Client Grouping  Package  created as ClientGroupings.dtsx<br />Source File: C:etFocusBISourceDatalientgeographies.xls, Sheet: Special Groupings<br />Target Table:  AllWorksDBStudent.dbo.ClientGroupings<br />Assumption: The package will insert rows that do not exist based on ClientGroupingPK and update rows that already exist. Only unique rows must be inserted.  If there are Invalid Rows they will be added to the Error File.<br />Package Requirements:<br />NOTE:  If the ClientGroupingPK record is missing (ISNULL), then the new record is inserted into the ClientGroupings table. A lookup is performed on all columns to check for changes, if there are changes then these records are updated. Row counts are performed in 3 places: after the Excel input, after the conditional split for the Insert Rows and the Update Rows. The Aggregation by grouping task  was added  for no duplicates.  <br />Email Notification types are Successful or Failure:<br />Successful email notification will include:<br />,[object Object],                     Execution Start Time <br />             Total # Input records <br />             Total # Inserted rows <br />             Total # of Updated rows <br />             Total # of Rows Counted <br />,[object Object],                      quot;
The Client Groupings Updates has failed please contact Operations!!!”<br />3e: Division Master  Package  created as Division.dtsx<br />Source File: C:etFocusBISourceDatalientgeographies.xls, Sheet: Division Definitions<br />Target Table:  AllWorksDBStudent.dbo.Division<br />Assumption: The package will insert rows that do not exist based on DivisionID and update rows that already exist. Must insert only unique rows.<br />Package Requirements:<br />NOTE:  A lookup is performed to check if the DivisionPK record exists or is missing.  If the DivisionPK is missing (ISNULL), then the new record is inserted into the Division table. This lookup is also performed on all columns to check for changes, if there are changes then these records are updated. Row counts are performed in 3 places: after the Excel input, after the conditional split for the Insert Rows and the Update Rows.<br />Email Notification types are Successful or Failure:<br />Successful email notification will include:<br />,[object Object],                     Execution Start Time <br />             Total # Input records <br />             Total # Inserted rows <br />             Total # of Updated rows <br />             Total # of Rows Counted <br />,[object Object],                      quot;
The Division Master Updates has failed please contact Operations!!!”<br />3f: Client Grouping  to Client Xref Master Package  created as ClientGroupingsXClients.dtsx<br />Source File: C:etFocusBISourceDatalientgeographies.xls, Sheet: Special Groupings<br />Target Table:  AllWorksDBStudent.dbo.ClientGroupingsXClients<br />Error File: C:etFocusBIProjectstudentVersionSISStudentProjectad RowadClientGroupingsXRef .txt<br />Assumption: The package will insert rows that do not exist based on ClientGroupingsXClientsPK. If there are Invalid Rows the will be added to the Error File.<br />Package Requirements:<br />After performing the lookup with the ClientGroupingsXClientsPK if the record is missing (ISNULL), then the new record is inserted into the ClientGroupingsXClients table. This lookup is also performed on all columns to check for changes, if there are changes then these records are updated. Row counts are performed in 3 places: after the Excel input, after the conditional split for the Insert Rows and the Update Rows.<br />Email Notification types are Successful or Failure:<br />Successful email notification will include:<br />,[object Object],                     Execution Start Time <br />             Total # Input records <br />             Total # Inserted rows <br />             Total # of Updated rows <br />             Total # of Invalid rows <br />             Total # of Rows Counted <br />,[object Object],                      quot;
The ClientGroupingsClientsXRef Updates has failed please contact Operations!!!”<br />,[object Object],   BadClientGroupingsXRef.txt<br />3g: Project (“Job”) Master Package  created as ProjectMaster.dtsx<br />Source File: C:etFocusBISourceDatarojectMaster.xls, Sheet: ProjectMaster<br />Target Table:  AllWorksDBStudent.dbo.JobMaster<br />Error File: C:etFocusBIProjectstudentVersionSISStudentProjectad RowadProjectMaster.txt <br />Assumption: The package will insert rows that do not exist based on JobMasterPK(JobNumberID) and update rows that already exist. If there are Invalid Rows they will be added to the Error File.<br />Package Requirements:<br />There are 2 lookups performed for this table. The first lookup, Trans_ClientPK is compared to the LK_ClientPK column from dbo.Clients to make sure the Client exists, otherwise the InvalidRecord which will later be written to the Error File. The second lookup, checks to see if the data from the Excel sheet already exists in the JobMaster  table.  If the JobMasterPK record is missing (ISNULL), then the new record is inserted into the JobMaster table. If there exists a row for that Project/Job then the lookup performed on the JobMaster table also checks the Hourly Rate and Effective Date.  If there are changes then these records are updated. Row counts are performed in 4 places: after the Excel input, after the conditional split for the Insert Rows, Update Rows and Invalid Records.<br />Email Notification types are Successful or Failure:<br />Successful email notification will include:<br />,[object Object],                     Execution Start Time <br />             Total # Input records <br />             Total # Inserted rows <br />             Total # of Updated rows <br />             Total # of Invalid rows <br />             Total # of Rows Counted <br />,[object Object],                      quot;
The Project  Master Updates has failed please contact Operations!!!”<br />     <br />,[object Object],BadTimeSheet.txt<br />lefttop<br />3h: Project Job TimeSheets  Package  created as JobTimeSheets.dtsx<br />Source File: C:etFocusBISourceDataobmpTime####.csv<br />Target Table:  AllWorksDBStudent.dbo.JobTimeSheets<br />Error File: C:etFocusBIProjectstudentVersionSISStudentProjectad RowadTimeSheets.txt <br />Assumption: The package will insert rows that do not exist based on JobNumberID, EmployeeID, Date and update rows that already exist. This package will insert rows from all .CSV files that exist in the specified directory/folder.<br />Package Requirements:<br />There are 3 lookups performed for this table. The first lookup, checks to see if the data from the Excel sheet already exists in the JobMaster table. If this is an invalid project number than that record will be later inserted into the Error File. The second lookup, Trans_EmployeePK is compared to the LK_EmployeePK column from dbo.Employees to make sure the Employee exists, otherwise the InvalidRecord which will later be written to the Error File. The third lookup compares the Trans_JobTimeSheetPK with the LK_JobTimeSheetPK If the Time sheet does not exist (ISNULL) and this is a valid Project and Employee then a row is inserted.  If there exists a row for that Timesheet then the lookup performed on the JobTimeSheets table also checks all the other columns.  If there are changes then these records are updated. Row counts are performed in 4 places: after the Excel input, after the conditional split for the Insert Rows, Update Rows and Invalid Records.<br />Email Notification types are Successful or Failure:<br />Successful email notification will include:<br />,[object Object],                     Execution Start Time <br />             Total # Input records <br />             Total # Inserted rows <br />             Total # of Updated rows <br />             Total # of Invalid rows <br />             Total # of Rows Counted <br />,[object Object],                      quot;
The Project  Master Updates has failed please contact Operations!!!”<br />     <br />,[object Object],BadJobTimeSheets.txt<br />Master Package: Master.dtsx<br />The flow of the Master package was designed with the below consideration.<br />,[object Object]
The following 4 tasks have been setup to run after successful completion of the packages 3a-3h from the Master Package:
Shrink Database Task
Rebuild Index Task
Update Statistics Task
Back Up Database Task             Note: Each of the database maintenance Tasks will send a successful or failure email upon completion.<br />
Ssis First Project Word7
Ssis First Project Word7
Ssis First Project Word7
Ssis First Project Word7
Ssis First Project Word7

More Related Content

What's hot

William Schaffrans Bus Intelligence Portfolio
William Schaffrans Bus Intelligence PortfolioWilliam Schaffrans Bus Intelligence Portfolio
William Schaffrans Bus Intelligence Portfoliowschaffr
 
Agile Methodology Approach to SSRS Reporting
Agile Methodology Approach to SSRS ReportingAgile Methodology Approach to SSRS Reporting
Agile Methodology Approach to SSRS ReportingDanielson Samuel
 
Share point ssis adapters 2011
Share point ssis adapters 2011Share point ssis adapters 2011
Share point ssis adapters 2011Krishna Na
 
Dynamic date parameters in bi report
Dynamic date parameters in bi reportDynamic date parameters in bi report
Dynamic date parameters in bi reportFeras Ahmad
 
Sierra to Summon Synchronization - Susan Johns-Smith 2017
Sierra to Summon Synchronization - Susan Johns-Smith 2017Sierra to Summon Synchronization - Susan Johns-Smith 2017
Sierra to Summon Synchronization - Susan Johns-Smith 2017Pittsburg State University
 

What's hot (7)

William Schaffrans Bus Intelligence Portfolio
William Schaffrans Bus Intelligence PortfolioWilliam Schaffrans Bus Intelligence Portfolio
William Schaffrans Bus Intelligence Portfolio
 
Agile Methodology Approach to SSRS Reporting
Agile Methodology Approach to SSRS ReportingAgile Methodology Approach to SSRS Reporting
Agile Methodology Approach to SSRS Reporting
 
Share point ssis adapters 2011
Share point ssis adapters 2011Share point ssis adapters 2011
Share point ssis adapters 2011
 
Dynamic date parameters in bi report
Dynamic date parameters in bi reportDynamic date parameters in bi report
Dynamic date parameters in bi report
 
INTRODUCTION TO SAS
INTRODUCTION TO SASINTRODUCTION TO SAS
INTRODUCTION TO SAS
 
Sierra to Summon Synchronization - Susan Johns-Smith 2017
Sierra to Summon Synchronization - Susan Johns-Smith 2017Sierra to Summon Synchronization - Susan Johns-Smith 2017
Sierra to Summon Synchronization - Susan Johns-Smith 2017
 
SAS BASICS
SAS BASICSSAS BASICS
SAS BASICS
 

Similar to Ssis First Project Word7

Agnes's SSIS Project Documentation
Agnes's SSIS Project DocumentationAgnes's SSIS Project Documentation
Agnes's SSIS Project Documentationagnestetter
 
MS BI SSIS Project Portfolio
MS BI SSIS Project PortfolioMS BI SSIS Project Portfolio
MS BI SSIS Project Portfoliopencarver
 
MMYERS Portfolio
MMYERS PortfolioMMYERS Portfolio
MMYERS PortfolioMike Myers
 
Business Intelligence Portfolio
Business Intelligence PortfolioBusiness Intelligence Portfolio
Business Intelligence Portfolioamoffat
 
David Weston SSIS Portfolio
David Weston SSIS PortfolioDavid Weston SSIS Portfolio
David Weston SSIS Portfoliodlweston
 
A-Project Report- SSIS
A-Project Report- SSISA-Project Report- SSIS
A-Project Report- SSISYubaraj Khanal
 
I am having trouble writing the individual files for part 1, which i.pdf
I am having trouble writing the individual files for part 1, which i.pdfI am having trouble writing the individual files for part 1, which i.pdf
I am having trouble writing the individual files for part 1, which i.pdfmallik3000
 
Manisha Menon Ssis Portfolio
Manisha Menon Ssis PortfolioManisha Menon Ssis Portfolio
Manisha Menon Ssis Portfoliomenonmanisha
 
In press checking with crossref API
In press checking with crossref APIIn press checking with crossref API
In press checking with crossref APIukcorr
 
Part 1 - Microsoft AccessView GlossaryUse Access to create a.docx
Part 1 - Microsoft AccessView GlossaryUse Access to create a.docxPart 1 - Microsoft AccessView GlossaryUse Access to create a.docx
Part 1 - Microsoft AccessView GlossaryUse Access to create a.docxhoney690131
 
CIS 336 (DEVRY) Entire Course NEW
CIS 336 (DEVRY) Entire Course NEWCIS 336 (DEVRY) Entire Course NEW
CIS 336 (DEVRY) Entire Course NEWshyamuopuop
 
Ssis sql ssrs_sp_hb_li
Ssis sql ssrs_sp_hb_liSsis sql ssrs_sp_hb_li
Ssis sql ssrs_sp_hb_liHong-Bing Li
 
Plsql task
Plsql taskPlsql task
Plsql taskNawaz Sk
 
CIS 336 Education Planning--cis336.com
CIS 336 Education Planning--cis336.comCIS 336 Education Planning--cis336.com
CIS 336 Education Planning--cis336.comWindyMiller44
 
Murach: How to use Entity Framework EF Core
Murach: How to use Entity Framework EF  CoreMurach: How to use Entity Framework EF  Core
Murach: How to use Entity Framework EF CoreMahmoudOHassouna
 
Rodney Matejek Portfolio
Rodney Matejek PortfolioRodney Matejek Portfolio
Rodney Matejek Portfoliormatejek
 
Premier OA Operations Advisor Specification
Premier OA Operations Advisor SpecificationPremier OA Operations Advisor Specification
Premier OA Operations Advisor SpecificationNate St. Yves
 
Bilir's Business Intelligence Portfolio SSIS Project
Bilir's Business Intelligence Portfolio SSIS ProjectBilir's Business Intelligence Portfolio SSIS Project
Bilir's Business Intelligence Portfolio SSIS ProjectFigen Bilir
 

Similar to Ssis First Project Word7 (20)

Agnes's SSIS Project Documentation
Agnes's SSIS Project DocumentationAgnes's SSIS Project Documentation
Agnes's SSIS Project Documentation
 
MS BI SSIS Project Portfolio
MS BI SSIS Project PortfolioMS BI SSIS Project Portfolio
MS BI SSIS Project Portfolio
 
MMYERS Portfolio
MMYERS PortfolioMMYERS Portfolio
MMYERS Portfolio
 
Business Intelligence Portfolio
Business Intelligence PortfolioBusiness Intelligence Portfolio
Business Intelligence Portfolio
 
David Weston SSIS Portfolio
David Weston SSIS PortfolioDavid Weston SSIS Portfolio
David Weston SSIS Portfolio
 
A-Project Report- SSIS
A-Project Report- SSISA-Project Report- SSIS
A-Project Report- SSIS
 
I am having trouble writing the individual files for part 1, which i.pdf
I am having trouble writing the individual files for part 1, which i.pdfI am having trouble writing the individual files for part 1, which i.pdf
I am having trouble writing the individual files for part 1, which i.pdf
 
Manisha Menon Ssis Portfolio
Manisha Menon Ssis PortfolioManisha Menon Ssis Portfolio
Manisha Menon Ssis Portfolio
 
In press checking with crossref API
In press checking with crossref APIIn press checking with crossref API
In press checking with crossref API
 
Part 1 - Microsoft AccessView GlossaryUse Access to create a.docx
Part 1 - Microsoft AccessView GlossaryUse Access to create a.docxPart 1 - Microsoft AccessView GlossaryUse Access to create a.docx
Part 1 - Microsoft AccessView GlossaryUse Access to create a.docx
 
CIS 336 (DEVRY) Entire Course NEW
CIS 336 (DEVRY) Entire Course NEWCIS 336 (DEVRY) Entire Course NEW
CIS 336 (DEVRY) Entire Course NEW
 
Ssis sql ssrs_sp_hb_li
Ssis sql ssrs_sp_hb_liSsis sql ssrs_sp_hb_li
Ssis sql ssrs_sp_hb_li
 
Plsql task
Plsql taskPlsql task
Plsql task
 
CIS 336 Education Planning--cis336.com
CIS 336 Education Planning--cis336.comCIS 336 Education Planning--cis336.com
CIS 336 Education Planning--cis336.com
 
Fahri tugas cloud1
Fahri tugas cloud1Fahri tugas cloud1
Fahri tugas cloud1
 
Murach: How to use Entity Framework EF Core
Murach: How to use Entity Framework EF  CoreMurach: How to use Entity Framework EF  Core
Murach: How to use Entity Framework EF Core
 
Rodney Matejek Portfolio
Rodney Matejek PortfolioRodney Matejek Portfolio
Rodney Matejek Portfolio
 
Premier OA Operations Advisor Specification
Premier OA Operations Advisor SpecificationPremier OA Operations Advisor Specification
Premier OA Operations Advisor Specification
 
Bi Portfolio
Bi PortfolioBi Portfolio
Bi Portfolio
 
Bilir's Business Intelligence Portfolio SSIS Project
Bilir's Business Intelligence Portfolio SSIS ProjectBilir's Business Intelligence Portfolio SSIS Project
Bilir's Business Intelligence Portfolio SSIS Project
 

Ssis First Project Word7