Partager via


Conditions préalables pour les exemples de code basés sur ASMX

Découvrez des informations pour vous aider à créer des projets dans Visual Studio à l’aide des exemples de code ASMX inclus dans les rubriques de référence psi (Project Server Interface).

La plupart des exemples de code inclus dans la bibliothèque de classes Project Server 2013 et la référence du service web ont été créés à l’origine pour le Kit de développement logiciel (SDK) Office Project 2007 et utilisent un format standard pour les services web ASMX. Les exemples fonctionnent toujours dans Project Server 2013 et sont conçus pour être copiés dans une application console et exécutés en tant qu’unité complète. Des exceptions sont notées dans l’exemple.

Les nouveaux exemples PSI du Kit de développement logiciel (SDK) Project 2013 sont conformes à un format qui utilise les services Windows Communication Foundation (WCF). Les exemples basés sur ASMX peuvent également être adaptés pour utiliser les services WCF. Cet article explique comment utiliser les exemples avec les services web ASMX. Pour plus d’informations sur l’utilisation des exemples avec les services WCF, consultez Prérequis pour les exemples de code basés sur WCF dans Project.

Remarque

L’interface de service web ASMX de la PSI déconseillé dans Project Server 2013, mais est toujours prise en charge. Si le modèle objet côté client (CSOM) inclut les méthodes requises par votre application, de nouvelles applications doivent être développées avec le modèle CSOM. Le modèle CSOM permet aux applications de fonctionner avec Project Online ou une installation locale de Project Server 2013. Sinon, si votre application utilise l’interface PSI, elle doit utiliser l’interface WCF, qui est la technologie que nous recommandons pour les communications réseau. Les applications qui utilisent l’interface ASMX ou l’interface WCF peuvent fonctionner uniquement pour les installations locales de Project Server 2013. Pour plus d’informations sur le modèle CSOM, consultez Architecture Project Server 2013 et Modèle objet côté client (CSOM) pour Project 2013.

Avant d’exécuter les exemples de code, vous devez configurer l’environnement de développement, configurer l’application et modifier les valeurs de constantes génériques pour qu’elles correspondent à votre environnement.

Configuration de l'environnement de développement

  1. Configurez un système Project Server de test.

    Utilisez un système Project Server de test chaque fois que vous développez ou testez. Même lorsque votre code fonctionne parfaitement, les dépendances interprojet, la création de rapports ou d’autres facteurs environnementaux peuvent entraîner des conséquences inattendues.

    Remarque

    Vérifiez que vous êtes un utilisateur valide sur le serveur et case activée que vous disposez des autorisations suffisantes pour les appels PSI que votre application utilise. La rubrique de référence pour chaque méthode PSI inclut une table Autorisations Project Server. Par exemple, la méthode Project.QueueCreateProject nécessite l’autorisation globale NewProject et l’autorisation SaveProjectTemplate .

    Dans certains cas, vous devrez peut-être effectuer un débogage à distance sur le serveur. Vous devrez peut-être également configurer un gestionnaire d’événements en installant un assembly de gestionnaire d’événements sur chaque ordinateur Project Server de la batterie de serveurs SharePoint, puis en configurant le gestionnaire d’événements pour le Project Web App instance à l’aide de la page Paramètres de Project Server dans les paramètres d’application généraux de l’Administration centrale de SharePoint.

  2. Configurer un ordinateur de développement.

    Vous accédez généralement à l’interface PSI par le biais d’un réseau. Les exemples de code sont conçus pour être exécutés sur un client distinct du serveur, sauf indication contraire.

    1. Installez la version correcte de Visual Studio. Sauf indication contraire, les exemples de code sont écrits en Visual C#. Ils peuvent être utilisés avec Visual Studio 2010 ou Visual Studio 2012. Vérifiez que le Service Pack le plus récent est installé.

    2. Copiez les DLL Project Server sur l’ordinateur de développement. Copiez les assemblys suivants de [Program Files]\Microsoft Office Servers\15.0\Bin sur l’ordinateur Project Server sur l’ordinateur de développement :

      • Microsoft.Office.Project.Server.Events.Receivers.dll
      • Microsoft.Office.Project.Server.Library.dll
    3. Pour plus d’informations sur la compilation et l’utilisation de l’assembly proxy ProjectServerServices.dll pour les services web ASMX dans psi, consultez Utilisation d’un assembly proxy PSI et descriptions IntelliSense.

  3. Installez les fichiers IntelliSense.

    Pour utiliser les descriptions IntelliSense pour les classes et les membres dans les assemblys Project Server, copiez les fichiers XML IntelliSense mis à jour à partir du téléchargement du Kit de développement logiciel (SDK) Project 2013 dans le répertoire où se trouvent les assemblys Project Server. Par exemple, copiez le fichier Microsoft.Office.Project.Server.Library.xml dans le répertoire où votre application définit une référence à l’assembly Microsoft.Office.Project.Server.Library.dll.

    Les descriptions IntelliSense des services web PSI nécessitent la création d’un assembly proxy PSI à l’aide du script CompileASMXProxyAssembly.cmd dans le Documentation\IntelliSense\WSDL sous-répertoire du téléchargement du KIT de développement logiciel (SDK) Project 2013. Le script crée l’assembly proxy ProjectServerServices.dll basé sur ASMX. Pour plus d’informations, consultez le fichier [ReadMe_IntelliSense] dans le téléchargement du Kit de développement logiciel (SDK).

