Prise en main du développement pour Project 2010 (traduction automatique)

Important

Cet article a été traduit automatiquement, voir l’avertissement. Vous pouvez consulter la version en anglais de cet article ici.

Résumé  Découvrez les principales fonctionnalités de développement et de personnalisation de Microsoft Project Server 2010 et des applications clientes Microsoft Project 2010. Project Server 2010 inclut une interface double de services WCF (Windows Communication Foundation) et Web ASMX, ainsi que d’autres fonctionnalités majeures pour la personnalisation et le développement des extensions Project Server.

Dernière modification : mardi 12 avril 2011

S’applique à : Office 2010 | Project 2010 | Project Server 2010 | SharePoint Server 2010 | VBA | Visual Studio

Dans cet article
Introduction à Project Server 2010
Documentation de projet : dans le cas où pour effectuer une recherche, vous devez
À l'aide de VBA dans projet 2010
Architecture Project Server
Intégration avec Microsoft SharePoint Server 2010
Interface Project Server
Événements de Project Server 2010
EPM Reporting en 2010 de projet
Vérification des erreurs dans Project Server 2010
Conclusion
Ressources supplémentaires

**S'applique à:**Microsoft Project Standard 2010 | Microsoft Project Professionnel 2010 | Microsoft Project Server 2010 | Microsoft SharePoint Server 2010 Enterprise | Microsoft Visual Studio 2010 | Microsoft SQL Server 2008

Fournie par :  Jim Corbin, Microsoft Corporation

Sommaire

  • Introduction à Project Server 2010

  • Documentation de projet : dans le cas où pour effectuer une recherche, vous devez

  • À l'aide de VBA dans projet 2010

  • Architecture Project Server

    • L'accès aux données de Project Server 2010

    • La mise en cache, Queuing, les événements et côté serveur planification en 2010 de projet

  • Intégration avec Microsoft SharePoint Server 2010

    • Sécurité Project Server

    • Project Server WebParts

    • Sites de projet

    • Flux de travail de Project Server

    • Options d'URL SimpleUI dans le projet Web App

  • Interface Project Server

    • Interface double : ASMX et WCF

    • À l'aide des objets DataSet dans la PSI

    • L'emprunt d'identité et les Extensions pour la PSI

    • À l'aide de Windows PowerShell avec la PSI

  • Événements de Project Server 2010

    • Utilisation de Datasets dans les gestionnaires d'événements
  • EPM Reporting en 2010 de projet

    • Création de rapports de base de données et le Service de données de rapport

    • Service de génération de cube

  • Vérification des erreurs dans Project Server 2010

  • Conclusion

  • Ressources supplémentaires

Cet article est une mise à jour pour Project 2010 de l'article Project Server 2007: Getting Started with a New Platform for Developers.

Introduction à Project Server 2010

Microsoft Project Server 2010 est la quatrième version majeure de Project Server et s'étend de la nouvelle plate-forme de développement ce Microsoft Office Project Server 2007 introduites. Project Server 2010 est plus profondément intégré à SharePoint et requiert Microsoft SharePoint Server 2010 avec une licence d’accès client Enterprise. Services de portefeuille de projet, workflows, authentification, WebParts, le ruban Project Web App, un nouveau contrôle de grille basé sur ECMAScript (JavaScript), sites de projets de collaboration en équipe et bien d'autres fonctionnalités de Project Server créer sur la plate-forme SharePoint Server 2010.

Cet article présente le développement pour les clients de projet brièvement et offre une vue plus détaillée du développement pour Project Server et l'utilisation de l'Interface Project Server (PSI). Dans la mesure où Project Server 2010 est installé en tant que service dans Microsoft SharePoint Server 2010, les fonctionnalités de Project Server, telles que les flux de travail pour la gestion de la demande, le ruban Project Web App, et les sites de projet sont basés sur les fonctionnalités de SharePoint.

La PSI ajoute des services de flux de travail, les analyses de portefeuille et décisionnels, et elle étend les autres services pour prendre en charge de nouvelles fonctionnalités. Ces nouvelles fonctionnalités prises en charge incluent les départements, délégation de la ressource, les paramètres de feuille de temps améliorée et gestion de la catégorie sécurité, plusieurs cubes OLAP et la synchronisation de projet avec les listes de tâches SharePoint. Dans l'interface double PSI, les services WCF (Windows Communication Foundation) dupliquer les services web ASMX. Des services WCF sont l'orientation stratégique pour le développement d'applications distribuées.

Project Server 2010 repose sur le Microsoft .NET Framework 3.5. En tant que le système de management (EPM) entreprise premier projet, Project Server 2010 atteint les objectifs de programmabilité suivants :

  • Excellente extensibilitéProject Server 2010 traite des principaux avantages pour l'extension des fonctionnalités pour EPM et l'intégration avec les produits de Microsoft Office 2010, les solutions partenaires et les applications line of business (LOB).

  • Plate-forme de développement   L'ensemble des PSI services, Service d'événements Project Server, Service de file d'attente de Project Server, Project Server système de flux de travail, moteur de prévision côté serveur, base de données MOM Reporting et les fonctionnalités de SharePoint comme un centre de Business Intelligence (BI), des listes personnalisées et des WebParts, créer une plate-forme de développement complet.

  • Faible barrière à l'entrée   Les développeurs qui sont familiarisés avec Microsoft Visual Studio, WebParts de SharePoint standard ou Microsoft SQL Server Reporting Services peuvent tirer parti des fonctionnalités connexes de la plate-forme de développement de Project Server.

  • Productivité des développeurs améliorées   Les services PSI utilisent Microsoft ADO.NET DataSet typé objets. Microsoft IntelliSense dans Visual Studio affiche immédiatement les méthodes, les paramètres et les champs qui sont disponibles dans une instruction de code. Vous pouvez créer, installer et tester le flux de travail de Project Server et WebParts et modifier de nombreuses fonctionnalités de sites de projet et Project Web App, directement au sein de Visual Studio 2010. Vous pouvez accéder données telles que les informations sur la tâche chronologique à l'aide de la PSI, au lieu de programmer directement sur les bases de données Project Server.

  • Compatibles avec les pare-feu   Toutes les applications clientes Project 2010, y compris Project Professionnel 2010 et Project Web App, communiquent avec Project Server via les services PSI en utilisant le protocole HTTP, le protocole SOAP, ou à l'aide des protocoles supplémentaires via WCF. Vous pouvez également travailler en toute sécurité avec Project Server à l'aide d'un serveur distinct Project Web App dans un réseau de périmètre pour l'accès via Internet.

Project Server 2010, ainsi que SharePoint Server 2010, offre de nombreux avantages et améliorations. Cet article présente la programmabilité de plate-forme et fait référence à approfondie conceptuel et « comment » les articles dans le kit de développement logiciel (SDK) Project 2010.

Documentation de projet : dans le cas où pour effectuer une recherche, vous devez

Il y a quatre voies principales de la documentation du projet, chacun d'entre eux est conçu pour un public différent. Dans la mesure où vous lisez cet article, vous êtes probablement un développeur. Toutefois, vous devrez peut-être souvent l'utilisateur final, administrateur, prise en charge ou des informations de Base de connaissances (KB) et autres téléchargements de projet.

Pour plus d'informations sur la documentation du projet et endroit pour trouver d'autres ressources, consultez Recherche de la Documentation du projet serveur 2010 (éventuellement en anglais). Des vidéos sur l'utilisation de la plupart des nouvelles fonctionnalités dans Project Server 2010, voir former et apprentissage (éventuellement en anglais). Pour les cours avec ateliers pour les principaux produits et technologies Microsoft telles que SharePoint, Silverlight et SQL Server Business Intelligence, consultez MSDN formations (éventuellement en anglais) et SharePoint et cours de formation Silverlight (éventuellement en anglais).

Documentation développeur pour 2010 de projet

Voici les composants principaux du Kit de développement Project 2010 :

  • Le Centre de développement de projet (éventuellement en anglais) inclut des liens pour les composants principaux du Kit de développement Project 2010 ainsi que pour les pages avec des informations destinées aux développeurs pour les versions antérieures. Les vidéos de et les présentations techniques en ligne | Développement de projet (éventuellement en anglais) page sur le centre de développement de projet contient des liens vers des ressources multimédias pour Project 2010. La page de la Communauté des développeurs de projet (éventuellement en anglais) inclut des liens vers les blogs, forums publics et autres informations sur les partenaires du projet et (plus évalués Professionals) de Microsoft Project.

  • Le Documentation du SDK Project 2010 (traduction automatique) en ligne comprend les rubriques conceptuelles, la procédure pas à pas et procédures actuelles, ainsi que les rubriques de référence pour les services PSI, des groupes de données connexes et bibliothèques de programmation de Project Server. Au bas de chaque page du Kit de développement en ligne vous trouverez une section de Contenu de communauté où vous pouvez publier des commentaires, ajouter des exemples de code courte, ou corriger les erreurs dans la page. Contenu de la Communauté est un site WIKI pour MSDN ; pour une aide avec des questions et discussions sur le développeur, vous pouvez utiliser le forum programmation et personnalisation du projet (éventuellement en anglais) .

  • Le Télécharger projet 2010 SDK (éventuellement en anglais) inclut le Kit de développement complet avec un fichier d'aide HTML consultable (Project2010SDK.chm), le code source pour les exemples d'applications, référence de schéma de base de données MOM Reporting, référence du Cube OLAP, XML les schémas, mis à jour IntelliSense fichiers et scripts pour créer un assembly de proxy basée sur ASMX ou WCF pour la PSI.

  • La référence de projet VBA et les rubriques d'aide est accessible à partir de trois emplacements. Les rubriques sont en ligne dans le Guide de référence du développeur Project 2010 (éventuellement en anglais)et également en ligne ou hors connexion dans l'aide de Visual Basic lorsque vous travaillez dans l'éditeur de Visual Basic. Si vous cliquez sur le menu de État de la connexion dans le coin inférieur droit de la fenêtre d'aide du projet, puis cliquez sur Afficher un contenu à partir d’Office.com ou Afficher un contenu à partir de cet ordinateur uniquement, vous pouvez accéder mis à jour de rubriques d'aide en ligne ou hors connexion pour VBA. Par exemple, le modèle d'objet VBA mappe travail mieux dans l'aide en mode hors connexion. Le rendu de MSDN n'inclut pas les liens pour les objets, et le rendu en ligne correspondant à l'aide de VBA n'est pas optimal.

  • De nombreuses rubriques dans la documentation de Project 2007 s'appliquent également à Project 2010. Par exemple, consultez les sections Project 2007 Technical Articles et Project 2007 Book Excerpts. Rubriques de Kit de développement tels que How to: Use a Filter Parameter with PSI Methods, Walkthrough: Creating a Hierarchical Lookup Table et How to: Customize E-Mail for Project Server Notifications utilisent des procédures générales qui sont les mêmes dans Office Project Server 2007 et Project Server 2010.

La ligne Project 2010 SDK est actuellement disponible en anglais et en japonais. La version japonaise pouvez sont commercialisées après la version anglaise de plusieurs mois. Pour la version japonaise, consultez https://msdn.microsoft.com/fr-fr/library/ms512767.aspx.

Documentation de l'administrateur de projet 2010

Microsoft Project Server sur TechNet est l'endroit pour trouver des informations sur l'installation projet, migration et d'administration. Le contenu TechNet comprend la documentation de l'utilisateur final pour Project Web App. La bibliothèque technique de Project Server 2010 est également disponible dans un téléchargement ; voir Microsoft Server 2010 bibliothèque technique Project dans le Format d'aide compilé.

Voici les sections principales consacrées aux Project 2010 dans TechNet :

Pour obtenir les dernières informations sur la documentation d'administrateur pour Project Server, consultez le blog de Gestion de contenu entreprise projet publication News (éventuellement en anglais) .

Documentation de l'utilisateur final à l'horizon 2010 projet

Aide contextuelle est disponible dans Project Standard et Project Professional. Comme avec l'aide de VBA, cliquez sur le menu de État de la connexion dans le coin inférieur droit de la fenêtre Aide sur Microsoft Project pour obtenir le contenu mis à jour et puis cliquez sur Afficher un contenu à partir d’Office.com. Lorsque vous utilisez Project Web App, pour l'aide contextuelle, cliquez sur l'icône d'aide dans le coin supérieur droit de la page.

