Operatori operators

Esistono due tipi di operatori: operatori unari e operatori binari. Sono disponibili operatori unari di sinistra e operatori unari di destra.

// left-hand unary operators
// <operator> <operand>
// operand is an expression
not (@event{LobbyBeacon.endUserIDs._experience.emailid.id}=="example@adobe.com")

// right-hand unary operators
// <operator> <operand>
// operand is an expression
@event{LobbyBeacon.endUserIDs._experience.emailid.id} is not null

// binary operators
// <operand1> <operator> <operand2>
// operand is an expression
(@event{LobbyBeacon.endUserIDs._experience.emailid.id}=="example1@adobe.com") or (@event{LobbyBeacon.endUserIDs._experience.emailid.id}=="example2@adobe.com")

Note importanti important-notes

  • Quando si utilizza una moltiplicazione (*), entrambi i campi dell’operazione devono avere lo stesso tipo, intero o decimale. Esempio:

    • l’esempio seguente è corretto: 3.0 * 4.0
    • 3 * 4.0 genererà un errore
  • Quando si utilizza l’operatore +, l’espressione deve essere racchiusa tra parentesi. Esempio:

    • toDateTimeOnly(toDateTime((currentTimeInMillis()) + 1)) è corretto
    • toDateTimeOnly(toDateTime(currentTimeInMillis() + 1)) genererà un errore

Logico logical

e

<expression1> and <expression2>

Sia <espressione1> che <espressione2> devono essere booleani. Il risultato è booleano.

Esempio:

3.14 > 2 and 3.15 < 1

oppure

<expression1> or <expression2>

Sia <espressione1> che <espressione2> devono essere booleani. Il risultato è booleano.

Esempio:

3.14 > 2 or 3.15 < 1

non

not <expression>

<espressione> deve essere booleano. Il risultato è booleano.

Esempio:

not 3.15 < 1

Confronto comparison

è nullo

<expression> is null

Il risultato è booleano.

Nullo significa che l’espressione non ha un valore valutato.

Esempio:

@event{BarBeacon.location} is null

non è nullo

<expression> is not null

Il risultato è booleano.

Nullo significa che l’espressione non ha un valore valutato.

Esempio:

@event{BarBeacon.location} is not null

ha valore null

<expression> has null

<espressione> deve essere un elenco. Il risultato è booleano.

Utile per identificare che un elenco contiene almeno un valore null.

Esempio:

["foo", "bar", null] has null

Restituisce true

["foo", "bar", ""] has null

Restituisce false perché “” non è considerato nullo.

==

<expression1> == <expression2>
NOTE
Per <expression1> e <expression2> non è disponibile alcun controllo del tipo di dati.

Esempio:

3.14 == 42
"foo" == "bar"

!=

<expression1> != <expression2>
NOTE
Per <expression1> e <expression2> non è disponibile alcun controllo del tipo di dati.

Il risultato è booleano.

Esempio:

3.14 != 42
"foo" != "bar"

>

<expression1> > <expression2>

Datetime può essere confrontato con Datetime.

Datetimeonly può essere confrontato con Datetimeonly.

Sia il numero intero che il numero decimale possono essere confrontati con il numero intero o il numero decimale.

Qualsiasi altra combinazione è vietata.

Il risultato è booleano.

Esempio:

3.14 > 42

>=

<expression1> >= <expression2>

Datetime può essere confrontato con Datetime.

Datetimeonly può essere confrontato con Datetimeonly.

Sia il numero intero che il numero decimale possono essere confrontati con il numero intero o il numero decimale.

Qualsiasi altra combinazione è vietata.

Il risultato è booleano.

Esempio:

42 >= 3.14

<

<expression1> < <expression2>

Datetime può essere confrontato con Datetime.

Datetimeonly può essere confrontato con Datetimeonly.

Sia il numero intero che il numero decimale possono essere confrontati con il numero intero o il numero decimale.

Qualsiasi altra combinazione è vietata.

Il risultato è booleano.

Esempio:

42 < 3.14

<=

<expression1> <= <expression2>

Datetime può essere confrontato con Datetime.

Datetimeonly può essere confrontato con Datetimeonly.

Sia il numero intero che il numero decimale possono essere confrontati con il numero intero o il numero decimale.

Qualsiasi altra combinazione è vietata.

Il risultato è booleano.

Esempio:

42 <= 3.14

Aritmetica arithmetic

+

<expression1> + <expression2>

Entrambe le espressioni devono essere numeriche (numero intero o decimale).

Il risultato è anche numerico.

Esempio:

1 + 2

Restituisce 3

-

<expression1> - <expression2>

Entrambe le espressioni devono essere numeriche (numero intero o decimale).

Il risultato è anche numerico.

Esempio:

2 - 1

Restituisce 1

/

<expression1> / <expression2>

Entrambe le espressioni devono essere numeriche (numero intero o decimale).

Il risultato è anche numerico.

<espressione2> non deve essere uguale a 0 (restituisce 0).

Esempio:

4 / 2

Restituisce 2

*

<expression1> * <expression2>

Entrambe le espressioni devono essere numeriche (numero intero o decimale).

Il risultato è anche numerico.

Esempio:

3 * 4

Restituisce 12

%

<expression1> % <expression2>

Entrambe le espressioni devono essere numeriche (numero intero o decimale).

