Operadores operators
Existen dos tipos de operadores: operadores unarios y operadores binarios. Hay operadores unarios de la izquierda y operadores unarios de la derecha.
// 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")
Notas importantes important-notes
-
Al utilizar una multiplicación (
*), ambos campos de operación deben tener el mismo tipo, ya sea entero o decimal. Ejemplo :- el siguiente ejemplo es correcto:
3.0 * 4.0 3 * 4.0generará un error
- el siguiente ejemplo es correcto:
-
Al utilizar el operador
+, la expresión debe encapsularse entre paréntesis. Por ejemplo:toDateTimeOnly(toDateTime((currentTimeInMillis()) + 1))es correctotoDateTimeOnly(toDateTime(currentTimeInMillis() + 1))generará un error
Lógico logical
y
<expression1> and <expression2>
Tanto <expression1> como <expression2> deben ser booleanas. El resultado es booleano.
Por ejemplo:
3.14 > 2 and 3.15 < 1
o
<expression1> or <expression2>
Tanto <expression1> como <expression2> deben ser booleanas. El resultado es booleano.
Por ejemplo:
3.14 > 2 or 3.15 < 1
no
not <expression>
<expression> debe ser booleano. El resultado es booleano.
Por ejemplo:
not 3.15 < 1
Comparación comparison
es nulo
<expression> is null
El resultado es booleano.
Tenga en cuenta que nulo significa que la expresión no tiene ningún valor evaluado.
Por ejemplo:
@event{BarBeacon.location} is null
no es nulo
<expression> is not null
El resultado es booleano.
Tenga en cuenta que nulo significa que la expresión no tiene ningún valor evaluado.
Por ejemplo:
@event{BarBeacon.location} is not null
tiene null
<expression> has null
<expression> debe ser una lista. El resultado es booleano.
Resulta útil para identificar que una lista contiene al menos un valor nulo.
Por ejemplo:
["foo", "bar", null] has null
Devuelve verdadero
["foo", "bar", ""] has null
Devuelve falso porque “” no se considera nulo.
==
<expression1> == <expression2>
Por ejemplo:
3.14 == 42
"foo" == "bar"
!=
<expression1> != <expression2>
El resultado es booleano.
Por ejemplo:
3.14 != 42
"foo" != "bar"
>
<expression1> > <expression2>
Datetime se puede comparar con Datetime.
Datetimeonly se puede comparar con Datetimeonly.
Tanto el entero como el decimal pueden compararse con ambos valores, entero o decimal.
Cualquier otra combinación está prohibida.
El resultado es booleano.
Por ejemplo:
3.14 > 42
>=
<expression1> >= <expression2>
Datetime se puede comparar con Datetime.
Datetimeonly se puede comparar con Datetimeonly.
Tanto el entero como el decimal pueden compararse con ambos valores, entero o decimal.
Cualquier otra combinación está prohibida.
El resultado es booleano.
Por ejemplo:
42 >= 3.14
<
<expression1> < <expression2>
Datetime se puede comparar con Datetime.
Datetimeonly se puede comparar con Datetimeonly.
Tanto el entero como el decimal pueden compararse con ambos valores, entero o decimal.
Cualquier otra combinación está prohibida.
El resultado es booleano.
Por ejemplo:
42 < 3.14
<=
<expression1> <= <expression2>
Datetime se puede comparar con Datetime.
Datetimeonly se puede comparar con Datetimeonly.
Tanto el entero como el decimal pueden compararse con ambos valores, entero o decimal.
Cualquier otra combinación está prohibida.
El resultado es booleano.
Por ejemplo:
42 <= 3.14
Aritmética arithmetic
+
<expression1> + <expression2>
Ambas expresiones deben ser numéricas (enteras o decimales).
El resultado también es numérico.
Por ejemplo:
1 + 2
Devuelve 3
-
<expression1> - <expression2>
Ambas expresiones deben ser numéricas (enteras o decimales).
El resultado también es numérico.
Por ejemplo:
2 - 1
Devuelve 1
/
<expression1> / <expression2>
Ambas expresiones deben ser numéricas (enteras o decimales).
El resultado también es numérico.
<expression2> no debe ser igual a 0 (devuelve 0).
Por ejemplo:
4 / 2
Devuelve 2
*
<expression1> * <expression2>
Ambas expresiones deben ser numéricas (enteras o decimales).
El resultado también es numérico.
Por ejemplo:
3 * 4
Devuelve 12
%
<expression1> % <expression2>
Ambas expresiones deben ser numéricas (enteras o decimales).
El resultado también es numérico.
Por ejemplo:
3 % 2
Devuelve 1.
Matemáticas math
es numérico
<expression> is numeric
El tipo de expresión es entero o decimal.
Por ejemplo:
@ is numeric
es entero
<expression> is integer
El tipo de expresión es entero.
Por ejemplo:
@ is integer
es decimal
<expression> is decimal
El tipo de expresión es decimal.
Por ejemplo:
@ is decimal
Cadena string
+
<string> + <expression>
<expression> + <string>
Concatena dos expresiones.
Una expresión debe ser una cadena encadenada.
Por ejemplo:
"the current time is " + (now())
Devuelve “la hora actual es 2023-09-23T09:30:06.693Z”
(now()) + " is the current time"
Devuelve “2023-09-23T09:30:06.693Z es la hora actual”
"a" + "b" + "c" + 1234
Devuelve “abc1234”.
Fecha date
+
<expression> + <duration>
Anexe una duración a dateTime, dateTimeOnly o duration.
Por ejemplo:
(toDateTime("2023-12-03T15:15:30Z")) + (toDuration("PT15M"))
Devuelve dateTime 2023-12-03T15:30:30Z
(toDateTimeOnly("2023-12-03T15:15:30")) + (toDuration("PT15M"))
Devuelve dateTimeOnly 2023-12-03T15:30:30
(now()) + (toDuration("PT1H"))
Devuelve dateTime (con zona horaria UTC) una hora más tarde de la hora actual
(toDuration("PT1H")) + (toDuration("PT1H"))
Devuelve duration PT2H
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, andnot - 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 nulloperator - 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 nullreturns 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. Use3.0 * 4.0(both decimal) or3 * 4(both integer). - Q: How do I add 15 minutes to a dateTime? — Use
(toDateTime("...")) + (toDuration("PT15M")). - Q: What is the difference between
is nullandhas null? —is nullchecks whether a single expression has no evaluated value;has nullchecks whether a list contains at least one null element. - Q: Does
"" has nullreturn true? — No; an empty string is not considered null, so the result is false. - Q: Why does
3 * 4.0cause an error? — The*operator requires both operands to be the same numeric type; mixing integer and decimal is not allowed.