QueueSystem.ReadJobStatus - Méthode
Obtient l'état des travaux spécifiés dans le Service de mise en attente de Project Server.
Espace de noms : WebSvcQueueSystem
Assembly : ProjectServerServices (dans ProjectServerServices.dll)
Syntaxe
'Déclaration
<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
'Utilisation
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
)
Paramètres
qsrDS
Type : WebSvcQueueSystem.QueueStatusRequestDataSetLe QueueStatusRequestDataSet.StatusRequestRow peut spécifier l'état d'achèvement de travaux, suivi du GUID (JobGroupGUID), GUID du travail et le type de message de file d'attente.
includeWaitTime
Type : System.BooleanSi true, incluez le champ de délai d'attente attendue.
sortColumn
Type : WebSvcQueueSystem.SortColumnSpécifie le champ à trier dans la liste des travaux.
sortOrder
Type : WebSvcQueueSystem.SortOrderSpécifie si à trier et dans quel ordre.
Valeur renvoyée
Type : WebSvcQueueSystem.QueueStatusDataSet
État des travaux demandé, avec les données QueueStatusDataSet.StatusRow pour chaque travail.
Remarques
ReadJobStatus peut renvoyer des données d'état des travaux spécifiques ou d'un groupe de projets qui ont le même GUID de suivi.
Méthodes PSI qui utilisent une file d'attente commencent par le mot en file d'attente dans le nom de la méthode. Pour définir le GUID de suivi pour les méthodes PSI qui utilisent la file d'attente projet ou feuille de temps, ajouter le GUID de suivi à l'en-tête SOAP de chaque service Web de la PSI que vous utilisez pour les appels de méthode en file d'attente.
Autorisations Project Server
Autorisation |
Description |
---|---|
Permet à l'utilisateur de gérer la file d'attente de Project Server. Autorisation globale. |
Exemples
La procédure suivante montre comment modifier la méthode WebRequest pour le service Web de projet.
Pour ajouter un GUID de suivi à l'en-tête SOAP pour les appels PSI Project : |
---|
|
La méthode GetStatusOfQueueJobs dans l'exemple suivant est dans une classe nommée QueueSystemUtilities. GetStatusOfQueueJobs est une surcharge portant le même nom de méthode dans l'exemple de ReadJobStatusSimple. La méthode renvoie l'état de tous les travaux avec le même ID de suivi. Les travaux du groupe sont spécifiés par le paramètre trackingGuid . QueueSystemWS est un nom arbitraire de la référence Web 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;
}
Le fragment de code suivant effectue des appels normales pour les méthodes PSI dans laquelle l'objet Project ajoute le GUID de suivi à l'en-tête SOAP, comme décrit dans la procédure précédente.
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);
. . .
Les appels à la fois les QueueCreateProject et QueuePublish utilisent même GUID, qui est définie dans les en-têtes SOAP par l'objet ProjectDerived de suivi. La méthode QueuePublish engendre des travaux en file d'attente supplémentaires telles qu'envoyer les données de projet publié à la base de données de création de rapports. QueueStatusDataSet indique l'état de tous les travaux qui ont le même ID de suivi et ont un traitement terminé ou figurant dans la file d'attente. Le tableau suivant montre certains champs dans la table QueueStatusDataSet.Status après l'exécution du code précédent.
File d’attente ID |
Message Type |
Travail Saisie semi-automatique State |
File d’attente Position |
% Installation complète |
File d’attente Heure d’entrée |
File d’attente Traitement Time |
File d’attente Effectuée Time |
Wait 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 est ProjectCreate. Le travail n'est plus dans la file d'attente ; JobState 4 est Success.
QueueMessageType 30 est PublishNotifications. Le travail est la troisième dans la file d'attente ; JobState 3 est QueueJobProcessing.
QueueMessageType 24 est ProjectPublish. Le travail est le quatrième sur la file d'attente ; JobState 1 est ReadyForProcessing. Le délai d'attente attendue est une seconde.
Voir aussi
Référence
WebSvcQueueSystem - Espace de noms