Project Portfolio Management API
L’API Project Portfolio Management fournit des points de terminaison pour l’importation en bloc de plans de coûts et de 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 des portefeuilles 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 au cours de laquelle le plan de coût se termine. Situé dans la table Période fiscale [fiscal_period]. Type de données : chaîne |
| nom | Requis. Nom du plan de coût. Type de données : chaîne |
| resource_type | Requis. Sys_id du type de ressource. Situé dans la table Définition du type de ressource [resource_type_definition]. Type de données : chaîne |
| start_fiscal_period | Requis. Sys_id de la période fiscale au début du plan de coût. Situé dans la table Période fiscale [fiscal_period]. Type de données : chaîne |
| tâche | Requis. Sys_id du projet ou de la demande pour le plan de coût. Situé dans la table Projet [pm_project] ou Demande [dmn_demand]. Type de données : chaîne |
| unit_cost | Requis. Coût unitaire pour le plan de coût. 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 une 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 une 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 des tâches pour le projet. Chaque tâche est un objet dans le tableau. Type de données : tableau |
| child_tasks.child_tasks | Tableau des tâches enfants pour la tâche parente. Chaque tâche enfant est un objet du tableau. Chaque tâche enfant peut avoir son propre tableau de tâches enfants. Type de données : tableau |
| child_tasks.external_id | Identificateur unique de la tâche provenant du système externe. Type de données : chaîne |
| child_tasks.brève_description | Brève description de la tâche. 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 à partir 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 une 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 une 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 deuxième 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"
}
}