Project Portfolio Management-API

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 3 Minuten Lesedauer
  • 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

    Tabelle : 1. Pfadparameter
    Name Beschreibung
    Keine
    Tabelle : 2. Abfrageparameter
    Name Beschreibung
    Keine
    Tabelle : 3. Parameter des Anforderungstexts (JSON)
    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.

    Tabelle : 4. Anforderungskopfzeilen
    Kopfzeile Beschreibung
    Akzeptieren Datenformat des Antworttexts. Unterstützt nur application/json.
    Content-Type Datenformat des Anforderungstexts. Unterstützt nur application/json.
    Tabelle : 5. Antwortkopfzeilen
    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.

    Tabelle : 6. Statuscodes
    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": "String"
    }
    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

    Tabelle : 7. Pfadparameter
    Name Beschreibung
    Keine
    Tabelle : 8. Abfrageparameter
    Name Beschreibung
    Keine
    Tabelle : 9. Parameter des Anforderungstexts (JSON)
    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],
          "external_id": "String",
          "short_description": "String" 
       }
    ]
    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": [
       {
          "child_tasks": [Array],
          "external_id": "String",
          "short_description": "String" 
       }
    ]
    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.

    Tabelle : 10. Anforderungskopfzeilen
    Kopfzeile Beschreibung
    Akzeptieren Datenformat des Antworttexts. Unterstützt nur application/json.
    Content-Type Datenformat des Anforderungstexts. Unterstützt nur application/json.
    Tabelle : 11. Antwortkopfzeilen
    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.

    Tabelle : 12. Statuscodes
    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": "String"
    }
    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"
       }
    }