Настройка производительности Project Online

С запуском Project Online несколько лет назад организации всех размеров смогли использовать широкий набор возможностей корпорации Майкрософт по управлению портфелем проектов (PPM) в рамках нашей Office 365 облачной инфраструктуры.

Хотя одним из очевидных преимуществ использования облачной службы является отсутствие необходимости иметь дело с развертыванием, настройкой и настройкой оборудования и программного обеспечения, все еще есть некоторые шаги, которые можно предпринять, чтобы обеспечить оптимальную производительность вашей организации Project Online.

Project Online предлагает множество параметров конфигурации и настройки, но настройки могут повлиять на производительность. В этой статье рассматриваются влияние на производительность и компромиссы некоторых из наиболее распространенных параметров Project Online, чтобы вы могли принимать обоснованные решения при настройке и настройке Project Online.

Эта статья является частью проекта "Планирование сети и настройка производительности для Office 365".

Рекомендации по Office 365 и SharePoint Online

Существует множество сведений о планировании сети и настройке производительности для SharePoint Online и Office 365. Вся эта информация относится к Project Online клиентам, и к ней следует обращаться в дополнение к следующим рекомендациям, характерным для Project Online.

настройка и настройка Project Online

Можно настроить и настроить многие элементы сайта Project Web App, от административных параметров до разрешений и от параметров совместной работы до внешнего вида. Давайте рассмотрим параметры, которые могут повлиять на общую производительность сайта Project Web App.

Мы рассмотрим:

  • Режимы разрешений безопасности

  • Типы корпоративных проектов

    • Конфигурация сайта проекта

    • Механизмы синхронизации между Project Online и SharePoint Online

  • Синхронизация пула ресурсов Active Directory

  • Настройка пользовательского интерфейса и внешний вид

  • Страницы сведений о проекте (PDP) и рабочие процессы

  • Обработка событий

  • OData и отчеты

  • квота Project Online

(Некоторые из этих сведений относятся к Project Server 2013 и Project Server 2016 также.)

Режимы разрешений: SharePoint или Project

В Project Online и Project Server 2013 мы представили новую упрощенную модель разрешений, называемую режимом разрешений SharePoint, в отличие от устаревшего режима разрешений Project. Сравнение обоих режимов можно найти в Technet.

Новые экземпляры Project Online по умолчанию подготавливаются в режиме разрешений SharePoint, и мы уверены, что этот режим будет соответствовать потребностям подавляющего большинства клиентов. С помощью этого режима можно управлять авторизацией пользователей с помощью обычных групп и разрешений SharePoint.

Режим разрешений проекта обеспечивает высокую степень настраиваемых возможностей, но он может быть по цене с точки зрения производительности. Если вы создаете сотни категорий и в значительной степени полагаетесь на динамические разрешения через структуру разбивки ресурсов (RBS), это может замедлить работу пользователей с большим количеством содержимого, таких как администраторы и менеджеры портфеля.

Примечание.

При переключении между режимом разрешений SharePoint и Project Server удаляются все параметры, связанные с безопасностью. При переключении из режима разрешений SharePoint в классический режим разрешений Project Server необходимо вручную настроить структуру разрешений безопасности в Project Server 2013 и Project Server 2016. При переключении из режима разрешений Project Server обратно в режим разрешений SharePoint сведения о разрешениях безопасности удаляются из Project Server 2013 и Project Server 2016.

Рекомендации:

По возможности оставьте режим разрешений SharePoint по умолчанию для повышения общей производительности. Если вам нужно использовать режим разрешений Project, ограничьте настройки как можно больше.

Типы корпоративных проектов

Корпоративные типы проектов (EPT) представляет собой оболочку, которая инкапсулирует этапы, этапы, один рабочий процесс и страницы сведений о проекте (PDP).

EpTs также позволяют определить:

  • Конфигурация сайта проекта

  • Механизмы синхронизации между Project Online и SharePoint Online

Конфигурация сайта проекта

Сайты проектов основаны на основных функциях SharePoint. Создание сайтов проектов не является упрощенным процессом, и принятие решения о том, когда и когда ваша организация может нуждаться в сайтах проектов, может в значительной степени улучшить общее взаимодействие с конечными пользователями.

