Compartilhar via


Archive.ReadArchivedProjectsList method

Obtém uma lista dos projetos arquivados; a lista inclui o nome do projeto e o GUID.

Namespace:  WebSvcArchive
Assembly:  ProjectServerServices (in ProjectServerServices.dll)

Syntax

'Declaração
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/Archive/ReadArchivedProjectsList", RequestNamespace := "https://schemas.microsoft.com/office/project/server/webservices/Archive/",  _
    ResponseNamespace := "https://schemas.microsoft.com/office/project/server/webservices/Archive/",  _
    Use := SoapBindingUse.Literal, ParameterStyle := SoapParameterStyle.Wrapped)> _
Public Function ReadArchivedProjectsList As ArchivedProjectsDataSet
'Uso
Dim instance As Archive
Dim returnValue As ArchivedProjectsDataSet

returnValue = instance.ReadArchivedProjectsList()
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/Archive/ReadArchivedProjectsList", RequestNamespace = "https://schemas.microsoft.com/office/project/server/webservices/Archive/", 
    ResponseNamespace = "https://schemas.microsoft.com/office/project/server/webservices/Archive/", 
    Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public ArchivedProjectsDataSet ReadArchivedProjectsList()

Valor retornado

Type: WebSvcArchive.ArchivedProjectsDataSet

Comentários

Dica

Este método recupera os projetos de rascunho e publicado.

Permissões do Project Server

Permissão

Descrição

CleanupProjectServerDatabase

Permite que um usuário exclua ou mova os projetos. Permissão global.

ManageProjectServerBackup

Permite que um usuário agendar ou executar um backup das entidades do Project Server. Permissão global.

ManageProjectServerRestore

Permite que um usuário realizar um backup das entidades do Project Server. Permissão global.

Examples

O exemplo a seguir salva uma cópia do projeto especificado do banco de dados publicado no banco de dados de arquivamento e recupera a lista de projetos arquivados

For information about running this code sample, see Prerequisites for WCF-Based Code Samples.

using System;
using System.IO;
using System.ServiceModel;
using System.Text;
using PSLibrary = Microsoft.Office.Project.Server.Library;

namespace Microsoft.SDK.Project.Samples.ReadArchivedProjectsList
{
  class Program
  {
    private const string ENDPOINT = "basicHttp_Archive";
    private const string ENDPOINT_Q = "basicHttp_QueueSystem";
    private const string VERSION_DESCRIPTION = "2010-01-19 14:52:30";
    private const string PID = "56B5C90D-28C0-42A1-A2CF-8BC205F062BA";
    private const string OUTPUT_FILES = @"C:\Projects\Samples\Output\";

    private const int RETENTION_POLICY = -2;

    private static SvcArchive.ArchiveClient archiveClient;
    private static SvcQueueSystem.QueueSystemClient queueSystemClient;
    private static string outFilePath;

    private static int numProjects;

    static void Main(string[] args)
    {
      try
      {
        Guid jobUID = Guid.NewGuid();
        Guid projectUID = new Guid(PID);
        Guid archivedProjectUID = Guid.NewGuid();
        DateTime startTime = DateTime.Now;
        numProjects = 1;

        // Use the endpoints that are defined in app.config to configure the client.
        SetClientEndpoints(ENDPOINT_Q);
        ConfigClientEndpoints(ENDPOINT);

        // Assign the path where the output XML file will be saved.
        outFilePath = OUTPUT_FILES + "ArchivedProjectsList.xml";

        // Queue archive project
        Guid projectVersionUID = archiveClient.QueueArchiveProject(
          jobUID, projectUID, archivedProjectUID, VERSION_DESCRIPTION, RETENTION_POLICY, true);

        Helpers.WaitForQueue(SvcQueueSystem.QueueMsgType.ProjectArchive, numProjects,
          queueSystemClient, startTime);

        Console.WriteLine("Projects archived successfully");

        Console.WriteLine("Retrieving the list of archived projects...");

        // Create a dataset.
        SvcArchive.ArchivedProjectsDataSet archivedProjectsDs =
            new SvcArchive.ArchivedProjectsDataSet();

        // Assign the datasource to the dataset.
        archivedProjectsDs = archiveClient.ReadArchivedProjectsList();
        archivedProjectsDs.WriteXml(outFilePath);

        // Get the count of projects.
        Console.WriteLine("Number of archived projects: {0}",
            archivedProjectsDs.Projects.Count.ToString());
        archiveClient.Close();

        // Write the list of projects to an XML file.
        Console.WriteLine("\nSee XML output of the ArchivedProjectsDataSet at {0}",
            outFilePath);
      }
      catch (CommunicationException e)
      {
        Console.ForegroundColor = ConsoleColor.Red;
        Console.WriteLine("\n***System.ServiceModel.CommunicationException:");
        Console.WriteLine(e.ToString());
        Console.ResetColor();
      }
      finally
      {
        Console.Write("\r\n\r\nPress any key....");
        Console.ReadKey();
      }
    }

    // Configure the client endpoints.
    public static void ConfigClientEndpoints(string endpt)
    {
      archiveClient = new SvcArchive.ArchiveClient(endpt);
    }
    // Configure the client endpoints.
    public static void SetClientEndpoints(string qendpt)
    {
      queueSystemClient = new SvcQueueSystem.QueueSystemClient(qendpt);
    }
  }

  // Utility class.
  class Helpers
  {
    // Waits for the Project Server Queuing Service to finish archiving the project.
    public static bool WaitForQueue(SvcQueueSystem.QueueMsgType jobType,
      int numJobs, SvcQueueSystem.QueueSystemClient queueSystemClient, DateTime startTime)
    {
      const int maxSeconds2Wait = 50;
      SvcQueueSystem.QueueStatusDataSet queueStatusDs = new SvcQueueSystem.QueueStatusDataSet();

      int timeout = 0; // The number of secs waited.
      Console.WriteLine("Waiting for job" + jobType.ToString());

      SvcQueueSystem.QueueMsgType[] messageTypes = { jobType };
      SvcQueueSystem.JobState[] jobStates = { SvcQueueSystem.JobState.Success };

      while ((timeout < maxSeconds2Wait) && (queueStatusDs.Status.Count < numJobs))
      {
        System.Threading.Thread.Sleep(1000);

        queueStatusDs = queueSystemClient.ReadMyJobStatus(
          messageTypes,
          jobStates,
          startTime,
          DateTime.Now,
          numJobs,
          true,
          SvcQueueSystem.SortColumn.QueuePosition,
          SvcQueueSystem.SortOrder.LastOrder);

        timeout++;
        Console.Write(".");
      }
      Console.WriteLine();

      if (queueStatusDs.Status.Count == numJobs)
      {
        return true;
      }
      return false;
    }
  }
}

Ver também

Referência

Archive class

Archive members

WebSvcArchive namespace