Wes Helton Business Intelligence Portfolio

855 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
855
On SlideShare
0
From Embeds
0
Number of Embeds
27
Actions
Shares
0
Downloads
19
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Wes Helton Business Intelligence Portfolio

  1. 1. Wes Helton PO Box 940249, Maitland, FL 32794 (321) 948-8672 [email_address] Business Intelligence Portfolio
  2. 2. Contents SQL Server Integration Services (SSIS) 3 SQL Server Analysis Services (SSAS) 11 SQL Server Reporting Services (SSRS) 17 Performance Point and SharePoint Integration 21 Key Performance Indicators (KPI) 28 Documentation 32
  3. 3. SQL Server Integration Services (SSIS) Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  4. 4. Load Job Time Sheet Files Control Flow The Load Job Time Sheet control flow has a for each loop container that loops through each file name and processes the job time sheet files. At the completion of the task it sends an email notification whether load was successful or failed and adds any invalid record files as email attachments. Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  5. 5. Load Job Time Sheet Files Data Flow The Load Job Time Sheet data flow task reads data from a CSV file and verifies the Employee Master and Job Master exists. The task also verifies the Job Master record is not closed or work date is greater than job closed date. If the record fails validation then the time sheet record is written to an invalid file. The task performs a lookup for the job time sheet to find a match. If the data is not found then a new row is added to the table. If the data is found and the data is different then it updates the existing row. The file path for the input data and invalid logs are stored in variables FolderPathData and FolderPathLog. These values are configured in the DtsConfig file to allow for changes in the environment. Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  6. 6. Load Job Time Sheet Files Script Task The Main subroutine that calls functions to increment total counters in variables and add email attachments of filenames with invalid data. The routine is wrapped in a Try Catch returning a task result of success or if there is an error then firing a error event with the error message and returning a task result of failure. <ul><li>Imports System </li></ul><ul><li>Imports System.Data </li></ul><ul><li>Imports System.Math </li></ul><ul><li>Imports System.IO </li></ul><ul><li>Imports Microsoft.SqlServer.Dts.Runtime </li></ul><ul><li>  </li></ul><ul><li>Public Class ScriptMain </li></ul><ul><li>  </li></ul><ul><li>Public Sub Main() </li></ul><ul><li>Try </li></ul><ul><li>IncrementCounter(&quot;CountProcessed&quot;, &quot;AccumProcessed&quot;) </li></ul><ul><li>IncrementCounter(&quot;CountAddNew&quot;, &quot;AccumAddNew&quot;) </li></ul><ul><li>IncrementCounter(&quot;CountChanged&quot;, &quot;AccumChanged&quot;) </li></ul><ul><li>IncrementCounter(&quot;CountInvalidEmployee&quot;, &quot;AccumInvalidEmployee&quot;) </li></ul><ul><li>IncrementCounter(&quot;CountInvalidJobMaster&quot;, &quot;AccumInvalidJobMaster&quot;) </li></ul><ul><li>IncrementCounter(&quot;CountInvalidJobClosed&quot;, &quot;AccumInvalidJobClosed&quot;) </li></ul><ul><li>IncrementCounter(&quot;AccumTimeSheets&quot;) </li></ul><ul><li>  </li></ul><ul><li>AddEmailAttachments(&quot;FolderPathLog&quot;, &quot;FileNameInvalidEmployee&quot;, &quot;CountInvalidEmployee&quot;, &quot;EmailAttachments&quot;) </li></ul><ul><li>AddEmailAttachments(&quot;FolderPathLog&quot;, &quot;FileNameInvalidJobMaster&quot;, &quot;CountInvalidJobMaster&quot;, &quot;EmailAttachments&quot;) </li></ul><ul><li>AddEmailAttachments(&quot;FolderPathLog&quot;, &quot;FileNameInvalidJobClosed&quot;, &quot;CountInvalidJobClosed&quot;, &quot;EmailAttachments&quot;) </li></ul><ul><li>Dts.TaskResult = Dts.Results.Success </li></ul><ul><li>Catch ex As Exception </li></ul><ul><li>Dts.Events.FireError(0, &quot;ETL: Main&quot;, ex.Message, &quot;&quot;, 0) </li></ul><ul><li>Dts.TaskResult = Dts.Results.Failure </li></ul><ul><li>End Try </li></ul><ul><li>End Sub </li></ul><ul><li>  </li></ul><ul><li>  </li></ul>Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  7. 7. Load Job Time Sheet Files Script Task (Cont’) The script task uses function overloading with two overload methods called IncrementCounter. The first overload method accepts one string parameter and the second overload accepts two string parameters. The first call method increments the accumulator variable by 1 and is used for counting the number of files processed. The second call method increments the accumulator variable by the counter variable and is used for counting the total number of records processed. Both methods use the VariableDispensor for variable locking. <ul><li>Private Function IncrementCounter(ByVal accumCounter As String) As Boolean </li></ul><ul><li>Dim vars As Variables </li></ul><ul><li>Try </li></ul><ul><li>Dts.VariableDispenser.LockForWrite(accumCounter) </li></ul><ul><li>Dts.VariableDispenser.GetVariables(vars) </li></ul><ul><li>vars(accumCounter).Value = CInt(vars(accumCounter).Value) + 1 </li></ul><ul><li>Catch ex As Exception </li></ul><ul><li>Dts.Events.FireError(0, &quot;ETL: IncrementCounter&quot;, ex.Message, &quot;&quot;, 0) </li></ul><ul><li>Finally </li></ul><ul><li>vars.Unlock() </li></ul><ul><li>End Try </li></ul><ul><li>End Function </li></ul><ul><li>  </li></ul><ul><li>Private Function IncrementCounter(ByVal counter As String, ByVal accumCounter As String) As Boolean </li></ul><ul><li>Dim vars As Variables </li></ul><ul><li>Try </li></ul><ul><li>Dts.VariableDispenser.LockForRead(counter) </li></ul><ul><li>Dts.VariableDispenser.LockForWrite(accumCounter) </li></ul><ul><li>Dts.VariableDispenser.GetVariables(vars) </li></ul><ul><li>vars(accumCounter).Value = CInt(vars(accumCounter).Value) + CInt(vars(counter).Value) </li></ul><ul><li>Catch ex As Exception </li></ul><ul><li>Dts.Events.FireError(0, &quot;ETL: IncrementCounter&quot;, ex.Message, &quot;&quot;, 0) </li></ul><ul><li>Finally </li></ul><ul><li>vars.Unlock() </li></ul><ul><li>End Try </li></ul><ul><li>End Function </li></ul>Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  8. 8. Load Job Time Sheet Files Script Task (Cont’) This script task function accepts four parameters: full folder path, file name, counter and email attachments. If the counter has a value greater than zero and the file name exists the file is appended to the email attachment variable. If the counter is zero and the file name exists then the file is deleted. The method uses the VariableDispensor for variable locking. <ul><li>Private Function AddEmailAttachments(ByVal folderPath As String, ByVal fileName As String, ByVal invalidCounter As String, ByVal emailAttachments As String) As Boolean </li></ul><ul><li>Dim vars As Variables </li></ul><ul><li>Try </li></ul><ul><li>Dts.VariableDispenser.LockForRead(folderPath) </li></ul><ul><li>Dts.VariableDispenser.LockForRead(fileName) </li></ul><ul><li>Dts.VariableDispenser.LockForRead(invalidCounter) </li></ul><ul><li>Dts.VariableDispenser.LockForWrite(emailAttachments) </li></ul><ul><li>Dts.VariableDispenser.GetVariables(vars) </li></ul><ul><li>Dim fileNameFullPath As String = CStr(vars(folderPath).Value) + CStr(vars(fileName).Value) </li></ul><ul><li>If CInt(vars(invalidCounter).Value) <> 0 Then </li></ul><ul><li>If File.Exists(fileNameFullPath) Then </li></ul><ul><li>vars(emailAttachments).Value = CStr(vars(emailAttachments).Value) + fileNameFullPath + &quot;|&quot; </li></ul><ul><li>End If </li></ul><ul><li>Else </li></ul><ul><li>If File.Exists(fileNameFullPath) Then </li></ul><ul><li>File.Delete(fileNameFullPath) </li></ul><ul><li>End If </li></ul><ul><li>End If </li></ul><ul><li>Catch ex As Exception </li></ul><ul><li>Dts.Events.FireError(0, &quot;ETL: AddAttachments&quot;, ex.Message, &quot;&quot;, 0) </li></ul><ul><li>Finally </li></ul><ul><li>vars.Unlock() </li></ul><ul><li>End Try </li></ul><ul><li>  End Function </li></ul><ul><li>End Class </li></ul>Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  9. 9. Load Client Master Control Flow The Load Client Master control flow task processes the County Master and Client Master data. At the completion of the task it sends an email notification whether load was successful or failed and adds any invalid record files as email attachments. Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  10. 10. Load Client Master Data Flow The Load Client Master data flow task reads data from an Excel file and verifies the County Master exists. If the record fails validation then the client master record is written to an invalid file. The task performs a lookup to find a match in the client master table. If the data is not found then a new row is added to the table. If the data is found and the data is different then it updates the existing row. The file path for the input data and invalid logs are stored in variables FolderPathData and FolderPathLog. These values are configured in the DtsConfig file to allow for changes in the environment. Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  11. 11. SQL Server Analysis Services (SSAS) Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  12. 12. All Works Cube View of the All Works cube structure including the measure groups, dimensions and logical view of the data for the cube. The list of measure groups include Job Summary, Job Overhead Summary, Job Material and Job Labor. The list of dimensions include Job Master, Overhead, Material Types, Employees and Date Calendar. Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  13. 13. Job Master Dimension View of the Job Master dimension structure including the attributes, hierarchies and logical view of the data for the dimension. In this dimension there are two hierarchies, Client Groups and Client Geography, which efficiently organizes the data and allows the user to explore the data from a high level to a more detail level. Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  14. 14. All Works Calculations View of the calculated members contained in the MDX script for the All Works cube. The list of calculated members for Overhead, Jobs, Profit and Receivables. They extend the functionality of the cube and are used for business KPIs, Reports and MDX queries. Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  15. 15. All Works KPIs View of the KPIs contained in the All Works cube. The list of KPIs include comparison measures for Open Receivables, Growth in Jobs, Overhead Percent, Profit Percent and Overhead Category Percent. KPIs are often evaluated over time and allows the business to analyze, examine and manage their predefined business goals. Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  16. 16. MDX Query -- =============================================================================== -- Author: Wes Helton -- Create date: January 29, 2009 -- Description: Calculates the total costs, the total profit, and total profit % for each individual job. -- -- Total costs = total labor cost + total material cost + total overhead cost -- Total profit = labor profit + material profit + additional labor overhead profit -- Total profit % = (total profit / (total cost + total profit)) * 100 -- =============================================================================== WITH MEMBER [TotalCosts] AS SUM( { [Total Labor Cost], [Total Material Cost], [Total Overhead] } ), FORMAT_STRING = &quot;currency“ MEMBER [TotalProfit] AS SUM( { [Total Labor Profit], [Total Material Profit], [Additional Labor Profit] } ), FORMAT_STRING = &quot;currency“ MEMBER [ProfitPct] AS IIF([TotalCosts] + [TotalProfit] = 0, 0, ( [TotalProfit] / ( [TotalCosts] + [TotalProfit] ) ) ), FORMAT_STRING = 'percent' SELECT { [TotalCosts], [TotalProfit], [ProfitPct] } ON COLUMNS, { [Job Master].[Description].Members } ON ROWS FROM [All Works] Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  17. 17. SQL Server Report Services (SSRS) Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  18. 18. Overhead Category Report The Overhead Category report uses the Overhead cube and selects the data by the quarter parameter and displays the total overhead for the quarter, total overhead for the previous quarter and percent increase of overhead from previous quarter for each category. The quarter parameter for the report defaults to the most recent quarter when the report is first displayed. If there is an increase in overhead from previous quarter the percent changed values are displayed in red. Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  19. 19. MDX Code for Overhead Category Report <ul><li>MDX Query uses the Tail and Filter Function to Get the Latest Quarter for the Default Parameter </li></ul><ul><li>WITH </li></ul><ul><li>MEMBER [Measures].[ParameterCaption] AS </li></ul><ul><li>'[Project Overhead View].[FY Qtr].CURRENTMEMBER.MEMBER_CAPTION‘ </li></ul><ul><li>MEMBER [Measures].[ParameterValue] AS </li></ul><ul><li>'[Project Overhead View].[FY Qtr].CURRENTMEMBER.UNIQUENAME' </li></ul><ul><li>MEMBER [Measures].[ParameterLevel] AS </li></ul><ul><li>'[Project Overhead View].[FY Qtr].CURRENTMEMBER.LEVEL.ORDINAL' </li></ul><ul><li>SELECT {[Measures].[ParameterCaption], [Measures].[ParameterValue], [Measures].[ParameterLevel]} ON COLUMNS, </li></ul><ul><li>Tail(Filter([Project Overhead View].[FY Qtr].Children, [Measures].[Weekly Over Head]),1) ON ROWS </li></ul><ul><li>FROM [Project Overhead Cube] </li></ul><ul><li>  MDX Query uses the PrevMember to Get the Previous Quarter to Display in the Heading </li></ul><ul><li>WITH </li></ul><ul><li>MEMBER [Measures].[ParameterCaption] AS </li></ul><ul><li>'[Project Overhead View].[FY Qtr].CURRENTMEMBER.MEMBER_CAPTION' </li></ul><ul><li>  </li></ul><ul><li>SELECT {[Measures].[ParameterCaption]} ON COLUMNS, </li></ul><ul><li>STRTOMEMBER(@ProjectOverheadViewFYQtr).PrevMember ON ROWS </li></ul><ul><li>FROM [Project Overhead Cube] </li></ul>Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  20. 20. Employee Jobs in Date Range Report The Employee Jobs in Date Range report uses the Labor cube and selects the data by the employee and week ending date range parameters and displays the employee, job description, hours worked and total labor for each job during the week. For each week ending date there are subtotals for the hours worked and total labor and at the end of the report a final total of hours worked and total labor. Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  21. 21. Performance Point Server and SharePoint Server Integration Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  22. 22. Labor Analysis Report The Labor Analysis report uses an analytical chart and analytical grid on a dashboard using Performance Point. The chart uses the Labor cube and shows the employee’s labor dollars by quarter, along with the percentage of labor for the jobs the employee worked on. The report shows each job the person worked on, the employee’s labor contribution, the total labor contribution for the job, and the employee % Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  23. 23. <ul><li>MDX Code for Labor Analysis Report </li></ul><ul><li>MDX Query for Labor Analysis Chart </li></ul><ul><li>WITH </li></ul><ul><li>MEMBER [Measures].[Total Labor All] AS </li></ul><ul><li>Sum( ( Filter([Job Master].[Description].Children, [Measures].[Total Labor] > 0 ), [Employees].[Full Name].[All]), [Measures].[Total Labor] ) </li></ul><ul><li>MEMBER [Measures].[Total Labor Employee] AS </li></ul><ul><li>( [Measures].[Total Labor],[Employees].[Full Name].CurrentMember ), FORMAT_STRING = &quot;currency“ </li></ul><ul><li>MEMBER [Measures].[Employee Labor Pct] AS </li></ul><ul><li>( [Measures].[Total Labor Employee] / [Measures].[Total Labor All] ), FORMAT_STRING = &quot;percent&quot; </li></ul><ul><li>SELECT Filter( { [Project Labor View].[FY Qtr].Children },[Measures].[Total Labor Employee] > 0 ) ON COLUMNS, </li></ul><ul><li> { [Measures].[Employee Labor Pct], [Measures].[Total Labor Employee] } ON ROWS </li></ul><ul><li>FROM [Project Labor Cube] </li></ul><ul><li>WHERE ( <<FullName>> ) </li></ul><ul><li>MDX Query for Labor Analysis Grid </li></ul><ul><li>WITH </li></ul><ul><li>MEMBER [Measures].[Total Labor Job] AS </li></ul><ul><li>( [Measures].[Total Labor],[Job Master].[Description].CurrentMember,[Employees].[Full Name].[All] ), FORMAT_STRING = &quot;currency“ </li></ul><ul><li>MEMBER [Measures].[Total Labor Employee] AS </li></ul><ul><li>( [Measures].[Total Labor],[Job Master].[Description].CurrentMember,[Employees].[Full Name].CurrentMember ), FORMAT_STRING = &quot;currency“ </li></ul><ul><li>MEMBER [Measures].[Employee Labor Pct] AS </li></ul><ul><li>[Measures].[Total Labor Employee] / [Measures].[Total Labor Job], FORMAT_STRING = &quot;percent&quot; </li></ul><ul><li>SELECT { [Measures].[Total Labor Employee],[Measures].[Total Labor Job],[Measures].[Employee Labor Pct] } ON COLUMNS, </li></ul><ul><li>NON EMPTY </li></ul><ul><li>Order(Filter( { [Job Master].[Description].Children },[Measures].[Total Labor] > 0),[Measures].[Employee Labor Pct],BDESC) ON ROWS </li></ul><ul><li>FROM [Project Labor Cube] </li></ul><ul><li>WHERE ( <<FullName>> ) </li></ul>Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  24. 24. Labor Report The Labor report uses two analytical grids on a dashboard using Performance Point. The report uses the Labor cube and shows the top 10 jobs by labor dollars and top 5 employees by labor dollar for the quarter and uses a filter to select the q uarter. Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  25. 25. Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672 MDX Code for Labor Report MDX Query for Top 10 Labor Jobs by Dollars SELECT { [Measures].[Hoursworked], [Measures].[Total Labor] } ON COLUMNS,   { TopCount( [Job Master].[Description].[Description].ALLMEMBERS, 10, [Measures].[Total Labor] ) } ON ROWS   FROM [Project Labor Cube] WHERE ( <<QuarterFilter>> ) MDX Query for Top 5 Employee by Labor Dollars SELECT { [Measures].[Hoursworked], [Measures].[Total Labor] } ON COLUMNS,   { TopCount( [Employees].[Full Name].[Full Name].ALLMEMBERS, 5, [Measures].[Total Labor] ) } ON ROWS FROM [Project Labor Cube] WHERE ( <<QuarterFilter>> )  
  26. 26. Basic Overhead by Dates The Basic Overhead by Dates report is an Excel pivot table published on a dashboard using Excel Services. The report uses the Overhead cube and shows the total overhead by category for each quarter in the year and uses a filter to select the year. Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  27. 27. Job Profitability Chart The Job Profitability Chart report is an Excel chart published on a dashboard using Excel Services. The report uses the Project Master cube and shows the profit dollars and profit percent for each quarter and uses a filter to select multiple counties. The profit percent is displayed as a line marker chart using dual-Y axis. Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  28. 28. Key Performance Indicators (KPI) Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  29. 29. KPI Total Profit Percent for All Clients Calculations: [TotalCost] = [Measures].[Total Overhead] + [Measures].[Total Material Cost] + [Measures].[Total Labor Cost] [TotalProfit] = [Measures].[Total Labor Profit] + [Measures].[Total Material Profit] + [Measures].[Additional Labor Profit] [[ProfitPercent] = Measures].[TotalProfit] / ( [Measures].[TotalCost] + [Measures].[TotalProfit] ) KPI Value: [Measures].[ProfitPercent] KPI Status: Greater than 15 % is Good , Greater than 5 % and Less than or equal to 15 % is Warning, Less than 5 % is Bad Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  30. 30. KPI Percent Increase in Overhead Category from One Quarter to the Previous Calculations: [CurrentOverhead] = ( [All Works Calendar].[Fy Year - Fy Qtr].CurrentMember, [Measures].[Weekly Over Head] ) [PreviousOverhead] = ( [All Works Calendar].[Fy Year - Fy Qtr].CurrentMember.Lag(1), [Measures].[Weekly Over Head] ) [IncreaseOverheadPercent] = ( [CurrentOverhead] - [PreviousOverhead] ) / [PreviousOverhead] KPI Value: [IncreaseOverheadPercent] KPI Status: Less than 10 % is Good, Greater than 10 % and Less than or equal to 15 % is Warning, Greater than 15 % is Bad Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  31. 31. KPIs of Overhead Trend and Open Receivables on Performance Point Scorecard The scorecard displays the KPIs for Overhead Trend, Client Financials and Construction Job Financials using the quarter selected by the filter. The Client Financials and Constructions Job Financials are Objective KPIs which rolls up KPIs for Open Receivables as Percent of Invoiced, Profit Percent and Overhead and Percent of Total Cost. Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  32. 32. Documentation Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672
  33. 33. Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672 <ul><li>SharePoint – Create a SharePoint site and configure for Reporting and Excel Services </li></ul><ul><li>Create the SharePoint Site </li></ul><ul><li>Navigate to URL: http:// {Server Name} :20838 </li></ul><ul><li>  Central Administration | Application Management | SharePoint Site Management | Create Site Collection </li></ul><ul><ul><li>  Title: Wes Helton Site Collection </li></ul></ul><ul><ul><li>  Description: Leave blank or enter description of site </li></ul></ul><ul><ul><li>  URL: http:// {Server Name} /sites/2008G4_Test_WAH </li></ul></ul><ul><ul><li>  Select a template: Document Workspace </li></ul></ul><ul><ul><li>  Primary Site Collection Administrator User name: BISQL </li></ul></ul><ul><ul><li>  Secondary Site Collection Administrator User name: </li></ul></ul><ul><ul><li>  No Quota </li></ul></ul><ul><ul><li>  Should return message &quot;Return Top Level Site Create Successfully&quot; </li></ul></ul><ul><li>   </li></ul><ul><li>Configure for Report Services </li></ul><ul><li>  Navigate to URL: http:// {Server Name} /sites/2008G4_Test_WAH </li></ul><ul><li>  Site Actions | Site Settings | Site Collection Administration | Site Collection Features </li></ul><ul><ul><li>Report Server Integration Feature: Set to Active </li></ul></ul><ul><li>   </li></ul><ul><li>Configure for Excel Services </li></ul><ul><li>  Navigate to URL: http:// {Server Name} :20838 </li></ul><ul><li>  Shared Services Administration | SharedServices1 | Excel Services Settings | Trusted File Location </li></ul><ul><li>  Click Add New Trusted File Location </li></ul><ul><ul><li>  Address: http:// {Server Name} /sites/2008G4_Test_WAH </li></ul></ul><ul><ul><li>  Location type: Windows SharePoint Services </li></ul></ul><ul><ul><li>  Trusted Children: Checked </li></ul></ul><ul><ul><li>  Description: Blank </li></ul></ul><ul><ul><li>  Allow External Data: Trusted data connection libraries and embedded </li></ul></ul><ul><ul><li>  Warn on Refresh: Uncheck </li></ul></ul><ul><ul><li>  Default for all other prompts </li></ul></ul><ul><li>  Click the OK button </li></ul><ul><li>  </li></ul><ul><li>  </li></ul>
  34. 34. Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672 AllWorks Integration Services Project documentation (partial)
  35. 35. Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672 AllWorks database schema reversed engineered using Visio
  36. 36. Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672 Logical Data Map for AllWorks Database data load in Excel spreadsheet (partial)
  37. 37. Wes Helton : Business Intelligence Portfolio : [email_address] : (321) 948-8672 AllWorks Labor Analysis Data Warehouse cube matrix
  38. 38. For more information or to setup an interview, call or email: <ul><li>Wes Helton </li></ul><ul><li>(321) 948-8672 cell </li></ul><ul><li>[email_address] </li></ul>

×