Pular para o conteúdo principal
Versão: 2.2.1

Exemplo de como criar Workflows utilizando a nova API do SoftExpert Workflow

info

Este tutorial tem como objetivo fornecer uma breve demonstração de como criar um Workflow no componente SoftExpert Workflow, utilizando uma API REST. Não é um guia abrangente sobre integrações, mas sim uma ilustração prática para a criação de uma requisição.

Apresentação

Neste tutorial, iremos demonstrar como utilizar a nova API do componente SoftExpert Workflow para criação de instâncias. Essa API foi totalmente desenvolvida utilizando o padrão REST, o que significa que podemos utilizá-la para fazer requisições HTTP e obter respostas no formato JSON.

Com o uso dessa nova API, podemos facilmente automatizar o processo de criação de instâncias, o que pode ser muito útil em cenários em que precisamos criar várias instâncias de um mesmo processo de forma rápida e eficiente.

Além disso, ao utilizar uma API REST, temos a vantagem de poder integrar facilmente com outras ferramentas e sistemas, já que esse padrão é amplamente adotado na indústria de software.

URL do recurso

POST /apigateway/v1/workflow

Exemplo

Neste exemplo de criação de uma instância de Fluxo de Trabalho (Workflow), incluiremos um anexo utilizando a API genérica de upload do SoftExpert Suite.

A API de Upload do SoftExpert Suite permite importar arquivos eletrônicos de diversos tipos (como imagens, planilhas, arquivos de texto, entre outros) para serem carregados no SoftExpert Suite e, geralmente, associados a algum componente específico.

Com o objetivo de ilustrar este tutorial e utilizar as funcionalidades completas da API REST do componente SoftExpert Workflow, demonstraremos como realizar o upload do arquivo eletrônico e, posteriormente, associar seu hash à próxima solicitação.

Importando um arquivo eletrônico para API de Upload

Para importar um anexo utilizando a API de upload de arquivos, primeiro é necessário enviar uma requisição para a URL /apigateway/v1/file/upload. Essa requisição deve incluir o arquivo que desejamos enviar, juntamente com alguns metadados opcionais, como o nome do arquivo e uma descrição.

GET /apigateway/v1/file/upload

Atributos suportados:

Request Body ParameterTipoRequeridoDescrição
filemultipart/form-dataSimUm único arquivo, fornecido na codificação multipart/form-data.

Solicitação de exemplo:

curl -X POST 'https://my-domain.softexpert.com/apigateway/v1/file/upload' \
-H 'Authorization: <your_api_token>' \
-F 'file=@"/mnt/c/Users/jsilva/Downloads/DT22.PT0007 - 00 - DOCUMENTATION-2.2-PT_BR-Guia de integração.pdf"'

Após enviar a requisição, a API irá retornar um objeto JSON contendo algumas informações importantes. Essas informações incluem uma descrição informando que o arquivo foi enviado com sucesso, um hash único que identifica o arquivo e o status da operação.

Exemplo de resposta:

{
"description": "File uploaded successfully.",
"filehash": "2c9280868793d127018793e590790098",
"status": "success"
}

Ao receber essa resposta, podemos utilizar o hash retornado para referenciar o arquivo em outras partes da nossa aplicação, como por exemplo, na instancia do SoftExpert Workflow. É importante lembrar que o hash é único para cada arquivo enviado, o que nos garante que sempre teremos uma referência confiável para o arquivo.

Criando um novo Workflow

Após a criação do Hash do arquivo eletrônico, é necessário enviar uma requisição para a API do SoftExpert Workflow com os seguintes parâmetros:

Atributos suportados:

Request Body ParameterTipoRequeridoDescrição
workflowTypeIdStringNãoIdentificador do tipo de workflow (substituir)
processIdStringSimIdentificador do Processo
workflowTitleStringSimTítulo da instancia do Workflow
userIdStringNãoMatrícula do usuário
tablesStringNãoLista de tabelas
tables.idStringNãoIdentificador da tabela
tables.fields.idStringNãoIdentificador do campo da tabela, se passado o objeto tables.fields.type com valor LIST será necessário enviar o identificador do relacionamento.
tables.fields.valueNãoValor do campo da tabela
tables.fields.typeStringNãoTipo do campo da tabela "LIST" (opcional)
attachmentsStringNãoLista de anexos
attachments.filereferenceStringNãoHash do anexo a ser importado
attachments.nameStringNãoNome do anexo

Possíveis tipos de dados dos campos da tabela:

ÍconeTipo de dadoDescrição
varcharTexto (255)Texto simples
integerTexto (Ilimitado)Texto longo
integerNuméricoNúmero inteiro
floatDecimalNúmero decimal
calendarDataData (YYYY-MM-DD)
clockHoraHora (HH:mm)
checkedBooleanSeleção única
checkedLista simplesLista com opções
checkedGrupo de opçõesOpções agrupadas

Exemplo de solicitação:

{
"processId": "Your process identifier",
"workflowTitle": "Your Title Instance",
"userId": "Your Tituser Idle Instance",
"tables": [
{
"id": "Your Table Identifier",
"fields": [
{
"id": "texto1",
"value": "abc"
}
]
}
],
"attachments": [
{
"filereference": "2c94808680f0ee390180f5c5b4c02054",
"name": "testejson"
}
]
}

Exemplo de resposta:

Artigos relacionados