|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
25. Работа с Project Data ServicesProject Data Services в Project Server 2003, обмен информацией с Project Server 2003 в формате XML, служба Enterprise Data Maintenance (EDM) Project Data Services - это специальный набор программных объектов, который позволяет обращаться к Project Server как к Web-службе. При этом используются стандартный протокол SOAP, а также формат XML как для передачи запросов на Project Server, так и для получения с него ответов. Причина, по которой был выбран такой подход, очевидна: Project Server - это решение для больших предприятий, а на них с большой долей вероятности придется сопрягать информацию на Project Server (например, корпоративный пул ресурсов) с внешними программными продуктами (например, модулями учета кадров). Поскольку внешние продукты могут использовать любые платформы, использование открытых стандартов HTTP/SOAP/XML очень удобно. Работа с Project Server из Visual Studio.NET вообще никаких сложнотей не представляет: мы можем стандартными способами добавить Web-ссылку на объект Project Server и вызывать нужные методы. Работа без .NET требует наличия ссылок на библиотеки Microsoft XML версии 3.0, Microsoft SOAP Type Library версии 3.0 и Microsoft HTML Object Library. Общий принцип работы такой: создаем объект MSSOAP.SoapClient30, используем его для получения ссылки на объект Web-службы Project Server : soapclient.mssoapinit("http://london5/ProjectServer/PDS.wsdl"), а затем вызываем для него метод SoaPXMLRequest, которому передаем куки аутентификации и запрос в формате XML: s = soapclient.SoapXMLRequest(sCookie, sXML) Получение куки - это отдельная тема, которая очень хорошо проиллюстрирована в примере от Microsoft PDSTest.vbs (поставляется в составе Project Server SDK). Объяснение также есть в статье "Programmatic Logon to Project Server" в документации SDK. После вызова этого метода нам возвращается ответ также в формате XML. Далее его можно преобразовывать в DataSet (в .NET), разбирать анализатором, помещать в базу данных средствами XML for SQL Tools и выполнять прочие обычные для работы с данными XML действия. Кроме того, для совсем ленивых предусмотрена возможность передавать данные в XML с Project Server совсем без программирования. В Project Server предусмотрена папка C:\Program Files\Microsoft Office Project Server 2003\BIN\Connector (с двумя подкаталогами - Success и Fail). Это - так наазываемый drop folder. Если включить его, создав параметр реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\MS Project \Services\Configuration\Connector\[Monitor Location] (вместо [Monitor Location] можно подставить все, что угодно), то Project Server будет автоматически забирать файлы XML из этого каталога и их обрабатывать как запросы к Web-службе EDM - Enterprise Data Maintenance (к ней можно обращаться и обычным способом, через SOAP). Правда, возможностей у этой службы меньше. В основном ее методы предназначены для работы с наборами ресурсов. Некоторые методы, определенные для Web-службы Project Data Services, необходимо отметить отдельно: · ProjectStatus(). При передаче без параметров возвращает информацию о всех проектах на Project Server. Можно передавать параметры, связанные с именем проекта, идентификатором, типом и т.п. · ProjectDelete() - возможность удалить проект по ID или имени. · ProjectData() - обязательно требует информации о ID проекта или его имени, возвращает информацию о всех задачах, ресурсах и назначениях. Позволяет фактически протоколировать проект в XML, а также готовиться к внесению изменений в проект, получая информацию об идентификаторах элемента проекта. · ProjectCreate() - возможность создать проект (а вместе создать также задачи, ресурсы и назначения, определив их в коде XML). · ProjectTaskCreate(), ProjectResourceCreate(), ProjectAssignmentCreate() - названия эти методов говорят сами за себя. Методы для работы с ресурсами, задачами и назначениями достаточно очевидные, они покрывают все потребности по работе с этими элементами и поэтому здесь рассматриваться не будут. · PSNewUser(), PSAddUsersToGroups(), PSDeleteUsersFromGroups() - возможность создать нового пользователя на Project Server и добавить/удалить его в группу. Предумотрена возможность работы с настраиваемыми кодами структуры, получать информацию о разрешениях (настраивать, к сожалению, их нельзя), возвращать коды ошибки и т.п.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Получить учебные материалы по этому курсу
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||