del método Archive.ReadArchivedProjectsList
Obtiene una lista de proyectos archivados; la lista incluye el nombre del proyecto y el GUID.
Espacio de nombres: WebSvcArchive
Ensamblado: ProjectServerServices (en ProjectServerServices.dll)
Sintaxis
'Declaración
<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 devuelto
Tipo: WebSvcArchive.ArchivedProjectsDataSet
Comentarios
Nota
Este método recupera borrador proyectos y proyectos publicados.
Permisos de Project Server
Permiso |
Descripción |
---|---|
Permite a un usuario eliminar o mover los proyectos. Permiso global. |
|
Permite a un usuario programar o realizar una copia de seguridad de las entidades de Project Server. Permiso global. |
|
Permite que un usuario realizar una copia de seguridad de las entidades de Project Server. Permiso global. |
Ejemplos
El ejemplo siguiente guarda una copia del proyecto especificado desde la base de datos publicados en la base de datos de archivo y recupera la lista de proyectos archivados
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;
}
}
}