Pour un accès en ligne pour toutes les rubriques d'aide de projet en cours, consultez les rubriques suivantes :

  • projet aide et procédures est pour Project Standard et Project Professional et inclut des ressources pour les principaux problèmes et des vidéos sur l'utilisation du projet.

  • Aide de Project Server et de procédures inclut l'aide en ligne Project Web App et nombreuses autres ressources. Des liens vers les nouvelles rubriques destinées Project Server 2010 incluent des informations et des vidéos sur le centre de Business Intelligence (BI), création d'une proposition de projet et que les autorisations de sécurité, définition phases et étapes pour un cycle de vie du projet.

  • Référence de projet inclut des références de champs, les spécifications de projet et une variété d'autres rubriques de référence.

    Notes

    Les responsables de projets utilisent souvent des formules pour calculer les valeurs des champs personnalisés ou à utiliser avec les indicateurs graphiques. Pour des descriptions et la syntaxe des fonctions qui sont disponibles pour l'écriture de formules, consultez la section Références de l'aide de Project Standard ou Project Professional, ou Fonctions de projet pour les champs personnalisés sur Office.com. Project 2010 utilise la même Expression de Jet de service pour les formules que Microsoft Access 2010 utilise. Pour plus d'informations sur les formules et les expressions et des exemples généraux, consultez le Guide sur la syntaxe d'Expression dans l'aide en ligne pour l'accès et Functions (Category List) dans MSDN Library.

  • Aident de langues disponibles pour l'utilisateur final du projet   Aide en ligne sur Project pages afficher la langue par défaut définie dans la boîte de dialogue Région et langue dans le panneau de configuration de votre ordinateur. Pour d'autres pays et langues, vous pouvez remplacer le code du nom de culture dans l'URL pour une rubrique d'aide de l'utilisateur final. Par exemple, l'URL de la page d'aide de Project Server et de procédures anglais est https://office.microsoft.com/fr-fr/en-us/project-server-help/. L'URL de français de la page d'aide de Project Server et de procédures est https://office.microsoft.com/fr-fr/fr-fr/project-server-help/. Pour obtenir une liste des langues et les codes de nom de culture qui prend en charge de Project Server, consultez la rubrique de la Classe PSSupportedLanguages (éventuellement en anglais) .

Pour plus d'informations sur un large éventail de sujets, consultez le blog officiel de l'équipe de projet : Microsoft Project 2010 (éventuellement en anglais).

Prend en charge de la Documentation et les Articles de la base de connaissances pour 2010 de projet

L'équipe de Support et Service clientèle de Microsoft gère le site de la Base de connaissances (KB) avec de nombreux articles sur les procédures et de dépannage pour Project 2010.

Conseil

Pour obtenir une liste de catégories de rubriques pour les articles de la base de connaissances et des liens vers les pages de flux RSS et de recherche, consultez prise en charge de Microsoft Project.

Nouveaux articles sont immédiatement traduit pour le japonais, français, espagnol et allemand. L'équipe Services de Support technique a créé de nombreux nouveaux articles et mis à jour de nombreux articles Ko hérités de la version de Project 2010.

La page prise en charge du projet inclut des liens vers les e-mails, en ligne et par téléphone auprès de Microsoft.

Vous pouvez poser des questions et obtenez les réponses aux questions les plus nombreuses dans les forums de projet, qui ont remplacé les groupes de discussion. Pour obtenir des informations générales sur les forums, consultez Bienvenue dans les Forums MSDN. Voici les quatre forums publics pour le projet :

Pour les dernières informations sur la prise en charge du projet, consultez la Microsoft Office projet prend en charge Weblog (éventuellement en anglais).

Téléchargements pour 2010 de projet

Vous trouverez tous les téléchargements pour le projet en effectuant une recherche du centre de téléchargement Microsoft.

Pour rechercher tous les téléchargements de projet 2010

  1. Accédez à la Centre de téléchargement Microsoft.

  2. Dans la zone de texte Rechercher, tapez projet 2010et appuyez sur Entrée.

  3. Pour filtrer ou trier la liste des résultats, ouvrez la boîte de dialogue Affiner les résultats , sélectionnez le filtre et les paramètres de tri et puis cliquez sur OK.

Pour trouver des téléchargements qui s'appliquent à plusieurs produits Office, tapez les noms de produits dans la zone de recherche. Par exemple, recherchez Projet Visio rechercher le Modeleur de WBS Visio 2007.

Documentation pour les autres produits et Technologies Office

Vous pouvez intégrer Project 2010 avec d'autres produits de Microsoft Office pour créer une grande variété d'Applications professionnelles Office.

Pour trouver la documentation du développeur et autre documentation pour les produits Microsoft Office System 2007, vous pouvez utiliser l' interactive Route de développeurs Microsoft Office 2010 (éventuellement en anglais). Pour plus d'un fichier PDF qui affiche tous les Office 2010 client et les produits de serveur et les technologies connexes, consultez Office 2010 : développeur Map affiche (éventuellement en anglais).

La figure 1 illustre la page Applications de bureau de la carte de développeur Office 2010. La carte interactive inclut les relations de l'ensemble des applications clientes de Microsoft Office, applications serveur, des applications mobiles, services et applications Office 365 et les technologies associées, outils de développement et composants de la plate-forme. Après avoir installé la carte de développeur Office 2010, vous pouvez cliquer sur n'importe quel élément pour afficher une page de ce produit ou une fonction avec des liens vers la documentation en ligne.

Figure 1. Mappage de développeur Microsoft Office 2010

Carte de développeur Office 2010

À l'aide de VBA dans projet 2010

Bien que cet article se concentre sur Project Server 2010, le modèle d'objet VBA dans Project Standard et Project Professional est très largement utilisé. Vous pouvez utiliser VBA pour automatiser les clients de bureau de projet avec des macros et d'intégrer le projet avec les autres applications de Office 2010 pour créer des solutions d'entreprise complète. Pour les solutions complexes, nous vous recommandons d'utiliser Outils de développement Microsoft Office dans Microsoft Visual Studio 2010 au lieu de VBA. Pour plus d'informations, consultez Programmation du client Project (traduction automatique).

Les macros et les commandes du ruban personnalisé   Le moyen le plus simple pour créer une macro simple consiste à utiliser la commande Enregistrer une macro sous l'onglet Développeur du ruban et ensuite effectuer manuellement les étapes que vous souhaitez que la macro pour contenir. Pour afficher l'onglet Développeur , cliquez sur Options dans l'onglet Fichier , cliquez sur Personnaliser le Ruban dans la boîte de dialogue Options de Project , puis sélectionnez Développeur dans la liste des Onglets principaux . Vous devrez probablement modifier la macro enregistrée dans l'éditeur de Visual Basic pour ajuster et simplifier.

Comme Project Standard 2010 et Project Professionnel 2010 utilisent l'interface utilisateur ruban au lieu d'une barre d'outils et menus, il existe des nouvelles méthodes permettant d'ajouter un bouton de commande personnalisé. Consultez Procédure : Utiliser VBA pour ajouter une commande personnalisée au ruban (traduction automatique) et Procédure : Utiliser du code géré pour ajouter une commande personnalisée au ruban (traduction automatique).

Pour obtenir des informations générales sur la création et modification de macros VBA, consultez le Centre pour développeurs Office et Prise en main du développement VBA dans Office 2010 (traduction automatique). Pour des articles spécifiques sur le projet VBA, consultez le chapitre Utilisation des événements et le chapitre utilisation des données chronologiques à partir de VBA Programming for Microsoft Office Project Versions 98 Through 2007. Il existe des articles de savoir-faire supplémentaires pour le projet VBA dans le SDK 2007 de projet, telles que Calendar Exceptions and Effective Work Weeks et Using VBA with Local Custom Fields and Outline Codes.

Conseil

Le livre uniquement sur la programmation pour le projet VBA est maintenant mis à jour pour inclure le projet 2010. Voir pour Microsoft Project 98 jusqu'en 2010 une introduction à VSTO de programmation VBA (éventuellement en anglais).

Pour déployer une macro à d'autres utilisateurs de Project Standard, vous pouvez distribuer un fichier .mpp de projet ou d'un fichier .mpt qui contient la macro. Par exemple, vous pouvez publier le fichier de projet dans une bibliothèque de documents SharePoint et fournissent des instructions pour copier et à l'aide de la macro. Pour utiliser une macro pour tous les projets sur un ordinateur local, copiez la macro dans le modèle global local. Pour copier dans le fichier Global.mpt, vous pouvez utiliser Organisateur sous l'onglet Développeur du ruban.

Pour déployer une macro à un groupe d'utilisateurs de Project Professional, vous pouvez extraire le modèle global d'entreprise et puis copiez la macro dans le modèle global d'entreprise dans Project Server. Vous pouvez ensuite créer une commande du ruban personnalisé et copier le texte sélectionné pour le modèle global d'entreprise extrait.

Notes

Sous l'onglet Développeur dans le ruban de Project Professional, cliquez sur Ouvrir l’entreprise globale. Ouvrir Organisateurpour copier des macros et puis cliquez sur l'onglet Modules dans la boîte de dialogue Organisateur . Dans le volet gauche de l' Organisateur, sélectionnez un module VBA et puis sélectionnez Entreprise Globale extraite dans le volet droit.

Automatisation de projet en utilisant un Visual StudioOutils de développement Office dans Visual Studio 2010 fournit des avantages pour le développement plus complexes, sécurisées et évolutives solutions qui automatisent les clients de bureau Project 2010 et d'autres applications de Microsoft Office. ClickOnce publication dans Visual Studio considérablement simplifie le développement, test et déployer des solutions avancées qui incluent le client Bureau de projet.

Pour une vue d'ensemble de modifications pour les développeurs VBA dans Project 2010, consultez Modifications du modèle objet VBA (traduction automatique). Pour plus d'informations sur Outils de développement Office dans Visual Studio 2010, consultez le Développement Office avec Visual Studio Developer Center (éventuellement en anglais) sur MSDN. Pour obtenir un exemple détaillé d'un complément Project 2010 développé avec Visual Studio 2010, voir Procédure pas à pas : Création d’un complément de code managé pour vérifier la compatibilité PWA (traduction automatique).

Notes

Des compléments pour Project 2010 doivent être mis à jour pour fonctionner avec les versions 32 bits et 64 bits. Pour plus d'informations, consultez Office Talk: Working with VBA in the 32-bit and 64-bit Versions of Office 2010.

Architecture Project Server

L'architecture de Project Server 2010 est multi-niveaux. La couche présentation inclut Project Web App, Project Professionnel 2010 et applications clientes de tiers. La couche de services d'application inclut les services PSI, la logique métier et SharePoint Server 2010. La couche données inclut les composants de la couche DAL (Data Access) et plusieurs bases de données Microsoft SQL Server. La figure 2 montre une vue simplifiée de l'architecture de Project Server. Pour plus d'informations, consultez Architecture Project Server 2010 (traduction automatique).

Figure 2. Architecture du projet Server 2010

Architecture Project Server 2010

Project Server prend en charge plusieurs sites virtuels de Project Web App. Vous pouvez installer une ou plusieurs instances de Project Web App sur le même ordinateur que les composants principaux de Project Server, ou sur des ordinateurs distincts au sein de la même batterie de serveurs SharePoint. Chaque instance d'utilisations Project Web App partagés le même noyau Project Server et autres services, bases de données mais distinctes. Par exemple, les deux collections de site virtuel Project Web App suivantes requièrent un total de huit bases de données de Project Server et partagent les bases de données de configuration et de contenu de SharePoint Server :

  • https://ServerName/pwa/

  • https://ServerName/pwaTest/

Dans les exemples précédents, pwa et pwaTest sont des noms des collections de site virtuel Project Web App. Chaque site virtuel possède sa propre liste indépendante des utilisateurs autorisés qui est stocké dans la base de données de contenu de SharePoint. Bases de données de Project Server ne stockent pas d'informations d'ouverture de session utilisateur. Le site pwa , par exemple, utilise les bases de données nommés ProjectServerDraft, ProjectServerPublished, ProjectServerArchive et ProjectServerReporting. Le site pwaTest utilise les bases de données indépendants nommés TestDraft, TestPublished, TestArchive et TestReporting. Vous pouvez installer les bases de données sur différents ordinateurs fonctionnant sous SQL Server 2005 ou SQL Server 2008.

