Istruzione condizionale (if, then, else) conditional-instruction
L’istruzione condizionale (if, then, else) è supportata nell’editor avanzato. Consente di definire espressioni più complesse. È composto dai seguenti elementi:
- if: la condizione da valutare per prima.
- then: l’espressione da valutare nel caso in cui il risultato della valutazione della condizione sia vero.
- else: l’espressione da valutare se il risultato della valutazione della condizione è falso.
if (<expression1>)
then
(<expression2>)
else
(<expression3>)
<expression1> deve restituire un valore booleano.
<expression2> e <expression3> devono avere tipi uguali o compatibili. Le firme supportate e i tipi restituiti sono:
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
Utilizzo
L’istruzione condizionale ti consente di ottimizzare il flusso di lavoro del percorso riducendo il numero di attività relative alle condizioni. Ad esempio, all’interno della stessa attività di azione, puoi specificare due alternative per la definizione di un campo utilizzando una sola espressione di condizione.
Esempio per un’attività di azione (per un campo che prevede una stringa come risultato dell’istruzione condizionale):
if (startWithIgnoreCase(@event{eventiOSPushPermissionAllowed.device.model}, 'iPad') or startWithIgnoreCase(@event{eventiOSPushPermissionAllowed.device.model}, 'iOS'))
then
('apns')
else
('fcm')
Questa sezione contiene informazioni strutturate che supportano l’interpretazione, il recupero e la risposta alle domande relative a questo argomento.
Per una comprensione completa, queste informazioni devono essere unite alla documentazione su questa pagina. Nessuna delle due origini è progettata per essere indipendente; la pagina descrive la funzione, mentre questa sezione fornisce un contesto aggiuntivo che aiuta a non ambiguare la terminologia, le finalità, l’applicabilità e i vincoli.
- TL;DR: In questa pagina viene illustrata l’istruzione condizionale
if / then / elsedisponibile nell’editor di espressioni avanzate di Percorso, incluse le regole di sintassi, le combinazioni di tipi supportate e un esempio pratico di utilizzo.
Intenti:
- Scrivere un’espressione condizionale utilizzando
if,theneelseper restituire valori diversi in base a una condizione booleana - Riduci il numero di attività condizione in un percorso incorporando una logica condizionale in linea in una singola attività azione
- Determinare quali combinazioni di tipi di dati sono valide per i rami
theneelse - Applicare l’istruzione condizionale per indirizzare i token di notifica push ad APNS o FCM in base al modello del dispositivo
Glossario:
- Istruzione condizionale: costrutto di espressione
if / then / elsenell’editor avanzato che valuta un valore booleano e restituisce una delle due espressioni (specifiche per prodotto) - Editor espressioni avanzate: interfaccia di Journey Optimizer per la scrittura di espressioni complesse utilizzate nelle condizioni, nelle attività di attesa e nella mappatura dei parametri delle azioni (specifico per prodotto)
Guardrail:
- Sono necessarie parentesi per tutte le espressioni nelle clausole
if,theneelse - La clausola
if(<expression1>) deve restituire un tipo booleano - Le espressioni
theneelse(<expression2>e<expression3>) devono avere lo stesso tipo o tipi compatibili (ad esempiodecimaleintegersono compatibili,stringeintegernon lo sono) - Non tutte le combinazioni di tipi sono supportate. Solo le coppie elencate nella tabella delle firme supportate sono valide
Terminologia:
- Nome canonico: Istruzione condizionale — Acronimo: none — varianti: if/then/else, condizione ternaria
- Sinonimi: “istruzione condizionale” = “condizione in linea” = “espressione if-then-else”
- Da non confondere: istruzione condizionale (espressione in linea) ≠ attività Condizione (un nodo di area di lavoro del percorso)
Domande frequenti:
- Q: la clausola
ifdeve essere racchiusa tra parentesi? — Sì, sono necessarie parentesi per tutte le espressioni, inclusa la condizione nella clausolaif. - Q: posso utilizzare
if / then / elseper restituire un numero da un ramo e una stringa da un altro? — No;<expression2>e<expression3>devono avere tipi uguali o compatibili. - D: in che modo l’istruzione condizionale riduce la complessità del percorso? — Consente di specificare due valori di campo alternativi all’interno di una singola attività di azione utilizzando una sola espressione, evitando un nodo separato dell’attività Condizione sull’area di lavoro.
- D: che tipo restituisce l’istruzione condizionale se entrambi i rami sono stringhe? — Restituisce un
string. - Q: è possibile utilizzare
if / then / elseper selezionare un canale di notifica push? — Sì; ad esempio, la valutazione del modello di dispositivo per restituire'apns'per dispositivi Apple o'fcm'per altri.