2014-01-17 2 views
1

Я хочу, чтобы иметь возможность читать распределение ресурсов (на каждый день) для задачи в MS Project с помощью VSTOMS VSTO Project: Быстрее способ чтения назначений ресурсов

MS Project VSTO дает нам TimeScaleValues ​​API, который позволяет мы читаем задания ресурсов для задачи. Затем мы можем использовать цикл для повторения каждого дня.

Проблема в том, что для WBS, где каждая задача имеет начальную и конечную дату, охватывающую много месяцев, она вызывает значительное замедление (много дней для повторения x задач x # ресурсов на задачу).

Мне было интересно, есть ли более быстрый API для чтения всех назначений, что могло бы вернуть мне часы, назначенные на каждый день для ресурса для заданной задачи, в виде списка, разделенного запятыми?

ответ

1

Я думаю, что вы используете единственный доступный Api делать то, что вам нужно, но вот несколько советов (которые вы, возможно, уже делают), чтобы оптимизировать производительность:

  • Перед вами цикл через все присваивания к задаче, убедитесь, что значение, которое вы хотите проанализировать (например, рабочее значение, например), не равно нулю для этой задачи. Если он равен нулю, вам не нужно перебирать отдельное задание.
  • Прежде чем вы получите временные значения для задания, убедитесь, что функция assign.work не равно нулю. Если оно равно нулю, то вы знаете, что все временные значения также будут равны нулю, поэтому нет необходимости перебирать значения времени.
  • Убедитесь, что вы увеличиваете время между датами начала и окончания задания. Это позволит свести к минимуму количество периодов, через которые проходит цикл API.

Оптимизировав его как можно больше, я по-прежнему считаю, что это медленная работа, поэтому я уверен, что есть индикаторы прогресса/состояния, чтобы информировать пользователя во время его выполнения.

Не тот ответ, который вы искали, но я надеюсь, что это поможет.

+0

Да, я следую большинству из приведенных выше правил, и я показываю диалог выполнения по второму потоку. Я сделал запрос в команду MS Project, чтобы узнать, могут ли они обеспечить более быстрый/лучший способ сделать это, и, надеюсь, они придумают лучший API. –

+0

Извините, что не мог помочь, но дайте нам знать, как вы справляетесь. –

Смежные вопросы