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)、 工作的 GUID,與佇列訊息類型。
includeWaitTime
類型:System.Boolean如果true,包括 [預期的等待時間] 欄位。
sortColumn
類型:WebSvcQueueSystem.SortColumn指定要排序的工作清單中的欄位。
sortOrder
類型:WebSvcQueueSystem.SortOrder會指定要排序和中項目是否順序。
傳回值
類型:WebSvcQueueSystem.QueueStatusDataSet
對於每個工作的QueueStatusDataSet.StatusRow資料的要求工作的狀態。
備註
ReadJobStatus可以傳回特定工作或一群具有相同的 tracking GUID 工作的狀態資料。
使用佇列的 PSI 方法的開頭的方法名稱的字佇列。若要設定的 PSI 方法使用的專案或時程表佇列追蹤 GUID,新增您使用的佇列方法呼叫每個 PSI Web 服務的 SOAP 標頭的追蹤 GUID。
Project Server 權限
權限 |
描述 |
---|---|
可讓使用者管理 Project Server 佇列。通用權限。 |
範例
下列程序示範如何修改 [Project Web 服務的WebRequest方法。
下列範例會將GetStatusOfQueueJobs方法是在名為QueueSystemUtilities類別。GetStatusOfQueueJobs是方法中相同名稱的範例會針對ReadJobStatusSimple多載。此方法會傳回具有相同的 tracking 識別碼的所有工作的狀態trackingGuid參數會指定群組中的工作。QueueSystemWS是QueueSystem 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;
}
下列程式碼片段會 PSI 方法的一般呼叫其中Project物件新增至 SOAP 標題中的追蹤 GUID 在先前程序中所述。
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通話使用相同的 tracking ProjectDerived物件所設定的 SOAP 標頭中的 GUID。QueuePublish方法會產生額外的佇列工作,例如已發佈的專案資料傳送到報表資料庫。QueueStatusDataSet列出具有相同的 tracking 識別碼和 [已完成的處理或佇列上的所有工作的狀態。下表顯示的某些QueueStatusDataSet.Status表之後執行前述的程式碼。
佇列 識別碼 |
郵件 類型 |
工作 完成 State |
佇列 位置 |
% 完成 |
佇列 進入時間 |
佇列 處理 Time |
佇列 完成 Time |
等待 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。預期的等候時間為一秒鐘。