Principes de base des API de planification d’Adobe Workfront

IMPORTANT
Les informations de cet article font référence à Adobe Workfront Planning, une fonctionnalité supplémentaire d’Adobe Workfront.
Pour obtenir la liste des conditions requises pour accéder à Workfront Planning, consultez Présentation de l'accès à Adobe Workfront Planning.
Pour obtenir des informations générales sur Workfront Planning, consultez la présentation d’Adobe Workfront Planning.

L’API Planning d’Adobe Workfront a pour objectif de simplifier la création d’intégrations avec Planning en introduisant une architecture REST-ful qui fonctionne via HTTP. Ce document suppose que vous connaissez les réponses REST et JSON et décrit l’approche adoptée par l’API Planning.

Une connaissance du schéma de planification Workfront vous aidera à comprendre les relations de base de données qui peuvent être utilisées pour extraire des données de Workfront Planning à des fins d’intégration.

Vous pouvez appeler l’API de planification à partir d’un champ de recherche externe dans un formulaire personnalisé Workfront.

Pour plus d’informations sur les champs de recherche externe, voir Exemples du champ de recherche externe dans un formulaire personnalisé.

NOTE
Lors de l’utilisation de l’API Planning, toutes les informations utilisateur sont renvoyées à l’aide de l’identifiant utilisateur Adobe Identity Management System (IMS), et non de l’identifiant utilisateur Workfront.
Pour plus d’informations, voir Gestion des utilisateurs dans Adobe Admin Console.

URL de l’API Workfront Planning

Opérations

Les objets sont manipulés en envoyant une requête HTTP à leur URI unique. L’opération à effectuer est spécifiée par la méthode HTTP.

Les méthodes HTTP standard correspondent aux opérations suivantes :

  • GET - Récupère un objet par ID, recherche tous les objets par une requête
  • POST - Insère un nouvel objet.
  • PUT - Modifie un objet existant.
  • DELETE - Supprime un objet.

Pour plus d’informations et d’exemples de chaque opération, consultez la documentation destinée aux développeurs et développeuses de l’API Workfront Planning.

Types de champs et modificateurs de recherche utilisés avec

Vous pouvez utiliser des modificateurs et des filtres avec des champs pour contrôler les données qui seront renvoyées dans les résultats.

Utilisation des modificateurs de recherche

Workfront Planning prend en charge les modificateurs de recherche suivants :

Modificateur
Exemple
Description
Valeurs possibles
$contains
"fieldId": { "$contains": "product" }
Retourne les enregistrements dont la valeur du champ contient le filtre
« Nouveau lancement de produit »
$doNotContain
"fieldId": { "$doesNotContain": "product" }
Renvoie les enregistrements dont la valeur du champ ne contient pas le filtre
« Nouveau lancement »
$is
  • "fieldId" : { "$is": "new product launch" }
  • "fieldId" : { "new product launch" }
Renvoie les enregistrements dont la valeur du champ correspond exactement au filtre
« Nouveau lancement de produit »
$isNot
"fieldId": { "$isNot": "product" }
Renvoie les enregistrements dont la valeur du champ ne correspond exactement pas au filtre
« Nouveau lancement de produit »
$isEmpty
  • "fieldId": "$isEmpty"
  • "fieldId": { "$isEmpty": null }
Retourne les enregistrements dont la valeur du champ n’est pas vide
  • « »
  • nul
$isNotEmpty
  • "fieldId": "$isNotEmpty"
  • "fieldId": { "$isNotEmpty": null }
Retourne les enregistrements dont la valeur du champ n’est pas vide
« Nouveau lancement de produit »
$GreaterThan
"fieldId": { "$greaterThan": 10 }
Renvoie les enregistrements dont la valeur du champ est supérieure au filtre
  • 20
  • 25
$GreaterThanOrEqual
"fieldId": { "$greaterThanOrEqual": 10 }
Renvoie les enregistrements dont la valeur du champ est supérieure ou égale au filtre
  • 10
  • 20
  • 25
$lessThan
"fieldId": { "$lessThan": 10 }
Renvoie les enregistrements dont la valeur du champ est inférieure au filtre
  • 5
  • 9
$lessThanOrEqual
"fieldId": { "$lessThanOrEqual": 10 }
Renvoie les enregistrements dont la valeur du champ est inférieure ou égale au filtre
  • 5
  • 9
    • 10
