QueueSystem.ReadJobStatus-Methode
Ruft den Status der angegebenen Aufträge in der Project Server-Warteschlangendienst ab.
Namespace: WebSvcQueueSystem
Assembly: ProjectServerServices (in ProjectServerServices.dll)
Syntax
'Declaration
<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
'Usage
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
)
Parameter
qsrDS
Typ: WebSvcQueueSystem.QueueStatusRequestDataSetDie QueueStatusRequestDataSet.StatusRequestRow können die Fertigstellung Auftragsstatus Nachverfolgen der GUID (JobGroupGUID), Auftrags-GUID und warteschlangennachrichtentyp angeben.
includeWaitTime
Typ: System.BooleanWenn true, umfassen das erwartete Wait Time-Feld.
sortColumn
Typ: WebSvcQueueSystem.SortColumnGibt an, welches Feld in der Liste der Aufträge sortiert.
sortOrder
Typ: WebSvcQueueSystem.SortOrderGibt an, ob auf Sortieren und in welche bestellen.
Rückgabewert
Typ: WebSvcQueueSystem.QueueStatusDataSet
Status der angeforderten Aufträge, mit den QueueStatusDataSet.StatusRow Daten für jedes Projekt.
Hinweise
ReadJobStatus können Statusdaten für bestimmte Projekte oder für eine Gruppe von Aufträgen die haben die gleiche Überwachungs-GUID zurück.
PSI-Methoden, mit denen eine Warteschlange beginnen mit dem Wort Warteschlange in den Methodennamen. Wenn Sie die Überwachungs-GUID für PSI-Methoden festgelegt, die die Projekt- oder Arbeitszeittabellen-Warteschlange verwenden, fügen Sie die Überwachungs-GUID von jedem PSI-Webdienst, mit denen Sie für die Warteschlange-Methode ruft die SOAP-Header hinzu.
Project Server-Berechtigungen
Berechtigung |
Beschreibung |
---|---|
Ermöglicht dem Benutzer die Project Server-Warteschlange verwalten. Die globale Berechtigung. |
Beispiele
Das folgende Verfahren zeigt, wie die WebRequest -Methode für den Project-Webdienst ändern.
Die SOAP-Header für Project PSI-Aufrufe Überwachungs-GUID hinzu: |
---|
|
Die GetStatusOfQueueJobs -Methode im folgenden Beispiel wird in einer Klasse mit dem Namen QueueSystemUtilities. GetStatusOfQueueJobs ist eine Überladung mit dem gleichen Methodennamen im Beispiel für ReadJobStatusSimple. Die Methode gibt den Status aller Aufträge mit der gleichen Tracking-ID. Aufträge in der Gruppe werden durch den Parameter trackingGuid angegeben. QueueSystemWS wird von der QueueSystem Webverweis einen beliebigen Namen.
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;
}
Im folgenden Codefragment wird normal Aufrufe der PSI-Methoden, in denen das Project -Objekt hinzugefügt die Überwachungs-GUID der SOAP-Header, wie im vorherigen Verfahren beschrieben.
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);
. . .
Aufrufe der QueueCreateProject und QueuePublish verwenden die gleiche Überwachungs-GUID, die in die SOAP-Header durch das ProjectDerived -Objekt festgelegt wird. Die QueuePublish -Methode erzeugt zusätzliche Warteschlangenaufträge beispielsweise das Senden der veröffentlichten Project-Daten auf die Berichtsdatenbank an. QueueStatusDataSet Listet den Status aller Aufträge, die die gleichen Tracking-ID und entweder abgeschlossenen Verarbeitung haben oder in der Warteschlange sind. In der folgenden Tabelle werden einige der Felder in der Tabelle QueueStatusDataSet.Status nach der Ausführung des vorherigen Codes.
Warteschlange ID |
Nachricht Typ |
Auftrag Abschluss State |
Warteschlange Position |
Prozent Vollständig |
Warteschlange Eintrittszeit |
Warteschlange Verarbeitung Zeit |
Warteschlange Ausgeführt Zeit |
Wait Zeit |
---|---|---|---|---|---|---|---|---|
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 ist ProjectCreate. Der Auftrag ist nicht mehr in der Warteschlange. JobState 4 ist Success.
QueueMessageType 30 ist PublishNotifications. Der Auftrag ist in der Warteschlange dritten; JobState 3 ist QueueJobProcessing.
QueueMessageType 24 ist ProjectPublish. Der Auftrag ist in der Warteschlange vierten; JobState 1 ist ReadyForProcessing. Die erwartete Wartezeit beträgt eine Sekunde.