del método QueueSystem.GetJobGroupWaitTimeSimple
Determina el tiempo previsto máximo restante para que colas de proyectos y partes de horas procesar el grupo de trabajo especificado.
Espacio de nombres: WebSvcQueueSystem
Ensamblado: ProjectServerServices (en ProjectServerServices.dll)
Sintaxis
'Declaración
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/QueueSystem/GetJobGroupWaitTimeSimple", 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 GetJobGroupWaitTimeSimple ( _
trackingID As Guid _
) As Integer
'Uso
Dim instance As QueueSystem
Dim trackingID As Guid
Dim returnValue As Integer
returnValue = instance.GetJobGroupWaitTimeSimple(trackingID)
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/QueueSystem/GetJobGroupWaitTimeSimple", 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 int GetJobGroupWaitTimeSimple(
Guid trackingID
)
Parámetros
trackingID
Tipo: System.GuidSeguimiento de GUID (JobGroupGUID) asignado a varias tareas.
Valor devuelto
Tipo: System.Int32
Espera el número de segundos para todos los trabajos con el mismo trackingID para llevar a cabo.
Comentarios
El tiempo de espera esperado para trabajos sólo es aproximado, según los tiempos de espera promedio para trabajos de tipo similar. GetJobGroupWaitTime también tiene en cuenta la posición de los trabajos en la cola y la prioridad de correlación del trabajo.
Los nombres de los métodos PSI que utilizan la cola de proyecto o partes de horas que se inicie con cola, por ejemplo, QueueCreateProject y QueueUpdateTimesheet. Para establecer el GUID de seguimiento de los métodos PSI que utilizan la cola de proyecto o partes de horas, agregue el GUID de seguimiento al encabezado SOAP de cada servicio Web de PSI que se utiliza para las llamadas al método cola.
Permisos de Project Server
Permiso |
Descripción |
---|---|
Permite al usuario administrar la cola de Project Server. Permiso global. |
Ejemplos
El siguiente procedimiento muestra cómo modificar el método WebRequest para el servicio Web de proyecto.
Para agregar un GUID de seguimiento al encabezado SOAP para llamadas de PSI de Project: |
---|
|
El método GetExpectedGroupWaitTime en el siguiente ejemplo es en una clase denominada QueueSystemUtilities. El método devuelve el tiempo de espera esperado para todos los trabajos de cola relacionados con el método QueueProjectPublish . Trabajos en el grupo se especifican mediante el parámetro trackingGuid . QueueSystemWS es un nombre arbitrario de QueueSystem referencia Web.
public int GetAllExpectedGroupWaitTime(QueueSystemWS.QueueSystem q,
Guid trackingGuid)
{
int wait = q.GetJobGroupWaitTime(trackingGuid, msgType);
return wait;
}
El siguiente fragmento de código hace que las llamadas normales a los métodos PSI donde el objeto Project agrega el GUID de seguimiento al encabezado SOAP, tal como se describe en el procedimiento anterior.
using System.Threading;
using PSLibrary = Microsoft.Office.Project.Server.Library;
. . .
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);
// Try various wait times to see the effect of additional queue jobs
// spawned by QueuePublish.
Thread.Sleep(500);
QueueSystemWS.QueueMsgType msgType = QueueSystemWS.QueueMsgType.ReportingProjectPublish;
int jobGroupWaitTime = queueSystemUtils.GetAllExpectedGroupWaitTime(queueSystem, trackingGuid);
string waitTime = "After QueuePublish:\t\t" + jobGroupWaitTime.ToString() + " seconds for all related jobs";
Las llamadas de la QueueCreateProject y el QueuePublish usan el mismo GUID que se establece en los encabezados SOAP por el objeto ProjectDerived de seguimiento. El método QueuePublish genera trabajos en cola adicionales como enviar los datos del proyecto publicado en la base de datos de informes. El valor de jobGroupWaitTime muestra el tiempo de espera esperado de todos los trabajos que existen actualmente en las colas.
Vea también
Referencia
Espacio de nombres WebSvcQueueSystem