Project Portfolio Management-API
Die Project Portfolio Management- API bietet Endpunkte für den Massenimport von Kostenplänen und Projektaufgaben.
Für den Zugriff auf diese API ist das Plugin „PPM Standard“ (com.snc.financial_planning_pmo) erforderlich. Der anrufende Benutzer muss über die Rolle it_project_manager verfügen.
Diese API wird im Now -Namespace bereitgestellt.
Projekt-Portfoliomanagement – POST /now/ppm/insert_cost_plans
Erstellt Kostenpläne in der Kostenplantabelle [cost_plan].
URL-Format
Standard-URL: /api/now/ppm/insert_cost_plans
Unterstützte Anforderungsparameter
| Name | Beschreibung |
|---|---|
| Keine |
| Name | Beschreibung |
|---|---|
| Keine |
| Name | Beschreibung |
|---|---|
| end_fiscal_period | Erforderlich. Sys_id der endenden Geschäftsperiode für den Kostenplan. Datentyp: Zeichenfolge Tabelle: Geschäftsperiode [fiscal_period] |
| name | Erforderlich. Name des Kostenplans Datentyp: Zeichenfolge |
| resource_type | Erforderlich. Sys_id des Ressourcentyps. Datentyp: Zeichenfolge Tabelle: Ressourcentypdefinition [resource_type_definition] |
| start_fiscal_period | Erforderlich. Sys_id der ersten Geschäftsperiode für den Kostenplan. Datentyp: Zeichenfolge Tabelle: Geschäftsperiode [fiscal_period] |
| Aufgabe | Erforderlich. Sys_id des Projekts oder Bedarfs für den Kostenplan Datentyp: Zeichenfolge Tabelle: Projekt [pm_project] oder Bedarf [dmn_demand] |
| Einheit_Kosten | Erforderlich. Stückkosten für den Kostenplan. Datentyp: Zeichenfolge |
Header
Die folgenden Anforderungs- und Antwortkopfzeilen gelten nur für diese HTTP-Aktion oder für diese Aktion auf eine bestimmte Weise. Eine Liste der allgemeinen Header, die in der REST API verwendet werden, finden Sie unter Unterstützte REST API-Header.
| Kopfzeile | Beschreibung |
|---|---|
| Akzeptieren | Datenformat des Antworttexts. Unterstützt nur application/json. |
| Content-Type | Datenformat des Anforderungstexts. Unterstützt nur application/json. |
| Kopfzeile | Beschreibung |
|---|---|
| Keine |
Statuscodes
Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST API verwendet werden, finden Sie unter HTTP-Antwortcodes der REST-API.
| Statuscode | Beschreibung |
|---|---|
| 200 | Erfolgreich. Die Anforderung wurde erfolgreich verarbeitet. |
| 401 | Nicht autorisiert. Die Anmeldeinformationen sind falsch oder wurden nicht übergeben. |
Parameter des Antwort-Haupttexts (JSON)
| Name | Beschreibung |
|---|---|
| Ergebnis | Objekt mit Informationen zum Status der API-Anforderung. Datentyp: Objekt |
| result.status | Status der API-Anforderung. Datentyp: Zeichenfolge |
cURL-Anforderung
In diesem Beispiel werden zwei Kostenpläne importiert.
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'
Antworttext.
{
"result": {
"status": "success"
}
}
Projekt-Portfoliomanagement – POST /now/ppm/insert_project_tasks
Erstellt ein Projekt und zugehörige Projektaufgaben.
Projekte werden in der Tabelle „Projekt“ [pm_project] und Projektaufgaben werden in der Tabelle „Projektaufgabe“ [pm_project_task] erstellt.
URL-Format
Standard-URL: /api/now/ppm/insert_project_tasks
Unterstützte Anforderungsparameter
| Name | Beschreibung |
|---|---|
| Keine |
| Name | Beschreibung |
|---|---|
| Keine |
| Name | Beschreibung |
|---|---|
| child_tasks | Array von Aufgaben für das Projekt. Jede Aufgabe ist ein Objekt im Array. Datentyp: Array |
| child_tasks.child_tasks | Array von untergeordneten Aufgaben für die übergeordnete Aufgabe. Jede untergeordnete Aufgabe ist ein Objekt im Array. Jede untergeordnete Aufgabe kann ein eigenes Array von untergeordneten Aufgaben haben. Datentyp: Array |
| child_tasks.external_id | Eindeutiger Bezeichner der Aufgabe aus dem externen System. Datentyp: Zeichenfolge |
| child_tasks.short_description | Kurze Beschreibung der Aufgabe. Datentyp: Zeichenfolge |
| end_date | Enddatum für das Projekt Datentyp: Zeichenfolge |
| external_id | Eindeutiger Bezeichner des Projekts aus dem externen System. Datentyp: Zeichenfolge |
| short_description | Kurzbeschreibung des Projekts. Datentyp: Zeichenfolge |
| start_date | Startdatum für das Projekt Datentyp: Zeichenfolge |
Header
Die folgenden Anforderungs- und Antwortkopfzeilen gelten nur für diese HTTP-Aktion oder für diese Aktion auf eine bestimmte Weise. Eine Liste der allgemeinen Header, die in der REST API verwendet werden, finden Sie unter Unterstützte REST API-Header.
| Kopfzeile | Beschreibung |
|---|---|
| Akzeptieren | Datenformat des Antworttexts. Unterstützt nur application/json. |
| Content-Type | Datenformat des Anforderungstexts. Unterstützt nur application/json. |
| Kopfzeile | Beschreibung |
|---|---|
| Keine |
Statuscodes
Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST API verwendet werden, finden Sie unter HTTP-Antwortcodes der REST-API.
| Statuscode | Beschreibung |
|---|---|
| 200 | Erfolgreich. Die Anforderung wurde erfolgreich verarbeitet. |
| 401 | Nicht autorisiert. Die Anmeldeinformationen sind falsch oder wurden nicht übergeben. |
Parameter des Antwort-Haupttexts (JSON)
| Name | Beschreibung |
|---|---|
| Ergebnis | Objekt mit Informationen zum Status der API-Anforderung. Datentyp: Objekt |
| result.status | Status der API-Anforderung. Datentyp: Zeichenfolge |
cURL-Anforderung
In diesem Beispiel wird ein Projekt mit zwei Aufgaben (zpq_T1 und zpq_T2) importiert. Die erste Aufgabe enthält mehrere untergeordnete Aufgaben, und die zweite Aufgabe weist Abhängigkeiten von den untergeordneten Aufgaben der ersten Aufgabe auf.
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'
Antworttext.
{
"result": {
"status": "success"
}
}