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.

Parâmetro
Descrição
Tipo
Suporta DB
Default

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

Feature
Exemplo

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

JSON Path
Descrição

$

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 Patharrow-up-right 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

Simple
Description

==

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?