◼️6. Workflow

6.1.GET/api/ConfWorkflow/{idCliente}

O objetivo deste método é permitir que o usuário busque as configurações de fluxo (desenho do fluxo) do cliente informado.

Entrada

Neste serviço o usuário deve informar o id do cliente que deseja buscar as configurações de fluxos.

• idCliente

Validações

O sistema valida:

• A permissão do usuário autenticado.

• Se o usuário está vinculado ao cliente informado.

Saída/Retorno

O sistema retorna as configurações de fluxo do cliente.

Response

[
    {
        "IdCliente": "guid",//id do cliente
        "IdConfWorkflow": "guid",//id do desenho do fluxo
        "NomeFluxo": "string",//nome desenho do fluxo
        "Status": "char",//status do desenho do fluxo
        "TipoAtivacao": "char",//tipo de ativação do desenho do fluxo
        "Formulario": null //informação se o desenho do fluxo possui formulário
    },
    {
        "IdCliente": "guid",
        "IdConfWorkflow": "guid",
        "NomeFluxo": "string",
        "Status": "char",
        "TipoAtivacao": "char",
        "Formulario": null
    },
]

6.2.POST/api/Workflow/Ativar

O objetivo deste método é permitir que o usuário ative fluxos baseado em um fluxograma já configurado para o cliente informado, considerando as seguintes regras:

1ª. Apenas desenho de fluxo do tipo ativação “Automática” ou “API Integração” podem ser ativados por este serviço.

2ª. O serviço “Post Workflow”, pode simplesmente ativar um fluxo, ou ativar um fluxo enviando itens como:

a. Documentos a serem cadastrado, juntamente com seus arquivos (se houver);

b. Anexos do fluxo;

c. Observação.

3ª. Quando a configuração de fluxo for do tipo ativação “API Integração” e possuir na primeira tarefa o responsável “API Integração”, o serviço “Post Workflow” poderá receber outros dados, além dos descritos acima. Estes dados são:

a. Comentário;

b. Formulário;

c. Compartilhar anexo do tipo PDF dos registros que estiverem sedo enviados;

d. Marcar para assinar anexo do tipo PDF dos registros e dos fluxos, para tarefas de acesso externos subsequentes.

Somente é possível marcar para assinar anexos dos documentos, quando estes estiverem compartilhados (mesma regra existente no ArqGED).

Um fluxo com o responsável “API Integração” na primeira tarefa, será ativado e terá esta primeira etapa concluída automaticamente. Esta etapa é configurada apenas para receber os itens descritos acima e para definir obrigatoriedades dos parâmetros do fluxo se necessário.

Entrada

Neste serviço o usuário deve informar JSON com os dados do fluxo que será ativado.

Request body

{
    "idCliente": "guid",// id do cliente
    "idConfWorkflow": "guid",//id do desenho do fluxo
    "idUsuario": "guid",
    "email": "string",
    "observacao": "string",
    "comentario": "string",
    "formulario": {//formulário do fluxo, se houver
        "idFormulario": "guid",
        "camposFormulario": [
            {
                "idCampo": "guid",
                "labelCampo": "string",
                "valorCampo": "string"
            }
        ]
    },
    "documentos": [//documento associados ao fluxo, se houver
        {
            "codigoCaixa": int,
            "idArvoreOrganizacional": "guid",
            "valoresCampos": [
                {
                    "nomeLista": "string",
                    "label": "string",
                    "valorCampo": "string"
                }
            ],
            "arquivos": [//anexos do documento associado ao fluxo, se houver
                {
                    "arquivo": "string",
                    "extensao": "string",
                    "assinar": true,
                    "versao": "string",
                    "nomeAmigavel": "string",
                    "compartilhado": true
                }
            ]
        }
    ],
    "arquivos": [//anexos do fluxo, se houver
        {
            "arquivo": "string",
            "extensao": "string",
            "assinar": true,
            "versao": "string",
            "nomeArquivo": "string"
        }
    ],
    "selecionadoExternoVarios": [
        "string",
        "string"
    ],
    "emailGrupoExterno": [
        "string"
    ]
}

IdCliente: Id do cliente do fluxo. [Obrigatório]

IdConfWorkflow: Id da configuração do fluxo do cliente que será ativado. [Obrigatório]

Email: Email para o usuário responsável. [Obrigatório quando a primeira tarefa do IdConfWorkflow for responsável "Selecionado Externo".]

