<feed xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
    <title>TFS Austin</title>
    <link rel="self" type="application/xml" href="http://bobhardister.com/Atom.aspx" />
    <subtitle type="html"> Visual Studio ALM Team Foundation Server Practice</subtitle>
    <id>http://bobhardister.com/Default.aspx</id>
    <author>
        <name>Bob Hardister</name>
        <uri>http://bobhardister.com/Default.aspx</uri>
    </author>
    <generator uri="http://subtextproject.com" version="Subtext Version 0.0.0.0">Subtext</generator>
    <updated>2012-05-16T08:25:44Z</updated>
    <entry>
        <title>Microsoft Test Manager&amp;ndash;Test Cases Not in a Test Plan</title>
        <link rel="self" type="text/html" href="http://bobhardister.com/archive/2012/05/16/microsoft-test-managerndashtest-cases-not-in-a-test-plan.aspx" />
        <id>http://bobhardister.com/archive/2012/05/16/microsoft-test-managerndashtest-cases-not-in-a-test-plan.aspx</id>
        <published>2012-05-16T08:21:13-05:00:00</published>
        <updated>2012-05-16T08:25:44Z</updated>
        <content type="html">&lt;p&gt;Visual Studio and Team Foundation Server (TFS) 2010 provided support for system testing. Test cases were added as a work item type. But test plans and suites are not work items and this greatly limits the visibility into the management of test artifacts.  For example, there is no easy way out-of-the-box to find test cases that don’t belong to a test plan.&lt;/p&gt;  &lt;p&gt;Here’s the SQL that creates a list of test cases providing the test case:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;ID&lt;/li&gt;    &lt;li&gt;Title&lt;/li&gt;    &lt;li&gt;State&lt;/li&gt;    &lt;li&gt;Assigned To&lt;/li&gt;    &lt;li&gt;Area Path&lt;/li&gt;    &lt;li&gt;Iteration Path&lt;/li&gt;    &lt;li&gt;Plan and Suite Path&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You can use the output to identify what test cases are in what plan and suite; and more to the point, which test cases are not in a plan.&lt;/p&gt;  &lt;p&gt;Using the &lt;a href="http://www.amrein.com/apps/page.asp?Q=5753" target="_blank"&gt;Amrein SQL Viewer Web Part&lt;/a&gt; you can easily throw this up as a web part on the project portal site where users can globally access, sort and filter the data.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font size="2"&gt;SELECT tco.System_Id as ID        &lt;br /&gt;,tco.System_Title as Title         &lt;br /&gt;,tco.System_State as State         &lt;br /&gt;,ISNULL(p.Name,'null') as Assigned         &lt;br /&gt;,tco.AreaPath as Area         &lt;br /&gt;,tco.IterationPath as Iteration         &lt;br /&gt;,ISNULL(s.SuitePath,'null') as 'Plan'         &lt;br /&gt;FROM Tfs_01Warehouse.dbo.vDimTestCaseOverlay tco inner join Tfs_01Warehouse.dbo.DimPerson p         &lt;br /&gt;ON tco.System_AssignedTo__PersonSK=p.PersonSK left outer join Tfs_{&lt;em&gt;collection DB&lt;/em&gt;}.dbo.tbl_SuiteEntry se ON tco.System_Id=se.TestCaseId left outer join Tfs_01Warehouse.dbo.vDimTestSuiteOverlay s         &lt;br /&gt;ON se.SuiteId=s.TestSuiteID         &lt;br /&gt;WHERE tco.TeamProjectSK={#} /* team project */        &lt;br /&gt;ORDER BY tco.System_Id DESC &lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://bobhardister.com/aggbug/149666.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://bobhardister.com/comments/149666.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://bobhardister.com/comments/commentRss/149666.aspx</wfw:commentRss>
        <trackback:ping>http://bobhardister.com/services/trackbacks/149666.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Set Lab Management (LM) Permissions for Team Projects Created before LM was Configured</title>
        <link rel="self" type="text/html" href="http://bobhardister.com/archive/2011/10/07/set-lab-management-lm-permissions-for-team-projects-created-before.aspx" />
        <id>http://bobhardister.com/archive/2011/10/07/set-lab-management-lm-permissions-for-team-projects-created-before.aspx</id>
        <published>2011-10-07T14:38:00-05:00:00</published>
        <updated>2012-05-15T09:35:08Z</updated>
        <content type="html">&lt;p&gt;What a long title! Anyway, I didn't add LM until sometime after I had setup my Team Foundation Server 2010 instance. There are 2 important realities to face when you do this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The LM permissions in the process template are not applied because LM was configured when the team project was created 
&lt;/li&gt;&lt;li&gt;There's no UI to set LM permissions (arrrgh) &lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;All you have are the permissions established by the accounts used to setup LM (i.e. TfsSetup, etc...).&lt;/p&gt;
&lt;p&gt;Here are the commands I developed to grant permissions to existing team projects after you enable LM for them.&lt;/p&gt;
&lt;p&gt;Lookup TfsLabConfig in the MSDN library to get command line details.&lt;/p&gt;&lt;pre&gt;&lt;font size="1"&gt;&lt;strong&gt;Grant&lt;/strong&gt; permissions f&lt;strong&gt;or&lt;/strong&gt; a team project group &lt;strong&gt;to&lt;/strong&gt; have environment read, start, pause &lt;strong&gt;and&lt;/strong&gt; stop permissions:

1. &lt;strong&gt;Grant&lt;/strong&gt; read access f&lt;strong&gt;or&lt;/strong&gt; all lab management objects &lt;strong&gt;in&lt;/strong&gt; the collecti&lt;strong&gt;on&lt;/strong&gt; &lt;strong&gt;to&lt;/strong&gt; all team project members:

TfsLabConfig permissions /collecti&lt;strong&gt;on&lt;/strong&gt;:{your collecti&lt;strong&gt;on&lt;/strong&gt; url}  &lt;/font&gt;&lt;/pre&gt;&lt;pre&gt;&lt;font size="1"&gt;/group:"[{team project namel}]\Team Members" /allow:Read    

2. &lt;strong&gt;Grant&lt;/strong&gt; start, pause &lt;strong&gt;and&lt;/strong&gt; stop permissions &lt;strong&gt;to&lt;/strong&gt; project administrators, team leaders &lt;strong&gt;and&lt;/strong&gt; contributors

TfsLabConfig permissions /collecti&lt;strong&gt;on&lt;/strong&gt;:{your collecti&lt;strong&gt;on&lt;/strong&gt; url}  &lt;/font&gt;&lt;/pre&gt;&lt;pre&gt;&lt;font size="1"&gt;/group:"[{team project namel}]\{project group name}" /allow:Start&lt;strong&gt;,&lt;/strong&gt;Pause&lt;strong&gt;,&lt;/strong&gt;Stop     
 
TfsLabConfig permissions /collecti&lt;strong&gt;on&lt;/strong&gt;:{your collecti&lt;strong&gt;on&lt;/strong&gt; url}  &lt;/font&gt;&lt;/pre&gt;&lt;pre&gt;&lt;font size="1"&gt;/group:"[{collecti&lt;strong&gt;on&lt;/strong&gt; name}]\{collecti&lt;strong&gt;on&lt;/strong&gt; group name}" /allow:Start&lt;strong&gt;,&lt;/strong&gt;Pause&lt;strong&gt;,&lt;/strong&gt;Stop      
&lt;/font&gt;&lt;/pre&gt;&lt;pre&gt;NOTE: you can display permissions simply by omitting the /allow parameter
&lt;/pre&gt;
&lt;hr /&gt;
syntax highlighted by &lt;a href="http://www.palfrader.org/code2html"&gt;Code2HTML&lt;/a&gt;, v. 0.9.1&lt;img src="http://bobhardister.com/aggbug/149658.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://bobhardister.com/comments/149658.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://bobhardister.com/comments/commentRss/149658.aspx</wfw:commentRss>
        <trackback:ping>http://bobhardister.com/services/trackbacks/149658.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Team Foundation Server 2010 Real-Time Burndown Charts</title>
        <link rel="self" type="text/html" href="http://bobhardister.com/archive/2011/09/30/team-foundation-server-2010-real-time-burndown-charts.aspx" />
        <id>http://bobhardister.com/archive/2011/09/30/team-foundation-server-2010-real-time-burndown-charts.aspx</id>
        <published>2011-09-30T14:36:00-05:00:00</published>
        <updated>2011-09-30T14:36:00Z</updated>
        <content type="html">&lt;p&gt;The reality is that project managers need work status in real-time. The TFS Excel reports and web parts are great, but because they are sourced from the TFS SSAS cube the information can be up to 2 hours old. &lt;/p&gt;  &lt;p&gt;The User Story goes like this...&lt;/p&gt;  &lt;p&gt;"As a project manager, team lead or team member I want to see what work is currently active and what the burndown is by team and by person is for that work so I know when work delays or time reporting failures are taking place. I need to know this 30 seconds before the stand-up meeting every day and the information must be accurate in real time." &lt;/p&gt;  &lt;p&gt;Here's how I created a burndown chart web part that's:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Real time &lt;/li&gt;    &lt;li&gt;Is from a specific/fixed start to end date &lt;/li&gt;    &lt;li&gt;Can be by team or by individual &lt;/li&gt;    &lt;li&gt;Skips weekend days&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;First I developed T-SQL to give me:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;A query listing of sprints that have active work &lt;/li&gt;    &lt;li&gt;A query listing of team members that have active work &lt;/li&gt;    &lt;li&gt;A stored procedure that list burndown chart data as of start and end dates&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Then I used the Amrein SQL Query Viewer Web Part (enterprise license for $200) to run the listing queries and display them on a TFS project portal page. As part of the query I assimilated the URL that calls the SharePoint 2010 Query String (URL) Filter web part, which I connected to the Amrein Google Chart Web Part (free). This used the chart data query to display the burndown chart from a common web part page. I also used the same query list for the chart data using the Query Viewer Web Part.   &lt;br /&gt;Here's the reports...    &lt;br /&gt;&lt;img alt="" src="http://agilescmtalk.com/sites/default/files/ActiveWork.jpg" width="468" height="336" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;cite&gt;Web part page listing the Active Work. Each Team Project needs it's own page and the queries vary by area name.&lt;/cite&gt;&lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://agilescmtalk.com/sites/default/files/Burndownchart.jpg" width="468" height="336" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;cite&gt;A burndown chart is displayed in a new browser window by clicking on the "burndown" link.&lt;/cite&gt;&lt;/p&gt;  &lt;p&gt;Here's the code. I developed the T-SQL from SQL Server Management Studio. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Sprint Active Work Report&lt;/strong&gt;&lt;/p&gt;  &lt;pre&gt; 
&lt;font size="1"&gt;&lt;strong&gt;SELECT&lt;/strong&gt;  task.IterationName &lt;strong&gt;as&lt;/strong&gt; Sprint 
  &lt;strong&gt;,&lt;/strong&gt;CONVERT&lt;strong&gt;(&lt;/strong&gt;nvarchar&lt;strong&gt;(&lt;/strong&gt;10)&lt;strong&gt;,&lt;/strong&gt;sprint.Microsoft_VSTS_Scheduling_StartDate, 101) &lt;strong&gt;as&lt;/strong&gt; Start 
  &lt;strong&gt;,&lt;/strong&gt;CONVERT&lt;strong&gt;(&lt;/strong&gt;nvarchar&lt;strong&gt;(&lt;/strong&gt;10)&lt;strong&gt;,&lt;/strong&gt;sprint.Microsoft_VSTS_Scheduling_FinishDate, 101) &lt;strong&gt;as&lt;/strong&gt; [&lt;strong&gt;End&lt;/strong&gt;] 
  &lt;strong&gt;,&lt;/strong&gt;SUM&lt;strong&gt;(&lt;/strong&gt;task.Microsoft_VSTS_Scheduling_RemainingWork) &lt;strong&gt;as&lt;/strong&gt; Remaining 
  &lt;strong&gt;,&lt;/strong&gt;SUM&lt;strong&gt;(&lt;/strong&gt;task.Microsoft_VSTS_Scheduling_CompletedWork) &lt;strong&gt;as&lt;/strong&gt; Completed 
  &lt;strong&gt;,&lt;/strong&gt;SUM&lt;strong&gt;(&lt;/strong&gt;task.Microsoft_VSTS_Scheduling_OriginalEstimate) &lt;strong&gt;as&lt;/strong&gt; Estimate 
  ,'http://[ your TFS SP server ]/sites/tfs/XXXX/SiteAssets/BurndownReport.aspx?start=' 
   + &lt;strong&gt;(&lt;/strong&gt;CONVERT&lt;strong&gt;(&lt;/strong&gt;nvarchar&lt;strong&gt;(&lt;/strong&gt;10)&lt;strong&gt;,&lt;/strong&gt;sprint.Microsoft_VSTS_Scheduling_StartDate, 101))  
   + '&amp;amp;end=' + &lt;strong&gt;(&lt;/strong&gt;CONVERT&lt;strong&gt;(&lt;/strong&gt;nvarchar&lt;strong&gt;(&lt;/strong&gt;10)&lt;strong&gt;,&lt;/strong&gt;sprint.Microsoft_VSTS_Scheduling_FinishDate, 101))  
   + '&amp;amp;iName=' + task.IterationName + '&amp;amp;aName=XXXUI-v1&amp;amp;assigned=' &lt;strong&gt;as&lt;/strong&gt; Burndown 
  &lt;strong&gt;FROM&lt;/strong&gt; Tfs_01Warehouse.dbo.CurrentWorkItemView  task, Tfs_01Warehouse.dbo.CurrentWorkItemView sprint 
  &lt;strong&gt;WHERE&lt;/strong&gt; task.ProjectPath LIKE '\XXXX%'  
  &lt;strong&gt;AND&lt;/strong&gt; task.System_WorkItemType = 'Task'  
  &lt;strong&gt;AND&lt;/strong&gt; task.AreaName = 'XXXUI-v1'  
  &lt;strong&gt;AND&lt;/strong&gt; task.System_AssignedTo &amp;gt; ' '  
  &lt;strong&gt;AND&lt;/strong&gt; task.System_State &amp;lt;&amp;gt; 'Closed' 
  &lt;strong&gt;AND&lt;/strong&gt; sprint.System_WorkItemType = 'Sprint' 
  &lt;strong&gt;AND&lt;/strong&gt; sprint.IterationPath = task.IterationPath 
  &lt;strong&gt;GROUP BY&lt;/strong&gt; task.IterationName, sprint.Microsoft_VSTS_Scheduling_StartDate, &lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="1"&gt;sprint.Microsoft_VSTS_Scheduling_FinishDate 
  HAVING &lt;strong&gt;(&lt;/strong&gt;SUM&lt;strong&gt;(&lt;/strong&gt;task.Microsoft_VSTS_Scheduling_RemainingWork) &amp;gt; 0 
    &lt;strong&gt;OR&lt;/strong&gt; SUM&lt;strong&gt;(&lt;/strong&gt;task.Microsoft_VSTS_Scheduling_CompletedWork) &lt;strong&gt;&amp;gt;&lt;/strong&gt;0) 
  &lt;strong&gt;ORDER BY&lt;/strong&gt; task.IterationName &lt;strong&gt;DESC&lt;/strong&gt; &lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;&lt;font size="1"&gt;Team Member Active Work Report&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;font size="1"&gt;&lt;strong&gt;SELECT&lt;/strong&gt;  task.System_AssignedTo &lt;strong&gt;as&lt;/strong&gt; Assigned 
  &lt;strong&gt;,&lt;/strong&gt;SUM&lt;strong&gt;(&lt;/strong&gt;task.Microsoft_VSTS_Scheduling_RemainingWork) &lt;strong&gt;as&lt;/strong&gt; Remaining 
  &lt;strong&gt;,&lt;/strong&gt;SUM&lt;strong&gt;(&lt;/strong&gt;task.Microsoft_VSTS_Scheduling_CompletedWork) &lt;strong&gt;as&lt;/strong&gt; Completed 
  &lt;strong&gt;,&lt;/strong&gt;SUM&lt;strong&gt;(&lt;/strong&gt;task.Microsoft_VSTS_Scheduling_OriginalEstimate) &lt;strong&gt;as&lt;/strong&gt; Estimate 
  &lt;strong&gt;,&lt;/strong&gt;task.IterationName &lt;strong&gt;as&lt;/strong&gt; Sprint 
  ,'http://[ your TFS SP server ]/sites/tfs/XXXX/SiteAssets/BurndownReport.aspx?start=' 
   + &lt;strong&gt;(&lt;/strong&gt;CONVERT&lt;strong&gt;(&lt;/strong&gt;nvarchar&lt;strong&gt;(&lt;/strong&gt;10)&lt;strong&gt;,&lt;/strong&gt;sprint.Microsoft_VSTS_Scheduling_StartDate, 101))  
   + '&amp;amp;end=' + &lt;strong&gt;(&lt;/strong&gt;CONVERT&lt;strong&gt;(&lt;/strong&gt;nvarchar&lt;strong&gt;(&lt;/strong&gt;10)&lt;strong&gt;,&lt;/strong&gt;sprint.Microsoft_VSTS_Scheduling_FinishDate, 101))  
   + '&amp;amp;iName=' + task.IterationName + '&amp;amp;aName=XXXUI-v1&amp;amp;assigned=' + task.System_AssignedTo &lt;strong&gt;as&lt;/strong&gt; Burndown 
  &lt;strong&gt;FROM&lt;/strong&gt; Tfs_01Warehouse.dbo.CurrentWorkItemView  task, Tfs_01Warehouse.dbo.CurrentWorkItemView sprint 
  &lt;strong&gt;WHERE&lt;/strong&gt; task.ProjectPath LIKE '\XXXX%'  
  &lt;strong&gt;AND&lt;/strong&gt; task.System_WorkItemType = 'Task'  
  &lt;strong&gt;AND&lt;/strong&gt; task.AreaName = 'XXXUI-v1'  
  &lt;strong&gt;AND&lt;/strong&gt; task.System_AssignedTo &amp;gt; ' ' 
  &lt;strong&gt;AND&lt;/strong&gt; task.System_State &amp;lt;&amp;gt; 'Closed' 
  &lt;strong&gt;AND&lt;/strong&gt; sprint.System_WorkItemType = 'Sprint' 
  &lt;strong&gt;AND&lt;/strong&gt; sprint.IterationPath = task.IterationPath 
  &lt;strong&gt;GROUP BY&lt;/strong&gt; task.System_AssignedTo, task.IterationName, &lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="1"&gt;sprint.Microsoft_VSTS_Scheduling_StartDate, sprint.Microsoft_VSTS_Scheduling_FinishDate 
  HAVING &lt;strong&gt;(&lt;/strong&gt;SUM&lt;strong&gt;(&lt;/strong&gt;task.Microsoft_VSTS_Scheduling_RemainingWork) &amp;gt; 0 
    &lt;strong&gt;OR&lt;/strong&gt; SUM&lt;strong&gt;(&lt;/strong&gt;task.Microsoft_VSTS_Scheduling_CompletedWork) &lt;strong&gt;&amp;gt;&lt;/strong&gt;0) 
  &lt;strong&gt;ORDER BY&lt;/strong&gt; task.IterationName &lt;strong&gt;DESC&lt;/strong&gt;, task.System_AssignedTo &lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;&lt;font size="1"&gt;Burndown Stored Procedure&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;font size="1"&gt;SP Call &lt;strong&gt;to&lt;/strong&gt; SharePoint 2010 Query String &lt;strong&gt;(&lt;/strong&gt;URL) Filter web part
-----------------------------------------------------------------------
dbo.WorkItemHistoryView_Burndown;start={start};&lt;strong&gt;end&lt;/strong&gt;={&lt;strong&gt;end&lt;/strong&gt;};iName={iName};aName={aName};assigned={assigned}
dbo.WorkItemHistoryView_BurndownData;start={start};&lt;strong&gt;end&lt;/strong&gt;={&lt;strong&gt;end&lt;/strong&gt;};iName={iName};aName={aName};assigned={assigned}
  
SP Code
----------
USE [Tfs_01Warehouse]
GO
/****** Object:  StoredProcedure [dbo].[WorkItemHistoryView_Burndown]    &lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="1"&gt;Script Date: 09/28/2011 09:49:53 ******/
IF  EXISTS &lt;strong&gt;(&lt;/strong&gt;&lt;strong&gt;SELECT&lt;/strong&gt; * &lt;strong&gt;FROM&lt;/strong&gt; sys.objects &lt;strong&gt;WHERE&lt;/strong&gt; object_id = &lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font size="1"&gt;OBJECT_ID&lt;strong&gt;(&lt;/strong&gt;N'[dbo].[WorkItemHistoryView_Burndown]') &lt;strong&gt;AND&lt;/strong&gt; type &lt;strong&gt;in&lt;/strong&gt; &lt;strong&gt;(&lt;/strong&gt;N'P', N'PC'))
DROP PROCEDURE [dbo].[WorkItemHistoryView_Burndown]
GO&lt;/font&gt;
&lt;font size="1"&gt; 
&lt;strong&gt;SET&lt;/strong&gt; ANSI_NULLS &lt;strong&gt;ON&lt;/strong&gt;
GO
&lt;strong&gt;SET&lt;/strong&gt; QUOTED_IDENTIFIER &lt;strong&gt;ON&lt;/strong&gt;
GO
-- =============================================
-- Author:  Bob Hardister
-- Create date: 9/27/2011
-- Description: Produces a burndown table
-- =============================================
&lt;strong&gt;CREATE&lt;/strong&gt; PROCEDURE dbo.WorkItemHistoryView_Burndown 
 @i   int    = 0, 
 @Start  &lt;strong&gt;date&lt;/strong&gt;   = '9/16/2011',
 @&lt;strong&gt;End&lt;/strong&gt;  &lt;strong&gt;date&lt;/strong&gt;   = '10/6/2011',
 @dayRange int    = 0,
 @iName  nvarchar&lt;strong&gt;(&lt;/strong&gt;256) = 'Sprint 03',
 @aName  nvarchar&lt;strong&gt;(&lt;/strong&gt;256) = 'XXXUI-v1',
 @assigned nvarchar&lt;strong&gt;(&lt;/strong&gt;256) = '',
 @currentDay &lt;strong&gt;date&lt;/strong&gt;   = '01/01/0001'&lt;/font&gt;
&lt;font size="1"&gt;&lt;strong&gt;AS&lt;/strong&gt;
&lt;strong&gt;BEGIN&lt;/strong&gt;
 DECLARE @Burndown &lt;strong&gt;TABLE&lt;/strong&gt; ([&lt;strong&gt;Date&lt;/strong&gt;] &lt;strong&gt;date&lt;/strong&gt;, Remaining float, Completed float)
 &lt;strong&gt;SET&lt;/strong&gt; @dayRange = DATEDIFF&lt;strong&gt;(&lt;/strong&gt;DAY, @Start, @&lt;strong&gt;End&lt;/strong&gt;)
    WHILE (@i &amp;lt;= @dayRange) 
 &lt;strong&gt;BEGIN&lt;/strong&gt;
  &lt;strong&gt;SET&lt;/strong&gt; NOCOUNT &lt;strong&gt;ON&lt;/strong&gt;
  IF &lt;strong&gt;(&lt;/strong&gt;DATENAME&lt;strong&gt;(&lt;/strong&gt;WEEKDAY, @Start) &amp;lt;&amp;gt; 'Saturday' &lt;strong&gt;AND&lt;/strong&gt; DATENAME&lt;strong&gt;(&lt;/strong&gt;WEEKDAY, @Start) &amp;lt;&amp;gt; 'Sunday')
   &lt;strong&gt;BEGIN&lt;/strong&gt;
    &lt;strong&gt;INSERT&lt;/strong&gt; &lt;strong&gt;INTO&lt;/strong&gt; @Burndown ([&lt;strong&gt;Date&lt;/strong&gt;], Remaining, Completed) 
    &lt;strong&gt;SELECT&lt;/strong&gt; @Start &lt;strong&gt;as&lt;/strong&gt; Dte
     &lt;strong&gt;,&lt;/strong&gt;SUM&lt;strong&gt;(&lt;/strong&gt;Microsoft_VSTS_Scheduling_RemainingWork) &lt;strong&gt;as&lt;/strong&gt; Rem 
     &lt;strong&gt;,&lt;/strong&gt;SUM&lt;strong&gt;(&lt;/strong&gt;Microsoft_VSTS_Scheduling_CompletedWork) &lt;strong&gt;as&lt;/strong&gt; Act 
     &lt;strong&gt;FROM&lt;/strong&gt; Tfs_01Warehouse.dbo.WorkItemHistoryView 
     &lt;strong&gt;WHERE&lt;/strong&gt; ProjectPath LIKE '\XXXX%' 
     &lt;strong&gt;AND&lt;/strong&gt; System_WorkItemType = 'Task' 
     &lt;strong&gt;AND&lt;/strong&gt; &lt;strong&gt;(&lt;/strong&gt;DateSK &amp;lt;= @Start &lt;strong&gt;AND&lt;/strong&gt; DateSK &amp;gt;= @currentDay)
     &lt;strong&gt;AND&lt;/strong&gt; IterationName = @iName 
     &lt;strong&gt;AND&lt;/strong&gt; AreaName = @aName 
     &lt;strong&gt;AND&lt;/strong&gt; System_AssignedTo LIKE @assigned + '%' 
   &lt;strong&gt;END&lt;/strong&gt; 
  &lt;strong&gt;SET&lt;/strong&gt; @Start = DATEADD&lt;strong&gt;(&lt;/strong&gt;day, 1, @Start) 
  &lt;strong&gt;SET&lt;/strong&gt; @i = @i + 1 
  IF @Start &amp;gt;= GETDATE() &lt;strong&gt;SET&lt;/strong&gt; @currentDay = @&lt;strong&gt;End&lt;/strong&gt; 
 &lt;strong&gt;END&lt;/strong&gt; 
 
&lt;strong&gt;SELECT&lt;/strong&gt; * &lt;strong&gt;FROM&lt;/strong&gt; @Burndown 
&lt;strong&gt;END&lt;/strong&gt;
GO
&lt;strong&gt;GRANT&lt;/strong&gt; Execute &lt;strong&gt;ON&lt;/strong&gt; dbo.WorkItemHistoryView_Burndown &lt;strong&gt;TO&lt;/strong&gt; TfsReports&lt;/font&gt; &lt;/pre&gt;

&lt;hr /&gt;syntax highlighted by &lt;a href="http://www.palfrader.org/code2html"&gt;Code2HTML&lt;/a&gt;, v. 0.9.1 &lt;img src="http://bobhardister.com/aggbug/149657.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://bobhardister.com/comments/149657.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://bobhardister.com/comments/commentRss/149657.aspx</wfw:commentRss>
        <trackback:ping>http://bobhardister.com/services/trackbacks/149657.aspx</trackback:ping>
    </entry>
    <entry>
        <title>TFS 2010 Web Part for Data Warehouse Views</title>
        <link rel="self" type="text/html" href="http://bobhardister.com/archive/2011/09/09/tfs-2010-web-part-for-data-warehouse-views.aspx" />
        <id>http://bobhardister.com/archive/2011/09/09/tfs-2010-web-part-for-data-warehouse-views.aspx</id>
        <published>2011-09-09T14:33:00-05:00:00</published>
        <updated>2011-09-09T14:33:00Z</updated>
        <content type="html">&lt;p&gt;Team Foundation Server 2010 includes &lt;a href="http://msdn.microsoft.com/en-us/library/bb649552.aspx"&gt;support&lt;/a&gt; for Data Warehouse and Analysis Cube Views. &lt;/p&gt;  &lt;p&gt;The company, Amrein Engineering, sells a &lt;a href="http://www.amrein.com/apps/page.asp?Q=5753"&gt;web part&lt;/a&gt; that uses SQL statements to source data.&lt;/p&gt;  &lt;p&gt;You can implement this web part very easily to do some very nice reporting of TFS data. &lt;/p&gt;  &lt;p&gt;For example, you cannot use "time" as a query criteria in Team Explorer. You can only use the date. That is, you can ask for all work items changed by Joe Black on 9/11/2011. But you cannot ask for changes between 3 and 4 PM on that date. However, you can qualify SQL queries by date and time. &lt;/p&gt;  &lt;p&gt;Using the web part from Amrein I was able to:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Develop a SQL query for work items changed between two timestamps &lt;/li&gt;    &lt;li&gt;Implement the query in the web part to display on the TFS team portal &lt;/li&gt;    &lt;li&gt;Add filters and formating to the web part&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;I was able to display the work item ID as a hyperlink that brought up the work item in the browser or in the Team Web Access editor.&lt;/p&gt;  &lt;p&gt;Here's a couple examples of SQL queries against the TFS_Warehouse DB, dbo.WorkItemHistoryView view. Note: using ASOF queries with this view requires the use of the "System_RevisedDate &amp;gt; [ASOF Date]" and the "RecordCount &amp;gt; 0" conditions because of compensating records. "Whenever a work item is updated, a pair of records is added to the warehouse. The first record negates the previous record. This makes querying faster." See book &lt;i&gt;'Professional Team Foundation Server 2010'&lt;/i&gt;&lt;/p&gt;  &lt;pre&gt;&lt;font size="1"&gt;/****** WORK ITEMS CHANGES IN THE PAST 24 HOURS   ******/
&lt;strong&gt;SELECT&lt;/strong&gt;	 [System_ChangedDate] &lt;strong&gt;as&lt;/strong&gt; Changed
		,[System_ChangedBy] &lt;strong&gt;as&lt;/strong&gt; ChangedBy
		,[System_WorkItemType] &lt;strong&gt;as&lt;/strong&gt; WIT		
		,[Microsoft_VSTS_Common_StackRank] &lt;strong&gt;as&lt;/strong&gt; Seq
		,[System_Id] &lt;strong&gt;as&lt;/strong&gt; ID
		,[System_Title] &lt;strong&gt;as&lt;/strong&gt; Title
		,[System_State] &lt;strong&gt;as&lt;/strong&gt; Ste
		,[System_Reas&lt;strong&gt;on&lt;/strong&gt;] &lt;strong&gt;as&lt;/strong&gt; Reas&lt;strong&gt;on&lt;/strong&gt;
		,[System_AssignedTo] &lt;strong&gt;as&lt;/strong&gt; Assigned		
		,[Microsoft_VSTS_Scheduling_StoryPoints] &lt;strong&gt;as&lt;/strong&gt; Points
		,[Microsoft_VSTS_Build_FoundIn] &lt;strong&gt;as&lt;/strong&gt; FoundIn
		,[Microsoft_VSTS_Build_IntegrationBuild] &lt;strong&gt;as&lt;/strong&gt; FixedIn
		,[Microsoft_VSTS_Common_Priority] &lt;strong&gt;as&lt;/strong&gt; Pri
		,[Microsoft_VSTS_Common_Severity] &lt;strong&gt;as&lt;/strong&gt; Sev
		,[Microsoft_VSTS_Scheduling_OriginalEstimate] &lt;strong&gt;as&lt;/strong&gt; Est
		,[Microsoft_VSTS_Scheduling_RemainingWork] &lt;strong&gt;as&lt;/strong&gt; Rem
		,[Microsoft_VSTS_Scheduling_CompletedWork] &lt;strong&gt;as&lt;/strong&gt; Act
		,[IterationPath] &lt;strong&gt;as&lt;/strong&gt; iPath
		,[AreaPath] &lt;strong&gt;as&lt;/strong&gt; aPath
  &lt;strong&gt;FROM&lt;/strong&gt; [Tfs_01Warehouse].[dbo].[WorkItemHistoryView]
  &lt;strong&gt;WHERE&lt;/strong&gt; [AreaPath] LIKE '\Cw%'
  &lt;strong&gt;AND&lt;/strong&gt;	([System_ChangedDate] BETWEEN DATEADD([DAY], -1, GETDATE()) &lt;strong&gt;AND&lt;/strong&gt; GETDATE())
  &lt;strong&gt;AND&lt;/strong&gt;	RecordCount &amp;gt; 0
  &lt;strong&gt;AND&lt;/strong&gt;	[System_ChangedBy] &amp;lt;&amp;gt; 'Build Admin'
  &lt;strong&gt;ORDER BY&lt;/strong&gt; 	[System_ChangedDate] &lt;strong&gt;DESC&lt;/strong&gt;
&lt;/font&gt;&lt;p&gt;
&lt;font size="1"&gt;/****** WORK ITEMS CHANGED HISTORY  ******/
&lt;strong&gt;SELECT&lt;/strong&gt; System_Id &lt;strong&gt;as&lt;/strong&gt; ID
		&lt;strong&gt;,&lt;/strong&gt;max&lt;strong&gt;(&lt;/strong&gt;System_WorkItemType) &lt;strong&gt;as&lt;/strong&gt; WIT
		&lt;strong&gt;,&lt;/strong&gt;max&lt;strong&gt;(&lt;/strong&gt;System_Title) &lt;strong&gt;as&lt;/strong&gt; Title
		&lt;strong&gt;,&lt;/strong&gt;max&lt;strong&gt;(&lt;/strong&gt;System_ChangedBy) &lt;strong&gt;as&lt;/strong&gt; ChangedBy
		&lt;strong&gt;,&lt;/strong&gt;max&lt;strong&gt;(&lt;/strong&gt;System_ChangedDate) &lt;strong&gt;as&lt;/strong&gt; Changed		
		&lt;strong&gt;,&lt;/strong&gt;max&lt;strong&gt;(&lt;/strong&gt;AreaPath) &lt;strong&gt;as&lt;/strong&gt; aPath
  &lt;strong&gt;FROM&lt;/strong&gt; [Tfs_01Warehouse].[dbo].[WorkItemHistoryView]
  &lt;strong&gt;WHERE&lt;/strong&gt; [AreaPath] LIKE '\Cw%'
  &lt;strong&gt;AND&lt;/strong&gt;	[System_ChangedBy] = 'Joe Black' 
  &lt;strong&gt;AND&lt;/strong&gt;  ([System_ChangedDate] BETWEEN '9/1/2011 15:00' &lt;strong&gt;AND&lt;/strong&gt; '9/1/2011 16:00')
  &lt;strong&gt;AND&lt;/strong&gt;	[System_RevisedDate] &amp;gt;= '9/1/2011 16:00'
  &lt;strong&gt;AND&lt;/strong&gt;	RecordCount &amp;gt; 0
  &lt;strong&gt;GROUP BY&lt;/strong&gt; [System_Id]
  &lt;strong&gt;ORDER BY&lt;/strong&gt; [System_Id]
&lt;/font&gt;&lt;/p&gt;&lt;/pre&gt;

&lt;hr /&gt;syntax highlighted by &lt;a href="http://www.palfrader.org/code2html"&gt;Code2HTML&lt;/a&gt;, v. 0.9.1

&lt;p&gt;Now using the following URL syntax I was able to format the ID column in the web part as a link to the work item: &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Display work item in browser: &lt;/strong&gt;http://[app server name]:[port number]/tfs/[collection name]/WorkItemTracking/Workitem.aspx?artifactMoniker=[work item id number] &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;Display work item in Team Web Access editor: &lt;/strong&gt;http://[app server name]:[port number]/tfs/[collection name/web/wi.aspx?id=[work item id number] &lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://bobhardister.com/aggbug/149656.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://bobhardister.com/comments/149656.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://bobhardister.com/comments/commentRss/149656.aspx</wfw:commentRss>
        <trackback:ping>http://bobhardister.com/services/trackbacks/149656.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Publish TFS 2010 Last Work Item History Comment to Excel</title>
        <link rel="self" type="text/html" href="http://bobhardister.com/archive/2011/09/06/publish-tfs-2010-last-work-item-history-comment-to-excel.aspx" />
        <id>http://bobhardister.com/archive/2011/09/06/publish-tfs-2010-last-work-item-history-comment-to-excel.aspx</id>
        <published>2011-09-06T14:31:00-05:00:00</published>
        <updated>2011-09-06T14:31:00Z</updated>
        <content type="html">&lt;p&gt;Team Foundation Server 2010 does not support publishing history data to Excel. However, there is an easy work around to this problem.&lt;/p&gt;  &lt;p&gt;However, this is limited to the last recorded History comment for a work item. This is what displays in the query return set when the History column is included.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Create a query with History as a column &lt;/li&gt;    &lt;li&gt;Run the query &lt;/li&gt;    &lt;li&gt;Click the pulldown on the "Open in Microsoft Office" button &lt;/li&gt;    &lt;li&gt;Select "Send Query to Microsoft Outlook"&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;An email pops up with the data in a table that includes (unlike Excel) the last history comment for each work item. Simply copy the table to Excel and format.&lt;/p&gt;  &lt;p&gt;It's not a comprehesive record, but it's very nice as a CCB meeting record of changes just made.&lt;/p&gt;  &lt;p&gt;You can also use OneNote for this.&lt;/p&gt;&lt;img src="http://bobhardister.com/aggbug/149655.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://bobhardister.com/comments/149655.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://bobhardister.com/comments/commentRss/149655.aspx</wfw:commentRss>
        <trackback:ping>http://bobhardister.com/services/trackbacks/149655.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Microsoft Test Manager (MTM) fails to connect when executing test run</title>
        <link rel="self" type="text/html" href="http://bobhardister.com/archive/2011/08/24/microsoft-test-manager-mtm-fails-to-connect-when-executing-test.aspx" />
        <id>http://bobhardister.com/archive/2011/08/24/microsoft-test-manager-mtm-fails-to-connect-when-executing-test.aspx</id>
        <published>2011-08-24T14:30:00-05:00:00</published>
        <updated>2011-08-24T14:30:00Z</updated>
        <content type="html">&lt;p&gt;If you are logged on to the local machine (not the domain) you will be prompted to enter network credentials when you open MTM to connect to TFS. However, if you receive a connection error when you attempt to run a test case, you may want to try the following work around.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Go to the Test Plan &lt;/li&gt;    &lt;li&gt;Select properties &lt;/li&gt;    &lt;li&gt;Select you Test settings under Manual Runs &lt;/li&gt;    &lt;li&gt;Uncheck the ASP.NET Client Proxy collection &lt;/li&gt;    &lt;li&gt;Save and use that Test Settings Configuration to run a test case &lt;/li&gt; &lt;/ol&gt;&lt;img src="http://bobhardister.com/aggbug/149654.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://bobhardister.com/comments/149654.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://bobhardister.com/comments/commentRss/149654.aspx</wfw:commentRss>
        <trackback:ping>http://bobhardister.com/services/trackbacks/149654.aspx</trackback:ping>
    </entry>
    <entry>
        <title>TFS 2010 Agile Iteration Burndown Chart Error - Could not connect to server...: ensure SQL Server Analysis Services is running</title>
        <link rel="self" type="text/html" href="http://bobhardister.com/archive/2011/08/08/tfs-2010-agile-iteration-burndown-chart-error---could-not.aspx" />
        <id>http://bobhardister.com/archive/2011/08/08/tfs-2010-agile-iteration-burndown-chart-error---could-not.aspx</id>
        <published>2011-08-08T14:30:00-05:00:00</published>
        <updated>2011-08-08T14:30:00Z</updated>
        <content type="html">&lt;p&gt;It seems there are many issues that can cause this error. But in my situation it turned out to be a permissions issue. &lt;/p&gt;  &lt;p&gt;It appears that other TFS 2010 reports use the service account (i.e. TFSReports) to access SSAS. However, it seems that the burndown chart in the TFS MSF v5.0 Agile Iteration Backlog Excel file passes the current user credentials to SSAS to get chart data. As only the TFSReports account had access, the burndown chart request was denied resultign in the error noted above.&lt;/p&gt;  &lt;p&gt;To fix this I:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Opened SQL Svr Mgmt Studio on the data tier &lt;/li&gt;    &lt;li&gt;Connected to Analysis Services &lt;/li&gt;    &lt;li&gt;Expaned the TFS Analysis DB &lt;/li&gt;    &lt;li&gt;Expanded Roles &lt;/li&gt;    &lt;li&gt;Right-clicked on TfsWarehouseDataReader and selected Properties &lt;/li&gt;    &lt;li&gt;Clicked on Membership &lt;/li&gt;    &lt;li&gt;Add the group (or users) needed&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;After that I no longer got the error and was able to pull data into the burndaown chart.&lt;/p&gt;&lt;img src="http://bobhardister.com/aggbug/149653.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://bobhardister.com/comments/149653.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://bobhardister.com/comments/commentRss/149653.aspx</wfw:commentRss>
        <trackback:ping>http://bobhardister.com/services/trackbacks/149653.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Microsoft Visual Studio ALM Rangers Sabbatical for Coded UI Word Plug-in</title>
        <link rel="self" type="text/html" href="http://bobhardister.com/archive/2010/07/29/microsoft-visual-studio-alm-rangers-sabbatical-for-coded-ui-word.aspx" />
        <id>http://bobhardister.com/archive/2010/07/29/microsoft-visual-studio-alm-rangers-sabbatical-for-coded-ui-word.aspx</id>
        <published>2010-07-29T14:28:00-05:00:00</published>
        <updated>2012-05-15T09:23:25Z</updated>
        <content type="html">&lt;p&gt;Earlier this Summer I had the privilege of working for 16 days onsite at the Microsoft offices in Redmond and Vancouver. The assignment, a "Rangers Sabbatical," is part of the Microsoft Visual Studio ALM Rangers program. It provided me the opportunity to develop a Microsoft Word "Technology Provider" or plug-in for the Visual Studio 2010 ALM Coded UI (CUI) feature. Being onsite I was able to work closely with Microsoft Ranger and Program staff. &lt;/p&gt;  &lt;p&gt;The Sabbatical was a great success both professionally and personally. I was the developer on the team. We had a prototype of a Excel plug-in for CUI. I used that as a starting point for the creation of a Word plug-in. The approach involved using the CUI extension classes , a Visual Studio Word 2010 (VSTO) Add-in project and the Microsoft 2010 Word API to enable document specific UI recording, playback and assertions to be developed using the Coded UI Test Builder. I had done some preliminary investigations before going onsite, but the level of effort to actually make this work was still uncertain.&lt;/p&gt;  &lt;p&gt;This made for early mornings and late evenings. However, the hard work was quite enjoyable. My accommodations in Redmond were less than 5 minutes’ walk from the office. Bijan Javidi and Chuck Sterling were extremely gracious hosts. They provided me a pleasant work environment and introduced me to many of the Visual Studio program team members. Chuck included me in a test drive of Dev11, and had me over for dinner where I got to meet and talk with one of my all time TFS hero's, Grant Holiday.&lt;/p&gt;  &lt;p&gt;As it turned out, the planning, support and hard work paid off. With the help of two key team members, Andrew Whitechapel, VSTO guru, and Mathew Aniyan, the CUI program manager, I was able to get the plug-in working. The plug-in was put to immediate use to create CUI tests for the Rangers Word4TFS product. I have been able to take the knowledge and skills gained during the Sabbatical back to my employer for use and for developing additional plug-ins as needed.&lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://agilescmtalk.com/sites/default/files/CUI Word Plugin.png" width="468" height="336" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;cite&gt;Word CUI plugin document record, playback and selection properties &lt;/cite&gt;&lt;/p&gt;  &lt;p&gt;I wrapped up the Sabbatical by developing training material for the plug-in and leading a training session at the Microsoft Vancouver offices. While in Vancouver I was treated to the special care and hospitality of Willy-Peter Schaub, the Rangers Solution Architect. Willy set me up in the Microsoft offices in Vancouver and showed me around a bit. I could not been better welcomed and treated as a guest.&lt;/p&gt;  &lt;p&gt;The Rangers Sabbatical program is a great opportunity to deepen skills and become better equipped as a Ranger and Visual Studio ALM professional. I want to express my sincerest thanks to Bijan, Willy and Chuck for giving me this opportunity and for making it a great experience for me. &lt;/p&gt;&lt;img src="http://bobhardister.com/aggbug/149652.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://bobhardister.com/comments/149652.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://bobhardister.com/comments/commentRss/149652.aspx</wfw:commentRss>
        <trackback:ping>http://bobhardister.com/services/trackbacks/149652.aspx</trackback:ping>
    </entry>
    <entry>
        <title>What Happens to TFS when an Active Directory account gets deleted?</title>
        <link rel="self" type="text/html" href="http://bobhardister.com/archive/2011/06/22/what-happens-to-tfs-when-an-active-directory-account-gets.aspx" />
        <id>http://bobhardister.com/archive/2011/06/22/what-happens-to-tfs-when-an-active-directory-account-gets.aspx</id>
        <published>2011-06-22T14:25:00-05:00:00</published>
        <updated>2012-05-15T09:20:21Z</updated>
        <content type="html">&lt;p&gt;There are at least three scenarios that deserve mention:&lt;/p&gt;  &lt;p&gt;1. Existing data   &lt;br /&gt;It doesn't cause an issue. TFS caches the name-&amp;gt;SID mapping in the database. If the accounts go away, existing work items/source control history aren't changed.&lt;/p&gt;  &lt;p&gt;2. Checked out files   &lt;br /&gt;Bottom-line: we need to ensure that there are no files checked out for an account that is to be deleted. You could run into trouble if files are checked out under an account that is deleted and a new account with the exact same name (but different SID) is created before an admin forces an "undo checkout" on those files. What you got was files that were permanently checked out.&lt;/p&gt;  &lt;p&gt;3. Migration to TFS   &lt;br /&gt;When the TFS Integration Platform tools are used to migrate source code to TFS and the adaptor cannot find the account ID in the source record, the account running the migration is used as the “default” account. So for example, when migrating the change records made by BGONE from Subversion to TFS, the change records are tagged in TFS with TFSTOOLS because my account was used to run the migration.&lt;/p&gt;&lt;img src="http://bobhardister.com/aggbug/149651.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://bobhardister.com/comments/149651.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://bobhardister.com/comments/commentRss/149651.aspx</wfw:commentRss>
        <trackback:ping>http://bobhardister.com/services/trackbacks/149651.aspx</trackback:ping>
    </entry>
    <entry>
        <title>SQL Server 2008 R2 Install Failure and Resolution</title>
        <link rel="self" type="text/html" href="http://bobhardister.com/archive/2011/06/20/sql-server-2008-r2-install-failure-and-resolution.aspx" />
        <id>http://bobhardister.com/archive/2011/06/20/sql-server-2008-r2-install-failure-and-resolution.aspx</id>
        <published>2011-06-20T14:23:00-05:00:00</published>
        <updated>2011-06-20T14:23:00Z</updated>
        <content type="html">&lt;p&gt;I was attempting to install SQL Server 2008 R2 on a sever with Windows Server 2008 R2 SP1. The server had a C:, E: and F: drives for the OS/programs, user DB and TempDB/Logs respectively. With the help of Microsoft support I was able to resolve the problem.&lt;/p&gt; &lt;dl&gt;&lt;dt&gt;&lt;strong&gt;PROBLEM&lt;/strong&gt;      &lt;br /&gt;The first error message was &lt;strong&gt;"The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. Error code: 2337"&lt;/strong&gt;&lt;/dt&gt;&lt;/dl&gt;&lt;dl&gt;&lt;dt&gt;The second error that popped-up after getting past the first one was &lt;strong&gt;"The following error has occurred: Could not find the database engine startup handle."&lt;/strong&gt;&lt;/dt&gt;&lt;/dl&gt;  &lt;p&gt;&lt;strong&gt;RESOLUTION&lt;/strong&gt;    &lt;br /&gt;I did a number of things including downloading the media again from TechNet and and copying the setup.rll file from the media location to its installed location. But I believe the effective steps were:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Right-click on setup and select "Run as administrator" to initiate the install &lt;/li&gt;    &lt;li&gt;Verify that you do not have corrupt media. In my case the use of Winzip to extract the setup files to a local directory was causing the corruption problem. I used Magic Disc to extract the files that were able to execute the setup without any problem.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;strong&gt;DEBUG PROCESS&lt;/strong&gt;    &lt;br /&gt;The steps to debugg the problems were:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;SQL Server setup was initially failing with the below error.&lt;/li&gt; &lt;/ul&gt; &lt;dl&gt;&lt;dt&gt;&lt;/dt&gt;&lt;dd&gt;&lt;cite&gt;The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. Error code: 2337&lt;/cite&gt;&lt;/dd&gt;&lt;/dl&gt;  &lt;ul&gt;   &lt;li&gt;Later you have downloaded the setup files again started the installation. &lt;/li&gt;    &lt;li&gt;Setup passed the previous error but failed again with the below error.&lt;/li&gt; &lt;/ul&gt; &lt;dl&gt;&lt;dt&gt;&lt;/dt&gt;&lt;dd&gt;&lt;cite&gt;The following error has occurred: Could not find the database engine startup handle&lt;/cite&gt;&lt;/dd&gt;&lt;/dl&gt;  &lt;ul&gt;   &lt;li&gt;Tried to run the services manually but it failed without generating any error log or dump files. &lt;/li&gt;    &lt;li&gt;Tried to run the services from the console and it failed with an error to launch the program. &lt;/li&gt;    &lt;li&gt;Downloaded and installed DebugDiag and tried to collect the dump for the sqlservr.exe process. &lt;/li&gt;    &lt;li&gt;Dump files are not generated from the debugdiag. &lt;/li&gt;    &lt;li&gt;Downloaded Dependency walker and found the below when tried to run the services.&lt;/li&gt; &lt;/ul&gt; &lt;dl&gt;&lt;dt&gt;&lt;/dt&gt;&lt;dd&gt;&lt;cite&gt;&lt;font size="1"&gt;LoadLibraryW("C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\Resources\1033\&lt;strong&gt;sqlevn70.rll&lt;/strong&gt;") returned NULL. Error: %1 is not a valid Win32 application (193).          &lt;br /&gt;LoadLibraryW("C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\Resources\1033\&lt;strong&gt;sqlevn70.rll&lt;/strong&gt;") called from "SQLSERVR.EXE" at address 0x00000000007CA120.          &lt;br /&gt;First chance exception 0xC00000FD (Stack Overflow) occurred in "NTDLL.DLL" at address 0x0000000077853560.          &lt;br /&gt;LoadLibraryW("C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\Resources\1033\sqlevn70.rll") caused an exception.          &lt;br /&gt;First chance exception 0xE06D7363 (Microsoft C++ Exception) occurred in "KERNELBASE.DLL" at address 0x000007FEFD86A49D.          &lt;br /&gt;First chance exception 0xC0000005 (Access Violation) occurred in "MSVCR80.DLL" at address 0x000000007432A8B5.          &lt;br /&gt;Second chance exception 0xC0000005 (Access Violation) occurred in "MSVCR80.DLL" at address 0x000000007432A8B5.          &lt;br /&gt;Exited "SQLSERVR.EXE" (process 0xC64) with code -1073741819 (0xC0000005).          &lt;br /&gt;&lt;/font&gt;&lt;/cite&gt;&lt;/dd&gt;&lt;/dl&gt;  &lt;ul&gt;   &lt;li&gt;Replaced the sqlenv70.dll from a good installation and the services were starting but failing with a different error. &lt;/li&gt;    &lt;li&gt;The model database location was a weird location than the default install folder. &lt;/li&gt;    &lt;li&gt;It looks like a corrupted media again. &lt;/li&gt;    &lt;li&gt;Suggested to download the setup again and extract using Magic ISO. &lt;/li&gt;    &lt;li&gt;Install completed successfully after using Magic ISO to extract the setup files.&lt;/li&gt; &lt;/ul&gt;&lt;img src="http://bobhardister.com/aggbug/149650.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://bobhardister.com/comments/149650.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://bobhardister.com/comments/commentRss/149650.aspx</wfw:commentRss>
        <trackback:ping>http://bobhardister.com/services/trackbacks/149650.aspx</trackback:ping>
    </entry>
</feed>
