Opérateurs operators

Il existe deux types d’opérateurs : unaires et binaires. Les opérateurs unaires sont répartis en deux catégories : gauche et droite.

// 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")

Remarques importantes important-notes

  • Lors de l’utilisation d’une multiplication (*), les deux champs d’opération doivent avoir le même type, entier ou décimal. Exemple :

    • L’exemple suivant est correct :3.0 * 4.0
    • 3 * 4.0 entraîne une erreur
  • Lors de l’utilisation de l’opérateur +, l’expression doit être encapsulée entre parenthèses. Exemple :

    • toDateTimeOnly(toDateTime((currentTimeInMillis()) + 1)) est correct.
    • toDateTimeOnly(toDateTime(currentTimeInMillis() + 1)) entraîne une erreur

Logique logical

and

<expression1> and <expression2>

<expression1> et <expression2> doivent être booléens. Le résultat est booléen.

Exemple :

3.14 > 2 and 3.15 < 1

or

<expression1> or <expression2>

<expression1> et <expression2> doivent être booléens. Le résultat est booléen.

Exemple :

3.14 > 2 or 3.15 < 1

not

not <expression>

<expression> doit être booléen. Le résultat est booléen.

Exemple :

not 3.15 < 1

Comparaison comparison

est nul

<expression> is null

Le résultat est booléen.

Notez que null signifie que l’expression n’a pas de valeur évaluée.

Exemple :

@event{BarBeacon.location} is null

n’est pas nul

<expression> is not null

Le résultat est booléen.

Notez que null signifie que l’expression n’a pas de valeur évaluée.

Exemple :

@event{BarBeacon.location} is not null

est nul

<expression> has null

<expression> doit être une liste. Le résultat est booléen.

Utile pour identifier qu’une liste contient au moins une valeur « null ».

Exemple :

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

Renvoie true.

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

Renvoie false car «  » n’est pas considéré comme « null ».

==

<expression1> == <expression2>
NOTE
Pour <expression1> et <expression2> il n’existe aucun contrôle de type de données.

Exemple :

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

!=

<expression1> != <expression2>
NOTE
Pour <expression1> et <expression2> il n’existe aucun contrôle de type de données.

Le résultat est booléen.

Exemple :

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

>

<expression1> > <expression2>

Il est possible de comparer une valeur Datetime à une autre valeur Datetime.

Il est possible de comparer une valeur Datetimeonly à une autre valeur Datetimeonly.

Il est possible de comparer des nombres entiers ou décimaux à d’autres nombres entiers ou décimaux.

Toute autre combinaison est interdite.

Le résultat est booléen.

Exemple :

3.14 > 42

>=

<expression1> >= <expression2>

Il est possible de comparer une valeur Datetime à une autre valeur Datetime.

Il est possible de comparer une valeur Datetimeonly à une autre valeur Datetimeonly.

Il est possible de comparer des nombres entiers ou décimaux à d’autres nombres entiers ou décimaux.

Toute autre combinaison est interdite.

Le résultat est booléen.

Exemple :

42 >= 3.14

<

<expression1> < <expression2>

Il est possible de comparer une valeur Datetime à une autre valeur Datetime.

Il est possible de comparer une valeur Datetimeonly à une autre valeur Datetimeonly.

Il est possible de comparer des nombres entiers ou décimaux à d’autres nombres entiers ou décimaux.

Toute autre combinaison est interdite.

Le résultat est booléen.

Exemple :

42 < 3.14

<=

<expression1> <= <expression2>

Il est possible de comparer une valeur Datetime à une autre valeur Datetime.

Il est possible de comparer une valeur Datetimeonly à une autre valeur Datetimeonly.

Il est possible de comparer des nombres entiers ou décimaux à d’autres nombres entiers ou décimaux.

Toute autre combinaison est interdite.

Le résultat est booléen.

Exemple :

42 <= 3.14

Arithmétique arithmetic

+

<expression1> + <expression2>

Les deux expressions doivent être numériques (nombres entiers ou décimaux).

Le résultat est également numérique.

Exemple :

1 + 2

Renvoie 3.

-

<expression1> - <expression2>

Les deux expressions doivent être numériques (nombres entiers ou décimaux).

Le résultat est également numérique.

Exemple :

2 - 1

Renvoie 1.

/

<expression1> / <expression2>

Les deux expressions doivent être numériques (nombres entiers ou décimaux).

Le résultat est également numérique.

<expression2> ne doit pas être égale à 0 (renvoie 0).

Exemple :

4 / 2

Renvoie 2.

*

<expression1> * <expression2>

