Choice
Saiba mais sobre o conector Choice e como utilizá-lo na Digibee Integration Platform.
O Choice permite que fluxos sigam diferentes caminhos dentro de um pipeline. Ele faz parte de um conjunto de conectores que ajudam na organização das integrações.
Os parâmetros de configuração não estarão disponíveis se o conector não estiver conectado a outros conectores no pipeline. Depois de conectá-lo corretamente, clique no ponto de conexão e, em seguida, no ícone de engrenagem para acessar os parâmetros, conforme mostrado no detalhe da imagem abaixo:

Parâmetros
Configure o conector utilizando os parâmetros abaixo. Os campos que suportam expressões Double Braces estão marcados na coluna Suporta DB.
Label
Define o nome do caminho. Deve ser um nome único que pode se repetir no pipeline.
String
❌
N/A
Type
Define a estrutura dos diferentes caminhos que o fluxo deve seguir (When ou Otherwise). Leia a seção Type para saber mais.
String
❌
When
Type Rule
Define o tipo de linguagem (Double Braces, JSON Path ou Simple) que será usado para declarar a condição (sempre que When for escolhido no parâmetro Type). Leia a seção Type Rule para saber mais.
String
❌
JSON Path
Condition
Declara a condição usada para definir se o caminho deve ser executado. Quando as condições previamente definidas gerarem conflito ou sobreposição, apenas uma delas será executada (sempre que When for escolhido no parâmetro Type).
String
✅ (se o Type Rule Double Braces estiver selecionado)
$
Type
Para trabalhar com este conector, é necessário entender os dois tipos de estrutura usados para criar caminhos dentro de um Choice:
When Define uma condição específica que direciona o fluxo para uma nova linha de execução. Pelo menos uma condição When deve ser declarada.
Otherwise Executa o fluxo quando nenhuma das condições When é atendida. Nenhuma condição adicional é necessária para esse caminho.
Type Rule
Ao configurar um conector Choice, você pode selecionar o type rule. Isso permite escolher a linguagem que melhor se adequa à sua condição: Double Braces, JSON Path ou Simple expressions.
Double Braces
Permite escrever condições de ramificação usando expressões Double Braces, uma sintaxe criada exclusivamente para ser usada na Plataforma de Integração Digibee.
É a opção mais poderosa, pois suporta funções integradas, referências de etapas anteriores e dados de carga útil. Cada expressão Double Braces usada em uma ramificação Choice deve retornar um valor booleano (true ou false).
Operações suportadas para Double Braces
Funções que comparam valores e retornam booleanos.
EQUALTO, GREATERTHAN, ISNULL, etc
Referências de Previous Steps
Acessa dados de qualquer etapa anterior do fluxo.
step.stepName.response.field
Acesso aos dados de payload
Acesso direto aos dados de entrada do fluxo.
$.data.field
Operadores lógicos
Lógica padrão de Double Braces para regras complexas.
AND(condition1, condition2)
JSON Path
Define expressões que percorrem um componente JSON para alcançar um subconjunto de dados. Sempre que você usa Choice, será feita uma correspondência para a execução do caminho.
Imagine que, no caminho anterior ao Choice, o fluxo de dados possui a seguinte saída:
A seguinte condição declarada como When valida o caminho que o fluxo deve seguir:
Outras opções para JSON Path
$
A raiz do objeto ou array.
.property
Seleciona um objeto específico dentro do objeto relacionado.
['property']
Seleciona uma propriedade específica no objeto relacionado. Use apenas aspas simples ao redor do nome da propriedade. Dica: utilize essa forma se o nome da propriedade tiver caracteres especiais, como espaços, ou começar com caracteres diferentes de A..Za..z_.
[n]
Seleciona o n-ésimo elemento de um array. Os índices começam em 0.
[index1,index2,…]
Seleciona elementos do array com índices específicos e retorna uma lista.
..property
Busca recursivamente por um nome de propriedade específico e retorna um array com todos os valores encontrados. Sempre retorna uma lista, mesmo que apenas uma propriedade seja encontrada.
*
Wildcard que seleciona todos os elementos de um objeto ou array, independentemente de nomes ou índices. Exemplo: address.* significa todas as propriedades do objeto address e book[*] significa todos os itens dentro do array book.
[start:end] / [start:]
Seleciona elementos de um array a partir de um índice inicial até um índice final (opcional). Se o final for omitido, seleciona todos os elementos até o final do array. Retorna uma lista.
[:n]
Seleciona os primeiros n elementos do array. Retorna uma lista.
[-n:]
Seleciona os últimos n elementos do array. Retorna uma lista.
[?(expression)]
Expressão de filtro. Seleciona todos os elementos em um objeto ou array que correspondem ao filtro especificado. Retorna uma lista.
[(expression)]
Expressões de script podem ser usadas no lugar de nomes de propriedades ou índices. Exemplo: [(@.length-1)] seleciona o último item de um array. Aqui, length refere-se ao tamanho atual do array.
@
Usado em expressões de filtro para fazer referência ao nó atual sendo processado.
==
Igual a. 1 e ‘1’ são considerados o mesmo resultado. Os valores de cadeia devem ser colocados entre aspas simples (e não entre aspas duplas): [?(@.color==‘red’)].
!=
Diferente de. Valores string devem estar entre aspas simples.
>
Maior que.
>=
Maior ou igual a.
<
Menor que.
<=
Menor ou igual a.
=~
Compatível com RegEx de JavaScript. Exemplo: [?(@.description =~ /cat.*/i)] corresponde a itens cuja descrição começa com "cat" (case-insensitive).
!
Usado para negar um filtro. Exemplo: [?([email protected])] corresponde a itens que não possuem a propriedade isbn.
&&
Operador lógico AND. Exemplo: [?(@.category=='fiction' && @.price < 10)]
Leia este artigo sobre JSON Path para saber mais sobre o tema.
Simple
É basicamente uma linguagem pequena e simples para avaliar expressões e predicados, sem exigir novas dependências ou conhecimento de JSON Path.
Imagine que, no caminho anterior ao Choice, o fluxo de dados possui a seguinte saída:
A condição declarada como When que valida o caminho que o fluxo deve seguir é:
Outras opções para a declaração Simple
==
Igual a
=~
Igual a, case-insensitive ao comparar strings
>
Maior que
>=
Maior ou igual a
<
Menor que
!=
Diferente
!=~
Diferente, case-insensitive ao comparar strings
regex
Valida se uma string corresponde ao RegEx especificado. Exemplo: #{city} regex 'New.*'
&&
Operador lógico AND. Exemplo: #{city} == 'New York' && #{state} == 'NY'
||
Lógico OR operador. Exemplo: #{city} == 'New York' || #{state} == 'CA'
Exemplo:

Atualizado
Isto foi útil?