Em Desenvolvimento
Esta documentação ainda está em desenvolvimento. Agradecemos sua paciência!
Pular para o conteúdo principal
Versão: 03.007.000

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:

  1. 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.
  2. Conversão de dados: Converter um formato de data de um sistema para outro (ex.: de DD/MM/AAAA para MM-DD-AAAA).
  3. Busca de informação em sistemas externos: (pegar cotação do dólar no dia, por exemplo) para uso no processo.
  4. 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.

nota

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.
info

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 (mais) para adicionar uma nova ação e (menos) 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).

        CODE
        dados_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:

        RUBY
        require '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