Les deux expressions doivent être numériques (nombres entiers ou décimaux).

Le résultat est également numérique.

Exemple :

3 * 4

Renvoie 12.

%

<expression1> % <expression2>

Les deux expressions doivent être numériques (nombres entiers ou décimaux).

Le résultat est également numérique.

Exemple :

3 % 2

Renvoie 1.

Math math

est numérique

<expression> is numeric

Le type d’expression est entier ou décimal.

Exemple :

@ is numeric

est un entier

<expression> is integer

Le type d’expression est entier.

Exemple :

@ is integer

est décimal

<expression> is decimal

Le type d’expression est décimal.

Exemple :

@ is decimal

Chaîne string

+

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

Cet opérateur concatène deux expressions.

L’une des expressions doit être une chaîne de caractères.

Exemple :

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

Renvoie « Il est actuellement 2023-09-23T09:30:06.693Z ».

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

Renvoie « 2023-09-23T09:30:06.693Z est l’heure actuelle ».

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

Renvoie « abc1234 ».

Date date

+

<expression> + <duration>

Permet d’ajouter une durée à une valeur dateTimeOnly ou à une durée.

Exemple :

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

Renvoie une valeur dateTime 2023-12-03T15:30:30Z.

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

Renvoie une valeur dateTimeOnly 2023-12-03T15:30:30.

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

Renvoie une valeur dateTime (avec fuseau horaire UTC) une heure plus tard que l’heure actuelle.

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

Renvoie une valeur duration PT2H.

AI Knowledge Reference

This section contains structured knowledge intended to support interpretation, retrieval, and question answering related to this topic.

For complete understanding, this information should be combined with the documentation on this page. Neither source is intended to stand alone; the page describes the feature, while this section provides additional context that helps disambiguate terminology, intent, applicability, and constraints.

  • TL;DR: This page is a complete reference of operators available in the Journey advanced expression editor, covering logical (and, or, not), comparison (==, !=, >, >=, <, <=, is null, is not null, has null), arithmetic (+, -, /, *, %), math type-check (is numeric, is integer, is decimal), string concatenation, and date arithmetic operators.

Intents:

  • Combine boolean conditions using logical operators and, or, and not
  • Check whether a field or expression value is null or not null using is null / is not null
  • Detect null values within a list using the has null operator
  • Compare numeric, datetime, and datetimeonly values using >, >=, <, <=, ==, and !=
  • Perform arithmetic on numeric values using +, -, /, *, and %
  • Add a duration to a dateTime, dateTimeOnly, or duration value using the + operator

Glossary:

  • Unary operator: An operator applied to a single operand; can be left-hand (e.g. not) or right-hand (e.g. is null) (product-specific)
  • Binary operator: An operator applied between two operands (e.g. and, ==, +) (product-specific)
  • has null: A right-hand unary operator that returns true if a list contains at least one null element (product-specific)
  • is numeric / is integer / is decimal: Type-check operators that return a boolean based on the numeric subtype of the expression (product-specific)

Guardrails:

  • When using multiplication (*), both operands must be the same numeric type (both integer or both decimal) — mixing types causes an error
  • When using the + operator for date arithmetic, the expression must be wrapped in parentheses to avoid parsing errors
  • Comparison operators (>, >=, <, <=) are only valid between compatible types: Datetime with Datetime, DatetimeOnly with DatetimeOnly, or numeric with numeric — any other combination is forbidden
  • An empty string "" is not considered null — has null returns false for a list containing ""
  • The == and != operators perform no data type control between operands

Terminology:

  • Canonical name: Operators — Acronym: none — variants: expression operators, journey operators
  • Synonyms: and = “logical AND”; or = “logical OR”; not = “logical NOT”; % = “modulo”
  • Do not confuse: is null (expression has no evaluated value) ≠ == null (not a valid syntax); has null (list contains null) ≠ is null (expression itself is null)

FAQ:

  • Q: Can I multiply an integer by a decimal directly? — No; both operands of * must be the same type. Use 3.0 * 4.0 (both decimal) or 3 * 4 (both integer).
  • Q: How do I add 15 minutes to a dateTime? — Use (toDateTime("...")) + (toDuration("PT15M")).
  • Q: What is the difference between is null and has null?is null checks whether a single expression has no evaluated value; has null checks whether a list contains at least one null element.
  • Q: Does "" has null return true? — No; an empty string is not considered null, so the result is false.
  • Q: Why does 3 * 4.0 cause an error? — The * operator requires both operands to be the same numeric type; mixing integer and decimal is not allowed.
recommendation-more-help
journey-optimizer-help