Многие организации используют Project Online, чтобы собирать и оценивать предложения по проектам, прежде чем принимать решение о том, какие проекты финансировать. Если сайты проектов настроены на автоматическое создание при первой публикации проекта, то все предложения проекта, даже те, которые не делают вырезки, получают сайт проекта. Эти ненужные сайты должны быть очищены вручную после этого.

Если вы решили использовать сайты проектов, лучше всего позволить пользователю выбрать, когда следует создать свой сайт совместной работы, или, что еще лучше, создать его рабочим процессом, как только предложение проекта достигнет определенного этапа.

SharePoint Online в настоящее время SharePoint Online ограничивает количество дочерних сайтов, которые можно создать для каждого семейства веб-сайтов. EPT позволяет определить, в каком семействе веб-сайтов создавать новые сайты проектов. Это позволит создать сайт проекта для каждого проекта, так как их можно распределить между несколькими семействами веб-сайтов.

Проекты сайтов в семействах веб-сайтов PWA.

Например, если у вас есть семейство веб-сайтов, выделенное для ИТ-отдела, вы можете настроить ит-проекты EPT для создания сайтов проектов https://contoso.sharepoint.com/sites/IT на .

Расположение создания сайта проекта.

Рекомендации:

Если ваша организация использует сайты проектов, выберите параметр, чтобы создать их по запросу, а не автоматически. Это ускоряет работу с первой публикацией и позволяет избежать создания ненужных сайтов и содержимого.

Для каждого EPT этот параметр можно настроить следующим образом:

  1. В разделе Параметры Project Web App выберите Корпоративные типы проектов.

  2. Выберите EPT, на который необходимо изменить параметр.

  3. На странице параметров EPT в разделе Сайт проекта выберите Разрешить пользователям выбирать.

    Параметры создания сайта проекта.

    Создание сайтов проектов в собственном семействе веб-сайтов с помощью EPT. Оставьте количество сайтов проектов в семействе веб-сайтов ниже ограничений SharePoint Online SharePoint Online.

Что вы синхронизируете?

Project Online работает поверх SharePoint Online так же, как Project Server работает поверх SharePoint Server. В результате мы должны синхронизировать определенное количество компонентов между двумя системами. Такая синхронизация может занять много времени и, в зависимости от бизнес-потребностей, иногда может оказаться ненужным. В этой статье рассматриваются все эти различные системы синхронизации, которые помогут вам решить, какие из них вам нужны, а какие можно безопасно отключить. Некоторые из этих параметров уже отключены по умолчанию.

В следующих разделах мы обсудим:

  • Синхронизация разрешений пользователей для сайта проекта

  • Синхронизация списков задач SharePoint для корпоративных проектов

Синхронизация разрешений пользователя

Сайты проектов — это рабочие области, в которых команды проектов могут совместно работать, отправлять документы и создавать проблемы. При включении синхронизации разрешений пользователей каждый раз, когда пользователю предоставляется разрешение на проект, обновляются соответствующие разрешения сайта проекта.

Такая синхронизация происходит каждый раз при публикации проекта. Компромиссом для удобства синхронизации является производительность, например, чем больше пользователей и сайтов необходимо синхронизировать, тем медленнее операция, особенно если вы выполняете массовую публикацию, импортируете или создаете несколько проектов (с сайтами проектов) или обновляете членство в группах, что потребует повторной синхронизации разрешений сайта проекта.

Для каждого EPT можно определить, включена ли синхронизация разрешений пользователей.

Примечание.

