Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Envoi en nombre de mise à jour des champs personnalisés et créer des sites de projet à partir d’un flux de travail dans Project Online

Office 2013 et versions ultérieures

Pour aider les clients à tirer le meilleur parti Project Online et d’améliorer notre service et la flexibilité, nous avons ajouté deux méthodes au modèle objet côté client que vous pouvez utiliser dans les flux de travail et les applications Project Online.

UpdateCustomFields

En bloc met à jour les champs personnalisés du projet.
Pour Project Online. Disponible uniquement dans l’API REST.

CreateProjectSite

Crée un site de projet.
Pour Project Online. Disponible dans l’API REST, le modèle objet client managé et le modèle d’objet client JavaScript.

En plus de fournir une plus grande flexibilité, ces méthodes offrent également d’importantes améliorations des performances lors de l’enregistrement et la publication des projets dans un flux de travail. Cet article explique comment utiliser les méthodes de l’API REST et fournit des instructions pour la création d’un flux de travail que des mises à jour en bloc des champs personnalisés et un flux de travail qui crée un site de projet.

Remarque Remarque

Pour en savoir plus sur l’appel d’API REST à partir de flux de travail SharePoint 2013, reportez-vous à la section services REST de SharePoint à l’aide de flux de travail avec la méthode POST et appeler l’API Rest SharePoint 2013 à partir d’un flux de travail SharePoint Designer.

Auparavant, des flux de travail peut uniquement à jour un champ personnalisé à la fois. Mise à jour des champs personnalisés de projet à un à la fois peut entraîner une expérience utilisateur médiocre lorsque les utilisateurs la transition entre les Pages de détails de projet. Chaque mise à jour nécessaires à une demande de serveur distinct à l’aide de l’action Set Project Field et mis à jour plusieurs champs personnalisés sur une latence élevée, faible bande passante réseau a provoqué une surcharge importante. Pour résoudre ce problème, nous avons ajouté à la méthode UpdateCustomFields à l’API REST que vous permet de que vous avez apporté mettre à jour les champs personnalisés. Pour utiliser UpdateCustomFields, vous passez un dictionnaire contenant les noms et valeurs de tous les champs personnalisés que vous souhaitez mettre à jour.

Vous trouverez la méthode reste au niveau du point de terminaison suivant :

https://<site-url>/_api/ProjectServer/Projects('<guid>')/Draft/UpdateCustomFields()

Remarque Remarque

Remplacez l’espace réservé <site-url> dans les exemples avec l’URL de votre site Project Web App (PWA) et l’espace réservé <guid> avec votre projet UID.

Cette section explique comment créer un workflow, en bloc met à jour les champs personnalisés d’un projet. Le workflow suit ces étapes principales :

  • Attendez que le projet que vous souhaitez mettre à jour pour obtenir d’archivage

  • Créer un jeu de données qui définit toutes vos mises à jour de champ personnalisé pour le projet

  • Extraire le projet

  • Appelez UpdateCustomFields pour appliquer des mises à jour les champs personnalisés au projet

  • Enregistrer les informations pertinentes dans la liste d’historique de flux de travail (si nécessaire)

  • Publier le projet

  • Archiver le projet

Le flux de travail final, de bout en bout ressemble à ceci :

Flux de travail de bout en bout