$isAfter
"fieldId": { "$isAfter": "2024-05-14T20:00:00.000Z" }
Retourne les enregistrements dont la valeur du champ est postérieure au filtre
« 2024-05-15T20:00:00.000Z »
$isBefore
"fieldId": { "$isBefore": "2024-05-14T20:00:00.000Z" }
Renvoie les enregistrements dont la valeur du champ est antérieure au filtre
« 2024-05-12T20:00:00.000Z »
$isBetween
"fieldId": { "$isBetween": ["2024-05-10T20:00:00.000Z", "2024-05-15T20:00:00.000Z"] }
Renvoie les enregistrements dont la valeur du champ est comprise entre le filtre
  • « 2024-05-12T20:00:00.000Z »
  • « 2024-05-14T20:00:00.000Z »
$isNotBetween
"fieldId": { "$isNotBetween": ["2024-05-10T20:00:00.000Z", "2024-05-15T20:00:00.000Z"] }
Retourne les enregistrements dont la valeur du champ n'est pas comprise entre le filtre
  • « 2024-05-09T20:00:00.000Z »
  • « 2024-05-17T20:00:00.000Z »
$isAnyOf
"fieldId": { "$isAnyOf": ["active", "completed"] }
Renvoie les enregistrements dont la valeur du champ est l’un des filtres
  • « actif »
  • « terminé »
$isNoneOf
"fieldId": { "$isNoneOf": ["active", "completed"] }
Renvoie les enregistrements dont la valeur du champ n’est pas un filtre
  • « terminé »
  • « fixe »
$hasAnyOf
"fieldId": { "$hasAnyOf": ["active", "completed"] }
Renvoie les enregistrements dont la valeur de champ possède l’un des filtres
  • [« actif », « fixe »]
  • [« fixe », « terminé », « terminé »]
$hasAllOf
"fieldId": { "$hasAllOf": ["active", "completed"] }
Retourne les enregistrements dont la valeur du champ possède tout le filtre
  • [« actif », « terminé »]
  • [« actif », « terminé », « terminé »]
$hasNoneOf
"fieldId": { "$hasNoneOf": ["active", "completed"] }
Retourne les enregistrements dont la valeur du champ n'a aucun filtre
[« fixe », « terminé »]
$isExactly
"fieldId": { "$isExactly": ["active", "completed"] }
Retourne les enregistrements dont la valeur du champ est exactement le filtre
[« actif », « terminé »]

Types de champ

Vous trouverez ci-dessous la liste des types de champ pris en charge et les modificateurs de recherche pouvant être utilisés avec chacun de ces types de champ

Type de champ
Modificateurs de recherche pris en charge
Texte
$contains, $isNotContain, $is, $isNot, $isEmpty, $isNotEmpty
texte long
$contains, $isNotContain, $is, $isNot, $isEmpty, $isNotEmpty
Nombre
$is, $isNot, $GreaterThan, $GreaterThanOrEqual, $lessThan, $lessThanOrEqual, $isEmpty, $isNotEmpty
pourcentage
$is, $isNot, $GreaterThan, $GreaterThanOrEqual, $lessThan, $lessThanOrEqual, $isEmpty, $isNotEmpty
currency
$is, $isNot, $GreaterThan, $GreaterThanOrEqual, $lessThan, $lessThanOrEqual, $isEmpty, $isNotEmpty
Date
$is, $isNot, $isAfter, $isBefore, $isBetween, $isNotBetween, $isEmpty, $isNotEmpty
à sélection unique
$is, $isNot, $isAnyOf, $isNoneOf, $isEmpty, $isNotEmpty
sélection multiple
$hasAnyOf, $hasAllOf, $isExactly, $hasNoneOf, $isEmpty, $isNotEmpty
booléen
$is
utilisateur
$hasAnyOf, $hasAllOf, $isExactly, $hasNoneOf, $isEmpty, $isNotEmpty
formule
$contains, $isNotContain, $is, $isNot, $isEmpty, $isNotEmpty
url
$contains, $isNotContain, $is, $isNot, $isEmpty, $isNotEmpty
created-by
$is, $isNot, $isAnyOf, $isNoneOf
created-at
$is, $isNot, $isAfter, $isBefore, $isBetween, $isNotBetween
mis à jour par
$is, $isNot, $isAnyOf, $isNoneOf, $isEmpty, $isNotEmpty
updated-at
$is, $isNot, $isAfter, $isBefore, $isBetween, $isNotBetween, $isEmpty, $isNotEmpty
référence
$hasAnyOf, $hasAllOf, $isExactly, $hasNoneOf, $isEmpty, $isNotEmpty
recherche
Dépend du champ lié

