Generación de datos distribuidos en el tiempo para diferentes contornos de trabajo

Al gestionar cronogramas de proyectos, a menudo es necesario analizar cómo se distribuye el trabajo a lo largo del tiempo para las distintas asignaciones de recursos. Aspose.Tasks for .NET hace esto posible generando datos distribuidos en el tiempo para las asignaciones de recursos según distintos contornos de trabajo. Esto permite a los desarrolladores simular, controlar e informar sobre el uso de los recursos con mayor precisión.

Generación de datos distribuidos en el tiempo para contornos de trabajo

Un contorno de trabajo define cómo se asigna el trabajo a lo largo de la duración de una tarea. Aspose.Tasks for .NET permite aplicar distintos contornos (como Flat, Back Loaded, Front Loaded, Turtle, Bell, etc.) y generar los datos distribuidos en el tiempo correspondientes. Los datos generados se obtienen utilizando el TimeScaleData método, que requiere las fechas de inicio y finalización del proyecto como parámetros de entrada.

Ejemplo de código

El siguiente ejemplo asigna diferentes tipos de contornos de trabajo a un recurso y recupera sus datos distribuidos en el tiempo para su análisis:

 1Project project = new Project("New Project.mpp");
 2
 3// Get the first task of the Project
 4Task task = project.RootTask.Children.GetById(1);
 5
 6// Get the First Resource Assignment of the Project
 7ResourceAssignment firstRA = project.ResourceAssignments.ToList()[0];
 8
 9// Flat contour is default contour
10Console.WriteLine("Flat contour");
11
12var tdList = task.GetTimephasedData(project.Get(Prj.StartDate), project.Get(Prj.FinishDate));
13foreach (TimephasedData td in tdList)
14{
15    Console.WriteLine(td.Start.ToShortDateString() + " " + td.Value);
16}
17
18// Change contour
19firstRA.Set(Asn.WorkContour, WorkContourType.Turtle);
20Console.WriteLine("Turtle contour");
21tdList = task.GetTimephasedData(project.Get(Prj.StartDate), project.Get(Prj.FinishDate));
22foreach (TimephasedData td in tdList)
23{
24    Console.WriteLine(td.Start.ToShortDateString() + " " + td.Value);
25}
26
27// Change contour
28firstRA.Set(Asn.WorkContour, WorkContourType.BackLoaded);
29Console.WriteLine("BackLoaded contour");
30tdList = task.GetTimephasedData(project.Get(Prj.StartDate), project.Get(Prj.FinishDate));
31foreach (TimephasedData td in tdList)
32{
33    Console.WriteLine(td.Start.ToShortDateString() + " " + td.Value);
34}
35
36// Change contour
37firstRA.Set(Asn.WorkContour, WorkContourType.FrontLoaded);
38Console.WriteLine("FrontLoaded contour");
39tdList = task.GetTimephasedData(project.Get(Prj.StartDate), project.Get(Prj.FinishDate));
40foreach (TimephasedData td in tdList)
41{
42    Console.WriteLine(td.Start.ToShortDateString() + " " + td.Value);
43}
44
45// Change contour
46firstRA.Set(Asn.WorkContour, WorkContourType.Bell);
47Console.WriteLine("Bell contour");
48tdList = task.GetTimephasedData(project.Get(Prj.StartDate), project.Get(Prj.FinishDate));
49foreach (TimephasedData td in tdList)
50{
51    Console.WriteLine(td.Start.ToShortDateString() + " " + td.Value);
52}
53
54// Change contour
55firstRA.Set(Asn.WorkContour, WorkContourType.EarlyPeak);
56Console.WriteLine("EarlyPeak contour");
57tdList = task.GetTimephasedData(project.Get(Prj.StartDate), project.Get(Prj.FinishDate));
58foreach (TimephasedData td in tdList)
59{
60    Console.WriteLine(td.Start.ToShortDateString() + " " + td.Value);
61}
62
63// Change contour
64firstRA.Set(Asn.WorkContour, WorkContourType.LatePeak);
65Console.WriteLine("LatePeak contour");
66tdList = task.GetTimephasedData(project.Get(Prj.StartDate), project.Get(Prj.FinishDate));
67foreach (TimephasedData td in tdList)
68{
69    Console.WriteLine(td.Start.ToShortDateString() + " " + td.Value);
70}
71
72// Change contour
73firstRA.Set(Asn.WorkContour, WorkContourType.DoublePeak);
74Console.WriteLine("DoublePeak contour");
75tdList = task.GetTimephasedData(project.Get(Prj.StartDate), project.Get(Prj.FinishDate));
76foreach (TimephasedData td in tdList)
77{
78    Console.WriteLine(td.Start.ToShortDateString() + " " + td.Value);
79}

En este código, cada contorno de trabajo se aplica a la asignación de recurso y se muestran los datos distribuidos en el tiempo generados. Esto facilita ver cómo se distribuye el trabajo a lo largo de la duración de la asignación según el tipo de contorno.

Preguntas frecuentes

P: ¿Qué es un contorno de trabajo en Microsoft Project?

P: ¿Cómo genera Aspose.Tasks los datos distribuidos en el tiempo?

P: ¿Puedo generar datos distribuidos en el tiempo para varias asignaciones a la vez?

P: ¿Necesito tener Microsoft Project instalado para generar datos distribuidos en el tiempo?

Conclusión

En este artículo, exploramos cómo generar datos distribuidos en el tiempo para distintos contornos de trabajo de las asignaciones de recursos usando Aspose.Tasks for .NET. Al aplicar varios contornos y recuperar los datos correspondientes, los desarrolladores pueden analizar mejor las cargas de trabajo de los recursos, mejorar la previsión del proyecto y generar informes detallados de uso de forma programática.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.