Création de l’application et ajout d’une référence de service web

  1. Créez une application console.

    Lorsque vous créez une application console, dans la liste déroulante de la boîte de dialogue Nouveau projet , sélectionnez .NET Framework 4. Vous pouvez copier l’exemple de code PSI dans la nouvelle application.

  2. Ajoutez la référence requise pour ASMX.

    Dans Explorateur de solutions, ajoutez une référence à System.Web.Services (voir figure 1).

    Figure 1. Ajout d’une référence dans Visual Studio

    Ajout d’une référence dans Visual Studio

  3. Copiez le code.

    Copiez l’exemple de code complet dans le fichier Program.cs de l’application console.

  4. Définissez l’espace de noms de l’exemple d’application.

    Vous pouvez remplacer l’espace de noms répertorié en haut de l’exemple par l’espace de noms par défaut de l’application, ou modifier l’espace de noms d’application par défaut pour qu’il corresponde à l’exemple. Vous pouvez modifier l’espace de noms d’application par défaut en modifiant les propriétés de l’application.

    Par exemple, l’exemple de code pour QueueRenameProject a l’espace de noms Microsoft.SDK.Project.Samples.RenameProject. Si le nom du projet Visual Studio est RenameProject, copiez l’espace de noms à partir du fichier Program.cs, puis ouvrez le volet Propriétés du projet (dans le menu Projet , choisissez RenommerPropriétés du projet). Sous l’onglet Application , copiez l’espace de noms dans la zone de texte Espace de noms par défaut .

  5. Définissez les références web.

    La plupart des exemples nécessitent une référence à un ou plusieurs services web PSI. Ceux-ci sont répertoriés dans l’exemple lui-même ou dans les commentaires qui précèdent l’exemple. Pour obtenir l’espace de noms correct des références web, veillez à définir d’abord l’espace de noms d’application par défaut.

    Il existe trois façons d’ajouter une référence de service web ASMX pour psi :

Utilisation d’un assembly proxy PSI et de descriptions IntelliSense

Vous pouvez générer et utiliser l’assembly proxy ProjectServerServices.dll pour tous les services web ASMX dans PSI, en utilisant le script CompileASMXProxyAssembly.cmd dans le Documentation\IntelliSense\WSDL dossier du téléchargement du Kit de développement logiciel (SDK) Project 2013. Pour obtenir un lien vers le téléchargement, consultez la documentation du développeur Project 2013.

Remarque

