Escribir metadatos para MPP
Contents
[
Hide
Show
]Aspose.Tasks for Java proporciona una instalación para escribir metadatos a los archivos MPP para calendarios, tareas, enlaces de tareas, recursos y tareas de recursos.
Escribir metadatos a los archivos del proyecto de Microsoft
Los siguientes metadatos se usan en este ejemplo:
- Calendario
- CalendarName
- Tarea
- Contact
- IsMarked
- IgnoreWarnings
- Taller
- LagFormat
- LinkLag
- Recurso
- Type
- Iniciales
- MaxUnits
- Code
- Group
- EmailAddress
- NTAccount
- IsGeneric
- AccrueAt
- TeamAssignmentPool
- Costcenter
- Recursos de señalización
- Uid
- Work
- RemainingWork
- RegularWork
- Start
- Finish
Aquí está marcado e IgnoreWarnings son campos recientemente agregados para una tarea. De manera similar, para los recursos, se proporcionan las propiedades TeamAssignmentPool y CostCenter.
Los siguientes pasos se siguen en el código de muestra para demostrar cómo escribir metadatos en MPPS:
- Abra un nuevo archivo MPP en blanco.
- Agregue los horarios de trabajo el lunes del calendario del proyecto y cambie el nombre del calendario del proyecto.
- Agregue tres tareas con enlaces de tareas y retrasos.
- Agregue dos recursos, un trabajo presupuestario y un recurso de costo presupuestario (cuatro en total).
- Asigne recursos presupuestarios a la tarea raíz del proyecto (la tarea de resumen del proyecto).
- Asigne otros dos recursos a la primera y segunda tareas.
- Establezca la línea de base del proyecto.
- Agregue un nuevo atributo extendido de tarea.
- Guarde los cambios como un archivo MPP.
Escribir metadatos
1// The path to the documents directory.
2String dataDir = Utils.getDataDir(WriteMetadata.class);
3
4long OneSec = 10000000;
5long OneMin = 60 * OneSec;
6long OneHour = 60 * OneMin;
7long OneDayEightHour = 8 * OneHour;
8long OneDayTwentyFourHour = 24 * OneHour;
9
10Project project = new Project(dataDir + "New project 2010.mpp");
11java.util.Calendar calendar = java.util.Calendar.getInstance(TimeZone.getTimeZone("GMT"));
12calendar.set(2012, java.util.Calendar.DECEMBER, 7, 0, 0, 0);
13Date startDate = calendar.getTime();
14calendar.set(2013, java.util.Calendar.DECEMBER, 7, 0, 0, 0);
15Date toDate = calendar.getTime();
16
17WorkingTime wt = new WorkingTime();
18wt.setFromTime(startDate);
19wt.setToTime(toDate);
20
21WeekDay day = project.get(Prj.CALENDAR).getWeekDays().toList().get(1);
22day.getWorkingTimes().add(wt);
23
24project.get(Prj.CALENDAR).setName("CHANGED NAME!");
25
26Task task = project.getRootTask().getChildren().add("Task 1");
27task.set(Tsk.DURATION_FORMAT, TimeUnitType.Day);
28task.set(Tsk.DURATION, project.getDuration(3));
29task.set(Tsk.CONTACT, "Rsc 1");
30// new fields
31task.set(Tsk.IS_MARKED, true);
32task.set(Tsk.IGNORE_WARNINGS, true);
33
34Task task2 = project.getRootTask().getChildren().add("Task 2");
35task2.set(Tsk.DURATION_FORMAT, TimeUnitType.Day);
36task2.set(Tsk.CONTACT, "Rsc 2");
37
38project.getTaskLinks().add(task, task2, TaskLinkType.FinishToStart, project.getDuration(-1, TimeUnitType.Day));
39
40calendar.set(2013, java.util.Calendar.DECEMBER, 13, 9, 0, 0);
41startDate = calendar.getTime();
42project.set(Prj.START_DATE, startDate);
43
44Resource rsc = project.getResources().add("Rsc 1");
45rsc.set(Rsc.TYPE, ResourceType.Work);
46rsc.set(Rsc.INITIALS, "WR");
47rsc.set(Rsc.ACCRUE_AT, CostAccrualType.Prorated);
48rsc.set(Rsc.MAX_UNITS, 1d);
49rsc.set(Rsc.CODE, "Code 1");
50rsc.set(Rsc.GROUP, "Workers");
51rsc.set(Rsc.E_MAIL_ADDRESS, "1@gmail.com");
52rsc.set(Rsc.WINDOWS_USER_ACCOUNT, "user_acc1");
53rsc.set(Rsc.IS_GENERIC, new NullableBool(true));
54rsc.set(Rsc.ACCRUE_AT, CostAccrualType.End);
55rsc.set(Rsc.STANDARD_RATE, BigDecimal.valueOf(10));
56rsc.set(Rsc.STANDARD_RATE_FORMAT, RateFormatType.Day);
57rsc.set(Rsc.OVERTIME_RATE, BigDecimal.valueOf(15));
58rsc.set(Rsc.OVERTIME_RATE_FORMAT, RateFormatType.Hour);
59
60rsc.set(Rsc.IS_TEAM_ASSIGNMENT_POOL, true);
61rsc.set(Rsc.COST_CENTER, "Cost Center 1");
62
63ResourceAssignment assn = project.getResourceAssignments().add(task, rsc);
64assn.set(Asn.UID, 1);
65assn.set(Asn.WORK, task.get(Tsk.DURATION));
66assn.set(Asn.REMAINING_WORK, assn.get(Asn.WORK));
67assn.set(Asn.REGULAR_WORK, assn.get(Asn.WORK));
68task.set(Tsk.WORK, assn.get(Asn.WORK));
69
70rsc.set(Rsc.WORK, task.get(Tsk.WORK));
71assn.set(Asn.START, task.get(Tsk.START));
72assn.set(Asn.FINISH, task.get(Tsk.FINISH));
73
74// Add extended attribute for project and task
75ExtendedAttributeDefinition attr = ExtendedAttributeDefinition.createTaskDefinition(CustomFieldType.Flag,
76 ExtendedAttributeTask.Flag1, "My Flag Field");
77project.getExtendedAttributes().add(attr);
78
79ExtendedAttribute taskAttr = attr.createExtendedAttribute();
80taskAttr.setFlagValue(true);
81task2.getExtendedAttributes().add(taskAttr);
82
83project.save(dataDir + "updated.mpp", SaveFileFormat.MPP);