Project Portfolio Management API
L’API Project and Portfolio Management fournit des points de terminaison pour importer en bloc des plans de coûts et des tâches de projet.
Le module d’extension PPM Standard (com.snc.financial_planning_pmo) est requis pour accéder à cette API. L’utilisateur appelant doit avoir le rôle it_project_manager.
Cette API est fournie dans l’espace de noms now .
Gestion du portefeuille de projets : POST /now/ppm/insert_cost_plans
Crée des plans de coûts dans la table Plan de coût [cost_plan].
Format d'URL
URL par défaut : /api/now/ppm/insert_cost_plans
Paramètres de demande pris en charge
| Nom | Description |
|---|---|
| Aucun |
| Nom | Description |
|---|---|
| Néant |
| Nom | Description |
|---|---|
| end_fiscal_period | Requis. Sys_id de la période fiscale qui se termine pour le plan de coûts. Type de données : chaîne Tableau : Période fiscale [fiscal_period] |
| nom | Requis. Nom du plan de coûts. Type de données : chaîne |
| resource_type | Requis. Sys_id du type de ressource. Type de données : chaîne Table : Définition du type de ressource [resource_type_definition] |
| start_fiscal_period | Requis. Sys_id de la période fiscale de début du plan de coûts. Type de données : chaîne Tableau : Période fiscale [fiscal_period] |
| tâche | Requis. Sys_id du projet ou de la demande pour le plan de coûts. Type de données : chaîne Table : Projet [pm_project] ou Demande [dmn_demand] |
| unit_cost | Requis. Coût unitaire pour le plan de coûts. Type de données : chaîne |
En-têtes
Les en-têtes de demande et de réponse suivants s'appliquent à cette action HTTP uniquement ou s'appliquent à cette action d'une manière distincte. Pour obtenir la liste des en-têtes généraux utilisés dans l’API REST, consultez En-têtes d’API REST pris en charge.
| En-tête | Description |
|---|---|
| Accepter | Format de données du corps de la réponse. Prend uniquement en charge application/json. |
| Content-Type | Format de données du corps de la demande. Prend uniquement en charge application/json. |
| En-tête | Description |
|---|---|
| Aucun |
Codes d'état
Les codes d'état suivants s'appliquent à cette action HTTP. Pour obtenir la liste des codes d’état possibles utilisés dans l’API REST, consultez Codes de réponse HTTP de l’API REST.
| Code d'état | Description |
|---|---|
| 200 | Réussi. La demande a été correctement traitée. |
| 401 | Non autorisé. Les informations d'identification de l'utilisateur sont incorrectes ou n'ont pas été transmises. |
Paramètres de corps de réponse (JSON)
| Nom | Description |
|---|---|
| résultat | Objet contenant des informations sur l’état de la demande d’API. Type de données : objet |
| résultat.état | État de la demande d’API. Type de données : chaîne |
Demande cURL
Cet exemple importe deux plans de coûts.
curl "https://instance.servicenow.com/api/now/ppm/insert_cost_plans" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "[
{
"name": "Cost plan 1",
"resource_type": "3d16eaf79330120064f572edb67ffb04",
"start_fiscal_period": "ed47e5d90b3010108d9ac74363673a98",
"end_fiscal_period": "0a47e5d90b3010108d9ac74363673afd",
"task": "0fc9f992db601810852ca6dc13961951",
"unit_cost": 1200
},
{
"name": "Cost plan 2",
"resource_type": "3d16eaf79330120064f572edb67ffb04",
"start_fiscal_period": "ed47e5d90b3010108d9ac74363673a98",
"end_fiscal_period": "7947e5d90b3010108d9ac74363673ac9",
"task": "0fc9f992db601810852ca6dc13961951",
"unit_cost": 3600
}
]" \
--user 'username':'password'
Corps de la réponse.
{
"result": {
"status": "success"
}
}
Gestion des portefeuilles de projets : POST /now/ppm/insert_project_tasks
Crée un projet et les tâches de projet associées.
Les projets sont créés dans la table Projet [pm_project] et les tâches de projet sont créées dans la table Tâche de projet [pm_project_task].
Format d'URL
URL par défaut : /api/now/ppm/insert_project_tasks
Paramètres de demande pris en charge
| Nom | Description |
|---|---|
| Aucun |
| Nom | Description |
|---|---|
| Néant |
| Nom | Description |
|---|---|
| child_tasks | Tableau de tâches pour le projet. Chaque tâche est un objet dans le tableau. Type de données : tableau |
| child_tasks.tâches_enfants | Tableau des tâches enfants de la tâche parente. Chaque tâche enfant est un objet dans le tableau. Chaque tâche enfant peut avoir son propre tableau de tâches enfants. Type de données : tableau |
| child_tasks.identifiant_externe. | Identificateur unique de la tâche provenant du système externe. Type de données : chaîne |
| child_tasks.description_courte | Brève description de la phase. Type de données : chaîne |
| end_date | Date de fin du projet. Type de données : chaîne |
| external_id | Identificateur unique du projet provenant du système externe. Type de données : chaîne |
| short_description | Brève description du projet. Type de données : chaîne |
| start_date | Date de début du projet. Type de données : chaîne |
En-têtes
Les en-têtes de demande et de réponse suivants s'appliquent à cette action HTTP uniquement ou s'appliquent à cette action d'une manière distincte. Pour obtenir la liste des en-têtes généraux utilisés dans l’API REST, consultez En-têtes d’API REST pris en charge.
| En-tête | Description |
|---|---|
| Accepter | Format de données du corps de la réponse. Prend uniquement en charge application/json. |
| Content-Type | Format de données du corps de la demande. Prend uniquement en charge application/json. |
| En-tête | Description |
|---|---|
| Aucun |
Codes d'état
Les codes d'état suivants s'appliquent à cette action HTTP. Pour obtenir la liste des codes d’état possibles utilisés dans l’API REST, consultez Codes de réponse HTTP de l’API REST.
| Code d'état | Description |
|---|---|
| 200 | Réussi. La demande a été correctement traitée. |
| 401 | Non autorisé. Les informations d'identification de l'utilisateur sont incorrectes ou n'ont pas été transmises. |
Paramètres de corps de réponse (JSON)
| Nom | Description |
|---|---|
| résultat | Objet contenant des informations sur l’état de la demande d’API. Type de données : objet |
| résultat.état | État de la demande d’API. Type de données : chaîne |
Demande cURL
Cet exemple importe un projet avec deux tâches (zpq_T1 et zpq_T2). La première tâche contient plusieurs tâches enfants, et la seconde tâche a des dépendances sur les tâches enfants de la première tâche.
curl "https://instance.servicenow.com/api/now/ppm/insert_project_tasks" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
"start_date": "2022-05-18 08:00:00",
"end_date": "2022-05-18 17:00:00",
"short_description": "zpq_Project",
"external_id": "0",
"child_tasks": [
{
"short_description": "zpq_T1",
"external_id": "1",
"child_tasks": [
{
"external_id": "1.1",
"short_description": "zpq_T11",
"child_tasks": [
{
"external_id": "1.1.1",
"short_description": "zpq_T111"
}
]
},
{
"external_id": "1.2",
"short_description": "zpq_T12"
}
]
},
{
"short_description": "zpq_T2",
"external_id": "2",
"dependencies": [
{
"external_id": "1.1",
"lag": -1,
"type": "fs"
},
{
"external_id": "1.2",
"lag": 2,
"type": "fs"
}
]
}
]
}" \
--user 'username':'password'
Corps de la réponse.
{
"result": {
"status": "success"
}
}