API Project Portfolio Management

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

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

    Esta API é fornecida no namespace now.

    Project Portfolio Management - POST /now/ppm/insert_cost_plans

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

    Formato da 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. Parâmetros do corpo da solicitação (JSON)
    Nome Descrição
    fim_período_fiscal Obrigatório. Sys_id do período fiscal final do plano de custo.

    Tipo de dados: cadeia de caracteres

    Tabela: período fiscal [fiscal_period]

    nome Obrigatório. Nome do plano de custo.

    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]

    início_período_fiscal Obrigatório. Sys_id do período fiscal inicial do plano de custo.

    Tipo de dados: cadeia de caracteres

    Tabela: período fiscal [fiscal_period]

    tarefa Obrigatório. Sys_id do projeto ou demanda do plano de custo.

    Tipo de dados: cadeia de caracteres

    Tabela: Projeto [pm_project] ou Demanda [dmn_demand]

    unit_cost Obrigatório. Custo unitário para o plano de custo.

    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 códigos de status possíveis usados na REST API, consulte Códigos de resposta HTTP de 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"
    }
    resultado.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"
       }
    }

    Project Portfolio Management - POST /now/ppm/insert_project_tasks

    Cria um projeto e as tarefas de projeto associadas.

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

    Formato da 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. Parâmetros do corpo da solicitação (JSON)
    Nome Descrição
    tarefas_crianças Matriz de tarefas para o projeto. Cada tarefa é um objeto na matriz.

    Tipo de dados: matriz

    "child_tasks": [
       {
          "child_tasks": [Array],
          "external_id": "String",
          "short_description": "String" 
       }
    ]
    tarefas_crianças.tarefas_secundárias 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

    tarefas_crianças.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 códigos de status possíveis usados na REST API, consulte Códigos de resposta HTTP de 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"
    }
    resultado.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 tarefa tem dependências nas 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"
       }
    }