Utilisation des instructions « And » et « Or »

Dans l’appel API, vous pouvez avoir des filtres basés sur plusieurs critères combinés par des instructions $and » et « $or »

{
  "recordTypeId": "recordTypeId",
  "offset": "integer",
  "limit": "integer",
  "filters": [
    {
      "$or": [
        {
          "launch_date": {
            "$isBetween": [
              "2024-03-31T20:00:00.000Z",
              "2024-04-01T20:00:00.000Z"
            ]
          }
        },
        {
          "$and": [
            {
              "launch_date": {
                "$isBetween": [
                  "2024-03-31T20:00:00.000Z",
                  "2024-04-01T20:00:00.000Z"
                ]
              }
            },
            {
              "status": "active"
            }
          ]
        },
        {
          "$and": [
            {
              "launch_date": {
                "$isBetween": [
                  "2024-04-15T00:00:00.000Z",
                  "2024-04-16T00:00:00.000Z"
                ]
              }
            },
            {
              "status": "planned"
            }
          ]
        }
      ]
    }
  ]
}

Utilisation du paramètre de requête fields

Vous pouvez utiliser le paramètre de requête fields pour spécifier une liste séparée par des virgules de champs spécifiques à renvoyer. Les noms de ces champs sont sensibles à la casse.

Par exemple, la requête

/v1/records/search?attributes=data,createdBy

{
    "records": [
        {
            "id": "Rc6527ecb35df57c441d92ba00",
            "createdBy": "61a9cc0500002f9fdaa7a6f824f557e1",
            "createdAt": null,
            "updatedBy": null,
            "updatedAt": null,
            "customerId": null,
            "imsOrgId": null,
            "recordTypeId": null,
            "data": {
                "F666c0b58b6fee61a2ea6ea81": [
                    {
                        "externalId": null,
                        "id": "Rc665728ff95730b58bc757b13",
                        "value": null
                    },
..

renvoie une réponse similaire à la suivante :

{
    "priority": 2,
    "name": "first task",
    "ID": "4c7c08fa0000002ff924e298ee148df4",
    "plannedStartDate": "2010-08-30T09:00:00:000-0600"
}

Trier les résultats d’une requête dans l’API

Vous pouvez trier vos résultats selon n’importe quel champ si vous ajoutez les éléments suivants à votre appel API :

/v1/records/search

Corps de la requête :

{
    "recordTypeId": "Rt6527ecb25df57c441d92b9fa",
    "filters": [],
    "sorting": [
        {
            "fieldId": "F6527ecb25df57c441d92b9fc",
            "direction": "asc"
        },
        {
            "fieldId": "F658afcbd4a0273c67c346fd5",
            "direction": "desc"
        }
    ],
    "limit": 500,
    "offset": 0,
    "rowOrderViewId": "V6527ecb75df57c441d92ba03",
    "groupingFieldIds": []
}

Limites de requête et réponses paginées

Par défaut, les requêtes d’API Planning renvoient 500 résultats, en commençant au début de la liste. Pour remplacer la limitation par défaut du nombre de résultats, vous pouvez utiliser le paramètre limit dans vos requêtes et le définir sur un nombre différent, jusqu’à 2 000 résultats.

Nous vous recommandons d’envisager d’utiliser des réponses paginées pour les jeux de données volumineux en ajoutant le paramètre offset à vos requêtes. Les réponses paginées vous permettent de spécifier l’emplacement du premier résultat à renvoyer.

Par exemple, si vous souhaitez renvoyer les résultats 2001-4000, vous pouvez utiliser la requête suivante. Cet exemple renvoie 2 000 enregistrements dont le statut est actif, à partir du résultat 2001 :

POST /v1/records/search

Corps de la requête :

{
    "recordTypeId": "recordTypeId",
    "offset": "2001",
    "limit": "2000",
    "filters": [
        { "status": "active" }
    ]
}

Pour vous assurer que vos résultats sont correctement paginés, utilisez un paramètre de tri. Cela permet de renvoyer les résultats dans le même ordre, de sorte que la pagination ne se répète pas et n’ignore pas les résultats.

Pour plus d’informations sur le tri, voir Tri des résultats de requête dans l’API dans cet article.

recommendation-more-help
5f00cc6b-2202-40d6-bcd0-3ee0c2316b43