Criar subtarefas em uma tarefa de um plano de tarefas

Permite criar uma ou mais subtarefas dentro de uma tarefa já existente de um plano de tarefas (formulário de manutenção), sem depender da interface do Fracttal.

POST https://app.fracttal.com/api/tasks_subtasks

Parâmetros de entrada — Obrigatórios

Enviados no body da requisição.

ParâmetroTipoObrigatórioDescrição
id_taskinteiroSimId da tarefa existente dentro do plano de tarefas onde as subtarefas serão criadas. Obtido na listagem/detalhe de tarefas do plano.
is_cyclicalbooleanoSimIndica se a tarefa possui iterações. Deve coincidir com o estado real da tarefa — se não coincidir, a requisição é rejeitada com 409.
num_iterationsinteiroSim, somente se is_cyclical = trueNúmero de iterações da tarefa. Inteiro maior que 0.
subtasksarray de objetosSimArray com pelo menos um elemento; cada elemento é a configuração de uma subtarefa. A ordem do array determina o order_number atribuído. Ver Parâmetros de subtasks abaixo para os campos de cada elemento.

Parâmetros de entrada — Opcionais

Nenhum no nível superior — todos os campos opcionais deste endpoint fazem parte de cada elemento de subtasks (ver abaixo).


Parâmetros de subtasks

Cada elemento do array subtasks representa uma subtarefa a ser criada, com os seguintes campos:

Obrigatórios

ParâmetroTipoObrigatórioDescrição
id_task_form_item_typeinteiroSimTipo de subtarefa a criar. Determina quais outros campos se aplicam — ver tabela Tipos de subtarefa a seguir. Valores válidos: 1 a 8.
descriptiontextoSimTexto exibido como rótulo/pergunta da subtarefa ao executar a tarefa (ex. "Describe el procedimiento realizado"). Não pode ficar vazio.

Tipos de subtarefa (id_task_form_item_type)

IdTipoCampos adicionais relevantes
1TextoNenhum adicional.
2Sim/NãoNenhum adicional.
3NúmeroNenhum adicional.
4VerificaçãoNenhum adicional.
5Leitura de medidorRequer id_unit ou unit_description (ver Opcionais). Se a tarefa tiver ativos vinculados, a resposta pode incluir message: "ERROR_CONFIG_METERS_ASSETS".
6Localização GPSNenhum adicional.
7ListaRequer dropdown_options com no mínimo 2 elementos (ver Opcionais).
8Data e horaNenhum adicional.

Opcionais

ParâmetroTipoObrigatórioDescrição
is_requiredbooleanoOpcionalPadrão: false.
attachments_requiredbooleanoOpcionalPadrão: false.
task_form_item_group_descriptiontextoOpcionalNome do grupo/parte. Se informado, busca-se um grupo similar (fuzzy match); se não existir, é criado automaticamente.
id_unitinteiroOpcional (obrigatório se id_task_form_item_type = 5 e unit_description não for enviado)Id da unidade de medida em companies.units. Se não existir, retorna 422.
unit_descriptiontextoOpcional (obrigatório se id_task_form_item_type = 5 e id_unit não for enviado)Descrição da unidade; se não houver correspondência por similaridade, é criada automaticamente.
dropdown_optionsarrayOpcional (obrigatório se id_task_form_item_type = 7, mínimo 2 elementos)Cada elemento: { "description": string }.
iterationsobjetoOpcionalAplica-se somente se is_cyclical = true (no nível da requisição). Formato: { "iteration_1": true, "iteration_3": true, ... }. Se algum iteration_n tiver n > num_iterations, retorna 400. Se omitido ou enviado vazio, a subtarefa não participa de nenhuma iteração.

Parâmetros de saída

ParâmetroTipoDescrição
idinteiroId gerado para a subtarefa criada.
id_taskinteiroId da tarefa à qual pertence.
id_task_form_item_typeinteiroTipo de subtarefa.
descriptiontextoDescrição da subtarefa.
order_numberinteiroOrdem atribuída automaticamente pelo servidor.
is_requiredbooleanoSe a subtarefa é obrigatória.
attachments_requiredbooleanoSe requer anexos.
id_task_form_item_groupinteiroId do grupo/parte associado (criado ou reutilizado).
iterationsobjetoIterações nas quais a subtarefa participa.
dropdown_optionsarrayOpções de lista (somente tipo 7).
messagetextoERROR_CONFIG_METERS_ASSETS quando a tarefa tem ativos vinculados e uma subtarefa tipo 5 (medidor) é adicionada; requer configuração adicional por ativo.
totalinteiroNúmero de ativos afetados — presente somente junto com ERROR_CONFIG_METERS_ASSETS.

Erros

CódigoCausa
400id_task não informado; is_cyclical não informado; is_cyclical=true sem num_iterations; num_iterations ≤ 0; subtasks vazio ou ausente; id_task_form_item_type fora de 1–8; description vazia; tipo 5 sem id_unit nem unit_description; tipo 7 com menos de 2 dropdown_options ou alguma opção sem description; algum iteration_n com n > num_iterations.
401Sem autenticação.
403Sem permissão edit sobre TASKS > PLAN_TASKS.
404id_task não existe.
409is_cyclical ou num_iterations do body não coincide com o estado real da tarefa.
415Content-Type diferente de application/json.
422id_unit inexistente em companies.units.

