Is "TimesheetUser" necessary ?

May 15, 2007 at 1:42 PM
Edited May 15, 2007 at 2:51 PM
I had a look to file "DatabaseSetup.sql".
I found these sql statements, at the bottom:
USE TfsWorkItemTracking
GRANT SELECT ON dbo.WorkItemsLatest TO TimesheetUser
What I mean is:
TFS has several webservices; is "TimesheetUser" really necessary ?

I would like to have a look to TFS Timesheet, but I've only one TFS in my office.
I would like not to "break" it ;)

thank you very much
ps: sorry for my english, I hope I made myself clear.

May 21, 2007 at 5:45 PM

To answer your question, no, TimesheetUser isn't strictly necessary, but was added for convenience's sake. Since the timesheet displays the name of the work item to which time was allocated, it needs to be able to get that data from the main TFS databases, specifically the TfsWorkItemTracking database. The easiest way to do this is to join against the WorkItemsLatest table when getting the timesheet entries instead of getting only the work item IDs and timesheet hours from the database and then having to call one of the TFS web services from the application layer to get the title for each work item. But, if you don't want to create any new users, it should be pretty easy to modify the uspRSEntriesForWeek and uspRSProblems to return only the work item IDs and then to modify timesheet.aspx.cs to use the TFS client APIs to get the extra information that it needs.

I hope this helped and let me know if you have any more questions.
May 22, 2007 at 3:11 PM
Edited May 22, 2007 at 3:13 PM

i followed your instructions in readme.txt to add timesheet tab in teamplain webpage... run sqlscript and copy project to C:\Program Files\devBiz\TeamPlain Web Access\Web and configure web.config file and run specified commandline instruction.

i have installed TFS on a workgroup server not a domain controller or member of domain server.

the timesheet tab has been added to teamplain site but when i navigate timesheet.aspx, i encounter the folloing error:

The specified domain either does not exist or could not be contacted.
Stack Trace:

[COMException (0x8007054b): The specified domain either does not exist or could not be contacted.
System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail) +610
System.DirectoryServices.DirectoryEntry.Bind() +36
System.DirectoryServices.DirectoryEntry.get_AdsObject() +31
System.DirectoryServices.PropertyValueCollection.PopulateList() +25
System.DirectoryServices.PropertyValueCollection..ctor(DirectoryEntry entry, String propertyName) +92
System.DirectoryServices.PropertyCollection.get_Item(String propertyName) +131
Stratman.Web.VSTS.Timesheet.Page_Load(Object sender, EventArgs e) in C:\Temp\Timesheet\Stratman\Web\VSTS\timesheet.aspx.cs:98
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +34
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +47
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1061

please help me to resolve my problem
thank you for your timesheet

Eqbal Sajadi