Pour créer un flux de travail, en bloc met à jour les champs personnalisés

  1. Facultatif. Stocker l’URL complète de votre projet dans la variable que vous pouvez utiliser tout au long du flux de travail.

    Stocker l’URL du projet dans une variable
  2. Ajouter l’action attendre un événement de projet de flux de travail, puis choisissez l’événement When a project is checked in .

    Attendre que le projet soit vérifié
  3. Créer un dictionnaire requestHeader à l’aide de l’action Build dictionary . Vous allez utiliser l’en-tête de demande même pour tous les appels avec le service web dans ce flux de travail.

    Créer le dictionnaire requestHeader
  4. Ajoutez les deux éléments suivants pour le dictionnaire.

    Nom

    Type

    Valeur

    Accepter

    String

    application/json ; OData = verbose

    Type de contenu

    String

    application/json ; OData = verbose

    Ajout d’un en-tête Accept
  5. Créer un dictionnaire requestBody à l’aide de l’action Build dictionary . Ce dictionnaire stocke toutes les mises à jour de champ que vous souhaitez appliquer.

    Chaque mise à jour du champ personnalisé nécessite quatre lignes : du champ type de métadonnées (1), la clé (2), valeur (3) et type de valeur (4).

    • type/__metadata  Le type de champ métadonnées. Cet enregistrement est toujours le même et utilise les valeurs suivantes :

      • Nom : customFieldDictionary (i) / __metadata/type (où i est l’index de chaque champ personnalisé dans le dictionnaire, en commençant par 0)

      • Type : String

      • Valeur : SP. KeyValue

      Définition d’une mise à jour de champ personnalisé
    • Clé  Le nom interne du champ personnalisé, au format : Custom_ce23fbf43fa0e411941000155d3c8201

      Vous trouverez le nom interne d’un champ personnalisé en accédant à ses InternalName du point de terminaison :

      https://<site-url>/_api/ProjectServer/CustomFields('<guid>')/InternalName

      Si vous avez créé manuellement vos champs personnalisés, les valeurs varient d’un site à un site. Si vous prévoyez de réutiliser le flux de travail sur plusieurs sites, assurez-vous que l’ID de champ personnalisé sont correctes.

    • Valeur  Valeur à attribuer au champ personnalisé. Pour les champs personnalisés qui sont liées aux tables de choix, vous devez utiliser les noms internes des entrées de table de choix au lieu des valeurs de table de choix réel.

      Vous trouverez le nom interne de l’entrée de table de recherche au niveau du point de terminaison suivant :

      https://<site-url>/_api/ProjectServer/CustomFields('<guid>')/LookupEntries('<guid>')/InternalName

      Si vous avez un champ personnalisé de table de choix configuré pour accepter plusieurs valeurs, utilisez ;# concaténation des valeurs (comme illustré dans le dictionnaire de l’exemple ci-dessous).

    • ValueType  Le type de champ personnalisé que vous mettez à jour.

      • Pour les champs de texte, la durée, indicateur et LookupTable, utilisez Edm.String

      • Pour les champs numériques, utilisez Edm.Int32, Edm.Double ou n’importe quel autre acceptés par OData type numérique

      • Pour les champs de Date, utilisez Edm.DateTime

    Le dictionnaire de l’exemple ci-dessous définit les mises à jour pour les trois champs personnalisés. La première est d’un plusieurs valeur lookup table champ personnalisé, la deuxième est pour un champ numérique et la troisième est un champ de date. Notez comment les incréments d’index customFieldDictionary .

    Remarque Remarque

    Ces valeurs sont uniquement à des fins d’illustration. Les paires clé-valeur que vous allez utiliser dépendent de vos données de PWA.

    Nom

    Type

    Valeur

    customFieldDictionary(0)/__metadata/type

    String

    SP.KeyValue

    customFieldDictionary(0)/Key

    String

    Custom_ce23fbf43fa0e411941000155d3c8201

    customFieldDictionary(0)/Value

    String

    Entry_b9a2fd69279de411940f00155d3c8201 ; #Entry_baa2fd69279de411940f00155d3c8201

    customFieldDictionary(0)/ValueType

    String

    Edm.String

    customFieldDictionary(1)/__metadata/type

    String

    SP.KeyValue

    customFieldDictionary(1)/Key

    String

    Custom_c7f114c97098e411940f00155d3c8201

    customFieldDictionary(1)/Value

    String

    90.5

    customFieldDictionary(1)/ValueType

    String

    Edm.Double

    customFieldDictionary(2)/__metadata/type

    String

    SP.KeyValue

    customFieldDictionary(2)/Key

    String

    Custom_c6fb67e0b9a1e411941000155d3c8201

    customFieldDictionary(2)/Value

    String

    2015-04-01T00:00:00.0000000

    customFieldDictionary(2)/ValueType

    String

    Edm.DateTime

    Dictionnaire définissant les mises à jour de champs personnalisés
  6. Ajouter une action de Service Web HTTP d’appel pour extraire le projet.

    Appeler la méthode Checkout
  7. Modifier les propriétés de l’appel de service web pour spécifier l’en-tête de la demande. Pour ouvrir la boîte de dialogue Propriétés, le clic droit, puis choisissez Propriétés.

    Spécifier l’en-tête de la demande dans les propriétés d’appel de service web
  8. Ajouter une action de Service Web HTTP d’appel pour appeler la méthode UpdateCustomFields .

    Créer une action Appeler le service web HTTP

    Notez le segment /Draft/ dans l’URL du service web. L’URL complète doit ressembler à ceci :

    https://<site-url>/_api/ProjectServer/Projects('<guid>')/Draft/UpdateCustomFields()

    Appeler la méthode UpdateCustomFields
  9. Modifier les propriétés de l’appel de service web pour lier les paramètres RequestHeader et RequestContent pour les dictionnaires personnels que vous avez créé. Vous pouvez également créer une nouvelle variable pour stocker le ResponseContent.

    Lier les dictionnaires au contenu et à l’en-tête de demande
  10. Facultatif. Lire à partir du dictionnaire de réponse à l’état du travail en file d’attente et les informations des fichiers journaux dans la liste d’historique de flux de travail.

    Configuration de la journalisation
  11. Ajoutez un appel au service web pour le point de terminaison Publish publier le projet. Toujours utiliser le même en-tête de la demande.

    Appeler la méthode Publish Propriétés pour l’appel de service web Publish
  12. Ajoutez un appel au service web final Checkin au point de terminaison d’archiver le projet.

    Appeler la méthode Checkin Propriétés de l’appel de service web Checkin

