Escrevendo o primeiro workflow
Antes de escrever qualquer blueprint, tenha em mãos o diagrama do processo. Utilize um tempo para revisar o diagrama de ter claro os casos de uso lá descritos e o entendimento de cada tarefa do processo.
É normal que, durante a transcrição do diagrama em um arquivo JSON, alguns nós adicionais venham a ser necessários, razão pela qual recomendamos evitar a utilização de valores numéricos para identificação de tarefas.
Para esse tutorial, utilizaremos como base o diagrama da pizza 2.
Para escrever seu arquivo JSON, utilize o editor de texto de sua preferência, recomendamos o uso de editores com suporte e validação de JSON, alguns exemplos são listados aqui.
#
1o NívelDefina o primeiro nível de propriedades: name, description e blueprint_spec.
Em geral recomenda-se que o campo name seja um texto system-friendly, ou seja, sem espaços e caracteres especiais e não demasiadamente comprido.
O campo description trata-se de um campo mais livre, um texo user-friendly com uma explicação sucinta do processo.
O campo blueprint_spec, por enquanto fica como um objeto vazio.
#
blueprint_specO primeiro passo e definir as propriedades fixas da blueprint, que são:
- requirements: utilizaremos o pacote core para esta blueprint
- prepare: não faremos nenhuma preparação especial
- environment: não utilizaremos nenhuma variável de ambiente neste caso
#
LaneNeste início, utilizaremos uma lane sem qualquer restrição, o que significa que basta um token válido para podermos acessar a lane.
A função que rege o acesso da lane deve ser uma função que retorna um boleano, escrita em LISP ou em Javascript. Nesse caso utilizaremos uma função que retorna sempre o valor true
.
Assim como o workflow, as lanes tem um id, que recomenda-se utilizar um texto system-friendly e um name que é um texto mais livre, user-friendly.
Com isso, o JSON de nossa blueprint fica assim:
#
NósAgora começamos a escrever os nós de nossa blueprint.
O primeiro nó que incluiremos será o nó de início do processo. Assim como os outros elementos, ele tem um id e um name, que segue a mesma orientação dada anteriormente.
Em casos de processos com um único startNode, é comum utilizar o termo 0 no id, por se simples e representar de forma clara o conceito de início.
#
PublicaçãoTemos agora uma primeira versão da nossa blueprint, estamos prontos para sua publicação.
Para publicar, utilizaremos a API de publicação de workflows.