Operadores operators
Há dois tipos de operadores: operadores unários e operadores binários. Há operadores unários à esquerda e operadores unários à direita.
// 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")
Observações importantes important-notes
-
Ao usar uma multiplicação (
*), ambos os campos de operação devem ter o mesmo tipo, inteiro ou decimal. Exemplo:- o exemplo a seguir está correto:
3.0 * 4.0 3 * 4.0levará a um erro
- o exemplo a seguir está correto:
-
Ao usar o operador
+, a expressão precisa ser encapsulada entre parênteses. Exemplo:toDateTimeOnly(toDateTime((currentTimeInMillis()) + 1))está corretotoDateTimeOnly(toDateTime(currentTimeInMillis() + 1))levará a um erro
Lógico logical
e
<expression1> and <expression2>
<expression1> e <expression2> devem ser booleanos. O resultado é booleano.
Exemplo:
3.14 > 2 and 3.15 < 1
ou
<expression1> or <expression2>
<expression1> e <expression2> devem ser booleanos. O resultado é booleano.
Exemplo:
3.14 > 2 or 3.15 < 1
não
not <expression>
<expression> deve ser booleano. O resultado é booleano.
Exemplo:
not 3.15 < 1
Comparação comparison
é nulo
<expression> is null
O resultado é booleano.
Observe que nulo significa que a expressão não tem um valor avaliado.
Exemplo:
@event{BarBeacon.location} is null
não é nulo
<expression> is not null
O resultado é booleano.
Observe que nulo significa que a expressão não tem um valor avaliado.
Exemplo:
@event{BarBeacon.location} is not null
tem nulo
<expression> has null
<expression> deve ser uma lista. O resultado é booleano.
Útil para identificar se uma lista contém pelo menos um valor nulo.
Exemplo:
["foo", "bar", null] has null
Retorna verdadeiro
["foo", "bar", ""] has null
Retorna falso porque “” não é considerado nulo.
==
<expression1> == <expression2>
Exemplo:
3.14 == 42
"foo" == "bar"
!=
<expression1> != <expression2>
O resultado é booleano.
Exemplo:
3.14 != 42
"foo" != "bar"
>
<expression1> > <expression2>
Datetime pode ser comparado com Datetime.
Datetimeonly pode ser comparado com Datetimeonly.
O inteiro ou o decimal podem ser comparados com o inteiro ou o decimal.
Qualquer outra combinação é proibida.
O resultado é booleano.
Exemplo:
3.14 > 42
>=
<expression1> >= <expression2>
Datetime pode ser comparado com Datetime.
Datetimeonly pode ser comparado com Datetimeonly.
O inteiro ou o decimal podem ser comparados com o inteiro ou o decimal.
Qualquer outra combinação é proibida.
O resultado é booleano.
Exemplo:
42 >= 3.14
<
<expression1> < <expression2>
Datetime pode ser comparado com Datetime.
Datetimeonly pode ser comparado com Datetimeonly.
O inteiro ou o decimal podem ser comparados com o inteiro ou o decimal.
Qualquer outra combinação é proibida.
O resultado é booleano.
Exemplo:
42 < 3.14
<=
<expression1> <= <expression2>
Datetime pode ser comparado com Datetime.
Datetimeonly pode ser comparado com Datetimeonly.
O inteiro ou o decimal podem ser comparados com o inteiro ou o decimal.
Qualquer outra combinação é proibida.
O resultado é booleano.
Exemplo:
42 <= 3.14
Aritmética arithmetic
+
<expression1> + <expression2>
Ambas as expressões devem ser numéricas (números inteiros ou decimais).
O resultado também é numérico.
Exemplo:
1 + 2
Devoluções 3
-
<expression1> - <expression2>
Ambas as expressões devem ser numéricas (números inteiros ou decimais).
O resultado também é numérico.
Exemplo:
2 - 1
Devoluções 1
/
<expression1> / <expression2>
Ambas as expressões devem ser numéricas (números inteiros ou decimais).
O resultado também é numérico.
<expression2> não deve ser igual a 0 (retorna 0).
Exemplo:
4 / 2
Devoluções 2
*
<expression1> * <expression2>
Ambas as expressões devem ser numéricas (números inteiros ou decimais).
O resultado também é numérico.
Exemplo:
3 * 4
Retorna 12
%
<expression1> % <expression2>
Ambas as expressões devem ser numéricas (números inteiros ou decimais).
O resultado também é numérico.
Exemplo:
3 % 2
Retorna 1.
Matemática math
é numérico
<expression> is numeric
O tipo da expressão é inteiro ou decimal.
Exemplo:
@ is numeric
é inteiro
<expression> is integer
O tipo da expressão é inteiro.
Exemplo:
@ is integer
é decimal
<expression> is decimal
O tipo da expressão é decimal.
Exemplo:
@ is decimal
String string
+
<string> + <expression>
<expression> + <string>
Ela concatena duas expressões.
Uma expressão deve ser uma sequência de caracteres encadeada.
Exemplo:
"the current time is " + (now())
Retorna “a hora atual é 23T09-2023:30:06.693Z”
(now()) + " is the current time"
Retorna “2023-09-23T09:30:06.693Z é a hora atual”
"a" + "b" + "c" + 1234
Retorna “abc1234”.
Data date
+
<expression> + <duration>
Anexe uma duração a um dateTime, um dateTimeOnly ou uma duração.
Exemplo:
(toDateTime("2023-12-03T15:15:30Z")) + (toDuration("PT15M"))
Retorna um dateTime 2023-12-03T15:30:30Z
(toDateTimeOnly("2023-12-03T15:15:30")) + (toDuration("PT15M"))
Retorna um dateTimeOnly 2023-12-03T15:30:30
(now()) + (toDuration("PT1H"))
Retorna um dateTime (com fuso horário UTC) uma hora depois da hora atual
(toDuration("PT1H")) + (toDuration("PT1H"))
Retorna uma duração 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.