Всем добрый день!
Возник вопрос:
Можно ли получить информацию из Project Server'a помимо использования PDS ?
Есть ли еще Web Services, которые позволяют получить
Пока нет. Только если самостоятельно сделать
В принципе, написать очень просто.
Единственная заморочка - с авторизацией.
Доступ к данным Project Server'a
А что Вы имеете в Виду?
По-Вашему мне нужно написать свой Web Service,который будет делать SQL запросы к серверу,а потом его разместить на Project Server'e ?
...
Да, у меня сейчас возкникли проблемы с аутентификацией к PDS Web Service пользователей...
Может Вы можете подсказать, как решить данную пролблему?
Верно
Данное решение будет более гибким и расширяемым по сравнению с PDS. Основной недостаток данного подхода - необходимость самостоятельной реализации безопасности.
В чем именно заключается Ваша проблема с PDS?
Если Вы еще не сделали этого, то примеры работы с PDS можно скачать на сайте Microsoft:
[ссылка...]
В разделе Security Architecture прилагаемой справки все достаточно подробно расписано.
ActiveX
Хорошо я все понял.
У меня нет доступа к БД Project Server'a.
Может есть какой-нить ActiveX, который позволяет получить доступ к информации Project Server?
Знаю точно, что есть ActiveX для отображения данных о проекте...но вот как получить жданные кроме PDS, пока не могу найти.
Что значит "Нет доступа"?
Если вообще нет доступа к базе данных, то не будет работать PDS или клиент Project. Мне кажется, что доступ все-таки есть, хотя без знания ситуации я точно сказать не смогу.
ActiveX здесь не поможет. Это просто исполняемый код (как, например, Grid control), который работает на стороне браузера.
Еще один вариант для получения дополнительных данных о проекте - написание своих собственных дополнительных страниц для PWA (или модификация существующих). Но оно того не стоит.
Интерфейс доступа
Дело в том, что работать на прямую с БД Project Server'a мне пока не разрешается. Т.е. писать свой Web Service, я в ближайшее время не буду.
Наверно я неправильно выразился в прошлом сообщении.
Суть проблемы - получение данных с Project Server'a помимо использования PDS, и создания своего собственного Web Service. ( на данный момент)
Может есть какой-нибудь еще Интерфес доступа к данным, программны путем? (например COM).
А доступ к БД с помощью PDS я могу получить. Но это меня не устраивает.
Интерфейс доступа
Дело в том, что работать на прямую с БД Project Server'a мне пока не разрешается. Т.е. писать свой Web Service, я в ближайшее время не буду.
Наверно я неправильно выразился в прошлом сообщении.
Суть проблемы - получение данных с Project Server'a помимо использования PDS, и создания своего собственного Web Service. ( на данный момент)
Может есть какой-нибудь еще Интерфес доступа к данным, программны путем? (например COM).
А доступ к БД с помощью PDS я могу получить. Но это меня не устраивает.
А чем PDS не устраивает?
Хоть с ним и неудобно работать, но информацию по проектам из него можно получить разнообразнейшую.
В крайнем случае можно написать свой PDS Extender (COM).
Если же задача состоит в обходе security, то это уже нехорошо.
Не совсем хватает функциональности
например, мне нужно получить список всех проектов и дат их начала и окончания, предстваить все это в таблице.
но реализовать это не реально: если проектов 200 шт., то придется сначала сделать 1 запрос на Project Server, а потом еще 200 !!!...Последние запросы (каждый) несет очень много информации, тогда и получается, что реализовывать такаую схему просто нереально! =(
А по поводу PDS Extender'a я подумаю...но тогда нужно получить доступ к БД.
Может быть метод ProjectsAccess поможет?
Он делает в MSP_PROJ_SECURITY метки, по которым разрешается использование VIEWS для PDS-сессии. Потом в рамках этого же подключения можно cделать SQL запрос к MSP_PROJECTS_PROJ_READVIEW (или какому другому VIEW - их там навалом или их комбинации).
Сам я практически этого не делал - просто help почитал и посмотрел начинку БД =)
не получится
У меня нет доступа к БД.
Или я неправильно Вас понимаю - разве можно делать SQL запросы через PDS?
А вот в этом и проблема
У меня возникла такая проблема - нужно, получать информацию о текущем пользователе и передавать ее при аутентификации на PDS...Пока не понял, как это сделать.
А как с ним работать?
Почитал help, но так и не понял, как работать с функцией ProjectsAccess, и как создавать SQL запросы в БД через PDS.
Эврика!
разобрался, как получить доступ к VIEWs БД с помощью ProjectAccess.
Если кому-нибудь интересно, то могу рассказать как =)
Рад, что все разрешилось
Схема, полагаю, следующая:
1. Подключиться к PDS
2. GetLoginInformation
3. Подключиться к БД
4. Получить SPID
5. Сделать ProjectsAccess
6. Ручками запускать свои запросы по базе
...
7. Сделать logout по всему (в т.ч. ProjectsAccessCompleted)
Кстати, там можно запускать свои сложные запросы, в которых используются один или более VIEWs БД.
|