Il risultato è anche numerico.

Esempio:

3 % 2

Restituisce 1.

Matematica math

è numerico

<expression> is numeric

Il tipo dell’espressione è numero intero o decimale.

Esempio:

@ is numeric

è un numero intero

<expression> is integer

Il tipo dell’espressione è un numero intero.

Esempio:

@ is integer

è decimale

<expression> is decimal

Il tipo dell’espressione è decimal.

Esempio:

@ is decimal

Stringa string

+

<string> + <expression>
<expression> + <string>

Concatena due espressioni.

Un’espressione deve essere una stringa concatenata.

Esempio:

"the current time is " + (now())

Restituisce “l’ora corrente è 2023-09-23T09:30:06.693Z”

(now()) + " is the current time"

Restituisce “2023-09-23T09:30:06.693Z è l’ora corrente”

"a" + "b" + "c" + 1234

Restituisce “abc1234”.

Data date

+

<expression> + <duration>

Aggiungere una durata a un valore dateTime, dateTimeOnly o duration.

Esempio:

(toDateTime("2023-12-03T15:15:30Z")) + (toDuration("PT15M"))

Restituisce un valore dateTime 2023-12-03T15:30:30Z

(toDateTimeOnly("2023-12-03T15:15:30")) + (toDuration("PT15M"))

Restituisce un valore dateTimeOnly 2023-12-03T15:30:30

(now()) + (toDuration("PT1H"))

Restituisce un valore dateTime (con fuso orario UTC) un’ora dopo rispetto all’ora corrente

(toDuration("PT1H")) + (toDuration("PT1H"))

Restituisce un valore duration PT2H

Guida di riferimento della Knowledge Base di AI

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: Questa pagina è un riferimento completo degli operatori disponibili nell’editor di espressioni avanzate del Percorso, che include analisi logiche (and, or, not), confronti (==, !=, >, >=, <, <=, is null, is not null, has null), aritmetiche (+, -, /, *, %), controllo del tipo di corrispondenza (is numeric, is integer, is decimal), concatenazione di stringhe e operatori aritmetici di data.

Intenti:

  • Combinare condizioni booleane utilizzando gli operatori logici and, or e not
  • Verificare se il valore di un campo o di un’espressione è null o non null utilizzando is null / is not null
  • Rilevare valori Null in un elenco utilizzando l’operatore has null
  • Confronta valori numerici, datetime e datetimeonly utilizzando >, >=, <, <=, == e !=
  • Eseguire l’aritmetica sui valori numerici utilizzando +, -, /, * e %
  • Aggiungere una durata a un valore dateTime, dateTimeOnly o duration utilizzando l’operatore +

Glossario:

  • Operatore unario: operatore applicato a un singolo operando; può essere mano sinistra (esempio: not) o mano destra (esempio: is null) (specifico per prodotto)
  • Operatore binario: operatore applicato tra due operandi (ad esempio and, ==, +) (specifico per prodotto)
  • ha null: operatore unario destro che restituisce true se un elenco contiene almeno un elemento null (specifico per prodotto)
  • è numerico / è intero / è decimale: operatori di verifica dei tipi che restituiscono un valore booleano basato sul sottotipo numerico dell’espressione (specifico per prodotto)

Guardrail:

  • Quando si utilizza la moltiplicazione (*), entrambi gli operandi devono essere dello stesso tipo numerico (intero o entrambi i decimali). La combinazione dei tipi causa un errore
  • Quando si utilizza l’operatore + per l’aritmetica delle date, l’espressione deve essere racchiusa tra parentesi per evitare errori di analisi
  • Gli operatori di confronto (>, >=, <, <=) sono validi solo tra tipi compatibili: Datetime con Datetime, DatetimeOnly con DatetimeOnly o numeric con numeric. Qualsiasi altra combinazione non è consentita
  • Una stringa vuota "" non è considerata nulla — has null restituisce false per un elenco contenente ""
  • Gli operatori == e != non eseguono alcun controllo del tipo di dati tra operandi

Terminologia:

  • Nome canonico: Operators — Acronym: none — variants: expression operators, percorsi operators
  • Sinonimi: and = “AND logico”; or = “OR logico”; not = “NOT logico”; % = “modulo”
  • Non confondere: is null (l’espressione non ha un valore valutato) ≠ == null (sintassi non valida); has null (l’elenco contiene null) ≠ is null (l’espressione stessa è null)

Domande frequenti:

  • Q: è possibile moltiplicare direttamente un numero intero per un numero decimale? — No; entrambi gli operandi di * devono essere dello stesso tipo. Utilizzare 3.0 * 4.0 (entrambi decimali) o 3 * 4 (entrambi interi).
  • Q: come si aggiungono 15 minuti a un dateTime? — Utilizza (toDateTime("...")) + (toDuration("PT15M")).
  • Q: Qual è la differenza tra is null e has null?is null controlla se una singola espressione non ha un valore valutato; has null controlla se un elenco contiene almeno un elemento null.
  • Q: "" has null restituisce true? — No; una stringa vuota non è considerata nulla, pertanto il risultato è falso.
  • Q: perché 3 * 4.0 causa un errore? — L’operatore * richiede che entrambi gli operandi siano dello stesso tipo numerico. La combinazione di numeri interi e decimali non è consentita.
recommendation-more-help
journey-optimizer-help