Choice
Descubra mais sobre o componente Choice e saiba como utilizá-lo na Digibee Integration Platform.
Atualizado
Descubra mais sobre o componente Choice e saiba como utilizá-lo na Digibee Integration Platform.
Atualizado
O Choice permite o desvio de fluxo dentro de um pipeline. Ele faz parte de um conjunto de componentes que auxilia na organização das integrações.
Dê uma olhada nos parâmetros de configuração do componente. Parâmetros suportados por expressões Double Braces estão marcados com (DB)
.
Label
Define o nome do caminho. Esse nome deve ser único, não podendo se repetir no pipeline.
N/A
String
Type
When
String
Type Rule
JSON Path
String
Condition
Declara a condição utilizada para definir se o caminho deve ser executado. Quando as condições previamente definidas gerarem conflito ou causarem uma sobreposição, apenas uma delas será executada (quando When for escolhido no parâmetro Type).
$
String
Os parâmetros de configuração não estarão disponíveis se o componente não estiver conectado a outros componentes no pipeline. Uma vez que você. Após conectá-lo corretamente, clique no ponto de conexão e depois no ícone de engrenagem para acessar os parâmetros como mostrado no detalhe da imagem abaixo:
Para trabalhar com esse componente, você precisa conhecer os dois tipos de estrutura do Choice. Eles são utilizados para criar os caminhos:
When: define uma condição que realiza um desvio no seu fluxo para uma linha de execução específica. É necessário ter pelo menos uma condição declarada.
Otherwise: a estrutura é executada quando nenhuma das condições When é atendida. É necessário ter pelo menos uma condição declarada.
Define expressões que passam por um componente JSON para alcançar um subconjunto. Quando você estiver utilizando o Choice, será feito um match para executar o caminho.
Imagine que, no passo anterior ao Choice, o seu fluxo de dados possui a seguinte saída:
A seguinte condição declarada como When validaria a execução do desvio:
Conheça as demais opções para a declaração JSON Path:
$
A raiz do objeto ou array.
.propriedade
Seleciona uma propriedade específica no objeto relacionado.
['propriedade']
Seleciona uma propriedade específica no objeto relacionado. Coloque apenas aspas simples ao redor do nome da propriedade. Dica: considere essa instrução caso o nome da propriedade contenha caracteres especiais, assim como espaços, ou comece com caracteres diferentes de A..Za..z_.
[n]
Seleciona o elemento n de um array. Os índices começam com 0.
[indice1,indice2,…]
Seleciona elementos do array com índices específicos e retorna uma lista.
..propriedade
Recursiva descendente: busca um nome de propriedade decrescentemente e retorna um array de todos os valores com esse nome de propriedade. Sempre retorna uma lista, mesmo que apenas 1 propriedade seja encontrada.
*
O curinga seleciona todos os elementos em um objeto ou array, qualquer que seja os seus nomes ou índices. Por exemplo, endereço.*
significa todas as propriedades do objeto endereço e livro[*]
significa todos os itens de um array de livro.
[entrada:saida] / [entrada:]
Seleciona elementos de um array de entrada e até, porém não necessariamente, um array de saída. Se a saída é omitida, selecione todos os arrays até o final do array. Uma lista é retornada.
[:n]
Seleciona os primeiros n elementos do array. Uma lista é retornada.
[-n:]
Seleciona os últimos n elementos do array. Uma lista é retornada.
[?(expressao)]
Expressão de filtro. Seleciona todos os elementos em um objeto ou array que coincidem com o filtro especificado. Uma lista é retornada.
[(expressao)]
Expressões de script podem ser utilizadas no lugar de nomes explícitos de propriedades ou índices. Por exemplo, [(@.tamanho-1)]
, que seleciona o último item de um array. Aqui, tamanho se refere ao tamanho do array em questão mais do que um arquivo JSON nomeado "tamanho".
@
Utilizado em expressões de filtro para fazer referência ao nó atual que está sendo processado.
==
Igual a. 1 e '1' são considerados o mesmo resultado. Valores de string devem ser anexados em aspas simples (e não em aspas): [?(@.cor=='vermelho')]
.
!=
Diferente de. Valores de string devem ser anexados em aspas simples.
>
Maior que.
>=
Maior ou igual a.
<
Menor que.
<=
Menor ou igual a.
=~
Compatível com uma RedEx Java Script regular. Por exemplo, [?(@.descricao =~ /gato.*/i)]
faz match em itens cuja descrição começa com "gato" (ignora maiúsculas e minúsculas).
!
Utilizado para negar um filtro. Por exemplo, [?(!@.isbn)]
casa itens que não possuem a propriedade "isbn".
&&
Operador lógico E. Exemplo: [?(@.categoria=='ficcao' && @.preco < 10)]
||
Operador lógico OU. Exemplo: [?(@.categoria=='ficcao' || @.preco < 10)]
Leia esse artigo sobre JSON Path para saber mais sobre o tema.
É basicamente uma linguagem pequena e simples para avaliar expressões e predicados sem exigir novas dependências ou conhecimento do JSON Path.
Imagine que, no passo anterior ao Choice, o seu fluxo de dados possui a seguinte saída:
A condição declarada como When validaria a execução do desvio:
Conheça as demais opções para a declaração Simple:
==
Igual a.
=~
Igual a, ignorando maiúsculas e minúsculas (quando comparando strings).
>
Maior que.
>=
Maior ou igual a.
<
Menor que.
!=
Diferente.
!=~
Diferente de, ignorando maiúsculas e minúsculas (quando comparando strings).
regex
Valida uma RegEx contra a string informada. Exemplo: #{cidade} regex 'S.*'
&&
Operador lógico E. Exemplo: #{cidade} == 'Sao Paulo' && #{estado} == 'SP'
||
Operador logico OU. Exemplo: #{cidade} == 'Sao Paulo' || #{estado} == 'RJ'
Exemplo:
Define a estrutura de desvio que o fluxo deve seguir (When ou Otherwise). Leia a seção para saber mais.
Define o tipo de linguagem (Simple ou JSON Path) que será utilizada para a declaração da condição (quando When for escolhido no parâmetro Type). Leia a seção para saber mais.