IdUsuario: Id do usuário responsável. [Obrigatório quando a primeira tarefa do IdConfWorkflow for responsável "Selecionado".]

Observacao: Observação para o fluxo que será ativado. [Opcional]

Comentario: Comentário para a primeira tarefa. [Obrigatório quando a primeira tarefa do IdConfWorkflow for responsável "API Integração" e na tarefa em questão é obrigatório inserir comentário]

Formulario: Dados do formulário. [Obrigatório quando a primeira tarefa do IdConfWorkflow for responsável "API Integração" e na tarefa em questão é obrigatório inserir dados do formulário]

Documentos: Cadastrar documentos. [Obrigatório quando a primeira tarefa do IdConfWorkflow for responsável "API Integração" e na tarefa em questão é obrigatório cadastrar documentos]

Arquivos: Anexar arquivos ao fluxo. [Obrigatório quando a primeira tarefa do IdConfWorkflow for responsável "API Integração" e na tarefa em questão é obrigatório inserir anexos do fluxo]

SelecionadoExternoVarios: E-mail dos usuários externos para a primeira tarefa.

Obrigatório quando:

  • A primeira tarefa do IdConfWorkflow for responsável " Selecionado externo vários"

  • A primeira tarefa do IdConfWorkflow for responsável "API Integração" e na tarefa subsequente à primeira tarefa for responsável “Selecionado externo vários

EmailGrupoExterno: E-mail dos usuários externos para a primeira tarefa com agrupamento.

Obrigatório quando:

  • A primeira tarefa do IdConfWorkflow for em grupo com responsável ""Selecionado externo único”.

Validações

O sistema valida:

• A permissão do usuário autenticado.

• Se o usuário está vinculado ao cliente informado.

• Se o idConfWorkflow pertence ao cliente informado.

• Os campos de formulário, se houver.

Saída/Retorno

O sistema retorna o código do fluxo ativado.

Code 200 OK

Response

{
    "CodigoWorkflow": 1043818,
    "Mensagem": "Fluxo ativado com sucesso."
}

6.3.PATCH/api/Workflow/Cliente/{idCliente}/associar-documentos

Entrada

• idCliente

• JSON com os ids dos documentos que serão associados ao fluxo.

Quando informado o idWorkflow e não souber o codigoWorkflow, este deve ser incluído como Null.

O usuário poderá associar um ou mais documentos ao fluxo.

Request body

{
  "idWorkflow": "guid", //id do fluxo
  "codigoWorkflow": 0, // código do fluxo
  "documentos": [//ids dos documentos que serão associados ao fluxo
    "guid",
    "guid"
  ]
}

Saída/Retorno

O sistema retorna o status 200 OK

Response

"Registros associados com sucesso"

6.4.GET/api/ConfWorkflow/{idConfWorkflow}/Cliente/{idCliente}/fluxos-ativados

Entrada

• idCliente

• idConfWorkflow

• Status

• IdTarefa

• Pagina

• BuscarQtdPaginas

Saída/Retorno

• O sistema retorna os fluxos ativados do idConfWorkflow informado.

• Os campos "TotalDePaginasDaConsulta" e "TotalDeRegistrosDaConsulta" serão retornados somente se o parametro BuscarQtdPaginas for informado.

Response

{
    "TotalDePaginasDaConsulta": int, //total de páginas retornados na consulta
    "TotalDeRegistrosDaConsulta": int, //total de registros retornados na consulta
    "Dados": [ // dados dos fluxos ativados
        {
            "IdWorkflow": "guid",// id do fluxo
            "CodigoWorkflow": int, //código do fluxo
            "Status": int, //status do fluxo
            "DataInicio": "string",// data início do fluxo
            "DataFim": "string",// data fim do fluxo
            "Observacao": null, // observação do fluxo, se houver
            "EtapaAtual": {//dados da etapa atual do fluxo
                "IdEtapa": "guid",// id da etapa atual do fluxo
                "IdTarefa": "guid",// id da tarefa atual do fluxo
                "NomeTarefa": "string",//nome da tarefa atual do fluxo
                "DataInicioTarefa": "string",// data inicial da tarefa
                "DataFimTarefa": "string",//data fim da tarefa
                "PrevisaoTermino": "string",// previsão de termino da tarefa atual
                "Atrasada": true //true = atrasada, false = em dia
            }
        },
        {
            "IdWorkflow": "guid",
            "CodigoWorkflow": int,
            "Status": int,
            "DataInicio": "string",
            "DataFim": "strin",
            "Observacao": null,
            "EtapaAtual": {
                "IdEtapa": "guid",
                "IdTarefa": "guid",
                "NomeTarefa": "string",
                "DataInicioTarefa": "string",
                "DataFimTarefa": "string",
                "PrevisaoTermino": "string",
                "Atrasada": true
            }
        }
    ]
}

