Tarefa de Serviço (Service)
Uma tarefa de serviço (também conhecida com tarefa de script) em um workflow é uma atividade automatizada onde um código ou script é executado sem intervenção humana. A tarefa de script é usada para realizar operações simples ou complexas, como cálculos ou manipulação de dados, dentro do fluxo do processo.
Através da tarefa de serviço, é possível utilizar os dados existentes no fluxo (variáveis) com entrada para o processamento desejado, e como saída, é possível escrever novas variáveis no fluxo, contendo os resultados do processamento, para que possam ser utilizados em nas tarefas seguintes.
Principais características:
- Automatização: O script é executado automaticamente pelo sistema.
- Integração: Pode interagir com bancos de dados, sistemas internos ou APIs etc.
- Sem intervenção humana: Todo o processo é executado automaticamente pelo sistema.
Alguns exemplos de uso:
- Atualização de um banco de dados: Ao receber uma nova ordem de compra, um script pode automaticamente atualizar o inventário no banco de dados.
- Conversão de dados: Converter um formato de data de um sistema para outro (ex.: de DD/MM/AAAA para MM-DD-AAAA).
- Busca de informação em sistemas externos: (pegar cotação do dólar no dia, por exemplo) para uso no processo.
- Disparar ações em outros sistemas: Ao receber um nova demissão de funcionário, executar uma chamada de API em outro sistema para desativar os logins do funcionário demitido.
Essas tarefas são úteis para otimizar o fluxo e reduzir a necessidade de intervenções manuais, garantindo mais rapidez e precisão nos processos empresariais.
Sua propriedades do Inspector são: campos indicados com * indicam obrigatórios.
IDENTIFICAÇÃO
ID
Identificador único (somente leitura) do node criado no Graph.
Alias
Identificador único (somente leitura) amigável do node criado no Graph.
O valor do campo Alias, pode ser utilizado como substituto do campo ID em expressões.
CONFIGURAÇÃO
Título
Campo do tipo do texto que permite inserir um titulo (nome) para a tarefa. Possui apena efeito visual no diagrama.
Preenchimento
Permite customizar a cor de fonte do texto acima (titulo).
APRESENTAÇÃO
Permite customizar a aparência do componente, aplicando um preenchimento (cor de fundo), contorno (cor das bordas) e estilo das bordas (ex: tracejado).
TEXTO
Texto
Campo do tipo texto livre, onde é possível atribuir um texto descritivo para o componente, fazendo com que esta descrição seja exibida ao lado do componente no diagrama. Possui apenas efeito visual.
Cor Texto
Campo do tipo caixa de seleção de conteúdo, onde é possível escolher a cor do texto descritivo acima.
CABEÇALHO
Preenchimento/Contorno/Estilo
- Preenchimento: Permite selecionar um cor de fundo para o cabeçalho do componente.
- Contorno: Permite escolher a cor da linha de contorno do cabeçalho.
- Estilo contorno: Permite escolher o tipo de linha de contorno do cabeçalho.
As opções acima refletem somente no desenho do diagrama, não tendo efeito nas etapas/formulários durante execução do fluxo.
AÇÕES
Ações
Assim como as entradas e saídas em outras tarefas, as ações possuem a mesma finalidade, que é fazer o set de variáveis e ou executar algum código RB. Possuem as mesma opções de configuração, como escopo da variável (tarefa/fluxo etc.) , opção de gerar exceção e a área de texto onde dever ser informado o código.
Use o botão para adicionar uma nova ação e
para remover uma já existente. -->
- A clicar em adicionar necessário configurar os seguintes campos:
-
Nome
Campo do tipo texto livre onde dever ser informado o nome da variável. (Use somente letras ou números (não usar caracteres especiais) não começar com numero)).
-
Ex: (supondo que faremos um busca pelo cadastro de um cliente em um banco de dados de terceiros).
CODEdados_cadastrais_cliente
-
-
Salvar resultados*
Campo do tipo lista, onde é possível definir se a variável será armazenada (seu resultado será salvo no banco de dados).Refere-se ao “escopo” dessa variável:
-
Não
O resultado da expressão (ver campo abaixo) não será salvo (persistido no banco). Seu uso é comum quando desejar verificar uma condição ou validação de um campo, mas o resultado é útil somente neste momento, não sendo necessário salva-lo para ser reutilizado em etapas seguintes.
-
Na Tarefa
São armazenadas a nível de tarefa, podendo uma variável com mesmo nome receber valores de diferentes em cada tarefa. Em um formulário de tarefa, seus campos são armazenados como variáveis de tarefa. O que nos faz concluir que as variáveis de tarefa são um meio de armazenar informações (valores de campos, resultados de validações, etc) relacionadas à uma tarefa especifica do fluxo.
-
No Fluxo
Já as variáveis de fluxo armazenam dados relacionados ao estado geral do fluxo, e não apenas de uma atividade em si, como por exemplo, o status do fluxo, data de vencimento, etc.)
-
-
Gerar exceção:
Campo do tipo ligado/desligado, quando habilitado, fara com que caso ocorra qualquer Exceção na execução do script (ver campo código), o fluxo tenha sua execução imediatamente interrompida, e a tarefa não será Iniciada (caso de Entrada) ou não será Concluída (no caso de saídas). Este é um recurso útil quando deseja-se por exemplo validar os valores preenchidos pelo usuário em campos de formulário, e impedir a continuidade da execução do fluxo em caso de inconsistência.
-
Código
Campo do tipo texto, onde deve ser informado o script em linguagem Ruby. O resultado da execução deste script será o valor da variável. O script deve ser escrito fazendo a quebra de linhas utilizando “;” ponto e virgula como indicador de quebra de linha (fim da linha).
-
Exemplo de um SCRIPT criado usando código Ruby que faz a consulta em um banco de dados https://www.microsoft.com/pt-br/sql-server/sql-server-downloads e retorna os dados cadastrais de um cliente em formato JSON:
RUBYrequire 'tiny_tds'
client = TinyTds::Client.new username: 'admindatabase', password: 'rot_admin321', host: '192.168.1.10', port: 1433, database: 'ERPName', azure: false
res = ""
sql = "SELECT * FROM CAD_FUNCINARIOS WHERE FUNC_ID = 10";
results = client.execute(sql)
results[0].to_json
-
-