Exemplo

Request body (tarefa cíclica, 4 iterações)

{
  "id_task": 1001,
  "is_cyclical": true,
  "num_iterations": 4,
  "subtasks": [
    {
      "id_task_form_item_type": 1,
      "description": "Describe el procedimiento realizado",
      "iterations": { "iteration_4": true },
      "is_required": false,
      "attachments_required": false
    },
    {
      "id_task_form_item_type": 5,
      "description": "Lectura de presión hidráulica",
      "task_form_item_group_description": "Sistema Hidráulico",
      "id_unit": 42,
      "iterations": { "iteration_1": true, "iteration_2": true, "iteration_3": true, "iteration_4": true },
      "is_required": true,
      "attachments_required": false
    },
    {
      "id_task_form_item_type": 7,
      "description": "Estado general del equipo",
      "task_form_item_group_description": "Inspección General",
      "dropdown_options": [
        { "description": "Bueno" },
        { "description": "Regular" },
        { "description": "Malo" }
      ],
      "iterations": { "iteration_2": true, "iteration_4": true },
      "is_required": true,
      "attachments_required": true
    }
  ]
}

Response 200

{
  "success": true,
  "message": "200",
  "data": [
    {
      "id": 501,
      "id_task": 1001,
      "id_task_form_item_type": 1,
      "description": "Describe el procedimiento realizado",
      "order_number": 1,
      "is_required": false,
      "attachments_required": false,
      "id_task_form_item_group": null,
      "iterations": { "iteration_4": true },
      "dropdown_options": null
    },
    {
      "id": 502,
      "id_task": 1001,
      "id_task_form_item_type": 5,
      "description": "Lectura de presión hidráulica",
      "order_number": 2,
      "is_required": true,
      "attachments_required": false,
      "id_task_form_item_group": 12,
      "iterations": { "iteration_1": true, "iteration_2": true, "iteration_3": true, "iteration_4": true },
      "dropdown_options": null
    },
    {
      "id": 503,
      "id_task": 1001,
      "id_task_form_item_type": 7,
      "description": "Estado general del equipo",
      "order_number": 3,
      "is_required": true,
      "attachments_required": true,
      "id_task_form_item_group": 13,
      "iterations": { "iteration_2": true, "iteration_4": true },
      "dropdown_options": [
        { "id": 1, "description": "Bueno" },
        { "id": 2, "description": "Regular" },
        { "id": 3, "description": "Malo" }
      ]
    }
  ],
  "total": 3
}

Response — subtarefa tipo medidor em tarefa com ativos vinculados

{
  "success": true,
  "message": "ERROR_CONFIG_METERS_ASSETS",
  "data": [
    {
      "id": 504,
      "id_task": 1001,
      "id_task_form_item_type": 5,
      "description": "Lectura de nivel de aceite",
      "order_number": 4,
      "is_required": true,
      "attachments_required": false,
      "id_task_form_item_group": null,
      "iterations": {},
      "dropdown_options": null
    }
  ],
  "total": 3
}

Definição OpenAPI

{
  "openapi": "3.1.0",
  "info": {
    "title": "tarefas",
    "version": "3-pt"
  },
  "servers": [
    {
      "url": "https://app.fracttal.com/api/tasks_subtasks"
    }
  ],
  "security": [
    {}
  ],
  "paths": {
    "/": {
      "post": {
        "summary": "Criar subtarefas em uma tarefa de um plano de tarefas",
        "description": "",
        "operationId": "criar-subtarefas-em-uma-tarefa-de-um-plano-de-tarefas",
        "deprecated": false,
        "security": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["id_task", "is_cyclical", "subtasks"],
                "properties": {
                  "id_task": { "type": "integer" },
                  "is_cyclical": { "type": "boolean" },
                  "num_iterations": { "type": "integer" },
                  "subtasks": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "type": "object",
                      "required": ["id_task_form_item_type", "description"],
                      "properties": {
                        "id_task_form_item_type": { "type": "integer", "minimum": 1, "maximum": 8 },
                        "description": { "type": "string" },
                        "is_required": { "type": "boolean", "default": false },
                        "attachments_required": { "type": "boolean", "default": false },
                        "task_form_item_group_description": { "type": "string" },
                        "id_unit": { "type": "integer" },
                        "unit_description": { "type": "string" },
                        "dropdown_options": {
                          "type": "array",
                          "items": { "type": "object", "properties": { "description": { "type": "string" } } }
                        },
                        "iterations": { "type": "object", "additionalProperties": { "type": "boolean" } }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": { "description": "Subtarefas criadas com sucesso" },
          "400": { "description": "Bad Request" },
          "401": { "description": "Unauthorized" },
          "403": { "description": "Forbidden" },
          "404": { "description": "Not Found" },
          "409": { "description": "Conflict" },
          "415": { "description": "Unsupported Media Type" },
          "422": { "description": "Unprocessable Entity" }
        }
      }
    }
  },
  "x-readme": {
    "headers": [],
    "explorer-enabled": false,
    "proxy-enabled": true
  },
  "x-readme-fauxas": true
}
Response
200
Language
LoadingLoading…