Implementieren Sie MS Project-Berechnungsmodi in Python

Microsoft Project bietet drei Berechnungsmodi: automatisiert, manuell und keine. Jeder Modus bietet ein anderes Maß an Kontrolle darüber, wie das Projekt aktualisiert und neu berechnet wird. In diesem Artikel erfahren Sie, wie Sie die Berechnungsmodi von MS Project programmgesteuert in Python implementieren. Unabhängig davon, ob Sie von der manuellen Planung auf die automatisierte Planung umsteigen oder Flexibilität bei der Verwaltung Ihrer Projekttermine benötigen, bietet Ihnen dieser Artikel die Informationen und Ressourcen, die Sie für einen solchen Übergang benötigen. Lass uns anfangen!

Dieser Artikel behandelt die folgenden Themen:

  1. Python-API zur programmgesteuerten Berechnung von Projekten
  2. Manuelle Projektberechnung
  3. Automatische Projektberechnung
  4. Kein Projektberechnungsmodus

Python-API zur programmgesteuerten Berechnung von Projekten

Wir werden die API Aspose.Tasks for Python verwenden, um die Berechnungsmodi des MS-Projekts zu implementieren. Es bietet die folgenden Berechnungsmodi zur Berechnung der Werte abhängiger Eigenschaften:

  • Keine – Dieser Modus legt nur notwendige Eigenschaften fest und berechnet Projekttermine und -kosten nicht neu.
  • Manuell – In diesem Modus werden nur abhängige Objekteigenschaften festgelegt, ohne dass Projektdaten und -kosten neu berechnet werden.
  • Automatisch – Dieser Modus berechnet Projektdaten und Kosteneigenschaften automatisch neu.

Bitte laden Sie das Paket herunter oder installieren Sie die API von PyPI, indem Sie den folgenden Pip-Befehl in der Konsole verwenden:

pip install aspose-tasks

Berechnen Sie MS Project manuell in Python

Wir können den Berechnungsmodus auf manuell einstellen und ihn überprüfen, indem wir die folgenden Schritte ausführen:

  1. Erstellen Sie eine Instanz der Project Klasse.
  2. Stellen Sie den Berechnungsmodus auf MANUAL ein.
  3. Geben Sie das Projektstartdatum an.
  4. Fügen Sie neue Aufgaben hinzu, z. B. Aufgabe 1 und Aufgabe 2.
  5. Aufgabeneigenschaften lesen.
  6. Anschließend initialisieren Sie ein Objekt der TaskLinks Klasse und verknüpfen Aufgaben.
  7. Überprüfen Sie abschließend das Start und Enddatum von Aufgabe 2.

Das folgende Codebeispiel zeigt, wie man ein Projekt in Python manuell berechnet.

# Dieses Codebeispiel zeigt, wie das MS-Projekt im manuellen Berechnungsmodus in Python berechnet wird.
import aspose.tasks as tasks
from datetime import datetime, timedelta

# Erstellen Sie eine Instanz des Projekts
project = tasks.Project()

# Stellen Sie den Berechnungsmodus auf Manuell ein
project.calculation_mode = tasks.CalculationMode.MANUAL

# Legen Sie das Startdatum des Projekts fest
project.start_date = datetime(2015, 4, 15)

# Fügen Sie neue Aufgaben hinzu
task1 = project.root_task.children.add("Task 1")
task2 = project.root_task.children.add("Task 2")

# Die notwendigen Eigenschaften werden im manuellen Modus eingestellt
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")

# Wenn Sie zwei Aufgaben miteinander verknüpfen, werden ihre Termine im manuellen Modus nicht neu berechnet
link = project.task_links.add(task1, task2, tasks.TaskLinkType.FINISH_TO_START)

# Keine Änderung der Termine für Aufgabe 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

Automatische Projektberechnung in Python

Ebenso können wir das MS-Projekt im automatischen Berechnungsmodus berechnen, indem wir die zuvor genannten Schritte ausführen. Allerdings müssen wir in Schritt 2 lediglich den Berechnungsmodus auf „Automatisch“ stellen.

Das folgende Codebeispiel zeigt, wie das MS-Projekt mithilfe des automatischen Berechnungsmodus in Python berechnet wird.

# Dieses Codebeispiel zeigt, wie das MS-Projekt mithilfe des automatischen Berechnungsmodus in Python berechnet wird.
import aspose.tasks as tasks
from datetime import datetime, timedelta

# Erstellen Sie eine Instanz des Projekts
project = tasks.Project()

# Stellen Sie den Berechnungsmodus auf Automatisch ein
project.calculation_mode = tasks.CalculationMode.AUTOMATIC

# Legen Sie das Startdatum des Projekts fest
project.start_date = datetime(2015, 4, 15)

# Fügen Sie neue Aufgaben hinzu
task1 = project.root_task.children.add("Task 1")
task2 = project.root_task.children.add("Task 2")

# Aufgaben verknüpfen
link = project.task_links.add(task1, task2, tasks.TaskLinkType.FINISH_TO_START)

# Überprüfen Sie die neu berechneten Daten
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

Kein Projektberechnungsmodus in Python

Wir können den Berechnungsmodus auf NONE setzen und dies überprüfen, indem wir die folgenden Schritte ausführen:

  1. Erstellen Sie eine Instanz der Project Klasse.
  2. Stellen Sie den Berechnungsmodus auf „Keine“ ein.
  3. Geben Sie das Projektstartdatum an.
  4. Fügen Sie eine neue Aufgabe hinzu, z. B. Aufgabe 1.
  5. Aufgabeneigenschaften lesen.
  6. Legen Sie anschließend die Aufgabendauer in Tagen fest.
  7. Überprüfen Sie abschließend das Start und Enddatum der Aufgabe.

Das folgende Codebeispiel zeigt, wie Sie mit Python den MS-Projektberechnungsmodus auf „Keine“ setzen.

# Dieses Codebeispiel zeigt, wie Sie den Berechnungsmodus des MS-Projekts in Python auf NONE festlegen.
import aspose.tasks as tasks
from datetime import datetime, timedelta

# Erstellen Sie eine Instanz des Projekts
project = tasks.Project()

# Stellen Sie den Berechnungsmodus auf „Keine“ ein
project.calculation_mode = tasks.CalculationMode.NONE

# Fügen Sie eine neue Aufgabe hinzu
task = project.root_task.children.add("Task")

# Beachten Sie, dass gerade IDs nicht berechnet wurden
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")

# Legen Sie die Eigenschaft „Dauer“ fest
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

Holen Sie sich eine kostenlose Lizenz

Sie können eine kostenlose temporäre Lizenz erwerben, um die Bibliothek ohne Evaluierungseinschränkungen auszuprobieren.

Projekt in Python berechnen – Lernressourcen

Neben der Implementierung von Berechnungsmodi und der Neuberechnung von MS-Projektzeitplan und -dauer können Sie mithilfe der folgenden Ressourcen verschiedene andere Funktionen der Bibliothek erkunden:

Abschluss

In diesem Artikel haben wir gelernt, wie man Projektberechnungsmodi programmgesteuert in Python festlegt. Wir haben auch gesehen, wie Werte abhängiger Eigenschaften in den einzelnen Berechnungsmodi berechnet werden. Durch die Nutzung von Aspose.Tasks for Python über .NET können Sie diese Funktionalität problemlos in Ihre Python-Anwendungen einbetten. Bei Unklarheiten wenden Sie sich bitte an unser kostenloses Support-Forum.

Siehe auch