Chaque projet peut avoir son propre dédié SharePoint les sites où les membres de l’équipe peuvent collaborer, partager des documents, génère des problèmes et ainsi de suite. Auparavant, les sites ne pouvaient être créées automatiquement sur tout d’abord publier ou manuellement par le responsable de projet dans Project Professionnel ou par l’administrateur dans PWA paramètres, ou il peuvent être désactivé.

Nous avons ajouté la méthode CreateProjectSite afin que vous pouvez choisir de créer des sites de projet. Ceci est particulièrement utile pour les organisations qui souhaitent créer leurs sites automatiquement lorsqu’une proposition de projet atteint une étape spécifique dans un flux de travail prédéfini, au lieu de d’abord publier. Report de création de sites de projet considérablement améliore les performances de la création d’un projet.

Prérequis : Avant de pouvoir utiliser CreateProjectSite, le paramètre Autoriser les utilisateurs à choisir doit être défini pour la création du site de projet dans PWA paramètres > Sites SharePoint connectés > paramètres.

Paramètre « Laisser le choix aux utilisateurs » dans les paramètres PWA

Pour créer un flux de travail qui crée un site de projet

  1. Créer ou modifier un workflow existant et sélectionnez l’étape où vous souhaitez créer des sites de projet.

  2. Créer un dictionnaire requestHeader à l’aide de l’action Build dictionary .

    Créer le dictionnaire requestHeader
  3. Ajoutez les deux éléments suivants pour le dictionnaire.

    Nom

    Type

    Valeur

    Accepter

    String

    application/json ; OData = verbose

    Type de contenu

    String

    application/json ; OData = verbose

    Ajout d’un en-tête Accept
  4. Ajoutez l’action D’appel HTTP Web Service. Modifier le type de demande pour utiliser POSTet définir l’URL au format suivant :

    https://<site-url>/_api/ProjectServer/Projects('<guid>')/CreateProjectSite('New web name')

    Construction de l’URI de point de terminaison CreateProjectSite

    Transmettez le nom du site du projet à la méthode CreateProjectSite sous forme de chaîne. Pour utiliser le nom du projet en tant que nom du site, transmettez une chaîne vide. Veillez à utiliser des noms uniques pour le site de projet suivant que vous créez fonctionne.

  5. Modifier les propriétés de l’appel de service web pour lier le paramètre RequestHeader au dictionnaire que vous avez créé.

    Liaison du dictionnaire à la demande
Afficher: