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

App.Service(Tarefa de serviço)

Localizado na categoria Entradas do Stencil, este node é responsável por:

Permitir a execução de código em linguagem RUBY armazenando o resultado em seu respectivo Node_X.

  • Alguns exemplos de utilização de código Ruby em fluxo de captura:

    • Formatação de textos, números e datas, como:

      • Datas, ordenação de listas numericamente ou alfabeticamente, conversão e normalização de texto em Maiúsculo e Minúsculo.
    • Sanitização de textos (Substituição e ou remoção de caracteres indesejados).

    • Execução de testes condicionais complexos, utilizando como entrada, valores de variáveis (Node_x) do fluxo

    • Integração com outros sistemas, realizando chamadas de APIs, conexões com bancos de dados, etc.

info

Lembre-se que este é um componente extremamente flexível, então se você pode fazer algo em Ruby (atualmente Versão 2.6.7 ) logo é possível aproveitar todo o poder de Ruby aqui no Service. Para facilitar a organização e legibilidade dos seu código (script), você pode utilizar vários node Services para cada etapa, sendo o input de um Service, o resultado da execução de um service anterior.

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

Voltar
  • Caixa de seleção onde é possível especificar para qual node (etapa do fluxo) a execução do fluxo deve voltar quando o usuário clicou no botão voltar na tela do equipamento de captura
Código
  • Campo do tipo texto, onde deve ser inserido o código em linguagem Ruby (Versão 2.6.7), utilizando ponto e virgula como quebra de linha.

    Vamos a alguns exemplos práticos.

    EX: Formatar uma data com Dia-Mês-Ano

    CODE
    date = Date.new(2023, 12, 31);
    date.strftime("%d-%m-%Y");

    Resultado:

    CODE
    31-12-2023

    *Considere que a variável date ou seus argumentos poderia ser valores de variáveis (Node_x ) de etapas anteriores.

    EX: Requisitar um web service de consulta de CEP, via chamada HTTP GET, formatar o JSON em valores separados por ponto e virgula para servir como entrada para um Menu:

    RUBY
    #As 4 primeiras linhas de codigo realizam a chamada HTTP GET
    uri = URI.parse("https://viacep.com.br/ws/MG/Belo%20Horizonte/Domingos/json/")
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    response = http.get(uri.request_uri)

    #Aqui convertemos o resultado retornado pela API em um JSON
    json_result=JSON.parse(response.body)

    #A variável abaixo ficara responsável por acumular os resutados
    menu_content=[]

    #percorrendo cada item do JSON para extrair somente o nome da rua e o bairro
    json_result.each do |cidade|
    menu_content.append(cidade['logradouro']+' - '+cidade['bairro'])
    end

    #realizando os tratamnetos necessários para montar nosso menu: removendo carecteres indesejados. Trocando , por:
    menu_content.to_s.gsub(',',';').gsub('[','').gsub(']','').gsub('"','').strip

    Este será o retorno da requisição HTTP (exemplo do formato do 1º item):

    JSON
    [ {"cep": "31910-690",    "logradouro": "Rua Domingos",    "complemento": "",    "bairro": "Pirajá",    "localidade": "Belo Horizonte",    "uf": "MG",    "ibge": "3106200",    "gia": "", "ddd": "31",    "siafi": "4123" }]

    Este deverá ser o resultado final do seu código, após as formatações necessárias para usar o valor com conteúdo de um Menu:

    CODE
    Rua Domingos - Pirajá; Rua São Domingos - Barreiro; Rua São Domingos - Jardim América; Rua Domingos Porto - Jardim Montanhês; Rua Domingos Rocha - Salgado Filho; Beco São Domingos - Vera Cruz; Rua Domingos Rocha - Nova Suíssa; Rua Domingos Leão - Horto Florestal; Beco São Domingos - Jardim Leblon; Rua Heron Domingos - Lajedo; Beco São Domingos - Pompéia; Rua Domingos Vieira - Santa Efigênia; Rua Domingos Garcia - São João Batista (Venda Nova); Rua Domingos Grosso - Venda Nova; Rua Domingos Caldas - Madre Gertrudes; Rua Domingos Vieira - Santa Efigênia; Rua Domingos Viotti - Santa Amélia; Rua Domingos Camilo - Santa Margarida (Barreiro); Rua Domingos Sávio - Santa Efigênia; Rua Domingos Bernis - Castelo; Beco Domingos Ramos - São Cristóvão; Rua Domingos Mancini - Brasil Industrial (Barreiro); Praça Domingos Gatti - Barreiro; Rua Domingos Cobério - Jardim Alvorada; Rua Domingos de Souza - Caiçaras; Rua Domingos de Souza - Novo Tupi; Rua Domingos Rodrigues - Conjunto Taquaril; Rua Domingos Ricaldoni - João Pinheiro; Rua Domingos Fernandes - União; Rua Domingos de Azeredo - Salgado Filho; Rua Domingos Martins Pena - Diamante (Barreiro); Rua Domingos Costa Rezende - Braúnas; Rua São Domingos do Prata - São Pedro; Rua São Domingos do Prata - Santo Antônio; Rua João Domingos Fassarela - Confisco; Rua Domingos Francis Drumond - Ouro Preto; Rua Domingos Alexandre Gatti - Diamante (Barreiro); Rua Domingos Rodrigues Costa - Belmonte; Rua Domingos de Souza Bastos - Tirol (Barreiro); Rua Domingos de Souza Bastos - Marilândia; Rua Professor Domingos Gandra - Jardim América; Praça Domingos Perez Furletti - Mantiqueira; Rua Domingos Moutinho Teixeira - Palmares; Rua José Domingos de Oliveira - Lagoa; Rua Monsenhor Domingos Pinheiro - Calafate
    dica

    Utilize o Terminal localizado na barra de ferramentas, para testar a execução e o valor de saída do seu código.

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

Permite alterar o texto padrão “Tipo_de_Componente_Node_x“ que é exibido para identificar o componente no fluxo, para um texto personalizado.