Метод QueueSystem.ReadJobStatus
Возвращает состояние указанного задания в очереди службы Project Server.
Пространство имен: WebSvcQueueSystem
Сборка: ProjectServerServices (в ProjectServerServices.dll)
Синтаксис
'Декларация
<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
'Применение
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
)
Параметры
qsrDS
Тип: WebSvcQueueSystem.QueueStatusRequestDataSetQueueStatusRequestDataSet.StatusRequestRow можно указать состояние завершения задания, отслеживание GUID (JobGroupGUID), job GUID и тип очереди сообщений.
includeWaitTime
Тип: System.BooleanЕсли trueвключить поле время ожидания ожидается.
sortColumn
Тип: WebSvcQueueSystem.SortColumnУказывает, какие поля для сортировки в списке заданий.
sortOrder
Тип: WebSvcQueueSystem.SortOrderУказывает ли сортировка, а также в какой порядок.
Возвращаемое значение
Тип: WebSvcQueueSystem.QueueStatusDataSet
Состояние запрошенного заданий с данными QueueStatusDataSet.StatusRow для каждого задания.
Замечания
ReadJobStatus может возвращать данные состояния для определенного задания или группы заданий, имеющих же отслеживания GUID.
Методы PSI, использующие очереди начинаются с word очереди в имя метода. Чтобы установить для отслеживания идентификатор GUID для методов PSI, использующие очереди проекты или расписания, добавление отслеживания GUID заголовка SOAP каждой веб-PSI службы, которая используется для вызова метода очереди.
Разрешения Project Server
Разрешение |
Описание |
---|---|
Позволяет пользователю управлять очередей Project Server. Глобальное разрешение. |
Примеры
В следующей процедуре показано, как изменять метод WebRequest для проекта веб-службы.
Добавление отслеживания GUID к заголовку SOAP для вызовов PSI проекта: |
---|
|
В следующем примере метод GetStatusOfQueueJobs находится в классе с именем QueueSystemUtilities. GetStatusOfQueueJobs является перегрузка то же имя метода, в примере для ReadJobStatusSimple. Метод возвращает состояние всех заданий с одинаковым отслеживания. Заданий в группе указанного с помощью параметра trackingGuid . QueueSystemWS не является произвольным именем QueueSystem веб-ссылку.
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;
}
В следующем фрагменте кода вызывает обычных методы PSI где объект Project добавляет отслеживания GUID заголовок SOAP, как описано в предыдущей процедуре.
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);
. . .
Как QueueCreateProject , так и QueuePublish вызовы используют же отслеживания идентификатор GUID, который устанавливается в заголовках SOAP объектом ProjectDerived . Метод QueuePublish порождает задания дополнительные очереди, таких как отправка данных опубликованных проектов в базе данных отчетов. QueueStatusDataSet перечислены состояния всех заданий, которые имеют один и тот же идентификатор отслеживания и либо завершения обработки или в очереди. Ниже приведены некоторые поля в таблице QueueStatusDataSet.Status после выполнения предыдущего кода.
Очередь Код |
Сообщение Тип |
Задание Завершение работы State |
Очередь Должность (положение) |
Процент Полная |
Очередь Время занесения |
Очередь обработка; Time |
Очередь Выполнено Time |
Wait Time |
---|---|---|---|---|---|---|---|---|
1 |
22 |
4 |
-1 |
100 |
6/26/2011 г. 14:06 |
6/26/2011 г. 14:06 |
6/26/2011 г. 14:06 |
0 |
1 |
30 |
3 |
3 |
100 |
6/26/2011 г. 14:06 |
6/26/2011 г. 14:06 |
0 |
|
1 |
24 |
1 |
4 |
0 |
6/26/2011 г. 14:06 |
1 |
QueueMessageType 22 — ProjectCreate. Задание больше не находится в очереди; JobState 4 — Success.
QueueMessageType 30 — PublishNotifications. Задание третий в очередь; JobState 3 — QueueJobProcessing.
QueueMessageType 24 — ProjectPublish. Задание четвертой в очередь; JobState 1 — ReadyForProcessing. Время ожидания ожидаемый является одной секунды.
См. также
Справочные материалы
Пространство имен WebSvcQueueSystem