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は、特定のジョブまたは同じ追跡用 GUID を持つジョブのグループの状態のデータを返すことができます。
メソッド名のキューのキューを使用する PSI メソッドを開始します。プロジェクトまたはタイムシート キューを使用する PSI メソッドの追跡用 GUID を設定するには、キュー メソッド呼び出しに使用する各 PSI Web サービスの SOAP ヘッダーを追跡中の GUID を追加します。
プロジェクト サーバーのアクセス許可
権限 |
説明 |
---|---|
Project Server のキューを管理することができます。グローバル アクセス権。 |
例
次の手順は、プロジェクトの Web サービスのWebRequestメソッドを変更する方法を示します。
プロジェクトの PSI の呼び出しに SOAP ヘッダーに追跡用 GUID を追加します。 |
---|
|
次の例では、 GetStatusOfQueueJobsメソッドは、 QueueSystemUtilitiesという名前のクラスで。GetStatusOfQueueJobsは、 ReadJobStatusSimpleの例では、同じメソッド名のオーバー ロードです。同じ追跡 ID を持つすべてのジョブの状態を返しますグループ内のジョブは、 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);
. . .
GUID は、 ProjectDerivedオブジェクトによって、SOAP ヘッダー内に設定されている追跡をQueueCreateProjectとQueuePublishの両方の呼び出しに使用されます。QueuePublishメソッドは、レポート データベースに発行されたプロジェクトのデータを送信するなどの追加のキュー ジョブを生成します。QueueStatusDataSetは、追跡 id が同じとか、完了した処理またはキューには、すべてのジョブの状態を一覧表示します。次の表は、いくつかのフィールドのテーブルに表示、 QueueStatusDataSet.Status前のコードの実行後に。
キュー id |
メッセージ プロパティ |
ジョブ 完了 State |
キュー 位置 |
Percent/パーセント 終了 |
キュー エントリ時刻 |
キュー 処理 時刻型 (Time) |
キュー 完了 時刻型 (Time) |
wait 時刻型 (Time) |
---|---|---|---|---|---|---|---|---|
1 |
22 |
4 |
-1 |
100 |
2011/6/26 14:06 |
2011/6/26 14:06 |
2011/6/26 14:06 |
0 |
1 |
30 |
3 |
3 |
100 |
2011/6/26 14:06 |
2011/6/26 14:06 |
0 |
|
1 |
24 |
1 |
4 |
0 |
2011/6/26 14:06 |
1 |
QueueMessageType 22 は、 ProjectCreateです。ジョブがキューになったJobState 4 は、 Successです。
QueueMessageType 30 は、 PublishNotificationsです。ジョブがキュー上で 3 番目JobState 3 は、 QueueJobProcessingです。
QueueMessageType 24 は、 ProjectPublishです。ジョブがキュー上で 4 番目JobState 1 は、 ReadyForProcessingです。予定待機時間は 1 秒です。