Implementar modos de cálculo de MS Project en Python

Microsoft Project ofrece tres modos de cálculo: automatizado, manual y ninguno. Cada modo ofrece un nivel diferente de control sobre cómo se actualiza y recalcula el proyecto. En este artículo, aprenderemos cómo implementar los modos de cálculo de MS Project mediante programación en Python. Ya sea que esté migrando de la programación manual a la programación automatizada o necesite flexibilidad para administrar los plazos de su proyecto, este artículo le proporcionará la información y los recursos necesarios para dicha transición. ¡Empecemos!

Este artículo cubre los siguientes temas:

  1. API de Python para calcular el proyecto mediante programación
  2. Cálculo manual del proyecto
  3. Cálculo automático del proyecto
  4. Sin modo de cálculo de proyecto

API de Python para calcular el proyecto mediante programación

Usaremos la API Aspose.Tasks for Python para implementar el proyecto MS modos de cálculo. Proporciona los siguientes modos de cálculo para calcular los valores de las propiedades dependientes:

  • Ninguno: este modo establece solo las propiedades necesarias y no vuelve a calcular las fechas ni los costos del proyecto.
  • Manual: este modo establece solo las propiedades de los objetos dependientes sin volver a calcular las fechas y los costos del proyecto.
  • Automático: este modo vuelve a calcular las fechas del proyecto y las propiedades de costos automáticamente.

Por favor descargue el paquete o instale la API desde PyPI usando el siguiente comando pip en la consola:

pip install aspose-tasks

Calcular MS Project manualmente en Python

Podemos configurar el modo de cálculo en manual y verificarlo siguiendo los pasos a continuación:

  1. Cree una instancia de la clase Proyecto.
  2. Establezca el modo de cálculo en MANUAL.
  3. Especifique la fecha de inicio del proyecto.
  4. Agregue nuevas tareas, por ejemplo, Tarea 1 y Tarea 2.
  5. Leer las propiedades de la tarea.
  6. Después de eso, inicializa un objeto de la clase TaskLinks y vincula las tareas.
  7. Finalmente, verifique la fecha de inicio y finalización de la Tarea 2.

El siguiente ejemplo de código muestra cómo calcular manualmente un proyecto en Python.

# Este ejemplo de código demuestra cómo calcular el proyecto de MS usando el modo de cálculo manual en Python.
import aspose.tasks as tasks
from datetime import datetime, timedelta

# Crear una instancia del Proyecto
project = tasks.Project()

# Establecer el modo de cálculo en Manual
project.calculation_mode = tasks.CalculationMode.MANUAL

# Establecer fecha de inicio del proyecto
project.start_date = datetime(2015, 4, 15)

# Agregar nuevas tareas
task1 = project.root_task.children.add("Task 1")
task2 = project.root_task.children.add("Task 2")

# Las propiedades necesarias se configuran en modo manual.
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")

# Vincular dos tareas juntas, sus fechas no se recalcularán en modo manual
link = project.task_links.add(task1, task2, tasks.TaskLinkType.FINISH_TO_START)

# No hay cambios en las fechas de la Tarea 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

Cálculo automático de proyectos en Python

De manera similar, podemos calcular el proyecto MS usando el modo de cálculo automático siguiendo los pasos mencionados anteriormente. Sin embargo, sólo necesitamos configurar el modo de cálculo en automático en el paso 2.

El siguiente ejemplo de código muestra cómo calcular el proyecto de MS usando el modo de cálculo automático en Python.

# Este ejemplo de código demuestra cómo calcular el proyecto de MS usando el modo de cálculo automático en Python.
import aspose.tasks as tasks
from datetime import datetime, timedelta

# Crear una instancia del Proyecto
project = tasks.Project()

# Establecer el modo de cálculo en Automático
project.calculation_mode = tasks.CalculationMode.AUTOMATIC

# Establecer fecha de inicio del proyecto
project.start_date = datetime(2015, 4, 15)

# Agregar nuevas tareas
task1 = project.root_task.children.add("Task 1")
task2 = project.root_task.children.add("Task 2")

# Vincular tareas
link = project.task_links.add(task1, task2, tasks.TaskLinkType.FINISH_TO_START)

# Verificar las fechas recalculadas
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

Sin modo de cálculo de proyecto en Python

Podemos configurar el modo de cálculo en NINGUNO y verificarlo siguiendo los pasos que se detallan a continuación:

  1. Cree una instancia de la clase Proyecto.
  2. Establezca el modo de cálculo en Ninguno.
  3. Especifique la fecha de inicio del proyecto.
  4. Agregue una nueva tarea, por ejemplo, Tarea 1.
  5. Leer las propiedades de la tarea.
  6. Después de eso, establezca la duración de la tarea en días.
  7. Finalmente, verifique la fecha de inicio y finalización de la Tarea.

El siguiente ejemplo de código muestra cómo configurar el modo de cálculo del proyecto MS en ninguno usando Python.

# Este ejemplo de código demuestra cómo configurar el modo de cálculo del proyecto MS como NINGUNO en Python.
import aspose.tasks as tasks
from datetime import datetime, timedelta

# Crear una instancia del Proyecto
project = tasks.Project()

# Establecer el modo de cálculo en Ninguno
project.calculation_mode = tasks.CalculationMode.NONE

# Agregar una nueva tarea
task = project.root_task.children.add("Task")

# Tenga en cuenta que incluso los identificadores no se calcularon
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")

# Establecer propiedad de duración
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

Obtenga una licencia gratuita

Puede obtener una licencia temporal gratuita para probar la biblioteca sin limitaciones de evaluación.

Calcular proyecto en Python – Recursos de aprendizaje

Además de implementar modos de cálculo y recalcular el cronograma y la duración del proyecto de MS, puede explorar otras características de la biblioteca utilizando los siguientes recursos:

Conclusión

En este artículo, hemos aprendido cómo configurar modos de cálculo de proyectos mediante programación en Python. También hemos visto cómo se calculan los valores de las propiedades dependientes en cada modo de cálculo. Al aprovechar Aspose.Tasks for Python a través de .NET, puede incorporar fácilmente dicha funcionalidad en sus aplicaciones Python. En caso de cualquier ambigüedad, no dude en contactarnos en nuestro foro de soporte gratuito.

Ver también