Instrução condicional (if, then, else) conditional-instruction

A instrução condicional (if, then, else) é compatível com o editor avançado. Ele permite definir expressões mais complexas. Ele é composto pelos seguintes elementos:

  • if: a condição a ser avaliada primeiro.
  • then: a expressão a ser avaliada caso o resultado da avaliação da condição seja verdadeiro.
  • else: a expressão a ser avaliada caso o resultado da avaliação da condição seja falso.
NOTE
São necessários parênteses em todas as expressões.
if  (<expression1>)
then
   (<expression2>)
else
   (<expression3>)

<expression1> deve retornar um booleano.

<expression2> e <expression3> devem ter o mesmo tipo ou tipos compatíveis. As assinaturas compatíveis e os tipos retornados são:

boolean,boolean : boolean
dateTime,dateTime : dateTime
dateTimeOnly,dateTimeOnly : dateTimeOnly
decimal,integer : decimal
integer,decimal : integer
integer,decimal : decimal
duration,duration : duration
string,string : string
listBoolean,listBoolean : listBoolean
listDateTime,listDateTime : listDateTime
listDateTimeOnly,listDateTimeOnly : listDateTimeOnly
listDateOnly,listDateOnly : listDateOnly
listDecimal,listDecimal : listDecimal
listInteger,listInteger : listInteger
listString,listString : listString

Uso

A instrução condicional permite otimizar o workflow de jornada reduzindo o número de atividades de condição. Por exemplo, na mesma atividade de ação, é possível especificar duas alternativas para uma definição de campo usando apenas uma expressão de condição.

Exemplo de uma atividade de ação (para um campo que espera uma string como o resultado da instrução condicional):

if (startWithIgnoreCase(@event{eventiOSPushPermissionAllowed.device.model}, 'iPad') or startWithIgnoreCase(@event{eventiOSPushPermissionAllowed.device.model}, 'iOS'))
then
   ('apns')
else
   ('fcm')
Referência de conhecimento de IA

Esta seção contém conhecimento estruturado destinado a oferecer suporte à interpretação, recuperação e resposta a perguntas relacionadas a este tópico.

Para uma compreensão completa, essas informações devem ser combinadas com a documentação desta página. Nenhuma das origens deve ser independente; a página descreve o recurso, enquanto esta seção fornece um contexto adicional que ajuda a desfazer a ambiguidade da terminologia, intenção, aplicabilidade e restrições.

  • TL;DR: Esta página explica a instrução condicional if / then / else disponível no editor de expressão avançado de Jornada, incluindo regras de sintaxe, combinações de tipo com suporte e um exemplo de uso prático.

Intenções:

  • Grave uma expressão condicional usando if, then e else para retornar valores diferentes com base em uma condição booleana
  • Reduzir o número de atividades de condição em uma jornada incorporando a lógica condicional em linha em uma única atividade de ação
  • Determinar quais combinações de tipos de dados são válidas para as ramificações then e else
  • Aplicar a instrução condicional para rotear tokens de notificação por push para o APNS ou o FCM com base no modelo do dispositivo

Glossário:

  • Instrução condicional: uma construção de expressão if / then / else no editor avançado que avalia um booliano e retorna uma das duas expressões (específica do produto)
  • Editor de expressão avançado: a interface Journey Optimizer para gravar expressões complexas usadas em condições, atividades de espera e mapeamento de parâmetros de ação (específico do produto)

Medidas de Proteção:

  • Parênteses são necessários em todas as expressões nas cláusulas if, then e else
  • A cláusula if (<expression1>) deve retornar um tipo booleano
  • As expressões then e else (<expression2> e <expression3>) devem ter o mesmo tipo ou tipos compatíveis (por exemplo, decimal e integer são compatíveis, string e integer não são)
  • Nem todas as combinações de tipo são suportadas — somente os pares listados na tabela de assinaturas suportadas são válidos

Terminologia:

  • Nome canônico: instrução condicional — Acrônimo: none — variantes: if/then/else, condição de estilo ternário
  • Sinônimos: “instrução condicional” = “condição embutida” = “expressão if-then-else”
  • Não confundir: instrução condicional (expressão em linha) ≠ Atividade de condição (um nó da tela de jornada)

Perguntas frequentes:

  • P: A cláusula if precisa ser colocada entre parênteses? — Sim, parênteses são necessários em todas as expressões, incluindo a condição na cláusula if.
  • P: Posso usar if / then / else para retornar um número de uma ramificação e uma sequência de caracteres de outra? — Não; <expression2> e <expression3> devem ter tipos iguais ou compatíveis.
  • P: Como a instrução condicional reduz a complexidade da jornada? — Permite especificar duas alternativas de valor de campo em uma única atividade de ação usando uma expressão, evitando um nó de atividade de Condição separado na tela.
  • P: Que tipo a instrução condicional retorna se ambas as ramificações forem cadeias de caracteres? — Retorna um string.
  • P: if / then / else pode ser usado para selecionar um canal de notificação por push? — Sim; por exemplo, avaliando o modelo de dispositivo para retornar 'apns' para dispositivos Apple ou 'fcm' para outros.
recommendation-more-help
journey-optimizer-help