Lorsque vous extrayez les fichiers sources du proxy à partir du fichier Source.zip, les fichiers du Documentation\IntelliSense\WSDL\Source dossier sont à jour à la date de publication du téléchargement du Kit de développement logiciel (SDK) Project 2013. Pour générer des fichiers sources de proxy PSI mis à jour, exécutez le script GenASMXProxyAssembly.cmd sur l’ordinateur Project Server. Les scripts du Documentation\IntelliSense\WCF dossier ne fonctionnent pas pour les applications ASMX. Le script GenWCFProxyAssembly.cmd appelle SvcUtil.exe, qui génère des fichiers de code source pour les services WCF. Les fichiers proxy WCF incluent différents attributs, l’interface de canal et une classe cliente pour chaque service PSI. Par exemple, le service Resource basé sur WCF inclut l’interface ResourceChannel , l’interface resource et la classe ResourceClient . Le site web resource asMX inclut la classe Resource avec des propriétés différentes.

Voici le script GenASMXProxyAssembly.cmd qui génère des fichiers de sortie WSDL pour les services web PSI, puis compile l’assembly.

@echo off
@ECHO ---------------------------------------------------
@ECHO Creating C# files for the ASMX-based proxy assembly
@ECHO ---------------------------------------------------
REM Replace ServerName with the name of the server and 
REM the instance name of Project Web App. Do not use localhost.
(set VDIR=https://ServerName/pwa/_vti_bin/psi)
(set OUTDIR=.\Source)
REM ** Wsdl.exe is the same version in the v6.0A and v7.0A subdirectories. 
(set WSDL="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64\wsdl.exe")
if not exist %OUTDIR% (
md %OUTDIR%
)
for /F %%i in (Classlist_asmx.txt) do %WSDL% /nologo /l:CS /namespace:Svc%%i /out:%OUTDIR%\wsdl.%%i.cs %VDIR%/%%i.asmx?wsdl 
@ECHO ----------------------------
@ECHO Compiling the proxy assembly
@ECHO ----------------------------
(set SOURCE=%OUTDIR%\wsdl)
(set CSC=%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\csc.exe)
(set ASSEMBLY_NAME=ProjectServerServices.dll)
%CSC% /t:library /out:%ASSEMBLY_NAME% %SOURCE%*.cs

Le script utilise le fichier ClassList_asmx.txt, qui contient la liste des services web disponibles pour les développeurs tiers.

Admin
Archive
Calendar
CubeAdmin
CustomFields
Driver
Events
LoginForms
LoginWindows
LookupTable
Notifications
ObjectLinkProvider
PortfolioAnalyses
Project
QueueSystem
ResourcePlan
Resource
Security
Statusing
TimeSheet
Workflow
WssInterop

Les scripts créent un assembly nommé ProjectServerServices.dll. Évitez de le confondre avec ProjectServerServices.dll pour l’assembly WCF. Les noms d’assembly sont les mêmes, pour permettre l’utilisation de l’un ou l’autre assembly avec le fichier IntelliSense ProjectServerServices.xml.

L’espace de noms arbitraire créé par les scripts pour les services web ASMX et les services WCF est identique, de sorte que le fichier IntelliSense ProjectServerServices.xml fonctionne avec l’un ou l’autre assembly. Par exemple, l’espace de noms du service de ressources dans l’assembly proxy wcf et dans l’assembly proxy ASMX est SvcResource. Vous pouvez bien sûr modifier les noms d’espace de noms si vous vérifiez qu’ils correspondent à l’assembly proxy et au ProjectServerServices.xml fichier IntelliSense.

Si un exemple de code utilise un nom différent pour un espace de noms de service web PSI, par exemple ProjectWebSvc, pour qu’IntelliSense fonctionne, vous devez modifier l’exemple pour utiliser SvcProject afin que l’espace de noms corresponde à l’assembly proxy.

L’un des avantages de l’utilisation de l’assembly proxy asMX est qu’il inclut tous les espaces de noms de service web PSI ; vous n’avez pas besoin de créer plusieurs références web. Un autre avantage est que, si vous ajoutez le fichier ProjectServerServices.xml au même répertoire que celui où vous définissez une référence à l’assembly proxy ProjectServerServices.dll, vous pouvez obtenir des descriptions IntelliSense pour les classes et les membres PSI. La figure 2 montre le texte IntelliSense de la méthode Project.QueueCreateProject . Pour plus d’informations, consultez le fichier [ReadMe_IntelliSense] dans le dossier IntelliSense du téléchargement du Kit de développement logiciel (SDK) Project 2013.

Figure 2. Utilisation d’IntelliSense pour une méthode dans le service web Project

Utilisation d’IntelliSense pour une méthode dans un service PSI

Les inconvénients de l’utilisation de l’assembly proxy sont que la solution est plus grande et que vous devez distribuer et installer l’assembly proxy avec la solution. Vous devez également utiliser les mêmes espaces de noms que dans l’assembly proxy et les fichiers IntelliSense, sauf si vous modifiez le script et ProjectServerServices.xml fichier IntelliSense pour utiliser des espaces de noms différents.

Ajout d’un fichier proxy PSI

Le téléchargement du Kit de développement logiciel (SDK) Project 2013 inclut les fichiers sources générés par la commande Wsdl.exe pour l’assembly proxy. Les fichiers sources se trouvent dans Source.zip dans le Documentation\IntelliSense\ASMX sous-répertoire . Au lieu de définir une référence à l’assembly proxy, vous pouvez ajouter un ou plusieurs fichiers sources à une solution Visual Studio. Par exemple, après avoir exécuté le script GenASMXProxyAssembly.cmd, ajoutez le wsdl. Project.cs fichier à la solution. Au lieu d’exécuter le script, vous pouvez exécuter les commandes suivantes pour générer un fichier source unique, par exemple :

set VDIR=https://ServerName/ProjectServerName/_vti_bin/psi
set WSDL="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64\wsdl.exe"
%WSDL% /nologo /l:cs /namespace:SvcProject /out:wsdl.Project.cs %VDIR%/Project.asmx?wsdl

Pour définir un objet Project en tant que variable de classe nommée project, utilisez le code suivant. La méthode AddContextInfo ajoute les informations de contexte à l’objet projet pour l’authentification Authentification Windows et basée sur les formulaires.

private static SvcProject.Project project;
private static SvcLoginForms.LoginForms loginForms =
            new SvcLoginForms.LoginForms();
. . .
public void AddContextInfo()
{
    // Add the Url property.
    project.Url = "https://ServerName /ProjectServerName /_vti_bin/psi/project.asmx";
    // Add Windows credentials.
    project.Credentials = CredentialCache.DefaultCredentials;
    // If Forms authentication is used, add the Project Server cookie.
    project.CookieContainer = loginForms.CookieContainer;
}

Remarque

Que vous utilisiez un assembly proxy PSI ou que vous ajoutiez un fichier proxy pour une référence de service Project nommée SvcProject, vous utiliseriez le même code pour créer un objet projet .

Ajout d’une référence de service web

Si vous n’utilisez pas l’assembly proxy ASMX ou si vous n’ajoutez pas de fichier de sortie WSDL, vous pouvez définir une ou plusieurs références web individuelles. Les étapes suivantes montrent comment définir une référence web à l’aide de Visual Studio 2012.

  1. Dans Explorateur de solutions, cliquez avec le bouton droit sur le dossier Références, puis choisissez Ajouter une référence de service.

  2. Dans la boîte de dialogue Ajouter une référence de service , choisissez Avancé.

  3. Dans la boîte de dialogue Paramètres de référence de service , choisissez Ajouter une référence web.

  4. Dans la zone de texte URL , tapez https:// _ServerName_/ _ProjectServerName_/_vti_bin/psi/ _ServiceName_.asmx?wsdl, puis appuyez sur Entrée ou choisissez l’icône Go . Si ssl (Secure Sockets Layer) est installé, vous devez utiliser le protocole HTTPS au lieu du protocole HTTP.

    Par exemple, utilisez l’URL suivante pour le service Project sur le https://MyServer/pwa site pour Project Web App :https://MyServer/pwa/_vti_bin/psi/project.asmx?wsdl

    Vous pouvez également ouvrir votre navigateur web et accéder à https://ServerName/ProjectServerName/_vti_bin/psi/ServiceName.asmx?wsdl. Enregistrez le fichier dans un répertoire local, tel que C:\Project\WebServices\ServiceName.wsdl. Dans la boîte de dialogue Ajouter une référence web , pour URL, tapez le protocole de fichier et le chemin d’accès au fichier. Par exemple, tapez file://C:\Project\WebServices\Project.wsdl.

  5. Une fois la référence résolue, tapez le nom de la référence dans la zone de texte Nom de la référence web . Les exemples de code de la documentation pour les développeurs project 2013 utilisent le nom de référence standard arbitraire Svc ServiceName. Par exemple, le service web Project est nommé SvcProject (voir la figure 3).

    Figure 3. Ajout d’une référence de service web ASMX

    Ajout d’une référence de service web ASMX

Pour les composants d’application qui doivent s’exécuter sur l’ordinateur Project Server, utiliser l’emprunt d’identité ou avoir des autorisations élevées, utilisez une référence de service WCF au lieu d’une référence web ASMX. Pour plus d’informations, consultez Prérequis pour les exemples de code basés sur WCF dans Project.

Définition d’autres références

Les applications Project Server utilisent souvent d’autres services, tels que les services web SharePoint Server 2013. Si d’autres services sont requis, ils sont indiqués dans l’exemple.

Les références locales pour l’exemple de code sont répertoriées dans les instructions using en haut de l’exemple :

  1. Dans Explorateur de solutions, cliquez avec le bouton droit sur le dossier Références, puis choisissez Ajouter une référence.

  2. Choisissez Parcourir, puis accédez à l’emplacement où vous avez stocké les DLL Project Server que vous avez copiées précédemment. Choisissez les DLL dont vous avez besoin, puis choisissez OK.

Remarque

Assurez-vous que les versions d’assembly sur votre ordinateur de développement correspondent exactement à celles de l’ordinateur Project Server cible.

Utilisation de plusieurs authentifications

L’authentification des utilisateurs Project Server locaux, que ce soit par Authentification Windows ou l’authentification par formulaire, s’effectue via le traitement des revendications dans SharePoint Server 2013. L’authentification multiple signifie que l’application web sur laquelle Project Web App est approvisionné prend en charge à la fois l’authentification Authentification Windows et l’authentification basée sur les formulaires. Si tel est le cas, un appel à un service web ASMX qui utilise Authentification Windows échouera avec l’erreur suivante, car le processus de revendications ne peut pas déterminer le type d’utilisateur à authentifier :

The server was unable to process the request due to an internal error. . . .

Pour résoudre le problème pour ASMX, tous les appels aux méthodes PSI doivent être effectués à une classe dérivée définie pour chaque service web PSI. La classe dérivée doit également utiliser la classe SvcLoginWindows.LoginWindows pour obtenir un cookie pour la classe de service PSI dérivée. Dans l’exemple suivant, la classe ProjectDerived dérive de la classe SvcProject.Project . La classe dérivée ajoute la propriété EnforceWindowsAuth et remplace l’en-tête de requête web pour chaque appel à une méthode dans la classe Project . Si la propriété EnforceWindowsAuth a la valeur true, la méthode GetWebRequest ajoute un en-tête qui désactive l’authentification par formulaire. Si EnforceWindowsAuth a la valeur false, l’authentification par formulaire peut continuer.

Pour utiliser l’exemple de ASMXLogon_MultiAuth suivant, créez une application console, suivez les étapes décrites dans Création de l’application et ajout d’une référence de service web, puis ajoutez wsdl. LoginWindows.cs fichier proxy et wsdl. Project.cs fichier proxy. La méthode Main crée le projet instance de la classe ProjectDerived. L’exemple doit utiliser la classe LoginWindowsDerived dérivée pour obtenir un objet CookieContainer pour le projet. Propriété CookieContainer, qui distingue l’authentification par formulaire de Authentification Windows. L’objet projet peut ensuite être utilisé pour effectuer des appels à n’importe quelle méthode dans la classe SvcProject.Project.

Remarque

Le service LoginWindows est requis uniquement pour les applications ASMX dans un environnement d’authentification multiple. Dans l’exemple ASMXLogon_MultiAuth , la méthode GetLogonCookie obtient un cookie pour l’objet loginWindows . Projet . La propriété CookieContainer est définie sur la valeur loginWindows.CookieContainer .

using System;
using System.Net;
using PSLibrary = Microsoft.Office.Project.Server.Library;
namespace ASMXLogon_MultiAuth
{
    class Program
    {
        private const string PROJECT_SERVER_URL = 
            "https://ServerName/ProjectServerName/_vti_bin/psi/";
        static void Main(string[] args)
        {
            bool isWindowsUser = true;
            // Create an instance of the project object.
            ProjectDerived project = new ProjectDerived();
            project.Url = PROJECT_SERVER_URL + "Project.asmx";
            project.Credentials = CredentialCache.DefaultCredentials;
            try
            {
                // The program works on a Windows-auth-only computer if you comment-out the
                // following line. The line is required for multiple authentication.
                project.CookieContainer = GetLogonCookie();
                project.EnforceWindowsAuth = isWindowsUser;
                // Get a list of all published projects. 
                // Use ReadProjectStatus instead of ReadProjectList,
                // because the permission requirements are lower.
                SvcProject.ProjectDataSet projectDs =
                    project.ReadProjectStatus(Guid.Empty,
                        SvcProject.DataStoreEnum.PublishedStore,
                        string.Empty,
                        (int)PSLibrary.Project.ProjectType.Project);
                Console.WriteLine(string.Format(
                    "There are {0} published projects.", 
                    projectDs.Project.Rows.Count));
            }
            catch (UnauthorizedAccessException ex)
            {
                Console.WriteLine(ex.Message);
            }
            catch (WebException ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                Console.Write("Press any key to continue...");
                Console.ReadKey(false);
            }
        }
        private static CookieContainer GetLogonCookie()
        {
            // Create an instance of the loginWindows object.
            LoginWindowsDerived loginWindows = new LoginWindowsDerived();
            loginWindows.EnforceWindowsAuth = true;
            loginWindows.Url = PROJECT_SERVER_URL + "LoginWindows.asmx";
            loginWindows.Credentials = CredentialCache.DefaultCredentials;
            loginWindows.CookieContainer = new CookieContainer();
            if (!loginWindows.Login())
            {
                // Login failed; throw an exception.
                throw new UnauthorizedAccessException("Login failed.");
            }
            return loginWindows.CookieContainer;
        }
    }
    // Derive from LoginWindows class; include additional property and 
    // override the web request header.
    class LoginWindowsDerived : SvcLoginWindows.LoginWindows
    {
        public bool EnforceWindowsAuth { get; set; }
        protected override WebRequest GetWebRequest(Uri uri)
        {
            WebRequest request = base.GetWebRequest(uri);
            if (this.EnforceWindowsAuth)
            {
                request.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f");
            }
            return request;
        }
    }
    // Derive from Project class; include additional property and 
    // override the web request header.
    class ProjectDerived : SvcProject.Project
    {
        public bool EnforceWindowsAuth { get; set; }
        protected override WebRequest GetWebRequest(Uri uri)
        {
            WebRequest request = base.GetWebRequest(uri);
            if (this.EnforceWindowsAuth)
            {
                request.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f");
            }
            return request;
        }
    }
}

L’utilisation de la classe LoginWindows dérivée et l’exécution d’appels PSI avec un en-tête de requête web qui désactive l’authentification par formulaire sont nécessaires pour les applications qui s’exécutent dans un environnement d’authentification multiple. Si Project Server utilise uniquement l’authentification par revendications, il n’est pas nécessaire de dériver une classe qui ajoute un en-tête de requête web. L’exemple précédent s’exécute dans les deux environnements.

Le correctif pour une application basée sur WCF est différent. Pour plus d’informations, consultez la section Utilisation de plusieurs authentifications dans Conditions préalables pour les exemples de code basés sur WCF dans Project.

Modification des valeurs des constantes génériques

La plupart des exemples ont une ou plusieurs variables que vous devez mettre à jour pour que l’exemple fonctionne correctement dans votre environnement. Dans l’exemple suivant, si ssl est installé, utilisez le protocole HTTPS au lieu du protocole HTTP. Remplacez ServerName par le nom du serveur que vous utilisez. Remplacez ProjectServerName par le nom de répertoire virtuel de votre site Project Server, tel que PWA.

const string PROJECT_SERVER_URI = "https://ServerName/ProjectServerName/";

Toutes les autres variables que vous devez modifier ou d’autres conditions préalables sont indiquées en haut de l’exemple de code.

Vérification des résultats

L’obtention et l’interprétation des résultats à partir d’un exemple de code ne sont pas toujours simples. Par exemple, si vous créez un projet, vous devez le publier avant qu’il puisse apparaître sur la page Centre de projets dans Project Web App.

Vous pouvez vérifier les résultats des exemples de code de plusieurs façons, par exemple :

  • Utilisez le client Project Professionnel 2013 pour ouvrir le projet à partir de l’ordinateur Project Server et afficher les éléments souhaités.

  • Affichez les projets publiés dans la page Centre de projets de Project Web App ( https://ServerName/ProjectServerName/projects.aspx).

  • Affichez le journal file d’attente dans Project Web App. Ouvrez la page Paramètres du serveur (choisissez l’icône Paramètres dans le coin supérieur droit), puis choisissez Mes travaux en file d’attente sous la section Paramètres personnels ( https://ServerName/ProjectServerName/MyJobs.aspx). Dans la liste déroulante Affichage, vous pouvez trier par tâche status. La status par défaut est En cours et Travaux ayant échoué la semaine dernière.

  • Utilisez la page Paramètres du serveur dans Project Web App ( https://ServerName/ProjectServerName/_layouts/15/pwa/admin/admin.aspx) pour gérer tous les travaux de file d’attente et supprimer ou forcer case activée objets d’entreprise. Vous devez disposer d’autorisations d’administration pour accéder à ces liens dans la page Paramètres du serveur.

  • Utilisez Microsoft SQL Server Management Studio pour exécuter une requête sur une table de la base de données Project. Par exemple, utilisez la requête suivante pour sélectionner les 200 premières lignes de la pub. MSP_WORKFLOW_STAGE_PDPS tableau pour afficher des informations sur les pages de détails du projet (PDP) dans les phases de flux de travail.

      SELECT TOP 200 [STAGE_UID]
              ,[PDP_UID]
              ,[PDP_NAME]
              ,[PDP_POSITION]
              ,[PDP_ID]
              ,[PDP_STAGE_DESCRIPTION]
              ,[PDP_REQUIRES_ATTENTION]
          FROM [ProjectService].[pub].[MSP_WORKFLOW_STAGE_PDPS]
    

Nettoyage

Après avoir testé des exemples de code, des objets et des paramètres d’entreprise doivent être supprimés ou réinitialisés. Vous pouvez utiliser la page Paramètres du serveur dans Project Web App pour gérer les données d’entreprise ( https://ServerName/ProjectServerName/_layouts/15/pwa/admin/admin.aspx). Les liens de la page Paramètres du serveur vous permettent de supprimer les anciens éléments, de forcer l’case activée projets, de gérer la file d’attente des travaux pour tous les utilisateurs et d’effectuer d’autres tâches d’administration.

Voici quelques-uns des liens de la page Paramètres du serveur que vous pouvez utiliser pour les activités de nettoyage classiques après l’exécution d’exemples de code :

  • Champs personnalisés d’entreprise et tables de choix

  • Gérer les travaux en file d’attente

  • Supprimer des objets d’entreprise

  • Forcer l’archivage des objets d’entreprise

  • Types de projets d’entreprise

  • Phases du flux de travail

  • Étapes du flux de travail

  • Pages de détails de projet

  • Périodes de rapports de temps

  • Paramètres et valeurs par défaut de la feuille de temps

  • Classifications de lignes

Les paramètres supplémentaires sont gérés par SharePoint Server 2013 pour chaque Project Web App instance, plutôt que par une page de paramètres Project Web App serveur spécifique. Dans l’application Administration centrale de SharePoint, choisissez Paramètres généraux de l’application, Choisissez Gérer sous Paramètres de Project Server, puis choisissez le Project Web App instance dans la liste déroulante de la page Paramètres du serveur. Par exemple, choisissez Gestionnaires d’événements côté serveur pour ajouter ou supprimer des gestionnaires d’événements pour le Project Web App instance sélectionné.

Voir aussi