Корпоративные поля и настраиваемые поля в БД Project Server

Вопросы, связанные с разработкой приложений для Microsoft Project

Корпоративные поля и настраиваемые поля в БД Project Server

Сообщение N1ght » 06 ноя 2014, 12:25

Добрый день, коллеги.
Встала перед мной задача сформировать выборку с прожектовой БД.
Задача простая, но известно кто, известно где кроется ;)
Со стандартными полями проблем нет. Когда дело доходит до "нестандартных", начинается путаница.

Дано:
Есть график, в котором некий планер поназаводил настраиваемых полей. Этот график в виде "как есть" был загружен в Project Server.
Далее начинается моя часть.
Если бы человек свой график расрабатывал в контексте Project Server, то возможно догнал бы про необходимость заведения корпоративных полей и напихивания данных в них.
Однако на практике, как такое часто бывает, все пошло мимо идеального сценария.
Имеем график на Project Server, который использует локальные поля (Текст1,2,3.... Число1,2,3 и т.п), где в БД прожекта хранятся эти поля?

Изучая структуру БД Project Server, я пришел к выводу, что дефиниции корпоративных полей хранятся в таблицах MSP_CUSTOM_FIELDS, а значения этих полей для задач в таблицах MSP_TASK_CUSTOM_FIELD_VALUE.
Как в случае с локальными настраиваемыми полями? Где искать значения?

Да и вообще глобальный вопрос: может стоит такому планеру дать по рукам, и перекинуть данные в аналогичные корпоративные
поля ручками, посредством Project Professional?


Заранее благодарен за Ваши ответы,
С уважением.
N1ght
Белый пояс
 
Сообщения: 22
Зарегистрирован: 06 ноя 2014, 11:46
Откуда: Москва

Re: Корпоративные поля и настраиваемые поля в БД Project Ser

Сообщение Brise » 06 ноя 2014, 15:28

N1ght писал(а):Имеем график на Project Server, который использует локальные поля (Текст1,2,3.... Число1,2,3 и т.п), где в БД прожекта хранятся эти поля?
Изучая структуру БД Project Server, я пришел к выводу, что дефиниции корпоративных полей хранятся в таблицах MSP_CUSTOM_FIELDS, а значения этих полей для задач в таблицах MSP_TASK_CUSTOM_FIELD_VALUE.
Как в случае с локальными настраиваемыми полями? Где искать значения?

В классе Microsoft.Office.Project.Server.Library.CustomField есть справочник всех MD_PROP_ID и MD_PROP_UID локальных пользовательских полей. Дальше можно получать значение через MSP_TASK_CUSTOM_FIELD_VALUE.MD_PROP_UID. Но этот справочник, понятное дело, доступен только из C#.

Если решать задачу на чистом SQL, то не всё так красиво. Есть таблицы MSP_WEB_VIEW_FIELDS, в которых в поле WFIELD_NAME_OLEDB можно найти название поля, а в поле WFIELD_UID - guid, который соответствует столбцу MD_PROP_UID таблицы MSP_TASK_CUSTOM_FIELD_VALUE.

N1ght писал(а):Да и вообще глобальный вопрос: может стоит такому планеру дать по рукам, и перекинуть данные в аналогичные корпоративные
поля ручками, посредством Project Professional?

Подходя глобально, конечно, лучше при наличии сервера использовать корпоративные поля. Но если их слишком много, могут быть проблемы с производительностью.
Brise
Синий пояс
 
Сообщения: 145
Зарегистрирован: 01 апр 2013, 07:52
Откуда: Санкт-Петербург

Re: Корпоративные поля и настраиваемые поля в БД Project Ser

Сообщение N1ght » 06 ноя 2014, 16:19

Brise писал(а):Если решать задачу на чистом SQL, то не всё так красиво.

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

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

PS. Не понятно, почему мелкомягкий так старательно прячет техдок по описанию БД Project Server'а, заставляя кучу народа ковыряться в базе...

В любом случае, спасибо за ответ. Будем копошиться дальше.
N1ght
Белый пояс
 
Сообщения: 22
Зарегистрирован: 06 ноя 2014, 11:46
Откуда: Москва

Re: Корпоративные поля и настраиваемые поля в БД Project Ser

Сообщение Brise » 06 ноя 2014, 16:51

N1ght писал(а):PS. Не понятно, почему мелкомягкий так старательно прячет техдок по описанию БД Project Server'а, заставляя кучу народа ковыряться в базе...

Просто это выходит за рамки стандартных сценариев. База данных Reporting хорошо описана, но локальные пользовательские поля туда не попадают. А остальные БД - для внутреннего использования и официально не документированы.
Brise
Синий пояс
 
Сообщения: 145
Зарегистрирован: 01 апр 2013, 07:52
Откуда: Санкт-Петербург


Вернуться в Разработка и программирование для Microsoft Project

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1