Implémenter les modes de calcul MS Project en Python

Microsoft Project propose trois modes de calcul : automatisé, manuel et aucun. Chaque mode offre un niveau différent de contrôle sur la façon dont le projet est mis à jour et recalculé. Dans cet article, nous apprendrons comment implémenter les modes de calcul MS Project par programmation en Python. Que vous migrez d’une planification manuelle vers une planification automatisée ou que vous ayez besoin de flexibilité dans la gestion des délais de votre projet, cet article vous fournira les informations et les ressources nécessaires à une telle transition. Commençons!

Cet article couvre les sujets suivants :

  1. API Python pour calculer un projet par programme
  2. Calcul manuel du projet
  3. Calcul automatique du projet
  4. Aucun mode de calcul de projet

API Python pour calculer un projet par programme

Nous utiliserons l’API Aspose.Tasks for Python pour implémenter le projet MS modes de calcul. Il propose les modes de calcul suivants pour calculer les valeurs des propriétés dépendantes :

  • Aucun – Ce mode définit uniquement les propriétés nécessaires et ne recalcule pas les dates et les coûts du projet.
  • Manuel – Ce mode définit uniquement les propriétés des objets dépendants sans recalculer les dates et les coûts du projet.
  • Automatique – Ce mode recalcule automatiquement les dates du projet et les propriétés de coût.

Veuillez télécharger le package ou installer l’API depuis PyPI à l’aide de la commande pip suivante dans la console :

pip install aspose-tasks

Calculer MS Project manuellement en Python

Nous pouvons définir le mode de calcul sur manuel et le vérifier en suivant les étapes ci-dessous :

  1. Créez une instance de la classe Project.
  2. Réglez le mode de calcul sur MANUEL.
  3. Précisez la date de début du projet.
  4. Ajoutez de nouvelles tâches, par exemple la tâche 1 et la tâche 2.
  5. Lire les propriétés de la tâche.
  6. Après cela, initialisez un objet de la classe TaskLinks et liez les tâches.
  7. Enfin, vérifiez la date de début et de fin de la tâche 2.

L’exemple de code suivant montre comment calculer manuellement un projet en Python.

# Cet exemple de code montre comment calculer le projet MS en utilisant le mode de calcul manuel en Python.
import aspose.tasks as tasks
from datetime import datetime, timedelta

# Créer une instance du projet
project = tasks.Project()

# Définir le mode de calcul sur Manuel
project.calculation_mode = tasks.CalculationMode.MANUAL

# Définir la date de début du projet
project.start_date = datetime(2015, 4, 15)

# Ajouter de nouvelles tâches
task1 = project.root_task.children.add("Task 1")
task2 = project.root_task.children.add("Task 2")

# Les propriétés nécessaires sont définies en mode manuel
print("Task1.Id Equals 1 : ", task1.id == 1)
print("Task1 OutlineLevel Equals 1 : ", task1.outline_level == 1)
print("Task1 Start Equals 15/04/2015 08:00 AM : ", task1.start) == datetime(2015, 4, 15, 8, 0, 0)
print("Task1 Finish Equals 15/04/2015 05:00 PM : ", task1.finish) == datetime(2015, 4, 15, 17, 0, 0)
print("Task1 Duration Equals 1 day : ", str(task1.duration) == "1 day")
print("Task2 Start Equals 15/04/2015 08:00 AM : ", task2.start == datetime(2015, 4, 15, 8, 0, 0))
print("Task2 Finish Equals 15/04/2015 05:00 PM : ", task2.finish == datetime(2015, 4, 15, 17, 0, 0))
print("Task2 Duration Equals 1 day : ", str(task2.duration) == "1 day")

# Lier deux tâches entre elles, leurs dates ne doivent pas être recalculées en mode manuel
link = project.task_links.add(task1, task2, tasks.TaskLinkType.FINISH_TO_START)

# Aucun changement dans les dates de la tâche 2
print("Task1 Start Equals Task2 Start : ", task1.start == task2.start)
print("Task1 Finish Equals Task2 Finish : ", task1.finish == task2.finish)
Task1.Id Equals 1 :  True
Task1 OutlineLevel Equals 1 :  True
Task1 Start Equals 15/04/2015 08:00 AM :  2015-04-15 08:00:00
Task1 Finish Equals 15/04/2015 05:00 PM :  2015-04-15 17:00:00
Task1 Duration Equals 1 day :  True
Task2 Start Equals 15/04/2015 08:00 AM :  True
Task2 Finish Equals 15/04/2015 05:00 PM :  True
Task2 Duration Equals 1 day :  True
Task1 Start Equals Task2 Start :  True
Task1 Finish Equals Task2 Finish :  True

Calcul automatique de projet en Python

