TimeSheet.ReadTimesheetList-Methode
Liest eine Arbeitszeittabelle Zusammenfassung für die angegebene Ressource innerhalb des angegebenen Datumsbereichs an.
Namespace: WebSvcTimeSheet
Assembly: ProjectServerServices (in ProjectServerServices.dll)
Syntax
'Declaration
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/TimeSheet/ReadTimesheetList", RequestNamespace := "https://schemas.microsoft.com/office/project/server/webservices/TimeSheet/", _
ResponseNamespace := "https://schemas.microsoft.com/office/project/server/webservices/TimeSheet/", _
Use := SoapBindingUse.Literal, ParameterStyle := SoapParameterStyle.Wrapped)> _
Public Function ReadTimesheetList ( _
resUID As Guid, _
startDate As DateTime, _
finishDate As DateTime, _
select As Integer _
) As TimesheetListDataSet
'Usage
Dim instance As TimeSheet
Dim resUID As Guid
Dim startDate As DateTime
Dim finishDate As DateTime
Dim select As Integer
Dim returnValue As TimesheetListDataSet
returnValue = instance.ReadTimesheetList(resUID, _
startDate, finishDate, select)
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/TimeSheet/ReadTimesheetList", RequestNamespace = "https://schemas.microsoft.com/office/project/server/webservices/TimeSheet/",
ResponseNamespace = "https://schemas.microsoft.com/office/project/server/webservices/TimeSheet/",
Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public TimesheetListDataSet ReadTimesheetList(
Guid resUID,
DateTime startDate,
DateTime finishDate,
int select
)
Parameter
resUID
Typ: System.GuidDie Ressourcen-GUID.
startDate
Typ: System.DateTimeDas Datum der frühesten Arbeitszeittabelle zurückgegeben.
finishDate
Typ: System.DateTimeDas Datum der letzten Arbeitszeittabelle zurückzugeben.
select
Typ: System.Int32Filter für einen Arbeitszeittabellenstatus; Verwenden Sie TimesheetEnum.ListSelect.
Rückgabewert
Typ: WebSvcTimeSheet.TimesheetListDataSet
DataSet mit einer Zusammenfassungsliste Arbeitszeittabellen, die die Parameter erfüllen.
Hinweise
Verwenden Sie einen Microsoft.Office.Project.Server.Library.TimesheetEnum.ListSelect -Wert für den Parameter select . Sie können die Werte ListSelect mit dem Vorgang OR zum Filtern von einer Kombination von Eigenschaften kombinieren. Um alle Arbeitszeittabellen, die vom Benutzer erstellte auszuwählen, die ausgeführt werden, legen Sie beispielsweise den select -Parameter auf CreatedByMeORInProgressein.
Um alle Arbeitszeittabellen plus einen leeren Eintrag für einen bestimmten Zeitraum zurückzugeben, in denen keine Arbeitszeittabelle vorhanden ist, legen Sie select auf TimeSheetEnum.ListSelect.AllPeriods.
ReadTimesheetList ignoriert resUID , wenn der Wert von select nur CreatedByMeist. Um eine Liste von einer anderen Person Arbeitszeittabellen abzurufen, die von Ihnen erstellten – d. h., für die Sie den Ersatz sind, Arbeitszeittabellen – übergeben eines anderen Benutzers Ressourcen-GUID in resUID und einen Wert für select , das einen Vorgang OR zwischen CreatedByMe und InProgress, Submitted, Acceptable, Approved, Rejectedoder AllExistingist.
Gültige Datumsangaben in Project Server sind am 1. Januar 1984 und dem 31. Dezember 2049.
Diese Methode verwendet das QueueSystem -Objekt. Die CorrelationGUID -Eigenschaft für den Auftrag ist gleich dem Wert der Eigenschaft TS_UID .
Project Server-Berechtigungen
Berechtigung |
Beschreibung |
---|---|
Nicht standardmäßige |
Der aktuelle Benutzer ist Besitzer der Arbeitszeittabelle oder der Wert der selectCreatedByMeist. |
Ermöglicht einen Benutzer das Anzeigen von Arbeitszeittabellen für eine Ressource. Gilt nur, wenn der aktuelle Benutzer nicht Besitzer der Arbeitszeittabelle ist. Die globale Berechtigung. |
Beispiele
Im folgenden Codebeispiel liest alle Arbeitszeittabellen innerhalb des angegebenen Datumsbereichs, die vom Benutzer erstellt werden und die in Bearbeitung sind. Das Beispiel verwendet die TimeSheetUtils -Klasse und die ExceptionHandlers Classe Funktionalität von der Klasse Program zu trennen. Die TimeSheetUtils.GetMyTimeSheetsInProgress -Methode wird die GetCurrentUserUid -Methode in den Webdienst Ressource die GUID des Benutzers zurückgegeben.
For information about compiling the sample, see Prerequisites for Reference Code Samples.
using System;
using System.Net;
using System.Web.Services.Protocols;
using PSLibrary = Microsoft.Office.Project.Server.Library;
namespace Microsoft.SDK.Project.Samples.TestTimesheet
{
class Program
{
private static TimeSheetWebSvc.TimeSheet timesheet =
new TimeSheetWebSvc.TimeSheet();
private static ResourceWebSvc.Resource resource =
new ResourceWebSvc.Resource();
private static TimeSheetUtils timeSheetUtils = new TimeSheetUtils();
private static ExceptionHandlers exceptionHandlers = new ExceptionHandlers();
[STAThread]
static void Main()
{
try
{
const string PROJECT_SERVER_URI = "http:// ServerName/ProjectServerName/";
const string RESOURCE_SERVICE_PATH = "_vti_bin/psi/resource.asmx";
const string TIMESHEET_SERVICE_PATH = "_vti_bin/psi/timesheet.asmx";
// Set up the web service objects.
resource.Url = PROJECT_SERVER_URI + RESOURCE_SERVICE_PATH;
resource.Credentials = CredentialCache.DefaultCredentials;
timesheet.Url = PROJECT_SERVER_URI + TIMESHEET_SERVICE_PATH;
timesheet.Credentials = CredentialCache.DefaultCredentials;
// Get timesheet information for the specified dates.
DateTime startDate = new DateTime(2006, 11, 27);
DateTime finishDate = new DateTime(2006, 12, 1);
Guid resUid;
TimeSheetWebSvc.TimesheetListDataSet dsTimeSheetList =
timeSheetUtils.GetMyTimeSheetsInProgress(
timesheet, resource, startDate, finishDate, out resUid);
Console.WriteLine("Active timesheets for resource: " + resUid.ToString());
Console.WriteLine(string.Format("\tStart date: {0}\r\n\tFinish date: {1}",
startDate.ToString(), finishDate.ToString()));
for (int i = 0; i < dsTimeSheetList.Timesheets.Count; i++)
{
Console.WriteLine(dsTimeSheetList.Timesheets[i].TS_UID.ToString(),
dsTimeSheetList.Timesheets[i].TS_NAME);
}
}
catch (SoapException ex)
{ exceptionHandlers.HandleSoapException(ex); }
catch (WebException ex)
{ exceptionHandlers.HandleWebException(ex); }
catch (Exception ex)
{ exceptionHandlers.HandleException(ex); }
finally
{ exceptionHandlers.ResetConsole(); }
}
}
class TimeSheetUtils
{
public TimeSheetUtils()
{
}
// Get a list of timesheets that were created by the user and that are in progress.
public TimeSheetWebSvc.TimesheetListDataSet GetMyTimeSheetsInProgress(
TimeSheetWebSvc.TimeSheet timesheet,
ResourceWebSvc.Resource resource,
DateTime startDate,
DateTime finishDate,
out Guid resUid)
{
int select = Convert.ToInt32(
PSLibrary.TimesheetEnum.ListSelect.CreatedByMe
| PSLibrary.TimesheetEnum.ListSelect.InProgress);
resUid = resource.GetCurrentUserUid();
return timesheet.ReadTimesheetList(resUid, startDate, finishDate, select);
}
}
class ExceptionHandlers
{
public ExceptionHandlers()
{
}
public void HandleSoapException(SoapException ex)
{
PSLibrary.PSClientError error = new PSLibrary.PSClientError(ex);
PSLibrary.PSErrorInfo[] errors = error.GetAllErrors();
string errMess = "==============================\r\nError: \r\n";
for (int i = 0; i < errors.Length; i++)
{
errMess += "\n" + ex.Message.ToString() + "\r\n";
errMess += "".PadRight(30, '=') + "\r\nPSCLientError Output:\r\n \r\n";
errMess += errors[i].ErrId.ToString() + "\n";
for (int j = 0; j < errors[i].ErrorAttributes.Length; j++)
{
errMess += "\r\n\t" + errors[i].ErrorAttributeNames()[j] + ": "
+ errors[i].ErrorAttributes[j];
}
errMess += "\r\n".PadRight(30, '=');
}
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(errMess);
}
public void HandleWebException(WebException ex)
{
string errMess = ex.Message.ToString() +
"\n\nLog on, or check the Project Server Queuing Service";
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Error: " + errMess);
}
public void HandleException(Exception ex)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Error: " + ex.Message);
}
public void ResetConsole()
{
Console.ResetColor();
Console.WriteLine("\r\n\r\nPress any key...");
Console.ReadKey();
}
}
}