Utilisation de l’API REST Planificateur
L’API Planificateur de Microsoft Graph vous permet de créer des tâches et de les affecter aux utilisateurs d’un groupe dans Microsoft 365.
Avant de commencer à utiliser l’API Planificateur, il est important de comprendre le lien entre les principaux objets de l’API Planificateur, ainsi que dans les groupes Microsoft 365.
Planification de conteneurs
Dans le Planificateur Microsoft, les plans sont toujours contenus par une autre ressource. La ressource contenant détermine les règles d’autorisation du plan et de toutes ses tâches, ainsi que le cycle de vie du plan. Par exemple, dans le cas de plans contenus par un groupe Microsoft 365, les membres du groupe peuvent créer, modifier, résoudre et supprimer des tâches dans le plan, ainsi que modifier des propriétés au niveau du plan, telles que le nom du plan ou les noms d’étiquette. En outre, lorsque le groupe est supprimé, tous les plans du groupe sont automatiquement supprimés et, si un groupe est restauré, tous les plans seront automatiquement restaurés.
Le type de conteneur le plus classique est un groupe Microsoft 365.
Type de conteneur : groupes Microsoft 365
Les plans sont généralement contenus dans des groupes Microsoft 365 de l’API Planificateur. Pour obtenir les plans appartenant à un groupe, effectuez la requête HTTP suivante.
GET /groups/{group-id}/planner/plans
Lorsque vous créez un plan, définissez la propriété conteneur sur un objet de plan pour qu’un groupe en soit son conteneur. Les plans doivent être contenus par une ressource prise en charge.
Remarque : l’utilisateur qui crée le plan doit être un membre du groupe qui contiendra le plan. Lorsque vous créez un nouveau groupe à l’aide de l’API Création d’un groupe, vous n’y êtes pas automatiquement ajouté en tant que membre. Une fois le groupe créé, ajoutez-vous vous-même en tant que membre à l’aide de la rubrique membres du groupe publication.
Plans
Les plans contiennent des tâches. Pour créer une tâche dans un plan, définissez la propriété planId de l’objet de tâche à l’ID du plan lors de la création de la tâche. Tâches actuellement ne peut pas être créées sans plans. Pour récupérer les tâches dans un plan, faire la demande via HTTP ci-dessous.
GET /planner/plans/{plan-id}/tasks
Tâches
Chaque tâche peut être affectée à un utilisateur en ajoutant une affectation dans la propriété affectations sur l’objet de tâche. L’ID de l’utilisateur à affecter à la tâche est le nom de la propriété open sur les affectations, et la propriété orderHint sur l’affectation doit être spécifiée.
Détails de la tâche et du plan
Les ressources du planificateur sont organisées en objets de base et en objets de détail. Les objets de base permettent d’accéder aux propriétés courantes des ressources, adaptées aux affichages de liste, tandis que les objets de détail donnent accès à de grandes propriétés des ressources adaptées aux vues d’exploration.
Visualisation
En dehors des tâches et des données de plan, l’API Planificateur fournit également des ressources pour permettre une visualisation des données sur plusieurs clients. Plusieurs types de données de visualisation sont disponibles pour les tâches, tel qu’illustré dans les tableaux ci-dessous.
Les tâches sont affichées sous la forme | Les tâches sont classées avec les informations de |
---|---|
Liste simple (tâches d’un plan) | Propriété orderHint des tâches |
Liste simple (tâches affectées à un utilisateur) | Propriété assigneePriority des tâches |
Affichage du tableau avec colonnes pour les cessionnaires (affectés au tableau des tâches) | Objet assignedToTaskBoardTaskFormat |
Affichage du tableau avec colonnes pour l’avancement de la tâche jusqu’à l’achèvement (tableau des tâches - Avancement) | Objet progressTaskBoardTaskFormat |
Affichage du tableau avec colonnes personnalisées des tâches (tableau des tâches - Compartiment) : | Objet bucketTaskBoardTaskFormat |
Les colonnes personnalisées dans le tableau des tâches du compartiment sont représentées par les objets decompartiment et sont classées par propriété orderHint de l’objet.
Tout le classement est contrôlé par les principes décrits dans les Conseils de classement Planner.
Contrôle de version des ressources Planner
Planner contrôle les versions de toutes les ressources à l’aide d’en-têtes etags. Ces etags sont retournés avec la propriété @odata.etag sur chaque ressource. Les requêtes PATCH
et DELETE
nécessitent que le dernier etag connu par le client soit spécifié avec un en-tête If-Match
.
Planner autorise l’apport de modifications à des versions anciennes de ressources si cette modification n’entre pas en conflit avec les dernières modifications acceptées par le service Planificateur de la même ressource. Les clients peuvent identifier l’etag le plus récent pour la même ressource en calculant la valeur etag la plus grande par comparaison de chaînes ordinale.
Chaque ressource comporte un etag distinct. Il n’est pas possible de comparer des valeurs eTag pour différentes ressources, y compris celles avec des relations d’imbrication.
Les applications clientes sont censées gérer les codes 409
d’erreur liés au contrôle de version et 412
en lisant la dernière version de l’élément et en résolvant les modifications en conflit.
Conditions d’erreur courantes de Planner
En plus des erreurs générales qui s’appliquent à Microsoft Graph, certaines conditions d’erreur sont propres à l’API du planificateur.
400 Demande incorrecte
Dans certains scénarios courants, les requêtes POST
et PATCH
peuvent renvoyer un code d’état 400. Voici quelques-unes des causes courantes :
- Les propriétés Open Type ne sont pas de types corrects, ou le type n’est pas spécifié, ou elles ne contiennent aucune propriété. Par exemple, les propriétés plannerAssignments avec des valeurs complexes doivent déclarer @odata.type avec la valeur
microsoft.graph.plannerAssignment
. - Les valeurs d’indicateur d’ordre n’ont pas le format correct. Par exemple, une valeur d’indicateur de commande est définie directement sur la valeur retournée au client.
- Les données sont logiquement incohérentes. Par exemple, la date de début de la tâche est postérieure à la date d’échéance de la tâche.
403 Interdit
En plus des erreurs générales, l’API Planificateur renvoie également le code 403
d’état lorsqu’une limite définie par le service est dépassée. Si tel est le cas, la propriété code du type de ressource d’erreur indique le type de la limite dépassée par la requête. Pour plus d’informations sur les limites, consultez Limites du planificateur .
Les valeurs possibles pour les types de limite incluent ce qui suit.
Valeur | Description |
---|---|
MaximumProjectsOwnedByUser | Le nombre maximal de plans contenus dans une limite de groupe a été dépassé. Cette limite s’applique aux plans contenus par un groupe en fonction de la propriété conteneur de la ressource plannerPlan. |
MaximumProjectsSharedWithUser | Le nombre maximal de plans partagés avec une limite d’utilisateurs a été dépassé. Cette limite est basée sur la propriété sharedWith de la ressource plannerPlanDetails . |
MaximumTasksCreatedByUser | Le nombre maximal de tâches créées par une limite d’utilisateur a été dépassé. Cette limite est basée sur la propriété createdBy sur la ressource plannerTask . |
MaximumTasksAssignedToUser | Le nombre maximal de tâches affectées à une limite d’utilisateurs a été dépassé. Cette limite est basée sur la propriété assignments sur la ressource plannerTask . |
MaximumTasksInProject | Le nombre maximal de tâches dans une limite de plan a été dépassé. Cette limite est basée sur la propriété planId de la ressource plannerTask . |
MaximumActiveTasksInProject | Le nombre maximal de tâches qui ne sont pas terminées dans une limite de plan a été dépassé. Cette limite est basée sur les propriétés planId et percentComplete de la ressource plannerTask . |
MaximumBucketsInProject | Le nombre maximal de compartiments dans une limite de plan a été dépassé. Cette limite est basée sur la propriété planId sur la ressource plannerBucket . |
MaximumUsersSharedWithProject | La propriété sharedWith de la ressource plannerPlanDetails contient trop de valeurs. |
MaximumReferencesOnTask | La propriété références de la ressource plannerTaskDetails contient trop de valeurs. |
MaximumChecklistItemsOnTask | La propriété liste de contrôle de la ressource plannerTaskDetails contient trop de valeurs. |
MaximumAssigneesInTasks | La propriété affectations de la ressource plannerTask contient trop de valeurs. |
MaximumPlannerPlans | Le groupe contient déjà le nombre maximal de plans détenus par un utilisateur, qui est actuellement de 200. Pour plus d’informations sur les limites, consultez Limites du planificateur. |
412 Échec de la condition préalable
Toutes les requêtes POST
, PATCH
et DELETE
dans l’API Planificateur requièrent la spécification de l’en-tête If-Match
avec la dernière valeur etag connue de la ressource faisant l’objet de la requête.
Le code d’état 412 peut également être renvoyé si la valeur etag spécifiée dans la requête ne correspond plus à une version de la ressource dans le service. Dans ce cas, les clients doivent lire à nouveau la ressource et obtenir un nouvel etag.