QueueSystem.ReadJobStatus método
Obtém o status do trabalho especificado no serviço de enfileiramento do Project Server.
Namespace: WebSvcQueueSystem
Assembly: ProjectServerServices (em ProjectServerServices.dll)
Sintaxe
'Declaração
<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.QueueStatusRequestDataSetO QueueStatusRequestDataSet.StatusRequestRow pode especificar o estado de conclusão de trabalho, controlando o GUID (JobGroupGUID), o GUID de trabalho e o tipo de mensagem da fila.
includeWaitTime
Tipo: System.BooleanSe true, incluir o campo de tempo de espera esperado.
sortColumn
Tipo: WebSvcQueueSystem.SortColumnEspecifica qual campo a ser classificado na lista de trabalhos.
sortOrder
Tipo: WebSvcQueueSystem.SortOrderEspecifica se a classificação e em qual ordem.
Valor retornado
Tipo: WebSvcQueueSystem.QueueStatusDataSet
Status dos trabalhos solicitados, com os dados QueueStatusDataSet.StatusRow para cada trabalho.
Comentários
ReadJobStatus pode retornar dados de status para trabalhos específicos ou para um grupo de trabalhos que possuem o mesmo GUID de rastreamento.
Métodos PSI que usam uma fila começam com a palavra fila no nome do método. Para definir o métodos PSI que usam essa fila de projeto ou quadro de horários do GUID de rastreamento, adicione o GUID de rastreamento ao cabeçalho SOAP de cada serviço Web de PSI que você usa para as chamadas de método de fila.
Permissões do Project Server
Permissão |
Descrição |
---|---|
Permite ao usuário gerenciar a fila do Project Server. Permissão global. |
Exemplos
O procedimento a seguir mostra como modificar o método WebRequest para o serviço Web do projeto.
Para adicionar um controle GUID ao cabeçalho SOAP para chamadas de PSI do projeto: |
---|
|
O método GetStatusOfQueueJobs no exemplo a seguir está em uma classe denominada QueueSystemUtilities. GetStatusOfQueueJobs é uma sobrecarga do mesmo nome do método no exemplo para ReadJobStatusSimple. O método retorna o status de todos os trabalhos com a mesma ID de controle. Trabalhos no grupo são especificados pelo parâmetro trackingGuid . QueueSystemWS é um nome arbitrário de QueueSystem referência da 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;
}
O fragmento de código a seguir faz com que as chamadas normais para os métodos PSI onde o objeto Project adiciona o GUID de rastreamento ao cabeçalho SOAP, conforme descrito no procedimento 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);
. . .
As chamadas de QueueCreateProject tanto o QueuePublish usar o mesmo GUID, que é definido pelo objeto ProjectDerived nos cabeçalhos SOAP de rastreamento. O método QueuePublish gera trabalhos em fila adicionais por exemplo, enviar os dados de projeto publicado no banco de dados de relatórios. QueueStatusDataSet lista o status de todos os trabalhos que possuem a mesma identificação de controle e o processamento concluído ou estão na fila. A tabela a seguir mostra alguns dos campos na tabela QueueStatusDataSet.Status após executar o código anterior.
[QUEUE] ID |
Mensagem Tipo |
Trabalho Conclusão State |
[QUEUE] Posição |
Por cento Completa |
[QUEUE] Hora da Entrada |
[QUEUE] Processamento Time |
[QUEUE] Concluído Time |
Espera 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 é ProjectCreate. O trabalho não está mais na fila; JobState 4 é Success.
QueueMessageType 30 é PublishNotifications. O trabalho é a terceiro a fila; JobState 3 é QueueJobProcessing.
QueueMessageType 24 é ProjectPublish. O trabalho é o quarto na fila; JobState 1 é ReadyForProcessing. O tempo de espera esperada é um segundo.