Partager via


TimeSheet.ReadTimesheetList - Méthode

Lit une synthèse de la ressource spécifiée dans la plage de dates spécifiée de la feuille de temps.

Espace de noms :  WebSvcTimeSheet
Assembly :  ProjectServerServices (dans ProjectServerServices.dll)

Syntaxe

'Déclaration
<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
'Utilisation
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
)

Paramètres

  • startDate
    Type : System.DateTime

    La date de la feuille de temps au plus tôt à renvoyer.

  • finishDate
    Type : System.DateTime

    La date de la dernière feuille de temps à retourner.

Valeur renvoyée

Type : WebSvcTimeSheet.TimesheetListDataSet
DataSet avec une liste récapitulative des feuilles de temps qui satisfont les paramètres.

Remarques

Utilisez la valeur Microsoft.Office.Project.Server.Library.TimesheetEnum.ListSelect pour le paramètre select . Vous pouvez combiner les valeurs ListSelect avec l'opération OR pour filtrer une combinaison de propriétés. Par exemple, pour sélectionner toutes les feuilles de temps créée par l'utilisateur en cours, définissez le paramètre select pour CreatedByMeORInProgress.

Pour renvoyer un enregistrement vide ainsi que toutes les feuilles de temps pour une période où il n'existe aucune feuille de temps, la valeur selectTimeSheetEnum.ListSelect.AllPeriods.

ReadTimesheetList ignore resUID si la valeur de select est simplement CreatedByMe. Pour obtenir une liste des feuilles de temps d'une autre personne qui ont été créées par vous — autrement dit, les feuilles de temps pour lesquels vous êtes le substitut — transmettre le GUID de ressource de l'autre utilisateur dans resUID et une valeur pour select qui est une opération OR entre CreatedByMe et InProgress, Submitted, Acceptable, Approved, Rejectedou AllExisting.

Dates correctes dans Project Server sont comprises entre le 1er janvier 1984 et le 31 décembre 2049.

Cette méthode utilise l'objet QueueSystem . La propriété CorrelationGUID pour le travail est égale à la valeur de la propriété TS_UID .

Autorisations Project Server

Autorisation

Description

Non standard

L'utilisateur actuel est le propriétaire de la feuille de temps, ou la valeur de select est CreatedByMe.

ViewResourceTimesheet

Permet à un utilisateur d'afficher les feuilles de temps pour une ressource. S'applique uniquement si l'utilisateur actuel n'est pas le propriétaire de la feuille de temps. Autorisation globale.

Exemples

L'exemple de code suivant lit toutes les feuilles de temps dans plage de dates spécifiée qui sont créés par l'utilisateur et qui sont en cours. L'exemple utilise la classe TimeSheetUtils et la classe ExceptionHandlers pour séparer les fonctionnalités de la classe Program . La méthode TimeSheetUtils.GetMyTimeSheetsInProgress utilise la méthode GetCurrentUserUid dans le service web de ressources pour renvoyer le GUID de l'utilisateur.

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();
      }
   }
}

Voir aussi

Référence

TimeSheet classe

TimeSheet - Membres

WebSvcTimeSheet - Espace de noms