Project Web App est générée avec Microsoft ASP.NET 3.5 et utilise des assemblys compilés qui interagissent avec Project Server par le biais de la PSI. Contrôles de ActiveX sont éliminés dans les pages Project Web App et remplacés par la nouvelle Contrôle Grille JS dans SharePoint 2010. Développeurs n'ont pas accès au code derrière les pages ASPX et les WebParts dans Project Web App. Cependant, vous pouvez accéder au modèle d'objet de Contrôle Grille JS à modifier et d'étendre le projet serveur WebParts qui utilisent le Contrôle Grille JS. Vous pouvez également modifier le ruban Project Web App et utiliser le modèle d'objet SharePoint Server pour créer vos propres WebParts qui interagissent avec Project Server WebParts. Le code Microsoft Visual C# ou Visual Basic de Microsoft dans vos extensions n'est pas exposé à d'autres développeurs. Pour obtenir des exemples, consultez Procédure : Modifier le ruban dans PWA (traduction automatique), Procédure pas à pas : Personnalisation du ruban PWA et accès au JS Grid (traduction automatique) et Procédure pas à pas : Création d’un composant WebPart Project Server avec un contrôle JS Grid (traduction automatique).

Project Web App utilise SharePoint Server 2010 pour l'authentification et de serveur web. Pour plus d'informations sur le fonctionnement de Project Web App avec la PSI lorsqu'il est installé sur un ordinateur distinct, consultez Architecture Project Server 2010 (traduction automatique) dans le SDK Project 2010.

L'accès aux données de Project Server 2010

Project Professionnel 2010 et toutes les applications de tiers communiquent avec Project Server 2010 que par le biais de la PSI. Dans les versions de Project Server avant 2007, Project Professional utilisé ODBC pour accéder directement aux bases de données de Project Server. ODBC ne peut pas être utilisée à travers des pare-feu de la plupart des entreprises. Project Professionnel 2010 élimine le besoin d'accès direct de la base de données, à l'exception de la base de données MOM Reporting. La base de données MOM Reporting peut être installé sur un ordinateur exécutant SQL Server, distinct des autres bases de données de Project Server.

Avertissement

Rien ne vous empêche d'utiliser un accès direct par programme aux bases de données brouillon, publié et d'archivage. Vous devez être conscient que le cache de Project Professional, la publication de base de données et la base de données de Reporting toutes s'appuient sur un protocole de synchronisation du cache qui peut être interrompu par les modifications de données directes. Si vous endommager vos bases de données de Project Server ou corrompre Project Professional côté client met en cache à l'aide d'un accès direct à modifier les données, être averti que support technique ne sera pas en mesure d'aider.

La PSI est l'interface entre votre application et la couche objet métier. Objets métier dans Project Server sont les composants qui incluent les règles pour les entités logiques telles que le projet, tâche, ressource, et affectation peut être modifiée, et comment ils interagissent entre eux et avec les autres composants de Project Server. Chaque entité logique peut s'étendre sur plusieurs tables de base de données. Étant donné que toutes les applications clientes passent par le programme PSI et utilisent la même logique métier, Project Server conserve les relations entre les objets métier correctes. Les objets métier n'interagissent pas directement avec les bases de données Project Server ; ils appellent la couche DAL, qui gère les transactions avec les tables de base de données correcte.

Pas de toutes les données de Project Server est disponible via la PSI. Par exemple, la plupart des données du calendrier d'entreprise est un champ d'image binaire (BLOB) dans la base de données publiée. Méthodes PSI pour pouvoir créer, lire, et la mise à jour enterprise exceptions de calendrier, mais ne peut pas gérer les données pendant des semaines de travail. Pour gérer les données de semaine de travail, vous devez utiliser Project Professional (ou une macro VBA ou un projet complément).

Essayez de la base de données rapport

Dans certains cas, il est plus facile à lire les données de Project Server à l'aide de la base de données MOM Reporting qu'en utilisant la PSI. Par exemple, vous pouvez rapidement obtenir la valeur d'un champ personnalisé qui utilise une table de choix, étant donné que Project Server crée une vue OLAP et une vue de l'utilisateur dans la base de données MOM Reporting pour chaque champ personnalisé. Par exemple, le MSPLT_Department_UserView intégré contient des données pour les services qui sont définis dans la table de choix de Service dans Project Web App. La requête suivante répertorie les neuf premiers départements dans la table de choix, ainsi que le membre spécial Null.

SELECT TOP 10 [LookupMemberUID]
      ,[MemberValue]
      ,[MemberDescription]
FROM [ProjectServer_Reporting].[dbo].[MSPLT_Department_UserView]

Pour la référence de schéma de base de données Reporting, consultez le Kit de développement de 2010 projet télécharger (éventuellement en anglais). La référence de schéma contient les affichages pour les champs personnalisés intégrés qui utilisent des tables de choix comme Type de coût, de Santéet de RBS. Pour les champs personnalisés qui n'utilisent pas d'une table de choix, vous pouvez utiliser la vue projet, un affichage des ressources ou un affichage des tâches utilisateur. Par exemple, la requête suivante recherche la valeur d'un champ personnalisé de tâche appelé Numéro de Test, pour toutes les tâches du projet spécifié.

SELECT task.[ProjectUID]
      ,[TaskName]
      ,[TaskIndex]
      ,[TaskDuration]
      ,[Test Number]
FROM [ProjectServer_Reporting].[dbo].[MSP_EpmTask_UserView] AS task
INNER JOIN [ProjectServer_Reporting].[dbo].[MSP_EpmProject_UserView] AS proj
   ON task.ProjectUID = proj.ProjectUID
WHERE proj.ProjectName = N'My Swell Project'

Pour plus d'informations, consultez Champs personnalisés et base de données de création de rapports (traduction automatique).

La mise en cache, Queuing, les événements et côté serveur planification en 2010 de projet

Le cache local dans Project Professionnel 2010, avec le Service de file d'attente de Project Server, permet le travail hors connexion et réduit le temps requis pour ouvrir et enregistrer des projets. Lorsqu'un responsable de projet se reconnecte après avoir travaillé en mode hors connexion, Project Professional envoie un message à la file d'attente de Project Server et enregistre uniquement les données modifiées. La file d'attente de Project Server gère l'enregistrement des données en mode asynchrone, et le chef de projet peut quitter Project Professional ou reprendre votre travail.

