Écrire des métadonnées à MPP
Contents
[
Hide
Show
]Aspose.Tasks pour Java fournit une installation pour rédiger des métadonnées aux fichiers MPP pour les calendriers, les tâches, les liens de tâches, les ressources et les affectations de ressources.
Écriture de métadonnées aux fichiers du projet Microsoft
Les métadonnées suivantes sont utilisées dans cet exemple:
- Calendrier
- CalendarName
- Tâche
- Contact
- IsMarked
- IgnoreWarnings
- Link
- LagFormat
- LinkLag
- Ressource
- Type
- Initiales
- MaxUnits
- Code
- Group
- EmailAddress
- NTAccount
- IsGeneric
- AccrueAt
- TeamAssignmentPool
- Costaud
- Signignation des ressources
- Uid
- Work
- RemainingWork
- RegularWork
- Start
- Finish
Ici Ismarked et Ignorewarnings sont des champs nouvellement ajoutés pour une tâche. De même pour les ressources, les propriétés TeamAsignmentPool et CostCenter sont fournies.
Les étapes suivantes sont suivies dans l’exemple de code pour démontrer comment écrire des métadonnées sur MPPS:
- Ouvrez un nouveau fichier MPP vierge.
- Ajoutez des temps de travail le lundi du calendrier du projet et modifiez le nom du calendrier du projet.
- Ajoutez trois tâches avec des liens de tâche et des retards.
- Ajoutez deux ressources, un travail budgétaire et une ressource de coût budgétaire (quatre au total).
- Attribuer des ressources budgétaires à la tâche racine du projet (la tâche de résumé du projet).
- Attribuez deux autres ressources aux première et deuxième tâches.
- Définissez la ligne de base du projet.
- Ajoutez un nouvel attribut étendu de tâche.
- Enregistrer les modifications en tant que fichier MPP.
Écriture de métadonnées
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);