Gestion des contraintes de tâche

Les contraintes de tâches sont utilisées pour définir l’horaire d’un projet Microsoft Project et définir lorsque les tâches doivent être démarrées ou terminées. Les contraintes peuvent être flexibles - démarrer ou se terminer dès que possible ou aussi tard que possible - ou inflexible. Les contraintes inflexibles sont liées à des dates spécifiques.

Travailler avec les contraintes

Les propriétés de contraintes et de contraintes sont exposées par la classe Tâche pour gérer les contraintes:

Définition des contraintes dans Microsoft Project

Pour définir des contraintes dans le projet Microsoft:

  1. Dans le menu View, sélectionnez Plus de vues puis Formulaire d’entrée de tâche.
  2. Double-cliquez sur une tâche sur le formulaire d’entrée de tâche.
  3. Sélectionnez l’onglet Advance.
  4. Définissez une contrainte en sélectionnant une option dans la liste Contrain Type et une date pour la liste Date de contrainte Liste.

Définition des contraintes dans Microsoft Project

Mise à jour des contraintes de tâche dans le projet Microsoft

Définition des contraintes avec Aspose.Tasks

La date de contrainte est na lorsque le type de contrainte est le plus tôt possible ou le plus tard possible. Pour les valeurs de date égales à NA, Aspose.Tasks utilise la valeur “1/1/2000” dans la version d’évaluation et DateTime.minvalue pour le produit sous licence. Dans le cas ci-dessous, nous prenons un fichier de projet source comme entrée et appliquons différents types de contraintes sur diverses tâches dans chaque cas. Les échantillons de code suivants montrent l’application de différents types de contraintes et l’instantané accompagné du résultat pour chaque cas.

Le fichier d’entrée

Modifier le fichier MPP avec des contraintes de tâche dans le projet Microsoft

Les échantillons de code ci-dessous définissent le type de type de contrainte défini pour démarrer au plus tôt.

 1// Create project instance
 2Project project = new Project(dataDir + "ConstraintStartNoEarlierThan.mpp");
 3            
 4// Set constraint Start No Earlier Than on task with Id 1
 5Task summary = project.getRootTask().getChildren().getById(1);
 6summary.set(Tsk.CONSTRAINT_TYPE, ConstraintType.StartNoEarlierThan);
 7        
 8java.util.Calendar cal = java.util.Calendar.getInstance();
 9cal.set(2013, 6, 3, 9, 0, 0);
10summary.set(Tsk.CONSTRAINT_DATE, cal.getTime());
11
12// Save project as pdf
13SaveOptions o = new PdfSaveOptions();
14o.setStartDate(project.get(Prj.START_DATE));
15o.setTimescale(Timescale.ThirdsOfMonths);
16project.save(dataDir + "project_StartNoEarlierThan_out.pdf", o);

Output file with Start No Earlier Than constraint

save MPP file with task constraints in Microsoft Project

The code samples below set the constraint type set to Finish No Earlier Than.

 1// Create project instance
 2Project project = new Project(dataDir + "ConstraintStartNoEarlierThan.mpp");
 3            
 4// Set constraint Start No Earlier Than on task with Id 1
 5Task summary = project.getRootTask().getChildren().getById(1);
 6summary.set(Tsk.CONSTRAINT_TYPE, ConstraintType.FinishNoEarlierThan);
 7        
 8java.util.Calendar cal = java.util.Calendar.getInstance();
 9cal.set(2013, 6, 1, 18, 0, 0);
10summary.set(Tsk.CONSTRAINT_DATE, cal.getTime());
11
12// Save project as pdf
13SaveOptions o = new PdfSaveOptions();
14o.setStartDate(project.get(Prj.START_DATE));
15o.setTimescale(Timescale.ThirdsOfMonths);
16project.save(dataDir + "project_StartNoEarlierThan_out.pdf", o);

Output file showing Finish No Earlier Than constraint

Finish No Earlier Than task constraint in Microsoft Project

The code samples below set the constraint type set to Must Start On.

 1// Create project instance
 2Project project = new Project(dataDir + "ConstraintStartNoEarlierThan.mpp");
 3        
 4// Set constraint Must Start On for task with Id 2
 5Task roof = project.getRootTask().getChildren().getById(2);
 6roof.set(Tsk.CONSTRAINT_TYPE, ConstraintType.MustFinishOn);
 7
 8java.util.Calendar cal = java.util.Calendar.getInstance();
 9cal.set(2013, 6, 1, 18, 0, 0);
10roof.set(Tsk.CONSTRAINT_DATE, cal.getTime());
11
12// Save project as pdf
13SaveOptions options = new PdfSaveOptions();
14options.setStartDate(project.get(Prj.START_DATE));
15options.setTimescale(Timescale.ThirdsOfMonths);
16project.save(dataDir + "project_MustStartOn_out.pdf", options);

Output file showing Must Start On constraint

Must Start On task constraint in Microsoft Project

The code samples below set the constraint type set to As Late As Possible.

 1// Create project instance
 2Project project = new Project(dataDir + "ConstraintStartNoEarlierThan.mpp");
 3        
 4// Set constraint As Late As Possible for task with Id 11
 5Task wallBoard = project.getRootTask().getChildren().getById(11);
 6wallBoard.set(Tsk.CONSTRAINT_TYPE, ConstraintType.AsLateAsPossible);            
 7            
 8// Save project as pdf
 9SaveOptions options = new PdfSaveOptions();
10options.setStartDate(project.get(Prj.START_DATE));
11options.setTimescale(Timescale.ThirdsOfMonths);
12project.save(dataDir + "project_AsLateAsPossible_out.pdf", options);

Output file showing As Late As Possible constraint

As Late As Possible task constraint in Microsoft Project

The code sample below shows the constraint type set to Must Finish On.

 1// Create project instance
 2Project project = new Project(dataDir + "ConstraintStartNoEarlierThan.mpp");
 3        
 4// Set constraint Must Finish On for task with Id 15
 5Task interiorFixtures = project.getRootTask().getChildren().getById(15);
 6interiorFixtures.set(Tsk.CONSTRAINT_TYPE, ConstraintType.MustFinishOn);
 7        
 8java.util.Calendar cal = java.util.Calendar.getInstance();
 9cal.set(2013, 9, 21, 18, 0, 0);
10interiorFixtures.set(Tsk.CONSTRAINT_DATE, cal.getTime());
11            
12// Save project as pdf
13SaveOptions options = new PdfSaveOptions();
14options.setStartDate(project.get(Prj.START_DATE));
15options.setTimescale(Timescale.ThirdsOfMonths);
16project.save(dataDir + "project_MustFinishOn_out.pdf", options);

Output file showing Must Finish On constraint

Must Finish On task constraint in Microsoft Project

Getting Constraints

This code sample displays any constraints found when traversing the tasks in the project to a command window.

 1Project project = new Project(dataDir + "Project2.mpp");
 2
 3// Create a ChildTasksCollector instance
 4ChildTasksCollector collector = new ChildTasksCollector();
 5
 6// Collect all the tasks from RootTask using TaskUtils
 7TaskUtils.apply(project.getRootTask(), collector, 0);
 8
 9// Parse through all the collected tasks
10for (Task tsk1 : collector.getTasks())
11{
12    if (tsk1.get(Tsk.CONSTRAINT_DATE).toString() == "1/1/2000")
13        System.out.println("NA");
14    else
15        System.out.println(tsk1.get(Tsk.CONSTRAINT_DATE).toString());
16
17    System.out.println(tsk1.get(Tsk.CONSTRAINT_TYPE).toString());
18}
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.