Le Service d'événements Project Server est une fonctionnalité majeure qui permet d'étendre des fonctionnalités de Project Server. Les développeurs peuvent créer des gestionnaires d'événements et les enregistrer par programme à l'aide de méthodes dans le service Events de la PSI ou à l'aide de Project Web App. Chaque objet de grosse entreprise (comme CustomFields, CubeAdmin, LookupTable, Project, Reporting, Security et TimeSheet) comprend plusieurs événements que vous pouvez voir sur la page de gestionnaires d'événements de côté serveur dans Project Web App (https://ServerName/ProjectServerName/_layouts/pwa/admin/Events.aspx). Gestionnaires d'événements fournissent des « hooks » pour ajouter de nouvelles fonctionnalités, la personnalisation de la fonctionnalité existante et l'intégration avec d'autres applications. Pour obtenir des exemples, consultez Événements de Project Server 2010 dans cet article.

Le moteur de planification dans Project Server 2010 est amélioré. Dans les versions antérieures de projet, par exemple, lorsqu'un membre de l'équipe a signalé une durée différente qu'a été prévue pour une tâche, le chef de projet devait ouvrir le projet dans Project Professional pour replanifier la tâche et ses objets dépendants. Project Server 2010 peut replanifier des tâches. Par exemple, vous pouvez implémenter un système de feuille de temps personnalisé et Project Server replanifie les projets sans exiger les données pour faire un aller-retour par le biais de Project Professional. Toutefois, le programme PSI n'inclut pas les méthodes à appeler directement le moteur de planification de Project Server.

Notes

Les méthodes publiques dans le programme PSI prend en charge les exigences de la plus courantes et utiles pour la gestion des projets côté serveur et l'intégration avec d'autres applications. La PSI publique ne traite pas toutes les fonctionnalités de Project Professional ou Project Web App, qui utilisent également des méthodes et certains services PSI privés.

Pour plus d'informations, consultez Ce que l’interface PSI fait et ne fait pas (traduction automatique).

Intégration avec Microsoft SharePoint Server 2010

Project Server 2010 requiert Microsoft SharePoint Server 2010 avec une licence d’accès client Enterprise. Toutes les fonctionnalités de Project Web App sont basées sur SharePoint Server, y compris l'administration du site, l'authentification des utilisateurs, flux de travail, Project Server WebParts comme centre de projets et Mes tâches et les sites de projets qui comportent des listes de problèmes, les risques, les livrables et les documents connexes. Pour une introduction à l'architecture de SharePoint, consultez SharePoint 2010 Architectures Overview.

Sécurité Project Server

SharePoint Server 2010 gère l'authentification des utilisateurs par le biais de traitement des plaintes, qui est une nouvelle fonctionnalité pour SharePoint Server. SharePoint gère l'authentification Windows et authentification par formulaire pour les utilisateurs de Project Server. Project Server ajoute les autorisations globales et les autorisations de catégorie pour l'autorisation de l'utilisateur des différentes fonctionnalités de Project Server et les actions, qui sont accessibles lorsque vous sélectionnez un utilisateur dans la page Gérer les utilisateurs dans Project Web App.

L'objet métier de Security dans Project Server (avec accès par programme via le service de Security PSI) gère les autorisations globales Project Web App, des catégories, des modèles et des groupes de sécurité. Le service de Security pouvez ajouter des autorisations existantes ou supprimer des autorisations dans les jeux disponibles pour les utilisateurs de Project Server. Toutefois, le service Security n'a pas une méthode de création des autorisations personnalisées.

Notes

Dans Office Project Server 2007, vous pouvez créer des personnalisées globale et les autorisations de catégorie en modifiant les tables de sécurité dans la base de données publiée. L'article Walkthrough: Creating and Using Custom Project Server Permissions est le seul exemple SDK où une exception est faite pour modifier directement la base de données publiée. Autorisations personnalisées apparaissent dans les listes d'autorisations dans Project Web App, où les administrateurs de Project Server peuvent sécuriser une extension de tiers de la même façon qu'ils sécurisent les autres fonctionnalités de Project Server. Dans Project Server 2010, que le processus de création d'autorisations personnalisées est obsolète. Comme alternative, vous pouvez créer votre propre interface utilisateur pour gérer les autorisations personnalisées.

Pour plus d'informations sur la façon d'intégrer le modèle de sécurité de Project Server dans les rapports, consultez Using Project Server Security in SQL Server Reporting Services Reports. Pour plus d'informations sur la sécurité de Project Server, y compris une discussion de global et les autorisations de catégorie, voir la Project Server Security Primer dans le SDK de Microsoft Project Server 2007 et la sécurité et Protection de Project Server 2010 sur TechNet.

Project Server WebParts

La capacité de développement de page Web de Project Web App et SharePoint Server 2010 s'appuie sur le .NET Framework 3.5. Vous pouvez développer WebParts pour Project Web App tout comme pour les autres sites SharePoint, car Project Web Appest un site SharePoint. Visual Studio 2010 rend beaucoup plus facile que dans les versions antérieures à développer, déployer, tester et déboguer WebParts. Un nouveau modèle de projet Visual WebPart fournit un concepteur pour WebParts.

Vous pouvez ajouter WebParts à Project Web App les pages qui incluent l'option Modifier la page dans le menu Actions du site . Certaines pages, telles que les Analyses de portefeuille et les paramètres du serveur, sont conçues pour des fonctionnalités spécifiques et ne vous permettent pas à modifier la page. Toutefois, administrateurs Project Web App peuvent utiliser le lien de Lancement rapide sur la page Paramètres du serveur pour ajouter des sections et des liens vers les pages personnalisées dans Lancement rapide. Figure 3 montre combien il est facile pour ajouter des WebParts aux pages Project Web App modifiable. Cliquez simplement sur Modifier la page dans le menu Actions du site et puis cliquez sur Ajouter un composant WebPart dans la section de page que vous souhaitez. Dans la Figure 3, les Problèmes composant WebPart est sélectionné dans la catégorie de Project Web App .

Figure 3. Ajout d'un composant WebPart Project Server

Ajout d’un composant WebPart Project Server

Project Server 2010 comprend 18 spécialisés de WebParts Project Server dans la catégorie de Project Web App , comme Centre de projets, les Détails du projetet Ma feuille de temps. SharePoint Server 2010 comprend de nombreux WebParts plus, dans plusieurs catégories. (La catégorie des Exemples de la grille JS à la Figure 3 est un complément personnalisé qui s'affichent pas dans votre propre site Project Web App). Pour afficher la liste des constantes environ 90 WebParts qui peuvent être utilisées dans Project Web App, dans le menu Actions du site , cliquez sur Paramètres du siteet puis cliquez sur Composants WebPart dans la section Galeries .

WebParts pouvez utiliser l'espace de noms System.Web.UI.WebControls.WebParts dans ASP.NET 3.5, ou l'espace de noms Microsoft.SharePoint.WebControls. Pour plus d'informations sur les WebParts personnalisé et quel espace de noms à utiliser, consultez Développement de composants WebPart Project Server (traduction automatique).

Notes

Vous pouvez ajouter des Project Server 2010 WebParts vers d'autres sites SharePoint s'ils sont dans la même batterie de serveurs en tant que serveur de projet. Project Server 2010 n'a pas besoin configurer les autres sites SharePoint.

Avec la .NET Framework 3.5 cible, le modèle de projet Visual WebPart et le modèle d'élément de composant WebPart dans Visual Studio 2010 créent un composant WebPart avec l'extension de nom de fichier .webpart. Project Web App prend également en charge de WebParts Windows SharePoint Services 2.0 hérités (ayant l'extension de nom de fichier .dwp), .ascx des contrôles personnalisés et autres fonctionnalités d'extensibilité de Microsoft ASP.NET 2.0. Nous vous recommandons de créer ASP.NET 3.5 WebParts si possible, pour assurer la compatibilité avec SharePoint Server 2010 et d'autres applications ASP.NET 3.5 ou Microsoft ASP.NET 4.0 qui ne sont pas hébergées par SharePoint.

Modification des Pages du projet Web App
SharePoint Server 2010 utilise des pages maîtres pour contrôler l'apparence des pages Web au sein d'un site. Toutefois, Project Server n'autorise pas l'utilisation de Microsoft SharePoint Designer 2010 pour modifier les pages Project Web App ou des pages maîtres, car SharePoint Designer ne peut pas gérer le code intégral qui accède à la PSI et autres assemblys de Project Server. Vous pouvez apporter des modifications pour Project Web App intégrer votre organisation de personnalisation, jeu de couleurs et la terminologie ; reportez-vous à la section Aspect dans la page Paramètres du Site. Vous pouvez également ajouter, supprimer, désactiver, modifier l'apparence ou modifier l'action des contrôles du ruban Project Web App. Pour plus d'informations, consultez Procédure : Modifier le ruban dans PWA (traduction automatique).

Le Contrôle Grille JS (partie de Microsoft SharePoint Foundation 2010) remplace le contrôle de grille de ActiveX qui est utilisé dans les versions précédentes de Project Server. Le Contrôle Grille JS utilise ECMAScript (JavaScript, JScript) pour les modifications côté client de la grille. Pour les pages de Project Web App comprenant un Contrôle Grille JS, vous pouvez utiliser les Contrôle Grille JS objet modèle et gestionnaires d'événements pour modifier la grille et ajouter des fonctionnalités ; rappels permet également de server-side assemblies. Pour obtenir un exemple, consultez Procédure pas à pas : Personnalisation du ruban PWA et accès au JS Grid (traduction automatique). Votre WebParts personnalisé peut appeler les méthodes PSI ou des applications tierces. Pour obtenir un exemple, consultez Procédure pas à pas : Création d’un composant WebPart Project Server avec un contrôle JS Grid (traduction automatique).

Sites de projet

Lorsque vous créez et publiez un projet, par défaut vous créez également un site de projet pour la collaboration en équipe. Dans les versions antérieures de Project Server, un site de projet a été appelé un espace de travail du projet. Par exemple, le site par défaut pour un projet nommé My Test Project est la suivante :

https://ServerName/My%20Test%20Project/default.aspx

Vous pouvez spécifier un autre serveur qui exécute SharePoint au sein de la même batterie de serveurs, ou spécifier un autre nom de site, lorsque vous utilisez Project Professional ou la PSI pour créer et publier des projets. Sites de projet peuvent inclure des listes de documents, problèmes, risques et livrables du projet. Responsable de projet peut publier des tâches ou des jalons en tant que liste des livrables pour un projet et autres responsables de projet peuvent s'abonner à cette liste pour obtenir des notifications de modifications dans les dates. Publication ou l'abonnement à des livrables n'affecte pas la planification des tâches sur un projet, mais sert de manière à améliorer la collaboration entre les projets.

Une liste du livrable est une liste SharePoint spécialisée. Le SDK SharePoint 2010 fournit des exemples de comment développer des listes personnalisées. Dans la mesure où les sites de projet sont des sites SharePoint simples, qui ont des listes personnalisées, vous pouvez utiliser toutes les techniques de SharePoint pour la personnalisation et extension, y compris la modification de la page maître avec SharePoint Designer 2010. Pour créer une nouvelle page maître pour les sites de projet, créez manuellement un site de projet n'est pas connecté à un projet (en d'autres termes, où le site n'est créé par Project Server lorsque vous publiez un projet). Modifier ce site, puis utilisez sa page maître comme page maître pour les autres sites de projet.

Pour plus d'informations sur la modification du modèle pour les sites de projet, consultez Extending the Project Workspace Template dans le Kit de développement logiciel Project 2007. Pour plus d'informations sur l'utilisation des données de liste SharePoint tels que des problèmes, risques et autres listes personnalisées, consultez l'extrait de livre, Importing SharePoint List Data into Project Server 2007 Custom Fields. Le processus fonctionne également pour Project Server 2010. Pour plus d'informations sur la personnalisation des sites de projet, consultez le Centre de développement SharePoint.

Flux de travail de Project Server

Windows Workflow Foundation (WF) est un composant de plate-forme Windows qui est hébergé et étendu par SharePoint Foundation 2010. WF est un framework de développement, pas un serveur ou l'application, ce qui offre une technologie de workflow pour SharePoint et d'autres applications Windows. Pour plus d'informations sur les flux de travail dans SharePoint, consultez Nouveauté : améliorations des flux de travail.

Project Server 2010 ajoute plusieurs extensions et une restriction, à la plate-forme de flux de travail SharePoint. Project Server inclut des activités de workflow, qui peuvent être utilisées avec les activités standard de SharePoint et WF. Vous ne pouvez pas utiliser SharePoint Designer 2010 pour développer des flux de travail de Project Server, comme vous le feriez avec SharePoint. Flux de travail de Project Server nécessite le développement avec Visual Studio 2010 sur un ordinateur de Project Server.

Certains outils dans le Démarreurs de solutions Microsoft Project 2010 (éventuellement en anglais), qui ont été introduites après la publication de Project Server 2010, fonctionnalités relatif à l'aide dans Création de workflows simple (non-branchement) et la gestion. Flux de travail est entièrement intégrés dans les analyses de portefeuille et de gestion de la demande. Pour plus d'informations sur les flux de travail de Project Server, consultez Flux de travail et gestion des demandes (traduction automatique) et Développement de flux de travail Project Server (traduction automatique).

Options d'URL SimpleUI dans le projet Web App

pages Project Web App toujours implémentent les options URL héritées, nommées SimpleUI, pour masquer ou afficher différentes parties de la page, bien que ces options sont rarement utilisées. Dans Project Server 2010, le paramètre SimpleUI est persistant sous la forme d'un cookie sur l'ordinateur de l'utilisateur local. SimpleUI s'applique globalement aux pages Project Web App, mais pas vers d'autres sites SharePoint dans la batterie de serveurs qui n'ont pas de provisionnement de Project Server. Le ruban, qui est nouvel dans Project Server 2010, n'est pas affecté. Pour obtenir un exemple simple, l'URL suivante masque la barre de lancement rapide dans Project Web App :

https://ServerName/ProjectServerName/default.aspx?SimpleUI=8

Maintenant toutes les pages ont les mêmes éléments supprimés, et vous verrez plus l'option SimpleUI dans d'autres pages. Pour revenir temporairement au mode par défaut pour la page en cours, ajoutez ?SimpleUI=0 à n'importe quelle URL Project Web App. Pour conserver la vue par défaut sur toutes les pages, ajoutez ?SimpleUI=16. À la différence des combinaisons de 256 du SimpleUI dans Project Server 2003, Project Server 2010 utilise des combinaisons de masque de bits 32 (0 à 31). Pour un tableau des options de l'URL, consultez Scenarios for Custom Web Parts dans le Kit de développement logiciel Project 2007.

Interface Project Server

La PSI comprend un ensemble de 22 services publics (également appelées services web, lorsqu'ils sont accessibles via l'interface ASMX). La plupart des services PSI correspondent à des objets métier Project Server, qui sont des entités logiques telles que des projets et des ressources. La PSI a un service de Project pour l'entité de projet, un service de Resource pour l'entité de ressource, un service de TimeSheet de l'entité de la feuille de temps et ainsi de suite. Chaque service PSI inclut un ou plusieurs objets de DataSet qui contiennent des données pour cette entité. La plupart des méthodes PSI utiliser un paramètre de DataSet ou renvoyer un objet DataSet. Par exemple, la méthode QueueCreateProject dans le service Project envoie un message à la file d'attente du serveur de projet pour créer un projet dans la base de données de projet avec les données spécifiées dans le paramètre ProjectDataSet. Voici la signature de la méthode QueueCreateProject.

public void QueueCreateProject(Guid jobUid, ProjectDataSet dataset, 
   bool validateOnly);

Le paramètre jobUid vous permet de suivre et gérer la tâche dans la file d'attente à l'aide de méthodes du service QueueSystem. Les méthodes PSI qui commencent par le nom de file d'attente, tel que QueuePublish et QueueCheckInProject, tous exécutent de façon asynchrone ; Project Server place un message dans la file d'attente et puis repasse le contrôle à votre application. Autres méthodes, telles que CheckOutProject et ReadProject, s'exécutent simultanément ; votre application ne continue pas jusqu'à ce que la méthode est terminée.

La méthode ReadProject lit le projet spécifié dans une base de données spécifiée et renvoie un objet ProjectDataSet. Toutes les entités sont identifiées par un GUID dans Project Server. Certains paramètres dans les méthodes PSI utilisent les énumérations qui sont dans l'assembly Microsoft.Office.Project.Server.Library.dll, ou parfois dans le service PSI. Par exemple, voici la signature de la méthode ReadProject.

public ProjectDataSet ReadProject(Guid projectUid, DataStoreEnum dataStore);

Dans le fragment de code suivant d'un appel à la méthode ReadProject, l'espace de noms SvcProject est un nom arbitraire d'un proxy pour le service de projet dans la PSI. La valeur de la variable projUid est le GUID d'un projet qui a été précédemment enregistré pour la base de données de projet (du magasin de travail).

using PSLibrary = Microsoft.Office.Project.Server.Library;
. . .

private static SvcProject.ProjectClient projectClient;
. . .
    // Initialization of the projectClient object is not shown here.
    
    Guid projUid = new Guid("8024BEB0-7814-44CF-98FF-4E74148E3404");
    SvcProject.ProjectDataSet projDs = 
        projectClient.ReadProject(projUid, PSLibrary.DataStoreEnum.WorkingStore);
    . . .

Interface double : ASMX et WCF

L'interface WCF est définie dans le service d'application Project Server dans la partie principale du serveur SharePoint, vous ne pouvez pas utiliser Internet Explorer pour afficher l'interface WCF de services PSI. L'interface WCF pour chaque service PSI inclut une classe principale qui contient les méthodes que vous utilisez pour accéder au service. Le nom de classe principale a le suffixe du Client . Par exemple, la classe principale dans le service de projet est ProjectClient ; dans le service de ressources, la classe principale est ResourceClient.

Il existe plusieurs surcharges du constructeur d'une classe principale. La méthode courante pour initialiser une classe principale consiste à définir un point de terminaison WCF et puis utiliser le nom du point de terminaison comme paramètre, comme dans l'exemple suivant :

projectClient = new SvcProject.ProjectClient("basicHttp_Project");

Vous pouvez définir un point de terminaison WCF par programme ou dans un fichier de configuration de service tels que le fichier app.config ou web.config. Pour obtenir un exemple d'un fichier app.config, reportez-vous à la section Ajout d'un fichier de Configuration de Service dans Conditions préalables pour les exemples de code basés sur WCF (traduction automatique). Pour obtenir un exemple de définition d'un point de terminaison WCF par programme, consultez la section Configuration des Services par programme dans Procédure pas à pas : Développement d’applications PSI à l’aide de WCF (traduction automatique). Vous pouvez utiliser un fichier de configuration de service lorsque votre application est autonome — en d'autres termes, lorsque votre application n'affecte pas le fichier de configuration de service d'une autre application. Pour éviter de modifier le fichier app.config pour Project Web App lui-même, vous devez définir par programme un point de terminaison WCF lorsque votre application est une extension de Project Server, comme un gestionnaire d'événements, une modification de la Contrôle Grille JS sur une page Project Web App, ou une extension PSI.

Interface ASMX   Étant donné que l'interface ASMX est accessible dans la partie frontale Project Web App, vous pouvez utiliser Internet Explorer pour afficher l'interface ASMX des services web PSI. Par exemple, modifier l'URL suivante pour votre instance de Project Web App et puis collez l'URL dans Internet Explorer :

https://ServerName/ProjectServerName/_vti_bin/PSI/project.asmx?wsdl

La classe principale dans l'interface ASMX pour chaque service web PSI est simplement le nom du service. Par exemple, la classe ASMX principale dans le service de projet est Project ; dans le service de ressources, il est Resource. Dans l'extrait de code suivant, ProjectWebSvc est l'espace de noms arbitraire d'un proxy pour le service de projet dans la PSI. Vous pouvez initialiser l'objet principal Project simplement en définissant la propriété Url et la propriété de Credentials, comme dans l'exemple suivant.

using System.Web.Services.Protocols;
using PSLibrary = Microsoft.Office.Project.Server.Library;
. . .

    ProjectWebSvc.Project project = new ProjectWebSvc.Project();
    project.Url = "https://ServerName/ProjectServerName/_vti_bin/psi/project.asmx";
    project.Credentials = CredentialCache.DefaultCredentials;

Après l'initialisation de la classe principale dans un service PSI, le reste du code dans une application basée sur ASMX est identique à celle d'une application basée sur WCF (sauf dans les cas où votre application effectue l'emprunt d'identité ou dans le cas où l'instance Project Web App utilise l'authentification Windows et authentification par formulaires). Pour plus d'informations sur l'utilisation de l'interface ASMX, consultez Conditions préalables pour les exemples de code basés sur ASMX (traduction automatique). Plusieurs méthodes PSI dans le SDK Project 2010 incluent des exemples de code pour l'interface WCF et l'interface ASMX ; par exemple, consultez ReadProjectStatus.

Nous vous recommandons d'utiliser l'interface WCF lors du développement de nouvelles applications qui utilisent les services PSI. L'interface ASMX est disponible pour les applications héritées de Project Server (celles développées pour Office Project Server 2007). Pour les anciennes applications développées pour Project Server 2003 ou une version antérieure, vous devez complètement remanier les applications s'exécutent sur Project Server 2010. Dans de nombreux cas, les anciennes applications peuvent ne plus fonctionner en raison de nouvelles fonctions introduites dans Office Project Server 2007 et Project Server 2010. Pour plus d'informations sur le portage d'applications plus anciennes de Project Data Service (PDS), consultez PDS Parity in PSI Web Services. Pour plus d'informations sur les interfaces WCF et ASMX, consultez Vue d’ensemble de WCF et de l’interface PSI (traduction automatique).

Il existe un moyen plus rapide pour commencer

À l'aide de l'interface WCF de la PSI peut prêter à confusion, car il existe autant d'options dans le développement avec les services WCF dans Project Server. Il existe trois manières d'ajouter une référence de service WCF, et il existe deux façons de configurer le service (ou trois façons,), si vous utilisez l' Éditeur de configuration de service dans Visual Studio, comme décrit dans la section Configuration des Services avec app.config dans Procédure pas à pas : Développement d’applications PSI à l’aide de WCF (traduction automatique).

Pour simplifier les choses lorsque vous commencez à apprendre le développement PSI, essayez un exemple où la configuration est déjà faite.

Pour créer votre première application PSI basée sur WCF

  1. Installez le téléchargement du projet 2010. Il est plus facile à installer dans un répertoire tel que C:\Project_SDK, au lieu de dans le répertoire par défaut, afin d'éviter les problèmes d'autorisation lorsque vous utilisez les exemples de Visual Studio.

  2. Extrayez le fichier ~\Documentation\Intellisense\WCF\Source.zip dans le sous-répertoire de même et puis exécutez la commande CompileWCFProxyAssembly dans une fenêtre d'invite de commande Visual Studio. Qui crée l'assembly de proxy ProjectServerServices.dll.

  3. Ouvrez la solution Samples\ManagedCodeReference\CreateProject4Department.sln dans Visual Studio 2010.

    Notes

    Vous devez travailler sur une installation d'essai de Project Server, si possible. Pour de nombreuses applications (à l'exception des flux de travail, ou la modification des sites Project Web App ou projet), vous pouvez développer sur un ordinateur externe, mais vous devez ensuite copier l'assembly Microsoft.Office.Project.Server.Library.dll et l'assembly de proxy ProjectServerServices.dll à l'ordinateur distant.

  4. Définir une référence à l'assembly de proxy ProjectServerServices.dll que vous avez créé à l'étape 2 et vous assurer que la référence Microsoft.Office.Project.Server.Library est valide.

  5. Dans le fichier app.config, modifiez les adresses de point de terminaison à utiliser le nom de serveur correct et le nom de Project Web App, pour le point de terminaison ProjectServer.svc.

  6. Dans le fichier Program.cs, modifiez le nom du répertoire pour la constante OUTPUT_FILES, si vous souhaitez qu'une valeur différente.

  7. Créer un ou plusieurs départements dans la table de choix de Service (utilisation https://ServerName/ProjectServerName/_layouts/PWA/Admin/EditLookupTable.aspx?_guid=e7397277-1ab0-4096-b2dd-57029a055ba4) et recherchez le GUID de l'un des départements, comme décrit dans les commentaires dans le fichier Program.cs. Modifiez la valeur de la constante DEPARTMENT_TEST.

  8. Compilez et exécutez le programme. Vous devriez voir la sortie suivante dans la fenêtre d'invite de commande Visual Studio.

    XML output of the ProjectDataSet before QueueCreateProject:
        C:\Project\Samples\Output\ProjectDataSet4Department_before.xml
    Creating project: Test Dept 1
    Waiting for job: ProjectCreate .................................................
    
    XML output of the ProjectDataSet after ReadProject:
        C:\Project\Samples\Output\ProjectDataSet4Department_after.xml
    
  9. Appuyez sur n'importe quelle touche pour quitter la fenêtre d'invite de commande. Si vous obtenez des erreurs, assurez-vous d'avoir des autorisations appropriées pour accéder à Project Web App et créer des projets. Vérifiez également les journaux ULS, comme décrit dans la Vérification des erreurs dans Project Server 2010.

À l'aide des objets DataSet dans la PSI

Chaque service PSI inclut les classes de DataSet dont il a besoin et qui correspondent aux informations contenues dans les entités métier. Un objet DataSet est essentiellement une en mémoire relationnel qui inclut un schéma pour les tables, des relations, des contraintes, des lignes et des champs. Chaque objet DataSet contient un ou plusieurs objets de DataTable qui contiennent des objets DataRow. Chaque DataRow comprend une ou plusieurs propriétés (champs de données) et procédés de gestion de la ligne. Par exemple, la classe ResourceDataSet comprend des sous-classes tels que ResourceDataTable et ResourceRatesDataTable, qui correspondent à la table Resource et de la table ResourceRates. La sous-classe ResourceDataSet.ResourceRatesRow définit une ligne (c'est-à-dire, un enregistrement de ressource de coût) dans la table ResourceRates.

Dans le code suivant pour l'application de console Demo_UpdateResource, la variable resourceDs contient un objet ResourceDataSet.

Notes

La définition du point de terminaison WCF "basicHttp_Resource" dans le fichier app.config n'est pas présentée ici. Vous pouvez adapter des solutions d'échantillon PSI dans le téléchargement du Kit de développement logiciel de Project 2010 dans un fichier app.config.

Pour gérer les erreurs de FaultException dans les applications WCF, vous devez utiliser try – catch instructions pour les appels aux méthodes PSI. Dans les applications basées sur ASMX, vous devez intercepter les erreurs de SoapException. Pour plus d'informations, consultez la section Exemple de Code pour WCF et la section Exemple de Code pour ASMX dans Codes d’erreur de Project Server (traduction automatique).

using System;
using System.ServiceModel;
using System.Xml;
using PSLibrary = Microsoft.Office.Project.Server.Library;

namespace Demo_UpdateResource
{
    class Program
    {
        private const string ENDPOINT_RESOURCE = "basicHttp_Resource";
        private const string OUTPUT_FILES = @"C:\Project\Samples\Output\";

        private static SvcResource.ResourceClient resourceClient;
        private static string outFilePath;

        static void Main(string[] args)
        {
            outFilePath = OUTPUT_FILES + "Demo_ReadResource.xml";
            resourceClient = new SvcResource.ResourceClient(ENDPOINT_RESOURCE);

            Guid myUid = resourceClient.GetCurrentUserUid();

            SvcResource.ResourceDataSet resourceDs = resourceClient.ReadResource(myUid);

            // Set cost per use to 1.25 USD.
            double costPerUse = 1.25 * PSLibrary.ValidationConst.s_cost_multiplier;

            if (resourceDs.ResourceRates[0].RES_COST_PER_USE != costPerUse)
            {
                resourceDs.ResourceRates[0].RES_COST_PER_USE = costPerUse;

                if (resourceDs.Resources[0].IsRES_CHECKOUTBYNull())
                {
                    Guid[] resourceUids = { myUid };  // Array of resources to check out.
                    resourceClient.CheckOutResources(resourceUids);
                }
                bool validateOnly = false;
                bool autoCheckIn = true;
                resourceClient.UpdateResources(resourceDs, validateOnly, autoCheckIn);
            }
            resourceClient.Close();
            
            Console.WriteLine("XML output file for ResourceDataSet: {0}", outFilePath);
            resourceDs.WriteXml(outFilePath);
            Console.Write("\nPress any key to exit... ");
            Console.ReadKey(true);
        }
    }
}

Le Demo_UpdateResource effectue les opérations suivantes :

  1. Initialise un objet ResourceClient avec le point de terminaison WCF.

  2. Obtient le GUID de l'utilisateur de l'application avec la méthode GetCurrentUserUid.

  3. Initialise un objet ResourceDataSet avec la méthode ReadResource. Le ResourceDataSet comporte une ligne dans la table ResourceRates, qui est accessible par ResourceRates[0].

  4. Définit le coût par utiliser la valeur à 1,25 $ (sur un système anglais américain). La propriété RES_COST_PER_USE utilise le champ s_cost_multiplier pour convertir la valeur de coût.

  5. Détermine si le coût d'utilisation de l'utilisateur de l'application est de 1,25 $. Dans le cas contraire, définit le champ RES_COST_PER_USE à 1,25 $.

  6. Détermine si la valeur RES_CHECKOUTBY est null ; Si tel est le cas, consultez la ressource.

  7. Met à jour la ressource en utilisant la méthode UpdateResources.

    Notes

    Dans le SDK Project 2010, la section Notes dans la rubrique pour chaque méthode dans les classes principales des services PSI indique quelles autorisations Project Server sont requises pour utiliser la méthode. Par exemple, la méthode UpdateResources utilise quatre autorisations, y compris l'autorisation globale ManageUsersAndGroups et l'autorisation de catégorie EditEnterpriseResourceData. Si l'utilisateur de l'application n'a pas toutes les autorisations requises, l'appel de méthode UpdateResources échoue avec une exception.

  8. Ferme l'objet ResourceClient, pour faciliter le garbage collection.

  9. Sérialise l'objet ResourceDataSet dans un fichier XML pour le débogage, en utilisant la méthode WriteXml. L'exemple suivant fait partie du fichier XML, afficher le champ RES_COST_PER_USE mis à jour.

    <?xml version="1.0" standalone="yes"?>
    <ResourceDataSet xmlns="https://schemas.microsoft.com/office/project/server/webservices/ResourceDataSet/">
      <Resources>
        <!-- Fields in the Resources table. -->
      </Resources>
      <ResourceCustomFields>
        <!-- Fields in the ResourceCustomFields table. -->
      </ResourceCustomFields>
      <CalendarExceptions>
        <!-- Fields in the CalendarExceptions[0] row.-->
      </CalendarExceptions>
      <CalendarExceptions>
        <!-- Fields in the CalendarExceptions[1] row.-->
      </CalendarExceptions>
      <ResourceRates>
        <RES_UID>efef7161-eb7f-43b0-8936-7247ca393453</RES_UID>
        <RES_RATE_TABLE>0</RES_RATE_TABLE>
        <RES_STD_RATE>12</RES_STD_RATE>
        <RES_OVT_RATE>15</RES_OVT_RATE>
        <RES_COST_PER_USE>125</RES_COST_PER_USE>
      </ResourceRates>
      <ResourceAvailabilities>
        <RES_UID>efef7161-eb7f-43b0-8936-7247ca393453</RES_UID>
        <RES_AVAIL_UNITS>100</RES_AVAIL_UNITS>
      </ResourceAvailabilities>
    </ResourceDataSet>
    

Pour déboguer l'application Demo_UpdateResource au cours de test et développement, par exemple, définir un point d'arrêt sur l'instruction qui contient l'appel de UpdateResources. Lorsque l'application s'arrête l'exécution, placez le pointeur de la souris sur le paramètre resourceDs et puis cliquez sur l'icône en forme de loupe petit pour afficher la boîte de dialogue Visualiseur DataSet . Dans la liste déroulante de la Tableau , sélectionnez ResourceRates (Figure 4).

Figure 4. En utilisant le visualiseur DataSet au cours du débogage

Débogage avec le DataSetVisualizer

Une fois que l'application a terminé, si vous ouvrez la page Modifier l'utilisateur dans Project Web App pour cet utilisateur, la zone de texte de Coût/Utilisation affiche 1,25 $.

La plupart des exemples de code dans le SDK Project 2010 utilisent des groupes de données. Par exemple, la rubrique QueueCreateProject comprend des exemples de code basés sur ASMX et WCF qui ajouter des lignes aux tables de données dans un ProjectDataSet vide, puis créez un projet. L'application de test ProjTool inclut de nombreux exemples qui manipulent des jeux de données dans le programme PSI. Le code source de ProjTool est disponible dans le téléchargement du Kit de développement logiciel Project 2010 ; Voir Utilisation de l’application de test ProjTool dans Project Server 2010 (traduction automatique). Pour obtenir des informations générales sur les groupes de données, consultez ADO.NET.

Méthodes PSI qui utilisent un xmlFilter paramètre

Méthodes de huit PSI pour lire les données utilisent un objet de filtre de chaîne XML dans un paramètre de xmlFilter, ce qui peut limiter la quantité de données que la méthode retourne dans un DataSet. Les méthodes de filtrage incluent ReadCalendars, ReadCustomFields, ReadCustomFields2, ReadLookupTables, ReadLookupTablesMultiLang, ReadResources, ReadResourceAssignments et ReadResourcePlan. Dans la plupart des cas, si le paramètre xmlFilter est une chaîne vide, la méthode retourne toutes les données disponibles une exception est la méthode ReadResourceAssignments, qui requiert une chaîne non vide dans la mesure où il peut y avoir plusieurs milliers d'affectations.

Par exemple, la méthode GetLookupTableFilter dans le code suivant crée un filtre XML qui limite la LookupTableDataSet pour inclure uniquement la table LookupTableTrees avec les colonnes LT_UID, LT_STRUCT_UID et LT_VALUE_FULL. La méthode GetRbsValue appelle la méthode ReadLookupTables et puis effectue une itération dans la table filtrée LookupTableTrees pour rechercher la valeur du champ personnalisé RBS qui est spécifié par le paramètre lutValueUid complet.

using PSLibrary = Microsoft.Office.Project.Server.Library;
. . .
private string GetRbsValue(Guid lutValueUid)
{
    string rbsValue = string.Empty;
    // Don't use a known LCID when ReadLookupTables uses a non-empty filterXml parameter.
    int noLcid = 0; 
    PSLibrary.Filter lutFilter = GetLookupTableFilter();
    string lutFilterXml = lutFilter.GetXml();

    SvcLookupTable.LookupTableDataSet lutDs =
        lookupTableClient.ReadLookupTables(lutFilterXml, false, noLcid);

    for (int i = 0; i < lutDs.LookupTableTrees.Count; i++)
    {
        if (lutDs.LookupTableTrees[i].LT_STRUCT_UID == lutValueUid)
        {
            rbsValue = lutDs.LookupTableTrees[i].LT_VALUE_FULL;
            break;
        }
    }
    return rbsValue;
}

// Create a filter for the ReadLookupTables method.
private PSLibrary.Filter GetLookupTableFilter()
{
    // Create an empty LookupTableDataSet, to get the table and column names.
    SvcLookupTable.LookupTableDataSet lutDs = new SvcLookupTable.LookupTableDataSet();

    string lutTableName = lutDs.LookupTableTrees.TableName;
    string lutUidColumn = lutDs.LookupTableTrees.LT_UIDColumn.ColumnName;
    string lutStructUidColumn = lutDs.LookupTableTrees.LT_STRUCT_UIDColumn.ColumnName;
    string lutFullValueColumn = lutDs.LookupTableTrees.LT_VALUE_FULLColumn.ColumnName;

    // Get the GUID for the built-in RBS lookup table.
    Guid lutRbsUid = PSLibrary.LookupTables.RBS_LT_UID;  

    PSLibrary.Filter lutFilter = new PSLibrary.Filter();

    lutFilter.FilterTableName = lutTableName;
    lutFilter.Fields.Add(new PSLibrary.Filter.Field(lutUidColumn));
    lutFilter.Fields.Add(new PSLibrary.Filter.Field(lutStructUidColumn));
    lutFilter.Fields.Add(new PSLibrary.Filter.Field(lutFullValueColumn));

    PSLibrary.Filter.FieldOperationType equal = PSLibrary.Filter.FieldOperationType.Equal;
    lutFilter.Criteria = new PSLibrary.Filter.FieldOperator(equal, lutUidColumn,
        lutRbsUid.ToString());

    return lutFilter;
}

La solution complète de Visual Studio est dans l'exemple de ReadRBS dans le téléchargement du Kit de développement logiciel de Project 2010. Pour plus d'informations sur l'utilisation d'un paramètre de xmlFilter, consultez How to: Use a Filter Parameter with PSI Methods dans le Kit de développement logiciel Project 2007.

L'emprunt d'identité et les Extensions pour la PSI

Emprunte l'identité d'un utilisateur dans une application de Project Server n'est pas aussi généralement utilisée dans Project Server 2010, il se trouve dans Office Project Server 2007. Par exemple, les méthodes ReadStatusForResource et SubmitStatusForResource ne pas exiger de l'emprunt d'identité et remplacent les méthodes ReadStatus et SubmitStatus. Project Server 2010 également des restrictions supplémentaires et nécessite davantage de paramètres d'administration. Pour plus d'informations et un exemple de code, consultez Procédure : Utiliser l’emprunt d’identité avec WCF (traduction automatique).

Vous pouvez étendre la PSI avec des services supplémentaires. Méthodes dans les services PSI personnalisés peuvent appeler d'autres méthodes PSI, par exemple, pour vérifier l'autorisation de l'utilisateur, utilisez l'emprunt d'identité pour les tâches spécifiques, consolider plusieurs appels PSI sur le serveur pour enregistrer le trafic réseau ou ajouter de nouvelles fonctionnalités à Project Server. Pour obtenir un exemple basé sur WCF simple nommé HelloService qui appelle également la méthode PSI ReadResource, voir Création d’une extension PSI pour Project Server 2010 (traduction automatique). L'extension PSI est installée dans l'application front-end de Project Web App ; l'URL, par exemple, est https://ServerName/ProjectServerName/_vti_bin/PSI/HelloService.svc?wsdl.

L'extension PSI dans l'article Procédure : Créer une extension PSI pour lire des champs personnalisés dans la base de données de création de rapports (traduction automatique) utilise une procédure stockée dans la base de données MOM Reporting pour rechercher tous les projets qui ont une valeur de champ personnalisé spécifié. Les solutions complètes de Visual Studio pour les exemples d'extension PSI se trouvent dans le téléchargement du Kit de développement logiciel de Project 2010.

À l'aide de Windows PowerShell avec la PSI

Windows PowerShell scripts sont souvent utilisés pour aider les tâches d'administration pour Project Server 2010 et SharePoint Server 2010. Vous pouvez également utiliser Windows PowerShell avec l'interface ASMX pour appeler les méthodes PSI. Dans l'exemple suivant, utilisez le nom réel de l'ordinateur, pas localhost. Par exemple, si une instance de Project Web App nommée PWA se trouve sur le port de 5050 de l'ordinateur monserveur , modifiez la valeur de $pwaUrl à $pwaUrl = "http://MyServer:5050/pwa".

Notes

Exécutez le Environnement de gestion SharePoint 2010 (dans le dossier Produits Microsoft SharePoint 2010 du menu Début ) en tant qu'administrateur. Chaque fois que vous exécutez le script suivant, la commande Get-Credential (appelée une applet de commande dans Windows PowerShell) nécessite que vous tapez dans votre domaine, le nom d'utilisateur et le mot de passe.

############################################################################
## Get-RegularProjectList
## Uses the PSI to get a ProjectDataSet.Project table that includes 
## regular projects (not templates or proposals).
## The script user must have Project Server administrator permissions for the 
## ReadProjectList method.
## To run on your Project Server computer, change the $pwaUrl value.
#############################################################################
 
$pwaUrl = "https://ServerName/ProjectServerName"
$svcProjectUrl = $pwaUrl + "/_vti_bin/PSI/Project.asmx?wsdl"

$c = Get-Credential

# Create a proxy for the Project web service, from the ASMX interface.
$svcProjectProxy = New-WebServiceProxy -uri $svcProjectUrl -credential $c

$svcProjectProxy.ReadProjectList().Project | Where-Object { $_.PROJ_TYPE -eq 0 } `
    | Out-GridView –title "List of Regular Projects"

Dans le code précédent, la méthode ReadProjectList renvoie un ProjectDataSet avec des valeurs pour les champs suivants dans la table Project : PROJ_UID, PROJ_NAME et PROJ_TYPE. La figure 5 illustre la sortie de la grille qui est créé avec l'applet de commande Out-GridView (qui peut être abrégée sous ogv) dans Windows PowerShell. Vous pouvez filtrer des valeurs dans la vue de la grille.

Figure 5. Filtrage des valeurs dans la vue de la grille de sortie de Windows PowerShell

Utilisation de l’affichage en grille de Windows PowerShell

Le Kit de développement Project 2010 inclut plusieurs rubriques qui montrent comment utiliser Windows PowerShell pour des activités administratives telles que le déploiement de solutions personnalisées. Par exemple, consultez Procédure : Déployer un flux de travail Project Server (traduction automatique) et Procédure : Modifier le ruban dans PWA (traduction automatique). Voir aussi l'exemple de script d'administration dans SetDatabaseTimeout. TechNet inclut des références pour les applets de commande Windows PowerShell pour SharePoint et Project Server ; voir Windows PowerShell pour Project Server 2010.

Bien que l'exemple de code précédent montre que vous pouvez facilement utiliser des scripts avec des applets de commande Windows PowerShell existants qui accèdent à la PSI pour lire les données de Project Server, il existe plusieurs limitations. En plus vous tapez vos informations d'identification chaque fois, les limitations incluent la difficulté d'utiliser des scripts sur des ordinateurs distants, la complexité des scripts pour les travaux qui créent ou mettre à jour des entités de Project Server ou nécessitent plusieurs service PSI un, à l'aide de valeurs codées en dur au lieu des énumérations et des champs dans l'espace de noms Microsoft.Office.Project.Server.Library, le débogage ne sont pas appropriés et aucun IntelliSense. Si vous avez besoin de fonctionnalité de Windows PowerShell plus, une bien meilleure solution consiste à créer des applets de commande personnalisées qui accèdent à la PSI via l'interface WCF. Pour plus d'informations, consultez MSDN Code Gallery de téléchargement dans Microsoft Project 2010 : applets de commande Powershell pour Project Server PSI (éventuellement en anglais).

Événements de Project Server 2010

Chaque entité commerciale de Project Server 2010 (tels que le projet, tâches, affectations, champ personnalisé et feuille de temps) inclut les événements. Project Server met en œuvre plus de 220 événements, y compris les types pré-événementiel et post-événementiel. Pré-événements se produisent avant que Project Server enregistre les données dans la base de données. Un gestionnaire d'événements pour un pré-événement peut annuler l'opération et est synchrone. En d'autres termes, une application qui utilise un pré-événement ne peut pas continuer jusqu'à ce que le Gestionnaire d'événements est terminé. Les post-événements ne peut pas être annulées (les données sont déjà enregistrées) et peut être asynchrone ou synchrone. Les applications peuvent s'abonner à des événements tels que le pré-événement Project Publishing ou le post-événement Project Published et exécuter un ou plusieurs gestionnaires d'événements associés. Lorsque vous enregistrez un gestionnaire d'événements dans Project Web App, vous pouvez spécifier l'ordre dans lequel Project Server s'exécute plusieurs gestionnaires d'événements pour un événement.

Pré-événements permettent aux développeurs d'ajouter des contraintes, de validation de données personnalisée ou de vérification des règles métiers. Par exemple, un bureau de gestion de projets d'entreprise (PMO) peut exiger que tous les projets texte champs personnalisés d'entreprise pour certains projets ont un préfixe à deux lettres. Un gestionnaire pré-événementiel CustomField Changing peut implémenter la règle d'entreprise.

Les post-événements constituent le moyen principal pour l'intégration de Project Server avec une application métier, telles qu'un système de comptabilité. Par exemple, il existe 14 TimeSheet événements, y compris Submitting, Submitted, Recalling et Recalled. Les événements Submitting et Recalling sont pré-événements. Vous pouvez créer des gestionnaires d'événements qui vérifient les règles de métier de votre organisation avant une feuille de temps est soumis à la base de données et annuler la soumission si les règles ne sont pas respectées. Les événements Submitted et Recalled sont les post-événements. Une fois que le responsable de projet envoie des données de feuille de temps, un gestionnaire post-événementiel Timesheet Submitted pourrait envoyer les données hebdomadaires à un système de comptabilité.

Lorsque vous créez une classe pour un gestionnaire d'événements Project Server, il hérite d'une classe base de récepteur d'événements dans l'assembly Microsoft.Office.Project.Server.Events.dll. Classes de récepteur d'événements incluent ProjectEventReceiver, CustomFieldsEventReceiver et ainsi de suite. Vous pouvez créer un ou plusieurs méthodes de gestionnaire d'événements dans la classe de gestionnaire d'un événement. Chaque méthode de gestionnaire d'événement substitue la méthode de classe de base. Par exemple, une classe de CustomFieldsEvents peut inclure les méthodes OnCreating et OnCreated. Le code suivant inclut deux classes de récepteurs d'événements avec plusieurs gestionnaires d'événements.

using System;
using System.Diagnostics;
using System.Data;
using System.Xml;
using Microsoft.Office.Project.Server.Events;
using PSLibrary = Microsoft.Office.Project.Server.Library;

namespace TestEventHandlers
{
    public class ProjectEvents : ProjectEventReceiver
    {
        public override void OnPublishing(
            PSLibrary.PSContextInfo contextInfo, 
            ProjectPrePublishEventArgs e)
        {
            . . .
        }
    }
    public class CustomFieldsEvents : CustomFieldsEventReceiver
    {
        public override void OnCreating(
            PSLibrary.PSContextInfo contextInfo, 
            CustomFieldsPreEventArgs e)
        {
            . . .
        }

        public override void OnCreated(
            PSLibrary.PSContextInfo contextInfo, 
            CustomFieldsPostEventArgs e)
        {
            . . .
        }
    }
}

Méthodes de gestionnaire d'événements incluent des informations de contexte, telles que le nom d'utilisateur et un GUID, une langue et un GUID du site Project Web App. Le paramètre e pré-événementiel (les arguments d'événement) inclut la propriété de Cancel avec d'autres informations à propos de l'entité ou l'événement. Par exemple, ProjectPrePublishEventArgs pour le Gestionnaire d'événements de projet OnPublishing inclut le nom du projet, GUID et l'URL du site SharePoint pour le site du projet. Le paramètre arguments d'événement pour un post-événement n'inclut pas la propriété Cancel.

Pour obtenir une liste de tous les événements de Project Server pour les applications PSI, consultez PSEventID dans la référence de code managé pour la PSI. Pour un gestionnaire d'événements OnCreating exemple pour la pré-événement ProjectCreating, consultez Procédure : Créer un gestionnaire d’événements Project Server et consigner un événement (traduction automatique).

Utilisation de Datasets dans les gestionnaires d'événements

De nombreux événements de Project Server sont directement liées aux méthodes PSI ; par exemple, la méthode QueueCreateProject déclenche la pré-événement Creating et le post-événement Created. Le paramètre arguments d'événement (e) dans un gestionnaire pré-événementiel ou un post-événementiel peut contenir un DataSet pour l'entité, si la méthode PSI connexe utilise un objet DataSet. Par exemple, le paramètre arguments d'événement pour le Gestionnaire d'événements OnCreated de la post-événement CustomFieldsCreated inclut CustomFieldsPostEventArgs.CustomFieldInformation de type CustomFieldDataSet.

Notes

Pour utiliser un objet DataSet dans un gestionnaire d'événements, vous devez définir une référence à l'assembly Microsoft.Office.Project.Schema.dll. L'espace de noms Microsoft.Office.Project.Server.Schema contient les définitions de classe nécessaires telles que CustomFieldDataSet.

Vous pouvez copier l'assembly de schéma à partir du répertoire [Windows]\assembly\GAC_MSIL\Microsoft.Office.Project.Schema\14.0.0.0__71e9bce111e9429c avec la commande suivante. Exécutez la fenêtre Invite de commandes en tant qu'administrateur, puis modifier l'espace réservé [Windows] en fonction de votre ordinateur.

set SCHEMA= [Windows]\assembly\GAC_MSIL\Microsoft.Office.Project.Schema\14.0.0.0__71e9bce111e9429c
xcopy /y %SCHEMA%\*.dll .

Le code suivant montre un gestionnaire post-événementiel simple qui utilise CustomFieldInformation dans l'argument d'événement pour l'événement de Created de champ personnalisé. Vous pouvez obtenir le nom du champ personnalisé, par exemple, avec l'instruction string cfName = customFieldDs.CustomFields[0].MD_PROP_NAME, où customFieldDs est de type Microsoft.Office.Project.Server.Schema.CustomFieldDataSet. CustomFields est un objet CustomFieldsDataTable qui se trouve dans e.CustomFieldInformation, qui lui-même est de type CustomFieldDataSet. Le tableau champs personnalisés n'a qu'une seule ligne (CustomFields[0]), qui contient les données du champ personnalisé nouvellement créé. Pour obtenir une liste de propriétés dans une ligne de champ personnalisé, consultez CustomFieldDataSet.CustomFieldsRow.

using System;
using System.Diagnostics;
using Microsoft.Office.Project.Server.Events;
using PSLibrary = Microsoft.Office.Project.Server.Library;
using PSSchema = Microsoft.Office.Project.Server.Schema;

namespace TestCreatedCustomField
{
    public class WriteCustomFieldCreatedEvent : CustomFieldsEventReceiver
    {
        public override void OnCreated(
            PSLibrary.PSContextInfo contextInfo,
            CustomFieldsPostEventArgs e)
        {
            // Create an event log instance and assign its source.
            EventLog myLog = new EventLog();
            myLog.Source = "Custom Field OnCreated Event Handler";

            // Get information from the event arguments. 
            string userName = contextInfo.UserName.ToString();

            PSSchema.CustomFieldDataSet customFieldDs = e.CustomFieldInformation;

            string cfName = customFieldDs.CustomFields[0].MD_PROP_NAME;
            byte cfTypeEnum = customFieldDs.CustomFields[0].MD_PROP_TYPE_ENUM;
            Guid cfUid = customFieldDs.CustomFields[0].MD_PROP_UID;

            string[] cfTypes = Enum.GetNames(typeof(PSLibrary.CustomField.Type));

            string cfType = "";
            int index = 0;

            // Find the name of the custom field type.
            foreach (int i in Enum.GetValues(typeof(PSLibrary.CustomField.Type)))
            {
                if (i == Convert.ToInt32(cfTypeEnum))
                {
                    cfType = cfTypes[index];
                    break;
                }
                index++;
            }

            // Write an entry to the Application event log.
            int eventId = 3652;  // Create an arbitrary event ID.
            string logEntry;

            logEntry = "User: " + userName +
                "\nCustom Field Name: " + cfName +
                "\nGUID: " + cfUid.ToString() +
                "\nType: " + cfType +
                "\nThe custom field has been created.";

            myLog.WriteEntry(logEntry, EventLogEntryType.Information, eventId);
        }
    }
}

Si vous compilez et installez le Gestionnaire d'événements, inscrivez le Gestionnaire d'événements dans Project Web App et puis créez un champ personnalisé ressource nommé Durée Res du Test de type Duration, vous pouvez voir l'événement Application dans l' Observateur d’événements pour l'ordinateur de Project Server (Figure 6). La solution complète de Visual Studio de l'exemple de TestCreatedCustomField, notamment des scripts pour copier des références et installer le Gestionnaire d'événements, est dans le répertoire Samples\EventHandlers\TestCreatedCustomField dans le téléchargement du Kit de développement logiciel de Project 2010.

Figure 6. À l'aide de l'Observateur d'événements pour afficher les propriétés dans un gestionnaire d'événements

Utilisation d’un observateur d’événements avec un gestionnaire d’événements

Groupes de données dans les gestionnaires d'événements sont utilisées en lecture seule. Par exemple, vous ne pouvez pas modifier CustomFieldDataSet pour modifier le nom d'un champ personnalisé dans le Gestionnaire pré-événementiel OnCreating. Toutefois, vous pouvez intercepter l'événement, d'obtenir les propriétés que vous devez annuler la création du champ personnalisé, configurer par programme le point de terminaison WCF pour le service CustomFields et puis utiliser la méthode CreateCustomFields dans le service web CustomFields pour créer un champ personnalisé avec le nom correct.

Pour plus d'informations, consultez Project Server Events dans le Kit de développement logiciel Project 2007. Pour obtenir un exemple qui contient des instructions pour l'inscription des gestionnaires d'événements et d'écriture dans le journal d'ULS, consultez Procédure : Créer un gestionnaire d’événements Project Server et consigner un événement (traduction automatique). Pour d'autres exemples, consultez How to: Customize E-Mail for Project Server Notifications, qui utilise un gestionnaire d'événements OnSending aux notifications par e-mail ; et voir Gestionnaire d'événements d'Audit projet serveur 2010 délégation (éventuellement en anglais), qui utilise des gestionnaires d'événements OnActivated et OnDeactivated pour la délégation de l'utilisateur.

EPM Reporting en 2010 de projet

Les clients de bureau Project Professionnel 2010 et Project Standard 2010 contient la fonctionnalité Rapports visuels peut utiliser Microsoft Visio 2010 et Microsoft Office Excel 2007 ou Excel 2010. Avec des rapports visuels, vous pouvez créer des rapports graphiques et des rapports de tableau croisé dynamique à partir des fichiers de projet locales. Côté serveur, la plate-forme pour avoir signalé les EPM est une mise à niveau majeure dans Project Server 2010 qui prend en charge l'infrastructure de Microsoft Business Intelligence (BI). Business Intelligence centre de SharePoint Server 2010 est personnalisé et intégré dans Project Web App. L'objectif de la Business Intelligence Center est afin de fournir des compétences professionnelles utiles et opportunes à tous les employés qui ont accès à Project Web App.

L'infrastructure de rapports dans Project Server inclut la base de données MOM Reporting (RDB), le Service de données de rapport (RDS) et le Service de génération de Cube (CBS). Pour plus d'informations, rechercher des Rapports visuels ou des rapports dans le blog de l'équipe de projet (éventuellement en anglais) (https://blogs.msdn.com/b/project/) et autres blogs de projet, la documentation de l'utilisateur final de projet et de TechNet. Par exemple, consultez Business Intelligence dans Project Server 2010 (éventuellement en anglais), projet 2010 : vue d'ensemble de Business Intelligence (éventuellement en anglais)et Reporting on projects (Project Server 2010). Dans le Kit de développement Project 2010, voir Service de création de cubes (traduction automatique) et Champs personnalisés et base de données de création de rapports (traduction automatique).

Pour vous familiariser avec les rapports de Project Server, consultez les vidéos de création de rapports sur la page de Train & en savoir (éventuellement en anglais) pour Project 2010.

Création de rapports de base de données et le Service de données de rapport

Les tables de base de données (RDB) de création de rapports par défaut et les vues sont conçus pour être en lecture seule pour la génération de rapports à partir des données de projet. La référence de schéma de base de données Reporting Project Server 2010 se trouve dans le téléchargement du Kit de développement logiciel de Project 2010. Le schéma RDB comprend trois parties principales :

  • Données de CAO (telles que les projets, tâches, ressources, affectations et champs personnalisés)

  • Données de la feuille de temps

  • Données de collaboration (problèmes, risques et livrables sur sites de projets)

Le Service de données de rapport (RDS) met à jour la RDB quasiment en temps réel (dans quelques minutes) à partir des modifications dans la base de données publiée. Les tables RDB sont dénormalisées afin de pouvoir relativement facile de créer des rapports à l'aide de Microsoft SQL Server Reporting Services (SSRS).

Le RDS gère les mises à jour pour le RDB avec une file d'attente et puisse gérer les opérations de mise à jour multithread provenant de plusieurs serveurs. Probablement consultables par les utilisateurs des données modifiées dans Project Web App avant son arrivée dans un rapport à partir de la RDB. Le RDS inclut les post-événements des mises à jour des données, qui permet de gérer les rapports générés de cache et mise à jour une fois que les données nécessaires sont présentes.

Vues dans le RDB des affichages qui sont conçus pour OLAP et des vues pour les utilisateurs qui créent des rapports directement à partir de la RDB ; par exemple, les données de la ressource sont disponibles dans MSP_EpmResource_OlapView et MSP_EpmResource_UserView. Les vues OLAP sont conçus pour une utilisation par le Service de Build de Cube pour générer les cubes OLAP. En règle générale, les vues utilisateur incluent plus de champs que les vues OLAP et conçus pour la création de rapports. Exemples de requêtes dans la Project Server Report Pack utilisent les tables et vues utilisateur. Le SDK de Microsoft Office Project 2007 télécharger (éventuellement en anglais) inclut le Pack de rapport avec les sept exemples de rapports SSRS. MSDN Code Gallery comprend une mise à jour du Pack de rapport ; voir rapport Pack II Project Server 2007: « The haut rapports » (éventuellement en anglais).

Notes

Certains exemples Report Pack pour Office Project Server 2007 s'appuient sur des champs personnalisés spécifiques et des tables de choix qui ont été créés pour la machine virtuelle de démonstration qui a été livrée en 2007. Certains exemples de Report Pack utilisent des fonctionnalités de Project Server qui sont obsolètes ou non utilisé dans Project Server 2010. Vous pouvez utiliser les exemples de Report Pack comme point de départ pour la création de nouveaux rapports dans Project Server 2010.

Vous pouvez ajouter des tables et vues à la RDB qui incluent des données externes et utilisez le RDS pour gérer les mises à jour des tables personnalisées et des vues. Par exemple, l'exemple de MSDN Code Gallery dans le Gestionnaire d'événements d'Audit projet serveur 2010 délégation (éventuellement en anglais) crée une table de PS2010_UserDelegationAudit dans le RDB.

Service de génération de cube

Le Service de génération de Cube (CBS) crée plusieurs cubes OLAP à partir de Project Server et les données connexes de SharePoint. Project Web App permet de gérer des cubes Analysis Services SQL Server, prend en charge la personnalisation des cubes et a un emplacement centralisé pour les rapports Reporting Services qui utilisent les cubes OLAP ou le RDB. Vous pouvez ajouter des champs personnalisés d'entreprise en tant que dimensions ou les mesures et ajouter des mesures calculées pour les cubes, à l'aide de Project Web App.

En outre à l'administration dans Project Web App, les obligations convertibles a exhaustive des événements et la journalisation du suivi pour les journaux ULS. Le service web de CubeAdmin PSI permet la gestion par programmation et la planification de la création de cubes. La base de données OLAP Project Server 2010 comprend 14 cubes par défaut, lesquelles sont décrites dans Service de création de cubes (traduction automatique).

Vous pouvez créer des cubes OLAP de la valeur par défaut à l'aide des modifications incrémentielles des données pour permettre une plus grande fréquence et durée plus courte des mises à jour. Vues de données du cube sont disponibles dans les tableaux de bord et WebParts. Vous pouvez créer des affichages supplémentaires et personnalisé WebParts combinant Project Server et des données externes. Par exemple, vous pouvez utiliser Excel 2010 avec les rapports de tableau croisé dynamique et la mise en forme conditionnelle ; et vous pouvez publier les classeurs Excel ou des feuilles de calcul dans Excel Services pour le rendu mince sur n'importe quel site SharePoint.

La page de Business Intelligence Center dans Project Web App dispose de fonctionnalités de collaboration riche. Membres de l'équipe peuvent facilement créer des indicateurs de performance clés (KPI) qui surveillent les tendances des données et afficher les classeurs Excel qui contiennent des données à partir des rapports visuels en les publiant sur SharePoint via Excel Services. Les administrateurs ou les développeurs peuvent créer des rôles, des vues et des éléments de carte de performance, publier des mises à jour des données de Project Server pour Services PerformancePoint dans Microsoft SharePoint Server 2010 et afficher PerformancePoint contenu dans le Business Intelligence Center.

Pour obtenir un exemple qui montre comment étendre le cube de l'Analyseur de porte-documents, consultez How to: Calculate Resource Availability in OLAP Cubes. Pour plus d'informations sur la façon d'ajouter des champs personnalisés comme dimensions ou mesures dans les cubes, voir Champs personnalisés et cubes OLAP (traduction automatique).

Vérification des erreurs dans Project Server 2010

Lorsque vous développez des solutions pour Project Server, vous pouvez vérifier les deux zones principales pour les erreurs de configuration et d'exécution : le journal des événements application et l'unifiée enregistrement Service (ULS) des journaux de suivi. Vous devez également utiliser des blocs de try-catch pour le code qui appelle les méthodes PSI. Pour plus d'informations sur les erreurs et des exemples de code pour gérer des exceptions pour WCF et les applications basées sur ASMX, consultez Codes d’erreur de Project Server (traduction automatique).

Journal des événements applications   Dans le menu Début sur l'ordinateur de Project Server, cliquez sur Exécuter, puis tapez eventvwr. Dans le volet gauche de la fenêtre de Observateur d’événements , développez le nœud Journaux Windows et puis cliquez sur Application pour afficher les événements consignés par Project Server, SharePoint, ASP.NET, SQL Server, gestionnaires d'événements personnalisés et d'autres applications (voir Figure 6). Si vous triez les événements par source, vous pouvez facilement trouver les événements de Project Server. Les sources sont ProjectQueueService14 et ProjectEventService14.

Journaux ULS   Les journaux de suivi ULS et les journaux d'événements peut fournir plus de détails que le journal des événements application. Vous pouvez configurer un journal de suivi ULS enregistrement à certaines catégories ou toutes les catégories et niveaux d'activités dans Project Server et SharePoint. Pour afficher les journaux de suivi, vous pouvez utiliser le bloc-notes, un autre éditeur de texte ou Microsoft Excel. Pour facilement lire et analyser le journal ULS et pour filtrer des événements et enregistrer des exemples de journaux ULS, vous pouvez télécharger et installer la Visionneuse ULS (éventuellement en anglais) à partir de MSDN Code Gallery. La visionneuse de ULS est une application non pris en charge. Pour obtenir un exemple qui montre comment utiliser l'Observateur d'ULS, consultez Procédure : Créer un gestionnaire d’événements Project Server et consigner un événement (traduction automatique).

Pour configurer les journaux ULS et autres travaux de minuteur pour Project Server

  1. Ouvrez l'application Administration centrale de 2010 SharePoint et cliquez sur Analyse, puis cliquez sur Examiner les définitions de travail dans la section de Travaux du minuteur de la page Monitoring.

  2. Cliquez sur fournisseur de données de Diagnostic : journal de suivi, puis sur la page Modifier le travail du minuteur, définissez le travail du minuteur pour exécuter toutes les 10 minutes. Vous pouvez de même configurer le fournisseur de données de Diagnostic : journal des événements. Vous pouvez définir cinq travaux du minuteur Diagnostic fournisseur de données supplémentaires, par exemple pour les compteurs de performance et les requêtes SQL qui sont liés aux applications de SharePoint.

  3. L'Application de Service du serveur Project contient également des quatre paramètres que vous pouvez configurer sur la page définitions des travaux, qui régissent la fréquence à laquelle le minuteur SharePoint s'exécute d'autres tâches de Project Web App.

  4. Dans la page surveillance 2010 d'administration centrale SharePoint, cliquez sur Configurer la journalisation des diagnostics dans la section Rapport . Dans la page d'enregistrement des diagnostics, développez la catégorie de Project Server et puis sélectionnez une catégorie spécifique telle que les Événements côté serveur. Si vous sélectionnez le premier nœud de Project Server , toutes les catégories de Project Server 39 sont consignés.

  5. Pour le plus d'informations, sélectionnez Informations détaillées pour l'événement le moins critique à signaler dans le journal des événements et dans le journal de suivi. Étant donné que le journal des événements et le journal de suivi peuvent être grandes taille, exécuter verbose logging uniquement lorsque vous en avez besoin.

    Avertissement

    Si vous ouvrez une session sur un serveur de production, les événements, sélectionnez uniquement les catégories spécifiques pour que la taille du journal reste gérable. Pour désactiver toutes les informations consignées, sélectionnez Aucun pour l'événement le moins critique dans chaque journal. Pour enregistrer les événements de relativement peu, sélectionnez Haute ou Suivi pour le journal de suivi. Le niveau Inattendu affiche généralement des exceptions d'application. Pour le journal des événements, sélectionnez Erreur ou Critique pour consigner les événements moins.

    Le paramètre Activer la protection de flux du journal des événements est sélectionné par défaut. Le chemin d'accès par défaut pour les journaux de suivi est %CommonProgramFiles%\Microsoft Shared\Web Server Extensions\14\LOGS. Si vous utilisez l'Observateur d'ULS, vous pouvez ouvrir les journaux de suivi dans le chemin d'accès par défaut ou définir un autre chemin d'accès.

  6. Définir le nombre maximal de jours pour stocker des fichiers journaux de suivi ; la valeur par défaut est de 14 jours. Vous pouvez également limiter l'espace disque pour le journal de suivi.

Le ULS crée un nouveau fichier journal de suivi de toutes les 30 minutes. Journaux de suivi incluent la date et l'heure dans le nom de fichier, par exemple, SERVERNAME-20110208-1326.log.

Conclusion

Project Server 2010 est une plate-forme basée sur les structures de collaboration de programmation et des logiciels plus récents, le.NET Framework et SharePoint Server — qui servira de base de Microsoft Project et d'autres programmes Microsoft depuis de nombreuses années à venir. La plate-forme de Project Server rend plus facile à développer des extensions et d'intégrer avec une grande variété d'autres applications.

L'Interface de Project Server (PSI) et les groupes de données connexes élimine la nécessité d'accéder directement aux bases de données du serveur de projet de trois principaux (brouillon, publié et archivage). Les événements Project Server sont la clé pour l'extension de Project Server et l'intégration avec les applications métiers. Gestionnaires d'événements peuvent démarrer des workflows workflows peuvent effectuer des appels PSI et autres gestionnaires d'événements peuvent envoyer des messages à des pages de détails du projet dans le flux de travail.

Rapports Project Server et les cubes OLAP font partie de la plate-forme de projet extensible et offrent aux clients et partenaires de nombreuses opportunités pour améliorer la gestion de projets, de communication et de prise de décision dans les organisations.

Ressources supplémentaires

Pour plus d’informations, consultez les ressources suivantes :

Notes

Avertissement traduction automatique : cet article a été traduit par un ordinateur, sans intervention humaine. Microsoft propose cette traduction automatique pour offrir aux personnes ne maîtrisant pas l’anglais l’accès au contenu relatif aux produits, services et technologies Microsoft. Comme cet article a été traduit automatiquement, il risque de contenir des erreurs de grammaire, de syntaxe ou de terminologie.