Если сайты проектов создаются в семействе веб-сайтов, отличном от того, где расположен сайт Project Web App (например, это место, https://contoso.sharepoint.com/sites/pwa где находится Project Web App, а EPT создает сайты проектов в https://contoso.sharepoint.com/sites/IT), синхронизация разрешений пользователей не поддерживается.

Рекомендации:

Настоятельно рекомендуется отключить параметр Синхронизация разрешений сайта Project, если в развертывании верно следующее:

  • У вас есть большое количество ресурсов (>1000)

  • У вас есть большое количество проектов, для которых требуется сайт проекта (>1000)

  • У вас есть большое количество ресурсов, которым необходимо предоставить доступ к большинству сайтов Project.

  • Сайты проектов создаются за пределами семейства веб-сайтов по умолчанию (синхронизация отключена)

Ниже приведены некоторые варианты управления разрешениями сайта Project.

  • Если у ваших проектных групп низкая текучесть, попробуйте отключить синхронизацию разрешений сайта Project, чтобы повысить производительность публикации проекта и страниц сведений о проекте. Затем вам придется вручную предоставлять или удалять разрешения на сайты проекта каждый раз, когда кто-то присоединяется к команде проекта или покидает ее.

  • Если доступ должен быть предоставлен всем пользователям в PWA и сопоставляется с существующими разрешениями группы, рассмотрите возможность настройки сайтов Проекта для наследования от родительского сайта PWA.

  • Если доступ к сайту соответствует определенным ролям, создайте одну или несколько групп, которые сопоставляются с этими ролями (возможно, если синхронизация групп включена, можно использовать те же группы) и предоставьте этим группам доступ к сайту project.

Для каждого EPT можно включить синхронизацию разрешений пользователей, выполнив следующие действия:

  1. В разделе Параметры Project Web App выберите Корпоративные типы проектов.

  2. Выберите EPT, на который необходимо изменить параметр.

  3. На странице параметров EPT в разделе Синхронизация выберите Синхронизация разрешений пользователя.

    Синхронизация разрешений пользователей.

Синхронизация списков задач SharePoint для корпоративных проектов

Синхронизация списков задач SharePoint по умолчанию отключена, чтобы повысить скорость публикации проекта. Это также помогает ускорить переход между страницами сведений о проекте. Если пользователи полагаются на список задач и его визуализацию временной шкалы на сайте Project, вы можете включить эту функцию и проверить, является ли ее влияние на производительность публикации проекта разумным.

Примечание.

Если сайты проектов создаются в семействе веб-сайтов, отличном от того, где расположен сайт Project Web App (например, https://contoso.sharepoint.com/sites/pwa где находится Project Web App, а EPT создает сайты проектов в https://contoso.sharepoint.com/sites/IT), синхронизация списков задач SharePoint не поддерживается.

Рекомендация

Параметр Синхронизировать списки задач SharePoint предназначен для использования с небольшими планами проектов. Если проект содержит большое количество задач, синхронизация их при публикации займет некоторое время, так как каждая задача должна обновляться по одной. Например, синхронизация плана проекта из 500 задач со списком задач SharePoint занимает несколько минут. Несмотря на то, что задание очереди находится в отдельной корреляции и не блокирует сохранение и редактирование плана проекта, рекомендуется не включать параметр Синхронизировать списки задач SharePoint. Рекомендуется синхронизировать только проекты с менее чем 250 задачами.

Этот параметр отключен по умолчанию. Включите синхронизацию списков задач SharePoint, только если пользователям нужна функция для каждого EPT. Чтобы настроить этот параметр, выполните следующие действия:

  1. В разделе Параметры Project Web App выберите Корпоративные типы проектов.

  2. Выберите EPT, на который необходимо изменить параметр.

  3. На странице параметров EPT в разделе Синхронизация выберите Синхронизировать списки задач SharePoint.

    Синхронизация списков задач SharePoint.

Синхронизация пула ресурсов Active Directory

Синхронизация пула ресурсов Active Directory сама по себе не имеет особых проблем с производительностью и может импортировать тысячи ресурсов в экземпляр Project Web App за считанные минуты. Однако его влияние на другие части системы может повлиять на производительность. Основной процесс, за который следует следить, — это синхронизация разрешений ресурсов, упомянутая ранее. Если в вашем членстве в группах Active Directory имеется большой оборот и для этого требуется часто синхронизировать пул ресурсов, отслеживайте любые возможные нисходящее влияние на связанные задания синхронизации разрешений.

Рекомендации:

Ограничьте синхронизацию Active Directory группами ресурсов, которые действительно должны использовать систему, и отслеживайте любые потенциальные проблемы с разрешениями после синхронизации больших групп. (Чтобы настроить синхронизацию корпоративного пула ресурсов Active Directory, в разделе Параметры Project Web App щелкните Синхронизация пула ресурсов Active Directory.

Настройки страниц и представлений PWA

Настройки страниц

Платформа SharePoint предлагает отличные возможности настройки благодаря модульной инфраструктуре веб-частей и поддержке пользовательских страниц. Добавление логотипов, настраиваемых веб-частей и новых тем может не оказать значительного влияния на производительность локальной инфраструктуры из-за преимуществ, связанных с близостью серверов, низкой задержкой и высокой пропускной способностью сетей. Однако в онлайн-службе история другая.

При отправке логотипа или рисунка с большим размером файла это может немного замедлить страницы в локальном развертывании, но в Интернете производительность загрузки страниц существенно снижается.

Тот же принцип применяется при добавлении нескольких веб-частей на страницу. Может быть заманчиво иметь пользовательскую страницу с несколькими веб-компонентами, но если пользователям не нужно видеть данные рядом, лучше иметь отдельные специализированные страницы, чем все это в одном месте. Если пользователям требуется только содержимое одной веб-части на странице, им по-прежнему придется дольше ждать загрузки страницы и отображения данных для всех остальных веб-частей.

Рекомендации:

При настройке страницы относитесь к сайту Project Online как к любому обычному веб-сайту в Интернете и создавайте упрощенные страницы как можно больше.

Настройки представлений

Опять же, простота имеет большое значение для повышения производительности загрузки страницы. Организации могут создавать пользовательские представления с помощью нескольких Project Web App страниц, включая Центр проектов, Центр ресурсов, Задачи и Расписания.

Чем больше содержимого отображается, тем медленнее будет отрисовка страницы. Вы можете сократить время загрузки каждой страницы на несколько секунд, если предоставить пользователям больше простых и целевых представлений, а не несколько представлений "все в одном".

В приведенных ниже примерах второе представление загружается в среднем на 2–3 секунды меньше, чем первое.

Снимок экрана: настраиваемое представление Центра проектов.

Снимок экрана: представление Центра проектов.

Рекомендации:

При настройке представлений можно предложить пользователям простые специализированные представления для более быстрой навигации, а не сложное представление "все в одном", которое будет загружать ненужные данные большую часть времени.

Параметры пользовательского представления

Центр проектов: группирование по с помощью накопительных элементов

Пользователи могут настроить различные способы отображения представления, включая группирование данных по разным полям. При использовании group by данные можно свернуть для поддерживаемых полей агрегирования (например, суммирования затрат или настраиваемого поля). При вычислении этих статистических значений служба загружает все значения, чтобы отобразить итог.

Пример данных, сгруппированных по полям и сгруппированных для полей агрегирования.

Рекомендации:

Если пользователю не нужно видеть свернутые значения, отключите параметр Свернуть на ленте.

Параметр свертки.

Центр проектов: диаграмма Ганта

Часть диаграммы представления диаграммы Ганта отображает каждый проект в виде сводной полосы Ганта.

Рекомендации:

Если пользователю не нужно видеть Ганта, отключите параметр Диаграмма Ганта на ленте.

Параметр Диаграмма Ганта.

Пользовательские страницы сведений о проекте и рабочие процессы

Помимо рекомендаций, приведенных выше для оформления страниц, страницы сведений о проекте (PDP) особенно связаны с тем, что они могут инициировать пересчет всего проекта и запускать действия рабочего процесса, которые могут быть дорогостоящими с точки зрения производительности в зависимости от ваших настроек.

Project Online и Project Server имеют два основных процесса обновления для сведений о проекте:

  • Обновления, требующих перерасчета (см. список ниже)

  • Поля, не связанные с расписанием, такие как имя проекта, описание и владелец.

Рекомендуется избегать обновления данных обоих типов в одном PDP, чтобы избежать одновременного запуска обоих процессов обновления.

Ниже приведен список наиболее распространенных действий, требующих пересчета по расписанию.

  • Изменения календаря проекта

  • Изменения в следующих полях даты:

    • Дата начала

    • Дата окончания

    • Дата состояния

    • Текущая дата

  • Изменения в настраиваемых полях проекта

  • Если проект имеет какие-либо зависимости от конечных результатов

Второй способ повысить производительность PDP — уменьшить количество веб-частей и настраиваемых полей, отображаемых в каждой PDP. Если бизнес-процессы требуют частых обновлений одного и того же набора полей, создайте выделенный PDP с только этими полями, чтобы улучшить нагрузку и сэкономить время. Отображение всех настраиваемых полей в любое время приводит к большому количеству ненужных накладных расходов.

Рекомендации:

Создавайте упрощенные специализированные PDP и избегайте смешивания обновлений, связанных с расписанием и не связанных с расписанием.

Массовое обновление настраиваемых полей в рабочих процессах с помощью нового REST API

Для обновления значений настраиваемых полей проекта в рабочем процессе по одному требуется отдельный запрос сервера с помощью действия Задать поле проекта. Это приводит к снижению производительности при одновременном обновлении большого количества настраиваемых полей в сети с высокой задержкой и низкой пропускной способностью.

Чтобы устранить эту проблему, существует метод CSOM для массового обновления настраиваемых полей. Для этого метода необходимо передать словарь, содержащий имя и значения всех настраиваемых полей, которые требуется обновить.

API для подготовки сайтов проектов по запросу

Каждый проект может иметь собственный выделенный сайт SharePoint, на котором участники команды могут совместно работать, делиться документами и создавать проблемы. Эти сайты могут быть автоматически созданы при первой публикации или вручную менеджером проектов через Project Pro или администратором с помощью параметров Project Web App, или их можно просто отключить.

Вы можете использовать метод CreateProjectSite(''), чтобы решить, когда создавать сайты проектов. Это особенно полезно для организаций, которые хотят создавать свои сайты только после того, как предложение проекта достигнет определенного этапа в предопределенном рабочем процессе, а не при первой публикации. Это значительно повышает производительность создания проекта, откладывая создание сайтов проекта.

Обработка событий

Надстройки могут реагировать на события, возникающие в Project Online. Например, надстройка может выполнять некоторые дополнительные действия после создания проекта. Пользователям может потребоваться подождать, пока эти надстройки завершат обработку событий, прежде чем они смогут продолжить работу с Project Online.

Рекомендации:

Project Online следует настроить для асинхронной обработки определенных событий, чтобы свести к минимуму время, необходимое пользователям для ожидания. Для этого попросите разработчика всех используемых надстроек убедиться, что их код может обрабатывать события After асинхронно. Они могут перейти к этой статье , чтобы узнать больше о методах обработки этих событий.

Если разработчик подтвердит, что надстройка готова к изменению, необходимо включить параметр Включить асинхронную обработку событий после на странице параметров PWA .

  1. На странице Параметры PWA в разделе Операционные политики выберите Дополнительные параметры сервера.

  2. В разделе Асинхронная обработка событий для событий After установите флажок Включить асинхронную обработку событий После .

    Асинхронная обработка событий для параметра событий After.

  3. Нажмите кнопку Сохранить.

    Затем необходимо протестировать экземпляры, чтобы убедиться, что все работает правильно.

    Примечание.

    Этот параметр может видеть и изменять только администратор семейства веб-сайтов.

OData и отчеты

Служба OData ProjectData

Project Online имеет службу отчетов OData, которая предоставляет способ создания отчетов и визуализации на основе данных, хранящихся в службе. Здесь определен API службы отчетов OData ProjectData.

Вызовы к службе отчетов OData ProjectData управляются SharePoint Online. Ознакомьтесь со статьей Избегайте регулирования или блокировки в SharePoint Online , чтобы убедиться, что вызовы с меньшей вероятностью будут регулироваться и правильно реализовать рекомендации повтора и экспоненциальной отмены.

Кроме того, выполнение рекомендаций, описанных в этом документе, сократит количество, длину и частоту вызовов, необходимых для получения данных. Если регулирование происходит часто, проверьте в организации, могут ли несколько отделов запрашивать одни и те же данные или не следовать рекомендациям, описанным в этой статье и затрагивающим всех пользователей.

Повременные отчеты

В Project Online можно выбрать уровень детализации, необходимый для повременных данных отчетов. Параметры и влияние уровней полностью описаны в статье Настройка свертывания повременных данных отчетов в Project Online. Выбор уровня, который создает наименьший объем данных для ваших сценариев, позволит быстрее отображать данные в конечной точке службы отчетов OData и сократить время, необходимое для скачивания.

Список параметров в порядке производительности (от наибольшей до наименьшей производительности, коррелируя с объемом созданных данных):

  • Никогда

  • Финансовые периоды

  • Ежемесячно

  • Еженедельное

  • Ежедневно

Финансовые периоды имеют большое преимущество по сравнению с ежемесячными в том, что отчетные данные хранятся только для определенных финансовых периодов, в то время как Monthly будет хранить данные на весь период по всем проектам.

С помощью службы Project OData можно извлекать сведения из экземпляра Project Online для создания отчетов.

Рекомендации:

Храните минимальный объем повременных данных, которые соответствуют потребностям вашего бизнеса. Не используйте Daily, если у вас есть рабочие процессы, которые ожидают завершения публикации. Ежедневное создание необходимых данных может занять значительное время, в результате чего рабочие процессы будут ждать.

Запрос к службе

Существуют ограничения на количество сущностей, которые могут быть возвращены в одном запросе службы OData ProjectData. В результате запрос большого объема данных требует отправки в службу нескольких веб-запросов, что увеличивает сетевые издержки и задержку для каждого запроса.

Рекомендации:

Избегайте полной загрузки данных "обновить все". Эти обновления могут повлиять на производительность сайта PWA, особенно во время пиковой нагрузки, что приводит к общему снижению производительности пользовательских операций в PWA или регулированию.

Выполнение действий по обновлению Odata в нерабочее время. При принятии решений по поддержанию отчетов в режиме реального времени или отчеты, близкие к реальным, также следует учитывать компромиссы производительности для взаимодействия с пользователем на сайте PWA. Если существуют требования "обновить все", ознакомьтесь с разделом "SQL Server Integration Services (SSIS) — рекомендуется для больших наборов данных".

Для экземпляра Project Web App, содержащего большое количество сущностей, таких как проекты, назначения или задачи, следует ограничить возвращаемые данные по крайней мере одним из следующих способов. Если не ограничить возвращаемые данные, запрос может превысить ограничения по умолчанию и повлиять на производительность сервера.

  • Всегда используйте параметр URL-адреса $filter и $select для ограничения данных. Например, следующий запрос фильтрует по дате начала проекта и возвращает только четыре поля в порядке имени проекта:

    http://ServerName/ProjectServerName/_api/ProjectData/Projects?$filter=ProjectStartDate gt datetime'2012-01-01T00:00:00'&$orderby=ProjectName&$select=ProjectName,ProjectStartDate,ProjectFinishDate,ProjectCost
    
  • Избегайте настраиваемых полей, которые являются подстановками с несколькими значениями. Для обработки значений настраиваемых полей, которые являются подстановками с несколькими значениями, требуются дополнительные вычисления. Эти поля не могут воспользоваться преимуществами нескольких оптимизаций, которые были реализованы для более распространенных сценариев клиентов. Если настраиваемые поля с несколькими значениями уже настроены, повысьте скорость поиска и надежность, гарантируя, что ни одно из этих полей не указано в отфильтрованном запросе Odata.

  • Запрос сущностей по ключу или ассоциации. При запросе сущностей см. документ метаданных по адресу https://yourdomain.sharepoint.com/sites/PWA/_api/ProjectData/$metadata. По возможности запрашивать сущность одним из следующих способов:

  • Keys

    Примечание.

    При наличии нескольких ключей использование первого ключа будет работать лучше, чем использование второго ключа.

  • Ассоциации

    Например, можно запросить сущность Assignment с помощью AssignmentId и ProjectId:

    https://ServerName/ProjectServerName/_api/ProjectData/Assignments?$filter=AssignmentId eq guid'719d849a-79b4-e911-b073-00155d9c3d12' and ProjectId eq guid'b5b02399-79b4-e911-b073-00155d9c3d12'
    
    or
    
    https://ServerName/ProjectServerName/_api/ProjectData/Assignments(AssignmentId=guid'719d849a-79b4-e911-b073-00155d9c3d12',ProjectId=guid'b5b02399-79b4-e911-b073-00155d9c3d12') 
    

    через AssignmentId:

    https://ServerName/ProjectServerName/_api/ProjectData/Assignments?$filter=AssignmentId eq guid'719d849a-79b4-e911-b073-00155d9c3d12'
    

    через ProjectId:

    https://ServerName/ProjectServerName/_api/ProjectData/Assignments?$filter= ProjectId eq guid'b5b02399-79b4-e911-b073-00155d9c3d12'
    

    через ассоциацию через Project:

    https://ServerName/ProjectServerName/_api/ProjectData/Projects(guid'263fc8d7-427c-e111-92fc-00155d3ba208')/Assignments
    
  • Выполните несколько запросов для возврата данных по одной странице за раз с помощью оператора $top и оператора $skip в цикле. Например, следующий запрос возвращает проблемы с 11 по 20 для всех проектов в порядке ресурса, которому назначена проблема:

    https://ServerName/ProjectServerName/_api/ProjectData/Issues?$skip=10&$top=10&$orderby=AssignedToResource
    
  • Избегайте получения имени проекта, задачи или ресурса при запросе сущности назначения . Служба выполняет дополнительную обработку для получения соответствующих имен. Если данные уже получены из других запросов, не включайте их в фильтр $select при запросе назначения.

Рекомендации:

  • Ограничьте объем данных, запрашиваемых во время выполнения, с помощью фильтрации на стороне сервера, чтобы получить только необходимые столбцы. Это наиболее заметно при использовании настраиваемых полей. Добавляйте настраиваемые поля только в том случае, если они вам нужны.

  • Убедитесь, что выполняется фильтрация по ключу сущности. Ключ сущности индексируется и обеспечивает более эффективную работу по извлечению данных. Ключи для каждой сущности можно найти, просмотрив документ метаданных службы в экземпляре PWA: https://Contoso.sharepoint.com/sites/PWA/_api/ProjectData/$metadata

Получение данных и создание отчетов

PowerBI

Если объем данных невелик, Power BI может регулярно считывать данные из службы Project OData и предоставлять различные динамические отчеты. Пример пакета содержимого можно найти здесь.

Если объем данных в Project Online большой, вы по-прежнему можете использовать подмножество данных, если оно соответствует ограничениям размера данных PowerBI, описанным здесь. Другой вариант — создать отчеты в движущемся окне, т. е. фильтровать проекты, которые были активны в течение последних 30 дней, или просматривать емкость ресурсов в течение следующих 6 месяцев. Рекомендации см. в разделе $filter/$select, так как PowerBI может не воспользоваться преимуществами оптимизации фильтрации на стороне службы.

Excel OData

Excel можно использовать для скачивания данных и создания пользовательских визуализаций и отчетов. Если объем данных в Project Online большой, подмножество данных может использовать движущееся окно, т. е. фильтрацию проектов, которые были активны в течение последних 30 дней, или просмотр емкости ресурсов в течение следующих 6 месяцев. Ознакомьтесь с разделом $filter/$select, так как Excel может не воспользоваться преимуществами оптимизации фильтрации на стороне службы.

SQL Server Integration Services (SSIS)

С помощью служб SSIS данные отчетов Project Online можно скачать из службы Project OData в локальную базу данных SQL Server или в Microsoft Azure. После скачивания можно создавать любые отчеты и визуализации. Для синхронизации локальных данных с Project Online требуется дальнейший процесс.

При использовании служб SSIS используйте следующий шаблон, для которого Project Online была оптимизирована. Шаблон сократит время, необходимое для получения и поддержания синхронизации локальных данных. Далее скачайте только поля, необходимые для выполнения бизнес-требований. Чем меньше полей запрашивается, тем быстрее можно получить данные.

Полная синхронизация

Получите текущий моментальный снимок интересующих вас данных отчетов. Используйте следующий метод для эффективного извлечения Project и связанных сущностей.

Например, с помощью сущности Project .

  1. Запросите ProjectId из сущности Project с дополнительными фильтрами. Например, фильтруйте проекты с определенными датами начала или окончания.

  2. Запрос сущности Project, указав поля, которые необходимо скачать, с фильтрацией по одному идентификатору ProjectId, полученному ранее. Включите параметр ProjectModifiedDate, как он используется в приведенном ниже шаблоне разностной синхронизации.

  3. Повторите шаг 2 для каждого ProjectId. Кроме того, для каждого ProjectId скачайте данные для связанных сущностей.

Например, с помощью сущности Task :

  1. Запросите объект TaskId из объекта Task, отфильтровав все дополнительные поля, а также projectId проекта из предыдущего шага.

  2. Запросите сущность Task, указав поля, которые необходимо скачать и отфильтровать по одному идентификатору TaskId, полученному ранее. Включите параметр TaskModifiedDate, как он используется в приведенном ниже шаблоне разностной синхронизации.

  3. Повторите для каждого TaskId.

    Аналогичным образом используйте один и тот же подход для каждой связанной сущности, например Assignment, TaskTimephasedData.

Описанные выше действия применяются к другим группам сущностей, например при получении сведений о расписании:

  • Расписание. Извлеките timesheetId и ModifiedDate на основе условий фильтра, затем записи расписания, затем фильтр TimeSheetLines по TimeSheetId и перейдите к другим связанным сущностям, гарантируя, что вы выполняете файлирование с помощью идентификаторов первичного ключа (TimesheetUID) и полей даты изменения.

При получении сведений о сущности ресурса:

  • Получите ResourceId и ResourceModifiedDate, затем записи ресурсов , затем ResourceTimephasedData и т. д. Включите соответствующие поля идентификаторов первичного ключа и даты изменения.

Разностная синхронизация

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

  1. Запросите все значения ProjectId и даты изменения из конечной точки Project с помощью $filter условий.

  2. Удалите локальный проект и связанные записи (задачи, назначения и т. д.), где идентификатор ProjectId больше не существует.

  3. Если дата изменения службы и локальная дата изменения отличаются для записи проекта, запросите к конечной точке проекта все необходимые поля, фильтруя по одному идентификатору ProjectId за раз. Кроме того, для каждого ProjectId скачайте данные для связанных сущностей.

Например, с помощью сущности Task :

  1. Запрос на TaskId и TaskModifiedDate из объекта Task entity с фильтрацией по любым дополнительным полям, а также projectId проекта из предыдущего шага, где были изменены данные, т. е. дата изменения службы проекта не совпадает с локальной датой изменения.

  2. Удалите локальные и связанные записи для TaskId, которые больше не существуют.

  3. Если дата изменения службы и локальная дата изменения отличаются, запросите соответствующую конечную точку сущности, передавая TaskId и первичный ключ сущности, и обновите локальную версию.

Повторите для каждой связанной сущности, например Назначения, TaskTimephasedData.

Квота Project Web App

По умолчанию сайт Project Web App поставляется с ограничением в 25 ГБ и отделен от ограничения на все данные, хранящиеся в семействе веб-сайтов SharePoint, где включена Project Web App. Использование параметров детализации отчетов для уменьшения объема данных может помочь в том, чтобы оставаться в пределах квоты.

Примечание.

Квоту PWA можно увеличить (с шагом) до 100 ГБ. После достижения предельной квоты потребуется новый сайт PWA. Для увеличения более 50 ГБ требуется, чтобы сайт PWA больше не использовал параметр детализации повременных отчетов . Чтобы обсудить увеличение квоты сайта PWA, обратитесь в корпорацию Майкрософт.

Заключение

Project Online, как и любая облачная служба, запущенная в Интернете, требует определенной настройки, чтобы обеспечить оптимальную производительность по сравнению с локальным развертыванием.

Несмотря на то, что мы постоянно улучшаем систему для повышения производительности, в то же время вы можете предпринять некоторые шаги, чтобы обеспечить хороший интерфейс для конечных пользователей.

Сводная рекомендация.

  • По возможности используйте режим разрешений SharePoint.

  • Включите только те функции, которые вы будете использовать.

  • Оставьте страницы и настройки как простыми и простыми, чтобы ускорить загрузку страниц.

  • Используйте фильтрацию на стороне сервера или экспортируйте данные веб-каналов Odata в базу данных SQL Server для повышения гибкости отчетов.

  • Выберите параметр детализации отчетов, который использует наименьший объем данных, удовлетворяющий вашим потребностям в отчетах.

Ограничения Project Online, связанные с программным обеспечением