API Gestão de portfólios de projetos

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 4 min. de leitura
  • . Project Portfolio Management A API fornece endpoints para importar planos de custo e tarefas de projeto em massa.

    O plug-in PPM Standard (com.snc.financial_planning_pmo) é necessário para acessar esta API. O usuário chamador deve ter a função it_project_manager.

    Esta API é fornecida no agora namespace.

    Gestão de portfólios de projetos - POST /now/ppm/insert_cost_plans

    Cria planos de custo na tabela Plano de custos [cost_plan].

    Formato de URL

    URL padrão: /api/now/ppm/insert_cost_plans

    Parâmetros de solicitação compatíveis

    Tabela 1. Parâmetros de caminho
    Nome Descrição
    Nenhum(a)
    Tabela 2. Parâmetros de consulta
    Nome Descrição
    Nenhum(a)
    Tabela 3. Solicitar parâmetros do corpo (JSON)
    Nome Descrição
    end_fiscal_period Obrigatório. Sys_id do período fiscal final do plano de custos.

    Tipo de dados: Cadeia de caracteres

    Tabela: Período fiscal [fiscal_period]

    nome Obrigatório. Nome do plano de custos.

    Tipo de dados: Cadeia de caracteres

    resource_type Obrigatório. Sys_id do tipo de recurso.

    Tipo de dados: Cadeia de caracteres

    Tabela: Definição de tipo de recurso [resource_type_definition]

    start_fiscal_period Obrigatório. Sys_id do período fiscal inicial do plano de custos.

    Tipo de dados: Cadeia de caracteres

    Tabela: Período fiscal [fiscal_period]

    tarefa Obrigatório. Sys_id do projeto ou demanda para o plano de custos.

    Tipo de dados: Cadeia de caracteres

    Tabela: Projeto [pm_project] ou demanda [dmn_demand]

    unit_cost Obrigatório. Custo unitário do plano de custos.

    Tipo de dados: Cadeia de caracteres

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis .

    Tabela 4. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Oferece suporte somente a application/json.
    Tipo de conteúdo Formato de dados do corpo da solicitação. Oferece suporte somente a application/json.
    Tabela 5. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum(a)

    Códigos de status

    Os seguintes códigos de status se aplicam a esta ação HTTP. Para obter uma lista de possíveis códigos de status usados na REST API, consulte Códigos de resposta HTTP da REST API .

    Tabela 6. Códigos de status
    Código do status Descrição
    200 Bem-sucedido. A solicitação foi processada com sucesso.
    401 Não autorizado. As credenciais do usuário estão incorretas ou não foram aprovadas.

    Parâmetros do corpo da resposta (JSON)

    Nome Descrição
    resultado Objeto que contém informações sobre o status da solicitação de API.

    Tipo de dados: Objeto

    "result": {
       "status": "String"
    }
    result.status Status da solicitação de API.

    Tipo de dados: Cadeia de caracteres

    Solicitação de curl

    Este exemplo importa dois planos de custo.

    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'

    Corpo da resposta.

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

    Gestão de portfólios de projetos - POST /now/ppm/insert_project_tasks

    Cria um projeto e tarefas de projeto associadas.

    Os projetos são criados na tabela Projeto [pm_project] e as tarefas do projeto são criadas na tabela Tarefa do projeto [pm_project_task].

    Formato de URL

    URL padrão: /api/now/ppm/insert_project_tasks

    Parâmetros de solicitação compatíveis

    Tabela 7. Parâmetros de caminho
    Nome Descrição
    Nenhum(a)
    Tabela 8. Parâmetros de consulta
    Nome Descrição
    Nenhum(a)
    Tabela 9. Solicitar parâmetros do corpo (JSON)
    Nome Descrição
    child_tasks Matriz de tarefas do projeto. Cada tarefa é um objeto na matriz.

    Tipo de dados: Matriz

    "child_tasks": [
       {
          "child_tasks": [Array],
          "external_id": "String",
          "short_description": "String" 
       }
    ]
    child_tasks.child_tasks Matriz de tarefas secundárias para a tarefa primária. Cada tarefa secundária é um objeto na matriz. Cada tarefa secundária pode ter sua própria matriz de tarefas secundárias.

    Tipo de dados: Matriz

    "child_tasks": [
       {
          "child_tasks": [Array],
          "external_id": "String",
          "short_description": "String" 
       }
    ]
    child_tasks.external_id Identificador exclusivo da tarefa do sistema externo.

    Tipo de dados: Cadeia de caracteres

    child_tasks.short_description Descrição resumida da tarefa

    Tipo de dados: Cadeia de caracteres

    end_date Data de término do projeto.

    Tipo de dados: Cadeia de caracteres

    external_id Identificador exclusivo do projeto do sistema externo.

    Tipo de dados: Cadeia de caracteres

    short_description Descrição resumida do projeto

    Tipo de dados: Cadeia de caracteres

    start_date Data de início do projeto.

    Tipo de dados: Cadeia de caracteres

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis .

    Tabela 10. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Oferece suporte somente a application/json.
    Tipo de conteúdo Formato de dados do corpo da solicitação. Oferece suporte somente a application/json.
    Tabela 11. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum(a)

    Códigos de status

    Os seguintes códigos de status se aplicam a esta ação HTTP. Para obter uma lista de possíveis códigos de status usados na REST API, consulte Códigos de resposta HTTP da REST API .

    Tabela 12. Códigos de status
    Código do status Descrição
    200 Bem-sucedido. A solicitação foi processada com sucesso.
    401 Não autorizado. As credenciais do usuário estão incorretas ou não foram aprovadas.

    Parâmetros do corpo da resposta (JSON)

    Nome Descrição
    resultado Objeto que contém informações sobre o status da solicitação de API.

    Tipo de dados: Objeto

    "result": {
       "status": "String"
    }
    result.status Status da solicitação de API.

    Tipo de dados: Cadeia de caracteres

    Solicitação de curl

    Este exemplo importa um projeto com duas tarefas (zpq_t1 e zpq_t2). A primeira tarefa contém várias tarefas secundárias e a segunda depende das tarefas secundárias da primeira tarefa.

    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'

    Corpo da resposta.

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