Интеграция MS Project
Интеграция MS Project
Назначение
Раздел описывает загрузку и выгрузку данных проекта при обмене с Microsoft Project. В каталоге отмечено, что явная реализация обмена с MS Project в текущих приложениях (apps/) не найдена; базовый проектный контур Dinext (Project, Task) служит основой для возможного обмена и для анализа требований к интеграции.
Цели и задачи
- При необходимости синхронизировать иерархию задач и проектов между Dinext и MS Project.
- Выгружать проекты и задачи в формате, пригодном для импорта в MS Project (например, XML, MPP через конвертеры).
- Загружать данные из MS Project в проекты и задачи Dinext с сохранением связей и сроков.
- Сохранять единообразие планов при работе части команды в MS Project и части в Dinext.
- Использовать каталог и описание как отправную точку для анализа требований и проектирования интеграции.
Для кого
- Руководители проектов и планировщики, использующие MS Project для планирования.
- Администраторы и интеграторы при проектировании и внедрении обмена.
- Разработчики при реализации экспорта/импорта (форматы MS Project, API или файловый обмен).
Основные понятия
- MS Project — продукт Microsoft для управления проектами; форматы MPP, XML (Project XML).
- Project, Task — базовые объекты проекта и задачи в Dinext; структура полей (название, сроки, предшественники, ресурсы) может быть сопоставлена с полями MS Project для обмена.
- Экспорт — формирование файла (XML, CSV или иной) из данных Project и Task с иерархией и зависимостями.
- Импорт — разбор файла из MS Project и создание/обновление Project и Task в Dinext с маппингом полей.
- Явная реализация в репозитории приложений не указана; внешние источники и требования к интеграции собираются отдельно.
Основные сущности / объекты
- Project, Task — базовый контур для возможного обмена.
- Форматы MS Project: MPP (бинарный), Project XML; сторонние библиотеки и конвертеры для чтения/записи.
- Кастомные приложения или скрипты для экспорта/импорта — при разработке интеграции в рамках проекта.
Основные сценарии / процессов
Анализ требований к интеграции
- Зафиксировать сценарии: только экспорт из Dinext в MS Project, только импорт из MS Project, двусторонняя синхронизация.
- Определить маппинг полей: название задачи, даты начала/окончания, предшественники, длительность, ответственный, проект, иерархия (родительская задача).
- Выбрать формат обмена: Project XML предпочтителен для программной обработки; MPP может потребовать сторонних библиотек или ручного экспорта из MS Project в XML/CSV.
- Учесть ограничения: кастомные поля в Dinext , типы ресурсов и единицы в MS Project — не все могут быть перенесены без потерь; документировать потери и обходные пути.
Экспорт из Dinext в формат для MS Project
- Реализовать отчет или скрипт: выбор проекта, выборка Task с полями (name, subject, start_date, end_date, depends_on, parent_task и т.д.) и иерархией.
- Сформировать файл Project XML (или CSV с колонками, импортируемыми в MS Project) с учетом формата выбранной версии MS Project.
- Пользователь скачивает файл и открывает в MS Project; при необходимости выполняет ручную настройку полей при первом импорте шаблона.
- При повторных экспортах решать вопрос идентификации существующих задач (по name или внешнему id) для обновления в MS Project, если поддерживается сценарий обновления.
Импорт из MS Project в Dinext
- Пользователь экспортирует проект из MS Project в XML (или CSV) по инструкции.
- В Dinext реализовать загрузку: разбор файла, маппинг полей в Project и Task, создание иерархии задач и связей depends_on/parent.
- Валидация: обязательные поля, даты, уникальность. При ошибках — отчет по строкам; успешные строки импортировать.
- Учесть права доступа и владельца создаваемых документов; привязка к проекту и ролям по правилам компании.
Двусторонняя синхронизация (при реализации)
- Хранить внешний идентификатор (например, UID из MS Project) в кастомном поле Task или в отдельной таблице.
- При экспорте подставлять актуальные даты и статусы из Dinext; при импорте обновлять только разрешенные поля и только те задачи, для которых найден внешний id.
- Избегать конфликтов (одновременное изменение в обеих системах); определить главный источник по этапам или по регламенту (например, план — в MS Project, факт — в Dinext).
- Документировать сценарии и ограничения для пользователей.
Правила и ограничения
- В текущем каталоге и перечне приложений явный модуль интеграции с MS Project не указан; реализация выполняется в рамках проекта или отдельного приложения.
- Форматы MS Project (особенно MPP) могут меняться между версиями; предпочтительно использовать открытый Project XML и тестировать на целевых версиях MS Project.
- Большие проекты (тысячи задач) могут требовать пакетной загрузки и ограничения по таймауту; выполнять импорт фоновой задачей при необходимости.
Результаты / отчетность
- Файлы экспорта (XML/CSV) для открытия в MS Project.
- Импортированные проекты и задачи в Dinext с сохраненной структурой и сроками.
- Документация по маппингу полей и известным ограничениям интеграции.
- При внедрении — регламент использования обмена (кто экспортирует/импортирует, как часто, как разрешать конфликты).
Типовые вопросы и ошибки (FAQ)
Где в Dinext реализован обмен с MS Project?
По каталогу явная реализация в приложениях не указана. Базовый контур — Project и Task в Dinext; интеграция может быть реализована отдельным приложением, скриптами экспорта/импорта или отчетами, формирующими файл для MS Project. Ищите в репозиториях проекта или закажите разработку по требованиям.
Какой формат использовать для импорта из MS Project?
Project XML (экспорт из MS Project: File > Save As > XML Format) удобен для разбора и маппинга. CSV с выбранными колонками тоже возможен, если в Dinext реализован парсер CSV и маппинг колонок к полям Task/Project.
Сохраняются ли зависимости между задачами при импорте?
Зависимости (предшественники) в MS Project соответствуют полям типа depends_on или связям в Task . При импорте нужно маппировать предшественников на ссылки на задачи в Dinext (по имени или по временному id при создании в нужном порядке). Реализация зависит от выбранного формата и кода импорта.