De même, nous pouvons calculer le projet MS en utilisant le mode de calcul automatique en suivant les étapes mentionnées précédemment. Cependant, il suffit de définir le mode de calcul sur automatique à l’étape 2.

L’exemple de code suivant montre comment calculer le projet MS à l’aide du mode de calcul automatique en Python.

# Cet exemple de code montre comment calculer le projet MS en utilisant le mode de calcul automatique en Python.
import aspose.tasks as tasks
from datetime import datetime, timedelta

# Créer une instance du projet
project = tasks.Project()

# Définir le mode de calcul sur Automatique
project.calculation_mode = tasks.CalculationMode.AUTOMATIC

# Définir la date de début du projet
project.start_date = datetime(2015, 4, 15)

# Ajouter de nouvelles tâches
task1 = project.root_task.children.add("Task 1")
task2 = project.root_task.children.add("Task 2")

# Lier les tâches
link = project.task_links.add(task1, task2, tasks.TaskLinkType.FINISH_TO_START)

# Vérifier les dates recalculées
print("Task1 Start + 1 Equals Task2 Start : ", (task1.start + timedelta(days=1)) == task2.start)
print("Task1 Finish + 1 Equals Task2 Finish : ", (task1.finish + timedelta(days=1)) == task2.finish)
print("RootTask Finish Equals Task2 Finish : ", task2.finish == project.root_task.finish)
print("Project Finish Date Equals Task2 Finish : ", task2.finish == project.finish_date)
Task1 Start + 1 Equals Task2 Start :  True
Task1 Finish + 1 Equals Task2 Finish :  True
RootTask Finish Equals Task2 Finish :  True
Project Finish Date Equals Task2 Finish :  False

Aucun mode de calcul de projet en Python

Nous pouvons définir le mode de calcul sur AUCUN et le vérifier en suivant les étapes indiquées ci-dessous :

  1. Créez une instance de la classe Project.
  2. Définissez le mode de calcul sur Aucun.
  3. Précisez la date de début du projet.
  4. Ajoutez une nouvelle tâche, par exemple, Tâche 1.
  5. Lire les propriétés de la tâche.
  6. Après cela, définissez la durée de la tâche en jours.
  7. Enfin, vérifiez la date de début et de fin de la tâche.

L’exemple de code suivant montre comment définir le mode de calcul du projet MS sur Aucun à l’aide de Python.

# Cet exemple de code montre comment définir le mode de calcul du projet MS sur NONE en Python.
import aspose.tasks as tasks
from datetime import datetime, timedelta

# Créer une instance du projet
project = tasks.Project()

# Définir le mode de calcul sur Aucun
project.calculation_mode = tasks.CalculationMode.NONE

# Ajouter une nouvelle tâche
task = project.root_task.children.add("Task")

# Notez que même les identifiants n'ont pas été calculés
print("Task.Id Equals 0 : ", task.id == 0)
print("Task.OutlineLevel Equals 0 : ", task.outline_level == 0)
print("Task Start Equals DateTime.MinValue : ", task.start == datetime.min)
print("Task Finish Equals DateTime.MinValue : ", task.finish == datetime.min)
print("Task Duration Equals 0 mins : ", str(task.duration) == "0 mins")

# Définir la propriété de durée
task.duration = project.get_duration(2.0, tasks.TimeUnitType.DAY)
print("Task Duration Equals 2 days : ", str(task.duration) == "2 days")
print("Task Start Equals DateTime.MinValue  : ", task.start == datetime.min)
print("Task Finish Equals DateTime.MinValue  : ", task.finish == datetime.min)
Task.Id Equals 0 :  True
Task.OutlineLevel Equals 0 :  False
Task Start Equals DateTime.MinValue :  True
Task Finish Equals DateTime.MinValue :  True
Task Duration Equals 0 mins :  True
Task Duration Equals 2 days :  True
Task Start Equals DateTime.MinValue  :  True
Task Finish Equals DateTime.MinValue  :  True

Obtenez une licence gratuite

Vous pouvez obtenir une licence temporaire gratuite pour essayer la bibliothèque sans limitations d’évaluation.

Calculer un projet en Python – Ressources d’apprentissage

Outre la mise en œuvre des modes de calcul et le recalcul du calendrier et de la durée du projet MS, vous pouvez explorer diverses autres fonctionnalités de la bibliothèque à l’aide des ressources ci-dessous :

Conclusion

Dans cet article, nous avons appris comment définir les modes de calcul d’un projet par programmation en Python. Nous avons également vu comment les valeurs des propriétés dépendantes sont calculées dans chaque mode de calcul. En tirant parti d’Aspose.Tasks for Python via .NET, vous pouvez facilement intégrer ces fonctionnalités dans vos applications Python. En cas d’ambiguïté, n’hésitez pas à nous contacter sur notre forum d’assistance gratuit.

Voir également