プロジェクトポートフォリオ管理 API

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:8分
  • プロジェクトポートフォリオ管理 API は、コスト計画とプロジェクトタスクを一括インポートするためのエンドポイントを提供します。

    この API にアクセスするには、PPM Standard プラグイン (com.snc.financial_planning_pmo) が必要です。呼び出し元ユーザーには、it_project_manager ロールが必要です。

    この API は now 名前空間内で提供されます。

    プロジェクトポートフォリオ管理:POST /now/ppm/insert_cost_plans

    コスト計画 [cost_plan] テーブルにコスト計画を作成します。

    URL 形式

    デフォルト URL: /api/now/ppm/insert_cost_plans

    サポートされている要求パラメーター

    表 : 1. パスパラメーター
    名前 説明
    なし
    表 : 2. クエリパラメータ
    名前 説明
    なし
    表 : 3. 要求本文パラメーター (JSON)
    名前 説明
    end_fiscal_period 必須。コスト計画の終了会計期間のSys_id。

    データタイプ:文字列

    テーブル:会計期間 [fiscal_period]

    名前 必須。コスト計画の名前。

    データタイプ:文字列

    resource_type 必須。リソースタイプのSys_id。

    データタイプ:文字列

    テーブル:リソースタイプ定義 [resource_type_definition]

    start_fiscal_period 必須。コスト計画の開始会計期間のSys_id。

    データタイプ:文字列

    テーブル:会計期間 [fiscal_period]

    タスク 必須。コスト計画のプロジェクトまたはデマンドのSys_id。

    データタイプ:文字列

    テーブル:プロジェクト [pm_project] またはデマンド [dmn_demand]

    unit_cost 必須。コスト計画の単位コスト。

    データタイプ:文字列

    ヘッダー

    次のリクエストや応答ヘッダーは、この HTTP アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。

    表 : 4. 要求ヘッダー
    ヘッダー 説明
    承認 応答本文のデータフォーマット。application/json のみをサポートします。
    Content-Type 要求本文のデータ形式。application/json のみをサポートします。
    表 : 5. 応答ヘッダー
    ヘッダー 説明
    なし

    ステータスコード

    この HTTP アクションには、次のステータスコードが適用されます。REST API で使用される可能性のあるステータスコードのリストについては、「 REST API HTTP 応答コード」を参照してください。

    表 : 6. ステータスコード
    ステータスコード 説明
    200 成功。要求が正常に処理されました。
    401 権限がありません。ユーザー資格情報が間違っているか、渡されていません。

    応答本文のパラメーター (JSON)

    名前 説明
    結果 API 要求のステータスに関する情報を含むオブジェクト。

    データタイプ: オブジェクト

    "result": {
       "status": "String"
    }
    result.status API 要求のステータス。

    データタイプ:文字列

    cURL 要求

    この例では、2 つのコスト計画をインポートします。

    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'

    応答本文。

    {
       "result": {
          "status": "success"
       }
    }

    プロジェクトポートフォリオ管理:POST /now/ppm/insert_project_tasks

    プロジェクトおよび関連するプロジェクトタスクを作成します。

    プロジェクトはプロジェクト [pm_project] テーブルに作成され、プロジェクトタスクはプロジェクトタスク [pm_project_task] テーブルに作成されます。

    URL 形式

    デフォルト URL: /api/now/ppm/insert_project_tasks

    サポートされている要求パラメーター

    表 : 7. パスパラメーター
    名前 説明
    なし
    表 : 8. クエリパラメータ
    名前 説明
    なし
    表 : 9. 要求本文パラメーター (JSON)
    名前 説明
    child_tasks プロジェクトのタスクのアレイ。各タスクは、アレイ内のオブジェクトです。

    データタイプ:アレイ

    "child_tasks": [
       {
          "child_tasks": [Array],
          "external_id": "String",
          "short_description": "String" 
       }
    ]
    child_tasks.child_tasks 親タスクの子タスクのアレイ。各子タスクは、アレイ内のオブジェクトです。各子タスクは、子タスクの独自のアレイを持つことができます。

    データタイプ:アレイ

    "child_tasks": [
       {
          "child_tasks": [Array],
          "external_id": "String",
          "short_description": "String" 
       }
    ]
    child_tasks.external_id 外部システムからのタスクの一意の識別子。

    データタイプ:文字列

    child_tasks.short_description タスクの簡単な説明。

    データタイプ:文字列

    end_date プロジェクトの終了日。

    データタイプ:文字列

    external_id 外部システムからのプロジェクトの一意の識別子。

    データタイプ:文字列

    short_description プロジェクトの簡単な説明。

    データタイプ:文字列

    start_date プロジェクトの開始日。

    データタイプ:文字列

    ヘッダー

    次のリクエストや応答ヘッダーは、この HTTP アクションにのみ適用されるか、またはこのアクションに別個の方法で適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。

    表 : 10. 要求ヘッダー
    ヘッダー 説明
    承認 応答本文のデータフォーマット。application/json のみをサポートします。
    Content-Type 要求本文のデータ形式。application/json のみをサポートします。
    表 : 11. 応答ヘッダー
    ヘッダー 説明
    なし

    ステータスコード

    この HTTP アクションには、次のステータスコードが適用されます。REST API で使用される可能性のあるステータスコードのリストについては、「 REST API HTTP 応答コード」を参照してください。

    表 : 12. ステータスコード
    ステータスコード 説明
    200 成功。要求が正常に処理されました。
    401 権限がありません。ユーザー資格情報が間違っているか、渡されていません。

    応答本文のパラメーター (JSON)

    名前 説明
    結果 API 要求のステータスに関する情報を含むオブジェクト。

    データタイプ: オブジェクト

    "result": {
       "status": "String"
    }
    result.status API 要求のステータス。

    データタイプ:文字列

    cURL 要求

    この例では、2 つのタスク (zpq_T1 と zpq_T2) を含むプロジェクトをインポートします。最初のタスクには複数の子タスクが含まれ、2 番目のタスクは最初のタスクの子タスクに依存しています。

    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'

    応答本文。

    {
       "result": {
          "status": "success"
       }
    }