del método QueueSystem.ReadJobStatus
Obtiene el estado de los trabajos especificados en el servicio de cola de Project Server.
Espacio de nombres: WebSvcQueueSystem
Ensamblado: ProjectServerServices (en ProjectServerServices.dll)
Sintaxis
'Declaración
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/QueueSystem/ReadJobStatus", RequestNamespace := "https://schemas.microsoft.com/office/project/server/webservices/QueueSystem/", _
ResponseNamespace := "https://schemas.microsoft.com/office/project/server/webservices/QueueSystem/", _
Use := SoapBindingUse.Literal, ParameterStyle := SoapParameterStyle.Wrapped)> _
Public Function ReadJobStatus ( _
qsrDS As QueueStatusRequestDataSet, _
includeWaitTime As Boolean, _
sortColumn As SortColumn, _
sortOrder As SortOrder _
) As QueueStatusDataSet
'Uso
Dim instance As QueueSystem
Dim qsrDS As QueueStatusRequestDataSet
Dim includeWaitTime As Boolean
Dim sortColumn As SortColumn
Dim sortOrder As SortOrder
Dim returnValue As QueueStatusDataSet
returnValue = instance.ReadJobStatus(qsrDS, _
includeWaitTime, sortColumn, sortOrder)
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/QueueSystem/ReadJobStatus", RequestNamespace = "https://schemas.microsoft.com/office/project/server/webservices/QueueSystem/",
ResponseNamespace = "https://schemas.microsoft.com/office/project/server/webservices/QueueSystem/",
Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public QueueStatusDataSet ReadJobStatus(
QueueStatusRequestDataSet qsrDS,
bool includeWaitTime,
SortColumn sortColumn,
SortOrder sortOrder
)
Parámetros
qsrDS
Tipo: WebSvcQueueSystem.QueueStatusRequestDataSetLa QueueStatusRequestDataSet.StatusRequestRow puede especificar el estado de finalización de trabajo, seguimiento de GUID (JobGroupGUID), el GUID del trabajo y el tipo de mensaje de la cola.
includeWaitTime
Tipo: System.BooleanSi true, incluyen el campo de tiempo de espera esperado.
sortColumn
Tipo: WebSvcQueueSystem.SortColumnEspecifica qué campo para ordenar en la lista de trabajos.
sortOrder
Tipo: WebSvcQueueSystem.SortOrderEspecifica si al ordenar y en qué orden.
Valor devuelto
Tipo: WebSvcQueueSystem.QueueStatusDataSet
Estado de los trabajos solicitados, con los datos de QueueStatusDataSet.StatusRow para cada trabajo.
Comentarios
ReadJobStatus puede devolver los datos de estado de trabajos específicos o para un grupo de proyectos que tengan el mismo GUID de seguimiento.
Métodos PSI que usan una cola comiencen con la palabra de la cola en el nombre del método. Para establecer el GUID de seguimiento de los métodos PSI que utilizan la cola de proyecto o partes de horas, agregue el GUID de seguimiento al encabezado SOAP de cada servicio Web de PSI que se utiliza para las llamadas al método cola.
Permisos de Project Server
Permiso |
Descripción |
---|---|
Permite al usuario administrar la cola de Project Server. Permiso global. |
Ejemplos
El siguiente procedimiento muestra cómo modificar el método WebRequest para el servicio Web de proyecto.
Para agregar un GUID de seguimiento al encabezado SOAP para llamadas de PSI de Project: |
---|
|
El método GetStatusOfQueueJobs en el siguiente ejemplo es en una clase denominada QueueSystemUtilities. GetStatusOfQueueJobs es una sobrecarga del mismo nombre de método en el ejemplo de ReadJobStatusSimple. El método devuelve el estado de todos los trabajos con el mismo identificador de seguimiento. Trabajos en el grupo se especifican mediante el parámetro trackingGuid . QueueSystemWS es un nombre arbitrario de QueueSystem referencia Web.
public QueueSystemWS.QueueStatusDataSet GetStatusOfQueueJobs(
QueueSystemWS.QueueSystem q,
Guid jobGuid,
Guid trackingGuid,
int jobState,
int msgType,
QueueSystemWS.SortColumn sortColumn,
QueueSystemWS.SortOrder sortOrder,
bool includeWaitTime)
{
QueueSystemWS.QueueStatusRequestDataSet dsQStatusRequest =
new QueueSystemWS.QueueStatusRequestDataSet();
QueueSystemWS.QueueStatusRequestDataSet.StatusRequestRow qStatusRow =
dsQStatusRequest.StatusRequest.NewStatusRequestRow();
qStatusRow.JobGUID = jobGuid;
qStatusRow.JobGroupGUID = trackingGuid;
if (jobState != 0)
qStatusRow.JobCompletionState = jobState;
if (msgType != 0)
qStatusRow.MessageType = msgType;
dsQStatusRequest.StatusRequest.AddStatusRequestRow(qStatusRow);
QueueSystemWS.QueueStatusDataSet dsQStatus = q.ReadJobStatus(dsQStatusRequest,
includeWaitTime,
sortColumn,
sortOrder);
return dsQStatus;
}
El siguiente fragmento de código hace que las llamadas normales a los métodos PSI donde el objeto Project agrega el GUID de seguimiento al encabezado SOAP, tal como se describe en el procedimiento anterior.
using System.Threading;
using PSLibrary = Microsoft.Office.Project.Server.Library;
. . .
private static ProjectWS.ProjectDerived projectDerived =
new ProjectWS.ProjectDerived();
private static QueueSystemWS.QueueSystem queueSystem =
new QueueSystemWS.QueueSystem();
private static QueueSystemUtils queueSystemUtils = new QueueSystemUtils();
. . .
ProjectWS.ProjectDataSet dsProject =
new ProjectWS.ProjectDataSet();
ProjectWS.ProjectDataSet.ProjectRow projectRow =
dsProject.Project.NewProjectRow();
Guid projectGuid = Guid.NewGuid();
projectRow.PROJ_UID = projectGuid;
projectRow.PROJ_NAME = "Name of Project";
projectRow.PROJ_TYPE =
Convert.ToInt32(PSLibrary.Project.ProjectType.Project);
dsProject.Project.AddProjectRow(projectRow);
// Create the queue job and tracking GUIDs, and then set the tracking
// GUID for SOAP calls to the derived Project object.
Guid jobGuid = Guid.NewGuid();
Guid trackingGuid = Guid.NewGuid();
SomeNameSpace.ProjectWS.ProjectDerived.SetTrackingGuid(trackingGuid);
bool validateOnly = false;
// Create and save project to the Draft database.
projectDerived.QueueCreateProject(jobGuid, dsProject, validateOnly);
// Wait a few seconds, or create a WaitForQueue method.
Thread.Sleep(3000);
ProjectWS.ProjectRelationsDataSet dsProjectRelations =
new ProjectWS.ProjectRelationsDataSet();
jobGuid = Guid.NewGuid();
string wssUrl = "" // Default SharePoint project workspace,
bool fullPublish = true;
// Publish the project to the Published database.
dsProjectRelations = projectDerived.QueuePublish(jobGuid, projectGuid, fullPublish, wssUrl);
Thread.Sleep(500);
jobGuid = Guid.Empty;
int jobState = (int)QueueSystemWS.JobState.Unknown;
int msgType = (int) QueueSystemWS.QueueMsgType.Unknown;
bool includeWaitTime = true;
QueueSystemWS.SortColumn sortColumn = QueueSystemWS.SortColumn.Undefined;
QueueSystemWS.SortOrder sortOrder = QueueSystemWS.SortOrder.Undefined;
WebSvcQueueSystem.QueueStatusDataSet dsQStatus =
queueSystemUtils.GetStatusOfQueueJobs(queueSystem, jobGuid, trackingGuid,
jobState, msgType, sortColumn, sortOrder, includeWaitTime);
. . .
Las llamadas de la QueueCreateProject y el QueuePublish usan el mismo GUID, que se establece en los encabezados SOAP por el objeto ProjectDerived de seguimiento. El método QueuePublish genera trabajos en cola adicionales como enviar los datos del proyecto publicado en la base de datos de informes. QueueStatusDataSet muestra el estado de todos los trabajos que tienen el mismo identificador de seguimiento y tener el procesamiento de cualquiera de los dos completado o se encuentran en la cola. En la siguiente tabla muestra algunos de los campos en la tabla QueueStatusDataSet.Status después de ejecutar el código anterior.
Queue Id. |
Mensaje Tipo |
Trabajo Finalización State |
Queue Posición |
Porcentaje Completada |
Queue Hora de entrada |
Queue Proceso Time |
Queue Finalizado Time |
esperar Time |
---|---|---|---|---|---|---|---|---|
1 |
22 |
4 |
-1 |
100 |
26/6/2011 14:06 |
26/6/2011 14:06 |
26/6/2011 14:06 |
0 |
1 |
30 |
3 |
3 |
100 |
26/6/2011 14:06 |
26/6/2011 14:06 |
0 |
|
1 |
24 |
1 |
4 |
0 |
26/6/2011 14:06 |
1 |
QueueMessageType 22 es ProjectCreate. El trabajo ya no está en la cola; JobState 4 es Success.
QueueMessageType 30 es PublishNotifications. El trabajo es el tercero en la cola; JobState 3 es QueueJobProcessing.
QueueMessageType 24 es ProjectPublish. El trabajo es el cuarto en la cola; JobState 1 es ReadyForProcessing. El tiempo de espera previsto es un segundo.
Vea también
Referencia
Espacio de nombres WebSvcQueueSystem