6.5.GET/api/Workflow/Cliente/{idCliente}/dados-fluxo

Entrada

• idCliente

• IdWorkflow ou CodigoWorkflow

Saída/Retorno

• O sistema retorna os dados do fluxo informado.

• Um fluxo pode ter um ou mais arquivos relacionados.

• Um fluxo pode ter um ou mais documentos relacionados.

Response

{
  "status": int, //status do fluxo
  "etapaAtual": [//etapa atual do fluxo
    {
      "idTarefa": "guid",//id da tarefa atual do fluxo
      "nomeTarefa": "string",//nome da tarefa atual do fluxo
      "execucoesTarefa": [//execuções do fluxo
        {
          "idWorkflowEtapaExecucao": "guid", //id da execução da etapa atual do fluxo
          "usuario": "string",//usuário responsável da tarefa(interna)
          "email": "string",//e-mail do usuário responsável da tarefa (externa)
          "concluida": int, //informação se tarefa concluída ou não
          "dataInicio": "string",//data início da tarefa
          "dataFim": "string",//data fim da tarefa, se concluída
          "previsaoTermino": "string",//previsão de término da tarefa
          "atrasada": true //true = atrasada, false = em dia
        }
      ]
    }
  ],
  "anexosFluxo": [//anexos do fluxo, se houver
    {
      "idArquivo": "guid",//id do arquivo
      "nomeArquivo": "string",//nome do arquivo
      "assinar": true //informação se o arquivo está marcado para assinar
    }
  ],
  "documentosFluxo": [//documentos do fluxo, se houver
    {
      "idDocumento": "guid",//id do documento
      "codigoDocumento": int, //código do documento
      "idArvoreOrganizacional": "guid",//id da arvore do documento
      "arquivosDocumento": [//arquivos do documento
        {
          "idArquivoDocumento": "guid",//id do arquivo do documento
          "nomeArquivo": "string",//nome do arquivo do documento
          "compartilhado": true, //informação se o arquivo está marcado para compartilhar
          "assinar": true //informação se o arquivo está marcado para assinar
        }
      ]
    }
  ],
  "comentarios": [//comentários do fluxo, se houver
    {
      "nomeTarefa": "string",//nome da tarefa que foi incluído o comentário
      "usuario": "string",//usuário quem fez o comentário (interno)
      "email": "string",//e-mail do usuário quem fez o comentário (externo)
      "dataHora": "string",//data e hora do comentário
      "comentario": "string"//conteúdo do comentário
    }
  ],
  "formulario": [//formulário do fluxo, se houver
    {
      "idCampo": "guid",//id do campo do formulário
      "nomeCampo": "string",//nome do campo do formulário
      "valor": "string",//valor do campo do formulário
      "idLista": "guid",//id lista do campo do formulário, se houver
      "nomeLista": "string"//nome da lista do campo do formulário se houver
    }
  ]
}

6.6.GET/api/Workflow/Cliente/{idCliente}/modelo-fluxo

Entrada

• idCliente

• IdWorkflow ou CodigoWorkflow

Saída/Retorno:

• O sistema retorna os campos da lista informada.

Response

{
    "nomeModelo": "string",//nome do modelo do fluxo
    "arquivoModelo": "bytes"//bytes do modelo do fluxo
}

6.7.PATCH/api/Workflow/EtapaExecucao/{IdWorkflowEtapaExecucao}/Cliente/{idCliente}/atualizar-dados-formulario

Entrada

• idCliente

• IdWorkflowEtapaExecucao

• JSON com os campos do formulário que serão alterados.

É obrigatório informar o idWorkflow ou codigoWorkflow.

Request body

{
  "idWorkflow": "guid",//id do fluxo
  "codigoWorkflow": 0, //código do fluxo
  "campos": [
    {
      "idLista": "guid",//id da lista se o campo for de lista
      "idCampo": "guid",//id do campo que será alterado
      "valor": "string"//novo valor do campo do formulário
    },
    {
      "idLista": "",
      "idCampo": "guid",
      "valor": "string"
    }
  ]
}

Saída/Retorno

O sistema retorna o status 200 OK.

Response

OK

Última actualización