Migra a la última Aspose.Tasks para Java
Aspose.Tasks para Java 8.1.0 es una versión renovada de la API que incluye cambios considerables desde la perspectiva de uso. Las diferencias clave de ambas implementaciones incluyen:
La API heredada se permite establecer campos públicos de varias clases de datos de proyectos, como proyectos, tareas, recursos, etc., mientras que la nueva implementación introduce establecer y obtener métodos para lograr lo mismo
Recalcular los métodos requeridos para ser llamados manualmente por el usuario en la API heredada después de ciertas operaciones, como asignaciones de recursos. El nuevo Aspose.Tasks para la API Java realiza la mayoría de estos cálculos automáticamente sin requerido la intervención del usuario.
La nueva API proporciona modos de recalculación manuales y automáticos similares a Microsoft Project (MSP). El modo manual calcula solo los campos necesarios, mientras que el modo automático lo recalcula todo. Esto elimina la necesidad de llamar a los métodos de recalculación manualmente y mejora el uso general de API.
Esta nueva API es incompatible con la API heredada y el objetivo de este artículo es ayudarlo a migrar su código a la nueva API. El artículo muestra muestras de código comparativo del legado y la nueva implementación de API, e incluye:
Configuración de propiedades de proyecto predeterminadas
La API heredada de Aspose.Tasks permitió establecer propiedades predeterminadas de un proyecto estableciendo directamente los atributos públicos de la clase del proyecto. Sin embargo, en la nueva implementación de API, expone el conjunto y obtiene métodos para lograr lo mismo.
Muestra de código API heredado
Aspose.Tasks
1// crear una instancia de proyecto
2
3Proyecto prj = nuevo proyecto ();
4
5// establecer propiedades predeterminadas
6
7prj.setsCheduleFromStart (verdadero);
8
9prj.setStartDate (prj.getStartDate ());
10
11prj.setDefaultStarttime (prj.getStartDate ());
12
13prj.setDefaultTaskType (TaskType.FixedDuration);
14
15prj.setDefaultStandardRate (15);
16
17Prj.setDefaultOvertimerate (12);
18
19prj.setDefaultTaskevmethod (ganador de valuemethodype.percentcomplete);
20
21prj.setDefaultFixedCostAccrual (CostaccrualType.prorated);
22
23// Guardar el proyecto en formato XML
24
25prj.save ("Project4.xml", SaveFileFormat.xml);
Nuevo aspose. Tasks para el enfoque de Java 8.x
Aspose.Tasks
1Proyecto Project = New Project ();
2
3// Establecer propiedades predeterminadas
4
5Project.set (prj.schedule_from_start, new NullableBool (true));
6
7Project.set (prj.default_start_time, proyecto.get (prj.start_date));
8
9Project.set (prj.default_task_type, tasktype.fixedDuration);
10
11Project.set (prj.default_standard_rate, 15d);
12
13Project.set (prj.default_overtime_rate, 12d);
14
15Project.set (prj.default_task_ev_method, ganadovaluemethodype.percentcomplete);
16
17Project.set (prj.default_fixed_cost_accrual, costaccrualtype.prorated);
18
19Project.save ("ProjectDefaultProps.xml", SaveFileFormat.xml);
20Aspose.Tasks
Crear y agregar calendario al proyecto
Para la funcionalidad adecuada de los elementos calendario agregados al proyecto, la API heredada requerida para recalcular los UID calendario. Sin embargo, en la nueva API, el recalculación de UID se tratan automáticamente y no hay necesidad de llamar manualmente los cálculos.
Muestra de código API heredado
1// crear una instancia de proyecto
2
3Proyecto prj = nuevo proyecto ();
4
5// Definir calendario
6
7Calendario cal1 = nuevo calendario ();
8
9cal1.setName ("sin información");
10
11Calendario cal2 = nuevo calendario (1);
12
13cal2.setName ("sin nombre");
14
15Calendario cal3 = nuevo calendario ("cal3");
16Aspose.Tasks
17prj.getCalendars (). add (cal1);
18
19prj.getCalendars (). add (cal2);
20
21prj.getCalendars (). add (cal3);
22
23prj.calccalendaruids ();
24prj.save ("Project.xml", SaveFileFormat.xml);
Nuevo aspose. Tasks para el enfoque de Java 8.x
1Proyecto prj = nuevo proyecto ();
2
3Calendario cal1 = prj.getCalendars (). Add ("sin información");
4
5Calendario cal2 = prj.getCalendars (). Add ("sin nombre");
6
7Calendario cal3 = prj.getCalendars (). Add ("cal3");
8
9prj.save ("Project.xml", SaveFileFormat.xml);
Hacer un calendario estándar
La recalculación del calendario no se requieren más en la nueva API de Aspose.Tasks en comparación con la API heredada.
Muestra de código API heredado
1Proyecto prj = nuevo proyecto ();
2
3// Definir calendario y hacerlo estándar
4
5Calendario cal1 = nuevo calendario ("mi cal");
6
7Calendario.makestandardcalendar (Cal1);
8
9prj.getCalendars (). add (cal1);
10
11prj.calccalendaruids ();
12
13prj.save ("Project.xml", SaveFileFormat.xml);
Nuevo aspose. Tasks para el enfoque de Java 8.x
1// crear una instancia de proyecto
2
3Proyecto ProAspose.Tasksoject ();
4
5// Definir calendario y hacerlo estándar
6
7Calendario cal1 = proyect.getCalendars (). Add ("my cal");
8
9Calendario.makestandardcalendar (Cal1);
10
11Project.save ("Project.xml", SaveFileFormat.xml);
Crear y agregar tarea al proyecto
Creando una nueva tarea en la API heredada, se requiere definir una tarea raíz, agregarla al proyecto como su tarea raíz y luego agregar una nueva tarea a esta tarea raíz cuando era niño. Sin embargo, la nueva API no necesita que defina la tarea raíz y la cuide automáticamente mientras agrega la primera tarea al proyecto.
Muestra de código API heredado
1Proyecto Project = New Project ();
2
3Tarea roottask = nueva tarea ();
4
5Tarea tskgen = nueva tarea ("tarea1");
6
7tskgen.setid (1);
8
9tskgen.setUid (1);
10
11java.util.calendar cal = java.util.calendar.getInstance ();
12
13Cal.set (2014, 04, 23, 0, 0, 0);
14
15tskgen.setStart (cal.gettime ());
16
17Cal.set (2014, 04, 25, 0, 0, 0);
18
19tskgen.setFinish (cal.gettime ());
20
21Project.setroottask (Roottask);
22
23Project.getroottask (). getChildren (). add (tskgen);
24
25Project.save ("Project.xml", SaveFileFormat.xml);
Nuevo aspose. Tasks para el enfoque de Java 8.x
1Proyecto Project = New Project ();
2
3Tarea tarea = proyecto.getroottask (). GetChildren (). Add ("tarea 1");
4
5java.util.calendar cal = java.util.calendar.getInstance ();
6
7Cal.Set (2014,3,4,0,0,0);
8
9task.set (tsk.start, cal.gettime ());
10
11// establecer la tarea de inicio del día
12
13Project.save ("CreateTasks.xml", SaveFileFormat.xml);
Crear y agregar recurso al proyecto
Los métodos * establecidos * y * get * se han agregado a la clase de recursos de la API para manipular los atributos relacionados con el recurso de un proyecto.
Muestra de código API heredado
1Proyecto Project = New Project ();
2
3Recursos res = nuevo recurso ("res1");
4
5res.setid (1);
6
7res.setUid (1);
8
9java.util.calendar cal = java.util.calendar.getInstance ();
10
11Cal.set (2014, 04, 23, 0, 0, 0);
12
13res.setStart (cal.gettime ());
14
15Cal.set (2014, 04, 25, 0, 0, 0);
16
17res.setFinish (cal.gettime ());
18
19Project.getResources (). add (res);
20
21Project.save ("Project.xml", SaveFileFormat.xml);
Nuevo aspose. Tasks para el enfoque de Java 8.x
1Proyecto Project = New Project ();
2
3Recurso rsc = proyecto.getResources (). Add ("r1");
4
5java.util.calendar cal = java.util.calendar.getInstance ();
6
7Cal.Set (2014,3,4,0,0,0);
8
9rsc.set (rsc.start, cal.gettime ());
10
11Cal.Set (2014,3,10,0,0,0);
12
13rsc.set (rsc.finish, cal.gettime ());
14
15Project.save ("CreaterSource.xml", SaveFileFormat.xml);
Crear y agregar asignación de recursos al proyecto
La clase * ResourceasSignment * también presenta los métodos * SET * y * GET * similares a otras colecciones de datos de la API, como tareas, recursos y enlaces de tareas.
Muestra de código API heredado
1Proyecto Project = New Project ();
2
3Tarea tskroot = new Task ();
4
5Tarea tarea = nueva tarea ("tarea");
6
7Recursos rsc = new Resource ();
8
9rsc.setStandardRate (BigDecimal.ValueOf (10));
10
11rsc.Stovertimerate (bigDecimal.ValueOf (15));
12
13Asignación de recursos de SurgeAssign = new ResourceAsSignment (tarea, RSC);
14
15asignación.setUid (1);
16
17java.util.calendar cal = java.util.calendar.getInstance ();
18
19Cal.set (2009, 8, 18, 0, 0, 0);
20
21asignación.setstart (cal.gettime ());
22
23Cal.Set (2009,8,20,0,0,0);
24
25asignación.setfinish (cal.gettime ());
26
27Project.setroottask (tskroot);
28
29Project.getroottask (). GetChildren (). ADD (Tarea);
30
31Project.getResources (). Add (RSC);
32
33Project.getResourceasSignments (). add (asignación);
34
35Project.save ("Project.xml", SaveFileFormat.xml);
Nuevo aspose. Tasks para el enfoque de Java 8.x
1Proyecto Project = New Project ();
2
3Tarea tarea = proyecto.getroottask (). GetChildren (). Add ("tarea");
4
5Recurso rsc = proyecto.getResources (). Add ("rsc");
6
7rsc.set (rsc.standard_rate, bigDecimal.ValueOf (10));
8
9rsc.set (rsc.overtime_rate, bigDecimal.ValueOf (15));
10
11Asignación de recursos de Signatment = Project.getResourCeaseSignments (). Add (Task, RSC);
12
13java.util.calendar cal = java.util.calendar.getInstance ();
14
15Cal.Set (2014,3,4,0,0,0);
16
17asignación.set (asn.start, cal.gettime ());
18
19Cal.Set (2014,3,4,0,0,0);
20
21asignación.set (asn.finish, cal.gettime ());
22
23Project.save ("ResourceasSignments.xml", SaveFileFormat.xml);