Instrucción condicional (si, entonces, de lo contrario) conditional-instruction

La instrucción condicional (if, then, else) se admite en el editor avanzado. Permite definir expresiones más complejas. Se compone de los siguientes elementos:

  • if: la condición que se va a evaluar primero.
  • then: la expresión que se va a evaluar en caso de que el resultado de la evaluación de la condición sea true.
  • else: la expresión que se va a evaluar en caso de que el resultado de la evaluación de la condición sea false.
NOTE
Se requieren paréntesis alrededor de todas las expresiones.
if  (<expression1>)
then
   (<expression2>)
else
   (<expression3>)

<expression1> debe devolver un booleano.

<expression2> y <expression3> deben tener el mismo tipo o tipos compatibles. Las firmas admitidas y los tipos devueltos son:

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

La instrucción condicional permite optimizar el flujo de trabajo de recorrido al reducir el número de actividades de condición. Por ejemplo, dentro de la misma actividad de acción, puede especificar dos alternativas para una definición de campo utilizando solo una expresión de condición.

Ejemplo de una actividad de acción (para un campo que espera una cadena como resultado de la instrucción condicional):

if (startWithIgnoreCase(@event{eventiOSPushPermissionAllowed.device.model}, 'iPad') or startWithIgnoreCase(@event{eventiOSPushPermissionAllowed.device.model}, 'iOS'))
then
   ('apns')
else
   ('fcm')
Referencia de conocimientos de AI

Esta sección contiene conocimientos estructurados destinados a apoyar la interpretación, la recuperación y la respuesta a preguntas relacionadas con este tema.

Para una comprensión completa, esta información debe combinarse con la documentación de esta página. Ninguna de las fuentes pretende ser independiente; la página describe la función, mientras que esta sección proporciona contexto adicional que ayuda a desambiguar la terminología, la intención, la aplicabilidad y las restricciones.

  • TL;DR: En esta página se explica la instrucción condicional if / then / else disponible en el editor de expresiones avanzadas de Recorrido, incluidas las reglas de sintaxis, las combinaciones de tipos compatibles y un ejemplo práctico de uso.

Intenciones:

  • Escriba una expresión condicional usando if, then y else para devolver valores diferentes basados en una condición booleana
  • Reduzca el número de actividades de condición en un recorrido incrustando la lógica condicional en línea dentro de una sola actividad de acción
  • Determine qué combinaciones de tipos de datos son válidas para las ramas then y else
  • Aplique la instrucción condicional para enrutar los tokens de notificación push a APNS o FCM en función del modelo del dispositivo

Glosario:

  • Instrucción condicional: Una construcción de expresión if / then / else en el editor avanzado que evalúa un valor booleano y devuelve una de las dos expresiones (específicas del producto)
  • Editor de expresiones avanzadas: La interfaz de Journey Optimizer para escribir expresiones complejas usada en condiciones, actividades de espera y asignación de parámetros de acción (específico del producto)

Protecciones:

  • Se requieren paréntesis en todas las expresiones de las cláusulas if, then y else
  • La cláusula if (<expression1>) debe devolver un tipo booleano
  • Las expresiones then y else (<expression2> y <expression3>) deben tener el mismo tipo o tipos compatibles (por ejemplo, decimal y integer son compatibles, string y integer no)
  • No se admiten todas las combinaciones de tipos; sólo son válidos los pares enumerados en la tabla de firmas admitidas

Terminología:

  • Nombre canónico: Instrucción condicional — Acrónimo: none — variantes: if/then/else, condición de estilo ternario
  • Sinónimos: “instrucción condicional” = “condición dentro de la línea” = “if-then-else expression”
  • No confunda: instrucción condicional (expresión en línea) ≠ actividad Condition (un nodo de lienzo de recorrido)

PREGUNTAS MÁS FRECUENTES:

  • Q: ¿Es necesario envolver la cláusula if entre paréntesis? — Sí, se requieren paréntesis en todas las expresiones, incluida la condición de la cláusula if.
  • Q: ¿Puedo usar if / then / else para devolver un número de una rama y una cadena de otra? — No; <expression2> y <expression3> deben tener tipos iguales o compatibles.
  • Q: ¿Cómo reduce la complejidad del recorrido la instrucción condicional? — Permite especificar dos alternativas de valor de campo dentro de una sola actividad de acción mediante una expresión, evitando así un nodo de actividad Condición independiente en el lienzo.
  • Q: ¿Qué tipo devuelve la instrucción condicional si ambas ramas son cadenas? — Devuelve un string.
  • Q: ¿Se puede usar if / then / else para seleccionar un canal de notificaciones push? — Sí; por ejemplo, evaluando el modelo de dispositivo para devolver 'apns' para los dispositivos Apple o 'fcm' para otros.
recommendation-more-help
journey-optimizer-help